Automated Annotation
Contents
Automated Annotation¶
# First, import the necessary modules and functions
import os
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from myst_nb import glue
from nilearn import image, plotting
from repo2data.repo2data import Repo2Data
from nimare import dataset, extract
# Install the data if running locally, or points to cached data if running on neurolibre
DATA_REQ_FILE = os.path.abspath("../binder/data_requirement.json")
repo2data = Repo2Data(DATA_REQ_FILE)
data_path = repo2data.install()
data_path = os.path.join(data_path[0], "data")
---- repo2data starting ----
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/repo2data
Config from file :
/Users/taylor/Documents/nbc/nimare-paper/binder/data_requirement.json
Destination:
./../data/nimare-paper
Info : ./../data/nimare-paper already downloaded
As mentioned in the discussion of BrainMap (BrainMap), manually annotating studies in a meta-analytic database can be a time-consuming and labor-intensive process. To facilitate more efficient (albeit lower-quality) annotation, NiMARE supports a number of automated annotation approaches. These include N-gram term extraction, Cognitive Atlas term extraction and hierarchical expansion, Latent Dirichlet allocation, and Generalized correspondence latent Dirichlet allocation.
NiMARE users may download abstracts from PubMed as long as study identifiers in the Dataset
correspond to PubMed IDs (as in Neurosynth and NeuroQuery).
Abstracts are much more easily accessible than full article text, so most annotation methods in NiMARE rely on them.
Below, we use the function download_abstracts()
to download abstracts for the Neurosynth Dataset
.
This will attempt to extract metadata about each study in the Dataset
from PubMed, and then add the abstract available on Pubmed to the Dataset
’s texts
attribute, under a new column names “abstract”.
Important
download_abstracts()
only works when there is internet access.
Since this book will often be built on nodes without internet access, we will share the code
used to download abstracts, but will actually load and use a pre-generated version of the Dataset.
# First, load a Dataset without abstracts
neurosynth_dset_first_500 = dataset.Dataset.load(
os.path.join(data_path, "neurosynth_dataset_first500.pkl.gz")
)
# Now, download the abstracts using your email address
neurosynth_dset_first_500 = extract.download_abstracts(
neurosynth_dset_first_500,
<EMAIL_ADDRESS>)
# Finally, save the Dataset with abstracts to a pkl.gz file
neurosynth_dset_first_500.save(
os.path.join(data_path, "neurosynth_dataset_first500_with_abstracts.pkl.gz"),
)
neurosynth_dset_first_500 = dataset.Dataset.load(
os.path.join(data_path, "neurosynth_dataset_first500_with_abstracts.pkl.gz"),
)
N-gram term extraction¶
N-gram term extraction refers to the vectorization of text into contiguous sets of words that can be counted as individual tokens. The upper limit on the number of words in these tokens is set by the user.
NiMARE has the function generate_counts()
to extract n-grams from text.
This method produces either term counts or term frequency- inverse document frequency (tf-idf) values for each of the studies in a Dataset
.
from nimare import annotate
counts_df = annotate.text.generate_counts(
neurosynth_dset_first_500.texts,
text_column="abstract",
tfidf=False,
min_df=10,
max_df=0.95,
)
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/sklearn/utils/deprecation.py:87: FutureWarning: Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.
warnings.warn(msg, category=FutureWarning)
This term count DataFrame
will be used later, to train a GCLDA model.
Cognitive Atlas term extraction and hierarchical expansion¶
Cognitive Atlas term extraction leverages the structured nature of the Cognitive Atlas in order to extract counts for individual terms and their synonyms in the ontology, as well as to apply hierarchical expansion to these counts based on the relationships specified between terms. This method produces both basic term counts and expanded term counts based on the weights applied to different relationship types present in the ontology.
First, we must use download_cognitive_atlas()
to download the current version of the Cognitive Atlas ontology.
This includes both information about individual terms in the ontology and asserted relationships between those terms.
NiMARE will automatically attempt to extrapolate likely alternate forms of each term in the ontology, in order to make extraction easier. For an example, see Fig. 11.
cogatlas = extract.download_cognitive_atlas(data_dir=data_path, overwrite=False)
id_df = pd.read_csv(cogatlas["ids"])
rel_df = pd.read_csv(cogatlas["relationships"])
cogat_counts_df, rep_text_df = annotate.cogat.extract_cogat(
neurosynth_dset_first_500.texts, id_df, text_column="abstract"
)
INFO:nimare.extract.utils:Dataset found in ./../data/nimare-paper/data/cognitive_atlas
example_forms = id_df.loc[id_df["name"] == "dot motion task"][["id", "name", "alias"]]
glue("table_cogat_forms", example_forms)
| id | name | alias | |
|---|---|---|---|
| 803 | trm_4f244ad7dcde7 | dot motion task | random-dot motion task |
| 1563 | trm_4f244ad7dcde7 | dot motion task | dot motion task |
| 1589 | trm_4f244ad7dcde7 | dot motion task | dot-motion task |
| 1595 | trm_4f244ad7dcde7 | dot motion task | moving-dot task |
| 2039 | trm_4f244ad7dcde7 | dot motion task | rdm task |
| id | name | alias | |
|---|---|---|---|
| 803 | trm_4f244ad7dcde7 | dot motion task | random-dot motion task |
| 1563 | trm_4f244ad7dcde7 | dot motion task | dot motion task |
| 1589 | trm_4f244ad7dcde7 | dot motion task | dot-motion task |
| 1595 | trm_4f244ad7dcde7 | dot motion task | moving-dot task |
| 2039 | trm_4f244ad7dcde7 | dot motion task | rdm task |
# Define a weighting scheme.
# In this scheme, observed terms will also count toward any hypernyms (isKindOf),
# holonyms (isPartOf), and parent categories (inCategory) as well.
weights = {"isKindOf": 1, "isPartOf": 1, "inCategory": 1}
expanded_df = annotate.cogat.expand_counts(cogat_counts_df, rel_df, weights)
# Sort by total count and reduce for better visualization
series = expanded_df.sum(axis=0)
series = series.sort_values(ascending=False)
series = series[series > 0]
columns = series.index.tolist()
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/nimare/annotate/cogat.py:196: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
counts_df[col] = 0
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/nimare/annotate/cogat.py:196: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
counts_df[col] = 0
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/nimare/annotate/cogat.py:196: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
counts_df[col] = 0
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/nimare/annotate/cogat.py:196: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
counts_df[col] = 0
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/nimare/annotate/cogat.py:196: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
counts_df[col] = 0
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/nimare/annotate/cogat.py:196: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
counts_df[col] = 0
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/nimare/annotate/cogat.py:196: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
counts_df[col] = 0
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/nimare/annotate/cogat.py:196: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
counts_df[col] = 0
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/nimare/annotate/cogat.py:196: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
counts_df[col] = 0
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/nimare/annotate/cogat.py:196: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
counts_df[col] = 0
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/nimare/annotate/cogat.py:196: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
counts_df[col] = 0
# Raw counts
fig, axes = plt.subplots(figsize=(16, 16), nrows=2, sharex=True)
pos = axes[0].imshow(
cogat_counts_df[columns].values,
aspect="auto",
vmin=0,
vmax=10,
)
fig.colorbar(pos, ax=axes[0])
axes[0].set_title("Counts Before Expansion", fontsize=20)
axes[0].yaxis.set_visible(False)
axes[0].xaxis.set_visible(False)
axes[0].set_ylabel("Study", fontsize=16)
axes[0].set_xlabel("Cognitive Atlas Term", fontsize=16)
# Expanded counts
pos = axes[1].imshow(
expanded_df[columns].values,
aspect="auto",
vmin=0,
vmax=10,
)
fig.colorbar(pos, ax=axes[1])
axes[1].set_title("Counts After Expansion", fontsize=20)
axes[1].yaxis.set_visible(False)
axes[1].xaxis.set_visible(False)
axes[1].set_ylabel("Study", fontsize=16)
axes[1].set_xlabel("Cognitive Atlas Term", fontsize=16)
fig.tight_layout()
glue("figure_cogat_expansion", fig, display=False)
# Here we delete the recent variables for the sake of reducing memory usage
del cogatlas, id_df, rel_df, cogat_counts_df, rep_text_df
del weights, expanded_df, series, columns
Latent Dirichlet allocation¶
Latent Dirichlet allocation (LDA) [Blei et al., 2003] was originally combined with meta-analytic neuroimaging data in Poldrack et al. [2012]. LDA is a generative topic model which, for a text corpus, builds probability distributions across documents and words. In LDA, each document is considered a mixture of topics. This works under the assumption that each document was constructed by first randomly selecting a topic based on the document’s probability distribution across topics, and then randomly selecting a word from that topic based on the topic’s probability distribution across words. While this is not a useful generative model for producing documents, LDA is able to discern cohesive topics of related words. Poldrack et al. [2012] were able to apply LDA to full texts from neuroimaging articles in order to develop cognitive neuroscience-related topics and to run topic-wise meta-analyses. This method produces two sets of probability distributions: (1) the probability of a word given topic and (2) the probability of a topic given article.
NiMARE’s LDAModel
is a light wrapper around scikit-learn’s LDA implementation.
Here, we train an LDA model (LDAModel
) on the first 500 studies of the Neurosynth Dataset
, with 50 topics in the model.
from nimare import annotate
lda_model = annotate.lda.LDAModel(n_topics=50, max_iter=1000, text_column="abstract")
# Fit the model
lda_model.fit(neurosynth_dset_first_500)
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/sklearn/utils/deprecation.py:87: FutureWarning: Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.
warnings.warn(msg, category=FutureWarning)
Dataset(500 experiments, space='mni152_2mm')
The most important products of training the LDAModel
object is its distributions_
attribute.
LDAModel.distributions_
is a dictionary containing arrays and DataFrames created from training the model.
We are particularly interested in the p_topic_g_word_df
distribution, which is a pandas
DataFrame
in which each row corresponds to a topic and each column corresponds to a term (n-gram) extracted from the Dataset
’s texts.
The cells contain weights indicating the probability distribution across terms for each topic.
Additionally, the LDAModel
updates the Dataset
’s annotations
attribute, by adding columns corresponding to each of the topics in the model.
Each study in the Dataset
thus receives a weight for each topic, which can be used to select studies for topic-based meta-analyses or functional decoding.
Let’s take a look at the results of the model training. First, we will reorganize the DataFrame a bit to show the top ten terms for each of the first ten topics.
lda_df = lda_model.distributions_["p_topic_g_word_df"].T
column_names = {c: f"Topic {c}" for c in lda_df.columns}
lda_df = lda_df.rename(columns=column_names)
temp_df = lda_df.copy()
lda_df = pd.DataFrame(columns=lda_df.columns, index=np.arange(10))
lda_df.index.name = "Term"
for col in lda_df.columns:
top_ten_terms = temp_df.sort_values(by=col, ascending=False).index.tolist()[:10]
lda_df.loc[:, col] = top_ten_terms
lda_df = lda_df[lda_df.columns[:10]]
glue("table_lda", lda_df)
| Topic LDA50__1 | Topic LDA50__2 | Topic LDA50__3 | Topic LDA50__4 | Topic LDA50__5 | Topic LDA50__6 | Topic LDA50__7 | Topic LDA50__8 | Topic LDA50__9 | Topic LDA50__10 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Term | ||||||||||
| 0 | sustained | memory | cerebral | visual | cs | prefrontal | stroop | language | achieved | memory |
| 1 | delays | task | tomography | stimuli | conditioning | prefrontal cortex | counting | hemisphere | atlas | mtle |
| 2 | preceded | cortex | emission | stimulus | responses | task | cingulate | frontal | parametric maps | volunteers |
| 3 | exclusively | functional | emission tomography | field | cerebellar | cortex | motor | semantic | stimulus applied | healthy |
| 4 | shapes | prefrontal | positron emission | contralateral | stimulus | response | attentional | hemispheric | individual group | verbal memory |
| 5 | trigger | retrieval | positron | stimulation | time | dorsolateral | attention | syntactic | maxima | healthy volunteers |
| 6 | able | temporal | flow | hemisphere | response | dorsolateral prefrontal | functional | verbal | assay | verbal |
| 7 | temporal resolution | encoding | baseline | presented | hemodynamic | control | response selection | lateralization | normalized | memory tasks |
| 8 | transformations | working | blood | hemifield | aversive | set | color | lobe | probing | exhibited |
| 9 | instructed | working memory | blood flow | visual cortex | eyeblink | cognitive | magnetic resonance | fluency | vivo | hippocampal |
| Topic LDA50__1 | Topic LDA50__2 | Topic LDA50__3 | Topic LDA50__4 | Topic LDA50__5 | Topic LDA50__6 | Topic LDA50__7 | Topic LDA50__8 | Topic LDA50__9 | Topic LDA50__10 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Term | ||||||||||
| 0 | sustained | memory | cerebral | visual | cs | prefrontal | stroop | language | achieved | memory |
| 1 | delays | task | tomography | stimuli | conditioning | prefrontal cortex | counting | hemisphere | atlas | mtle |
| 2 | preceded | cortex | emission | stimulus | responses | task | cingulate | frontal | parametric maps | volunteers |
| 3 | exclusively | functional | emission tomography | field | cerebellar | cortex | motor | semantic | stimulus applied | healthy |
| 4 | shapes | prefrontal | positron emission | contralateral | stimulus | response | attentional | hemispheric | individual group | verbal memory |
| 5 | trigger | retrieval | positron | stimulation | time | dorsolateral | attention | syntactic | maxima | healthy volunteers |
| 6 | able | temporal | flow | hemisphere | response | dorsolateral prefrontal | functional | verbal | assay | verbal |
| 7 | temporal resolution | encoding | baseline | presented | hemodynamic | control | response selection | lateralization | normalized | memory tasks |
| 8 | transformations | working | blood | hemifield | aversive | set | color | lobe | probing | exhibited |
| 9 | instructed | working memory | blood flow | visual cortex | eyeblink | cognitive | magnetic resonance | fluency | vivo | hippocampal |
# Here we delete the recent variables for the sake of reducing memory usage
del lda_model, lda_df, temp_df
Generalized correspondence latent Dirichlet allocation¶
Generalized correspondence latent Dirichlet allocation (GCLDA) is a recently-developed algorithm that trains topics on both article abstracts and coordinates [Rubin et al., 2017].
GCLDA assumes that topics within the fMRI literature can also be localized to brain regions, in this case modeled as three-dimensional Gaussian distributions.
These spatial distributions can also be restricted to pairs of Gaussians that are symmetric across brain hemispheres.
This method produces two sets of probability distributions: the probability of a word given topic (GCLDAModel.p_word_g_topic_
) and the probability of a voxel given topic (GCLDAModel.p_voxel_g_topic_
).
Here we train a GCLDA model (GCLDAModel
) on the first 500 studies of the Neurosynth Dataset.
The model will include 50 topics, in which the spatial distribution for each topic will be defined as having two Gaussian distributions that are symmetrically localized across the longitudinal fissure.
Important
GCLDAModel
generally takes a very long time to train.
Below, we show how one would train a GCLDA model. However, we will load a pretrained model instead of actually training the model.
gclda_model = annotate.gclda.GCLDAModel(
counts_df,
neurosynth_dset_first_500.coordinates,
n_regions=2,
n_topics=50,
symmetric=True,
mask=neurosynth_dset_first_500.masker.mask_img,
)
gclda_model.fit(n_iters=2500, loglikely_freq=500)
gclda_model = annotate.gclda.GCLDAModel.load(os.path.join(data_path, "gclda_model.pkl.gz"))
The GCLDAModel
retains the relevant probability distributions in the form of numpy
arrays, rather than pandas
DataFrames.
However, for the topic-term weights (p_word_g_topic_
), the data are more interpretable as a DataFrame, so we will create one.
We will also reorganize the raw DataFrame to show the top ten terms for each of the first ten topics.
gclda_arr = gclda_model.p_word_g_topic_
gclda_vocab = gclda_model.vocabulary
topic_names = [f"Topic {str(i).zfill(3)}" for i in range(gclda_arr.shape[1])]
gclda_df = pd.DataFrame(index=gclda_vocab, columns=topic_names, data=gclda_arr)
temp_df = gclda_df.copy()
gclda_df = pd.DataFrame(columns=gclda_df.columns, index=np.arange(10))
gclda_df.index.name = "Term"
for col in temp_df.columns:
top_ten_terms = temp_df.sort_values(by=col, ascending=False).index.tolist()[:10]
gclda_df.loc[:, col] = top_ten_terms
gclda_df = gclda_df[gclda_df.columns[:10]]
glue("table_gclda", gclda_df)
| Topic 000 | Topic 001 | Topic 002 | Topic 003 | Topic 004 | Topic 005 | Topic 006 | Topic 007 | Topic 008 | Topic 009 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Term | ||||||||||
| 0 | amygdala | visual | motion | learning | visual | modality | age | temporal | prefrontal | eye |
| 1 | faces | cortex | temporal | task | network | spatial | adults | tomography | prefrontal cortex | movements |
| 2 | neutral | functional | mt | performance | greater | sensory | matter | emission | task | timing |
| 3 | emotional | cortical | visual | sequence | occipital | gyrus | children | emission tomography | cortex | motor |
| 4 | functional | magnetic resonance | sulcus | fronto | frontal | modalities | using | medial | control | activations |
| 5 | stimuli | visual cortex | occipital | practice | evidence | known | volume | positron | response | movement |
| 6 | emotion | magnetic | dorsal | learned | human | movements | mm | positron emission | dorsolateral prefrontal | evidence |
| 7 | response | stimulation | human | awareness | demonstrated | bilaterally | young | pet | dorsolateral | cortical |
| 8 | functional magnetic | resonance | sensitive | early | direction | angular | years | temporal lobe | cognitive | condition |
| 9 | responses | spatial | perception | parietal | pattern | goal | women | lobe | tasks | fields |
| Topic 000 | Topic 001 | Topic 002 | Topic 003 | Topic 004 | Topic 005 | Topic 006 | Topic 007 | Topic 008 | Topic 009 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Term | ||||||||||
| 0 | amygdala | visual | motion | learning | visual | modality | age | temporal | prefrontal | eye |
| 1 | faces | cortex | temporal | task | network | spatial | adults | tomography | prefrontal cortex | movements |
| 2 | neutral | functional | mt | performance | greater | sensory | matter | emission | task | timing |
| 3 | emotional | cortical | visual | sequence | occipital | gyrus | children | emission tomography | cortex | motor |
| 4 | functional | magnetic resonance | sulcus | fronto | frontal | modalities | using | medial | control | activations |
| 5 | stimuli | visual cortex | occipital | practice | evidence | known | volume | positron | response | movement |
| 6 | emotion | magnetic | dorsal | learned | human | movements | mm | positron emission | dorsolateral prefrontal | evidence |
| 7 | response | stimulation | human | awareness | demonstrated | bilaterally | young | pet | dorsolateral | cortical |
| 8 | functional magnetic | resonance | sensitive | early | direction | angular | years | temporal lobe | cognitive | condition |
| 9 | responses | spatial | perception | parietal | pattern | goal | women | lobe | tasks | fields |
We also want to see how the topic-voxel weights render on the brain, so we will simply unmask the p_voxel_g_topic_
array with the Dataset
’s masker.
fig, axes = plt.subplots(nrows=5, ncols=2, figsize=(12, 10))
topic_img_4d = neurosynth_dset_first_500.masker.inverse_transform(gclda_model.p_voxel_g_topic_.T)
# Plot first ten topics
topic_counter = 0
for i_row in range(5):
for j_col in range(2):
topic_img = image.index_img(topic_img_4d, index=topic_counter)
display = plotting.plot_stat_map(
topic_img,
annotate=False,
cmap="Reds",
draw_cross=False,
figure=fig,
axes=axes[i_row, j_col],
)
axes[i_row, j_col].set_title(f"Topic {str(topic_counter).zfill(3)}")
topic_counter += 1
colorbar = display._cbar
colorbar_ticks = colorbar.get_ticks()
if colorbar_ticks[0] < 0:
new_ticks = [colorbar_ticks[0], 0, colorbar_ticks[-1]]
else:
new_ticks = [colorbar_ticks[0], colorbar_ticks[-1]]
colorbar.set_ticks(new_ticks, update_ticks=True)
glue("figure_gclda_topics", fig, display=False)
/Users/taylor/Documents/nbc/nimare-paper/conda_env/lib/python3.8/site-packages/nilearn/plotting/img_plotting.py:300: FutureWarning: Default resolution of the MNI template will change from 2mm to 1mm in version 0.10.0
anat_img = load_mni152_template()
# Here we delete the recent variables for the sake of reducing memory usage
del gclda_model, temp_df, gclda_df, counts_df


- offer(Tree) - Method in class org.jamplate.model.Tree
-
Offer the given tree
to the structure of this tree.
- OfferParser - Class in org.jamplate.impl.parser
-
A parser that parses using another parser and combines the results into one tree then
return it.
- OfferParser(Parser) - Constructor for class org.jamplate.impl.parser.OfferParser
-
Construct a new parser that parses using the given parser
then offer the
results into one tree and return it.
- OP_ADD - Static variable in class org.jamplate.impl.Kind
-
The kind for the addition symbol.
- OP_ADD - Static variable in class org.jamplate.impl.Parsers
-
A parser that parses addition symbols.
- OP_DIV - Static variable in class org.jamplate.impl.Kind
-
The kind for the division symbol.
- OP_DIV - Static variable in class org.jamplate.impl.Parsers
-
A parser that parses division symbols.
- OP_EQL - Static variable in class org.jamplate.impl.Kind
-
The kind for the equating symbol.
- OP_EQL - Static variable in class org.jamplate.impl.Parsers
-
A parser that parses equal symbols.
- OP_LEQ - Static variable in class org.jamplate.impl.Kind
-
The kind for the less-than-or-equals (<=) operator.
- OP_LEQ - Static variable in class org.jamplate.impl.Parsers
-
A parser that parses less than or equals symbols.
- OP_LND - Static variable in class org.jamplate.impl.Kind
-
The kind for the logical and (&&) operator.
- OP_LND - Static variable in class org.jamplate.impl.Parsers
-
A parser that parses logical and symbols.
- OP_LOR - Static variable in class org.jamplate.impl.Kind
-
The kind for the logical-or (||) operator.
- OP_LOR - Static variable in class org.jamplate.impl.Parsers
-
A parser that parses logical or symbols.
- OP_LTN - Static variable in class org.jamplate.impl.Kind
-
The kind for the less-than symbol.
- OP_LTN - Static variable in class org.jamplate.impl.Parsers
-
A parser that parses less than symbols.
- OP_MEQ - Static variable in class org.jamplate.impl.Kind
-
The kind for the more-than-or-equals (>=) operator.
- OP_MEQ - Static variable in class org.jamplate.impl.Parsers
-
A parser that parses more than or equals symbols.
- OP_MOD - Static variable in class org.jamplate.impl.Kind
-
The kind for the modulo symbol.
- OP_MOD - Static variable in class org.jamplate.impl.Parsers
-
A parser that modulo symbols.
- OP_MTN - Static variable in class org.jamplate.impl.Kind
-
The kind for the more-than symbol.
- OP_MTN - Static variable in class org.jamplate.impl.Parsers
-
A parser that parses more than symbols.
- OP_MUL - Static variable in class org.jamplate.impl.Kind
-
The kind for the multiplication symbol.
- OP_MUL - Static variable in class org.jamplate.impl.Parsers
-
A parser that parses multiplication symbols.
- OP_NEG - Static variable in class org.jamplate.impl.Kind
-
The kind for the negation symbol.
- OP_NEG - Static variable in class org.jamplate.impl.Parsers
-
A parser that parses negation symbols.
- OP_NQL - Static variable in class org.jamplate.impl.Kind
-
The kind for the not-equals symbol.
- OP_NQL - Static variable in class org.jamplate.impl.Parsers
-
A parser that parses not-equals symbols.
- OP_SUB - Static variable in class org.jamplate.impl.Kind
-
The kind for the subtraction symbol.
- OP_SUB - Static variable in class org.jamplate.impl.Parsers
-
A parser that parses subtraction symbols.
- OPEN - Static variable in class org.jamplate.impl.Component
-
The key of the opening anchor component.
- openInputStream() - Method in class org.jamplate.impl.model.FileDocument
-
- openInputStream() - Method in class org.jamplate.impl.model.PseudoDocument
-
- openInputStream(Reference) - Method in interface org.jamplate.model.Document
-
Open a new input-stream that reads the content at the given reference
in
this document.
- openInputStream() - Method in interface org.jamplate.model.Document
-
Open a new input-stream that reads the content of this document.
- openReader() - Method in class org.jamplate.impl.model.FileDocument
-
- openReader() - Method in class org.jamplate.impl.model.PseudoDocument
-
- openReader(Reference) - Method in interface org.jamplate.model.Document
-
Open a new reader that reads the content at the given reference
in this
document.
- openReader() - Method in interface org.jamplate.model.Document
-
Open a new reader that reads the content of this document.
- opposite() - Method in enum org.jamplate.model.Dominance
-
Get the opposite dominance type of this dominance type.
- opposite() - Method in enum org.jamplate.model.Intersection
-
Get the opposite intersection of this intersection.
- opposite() - Method in enum org.jamplate.model.Relation
-
The opposite direction of this direction.
- optCompilation(Document) - Method in class org.jamplate.impl.model.EnvironmentImpl
-
- optCompilation(Document) - Method in interface org.jamplate.model.Environment
-
Return the compilation set to this environment with the given document
or
create a new compilation for the given document
, add it to this environment
and return it.
- org.jamplate.diagnostic - package org.jamplate.diagnostic
-
All about diagnostic.
- org.jamplate.impl - package org.jamplate.impl
-
Jamplate specific implementations.
- org.jamplate.impl.analyzer - package org.jamplate.impl.analyzer
-
A package containing implementations of the interface
Analyzer
.
- org.jamplate.impl.compiler - package org.jamplate.impl.compiler
-
A package containing implementations of the interface
Compiler
.
- org.jamplate.impl.diagnostic - package org.jamplate.impl.diagnostic
-
Default jamplate implementations for the package org.jamplate.diagnostic
.
- org.jamplate.impl.initializer - package org.jamplate.impl.initializer
-
A package containing implementations of the interface
Initializer
.
- org.jamplate.impl.instruction - package org.jamplate.impl.instruction
-
A package containing implementations of the interface
Instruction
.
- org.jamplate.impl.model - package org.jamplate.impl.model
-
A package containing implementations of the package org.jamplate.model
.
- org.jamplate.impl.parser - package org.jamplate.impl.parser
-
A package containing implementations of the interface
Parser
.
- org.jamplate.impl.processor - package org.jamplate.impl.processor
-
A package containing implementations of the interface
Processor
.
- org.jamplate.impl.util - package org.jamplate.impl.util
-
Common utilities.
- org.jamplate.model - package org.jamplate.model
-
A package that specifies that primary components of a processor that uses the
jamplate-style processing.
- org.jamplate.model.function - package org.jamplate.model.function
-
All about processors.
- OUTPUT - Static variable in class org.jamplate.impl.Address
-
An address used to store the output directory.
- OUTPUT - Static variable in class org.jamplate.impl.Meta
-
The key for the output directory.
- OZ_CLEAN - Static variable in class org.jamplate.impl.Processors
-
A processor that cleans unwanted trees.


Christy Moore pays tribute to victims of Stardust fire
The singer-songwriter sang They Never Came Home on the Late Late Show.
by Órla RyanCHRISTY MOORE HAS paid tribute to the victims and survivors of the Stardust fire while appearing on the Late Late Show.
During an interview with Ryan Tubridy last night, Moore asked if he could sing They Never Came Home – a song he wrote for the 48 people who died in the 1981 tragedy.
Moore said he had been speaking to Christine Keegan, whose daughters Mary and Martina were killed in the fire, earlier in the day and wanted to dedicate the song to “the families of the victims of the Stardust”.
The song’s lyrics include:
Have we forgotten the suffering and pain
The survivors and victims of the fire in Artane,
The mothers and fathers forever to mourn
The 48 children who never came home
In the early hours of Valentine’s Day in 1981, a fire tore through the Stardust nightclub in Artane just after the conclusion of a disco dancing competition that had attracted crowds from all around the north Dublin community and beyond.
In all, 48 people were killed. More than 200 were wounded.
Survivors and victims’ families have long sought justice and an answer to what caused the fire.
After a renewed campaign in recent years, the Attorney General in September agreed to new inquests for the victims of the fire.
TheJournal.ie examines the fire and a 39-year fight for justice in its podcast Stardust.


Deuteronomy 16:17
Every man shall give as he is able, according to the blessing of the LORD thy God which he hath given thee.


# File test/adapter_test.rb, line 15 def test_base_tables create_view found = ActiveRecord::Base.connection.base_tables.sort found.delete(ActiveRecord::Migrator.schema_migrations_table_name) assert_equal ["items", "items_people", "people", "people2", "places"], found end
# File test/adapter_test.rb, line 25 def test_columns create_view assert_equal ["f_name", "l_name", "social_security"], ActiveRecord::Base.connection.columns('v_people').collect { |c| c.name } end
# File test/adapter_test.rb, line 4 def test_current_database if ActiveRecord::Base.connection.respond_to?(:current_database) assert_equal 'rails_sql_views_unittest', ActiveRecord::Base.connection.current_database end end
# File test/adapter_test.rb, line 37 def test_mapped_columns create_mapping assert_equal ["f_name", "l_name", "address_id"], ActiveRecord::Base.connection.columns('v_people').collect { |c| c.name } end
# File test/adapter_test.rb, line 33 def test_mapped_views create_mapping assert_equal ['v_people'], ActiveRecord::Base.connection.views end
# File test/adapter_test.rb, line 51 def test_old_name_not_found_error_during_mapping assert_raise ActiveRecord::ActiveRecordError do ActiveRecord::Base.connection.create_mapping_view(:people, :v_people, :force => true) do |v| v.map_column :foo, :bar end end end
# File test/adapter_test.rb, line 29 def test_supports_views assert ActiveRecord::Base.connection.supports_views? end
# File test/adapter_test.rb, line 9 def test_tables create_view found = ActiveRecord::Base.connection.tables.sort found.delete(ActiveRecord::Migrator.schema_migrations_table_name) assert_equal ["items", "items_people", "people", "people2", "places", "v_people"], found end
# File test/adapter_test.rb, line 42 def test_view_select_statement case ActiveRecord::Base.connection.adapter_name when "MySQL" assert_equal "select `people`.`first_name` AS `f_name`,`people`.`last_name` AS `l_name`,`people`.`ssn` AS `social_security` from `people`", ActiveRecord::Base.connection.view_select_statement('v_people') when "PostgreSQL" assert_equal "SELECT people.first_name AS f_name, people.last_name AS l_name, people.ssn AS social_security FROM people;", ActiveRecord::Base.connection.view_select_statement('v_people') end end
# File test/adapter_test.rb, line 21 def test_views create_view assert_equal ['v_people'], ActiveRecord::Base.connection.views end


gnome-extensions
Manage gnome extensions from the terminal.
More information: home page
- Display the version:
gnome-extensions version
- List all the installed extensions:
gnome-extensions list
- Display information about a specific extension:
gnome-extensions info "extension_id"
- Display help for a subcommand (like `list`):
gnome-extensions help subcommand
- Enable a specific extension:
gnome-extensions enable "extension_id"
- Disable a specific extension:
gnome-extension disable "extension_id"
- Uninstall a specific extension:
gnome-extension uninstall "extension_id"


{% extends "bootstrap/base.html" %} {% block title %}My Library{% endblock %} {% block content %}
Library is empty.


{% extends "projects/base.html" %} {% block content %}
Create, update and make requisitions for projects
Budgets, Forecasts, and cashflows
Add/Remove new stock items, check stock levels, Approve Project Requisitions
Employee, Absence and salary management. Manage your People for sucess


The ms-appx protocol references images that are included in the .appx package. If localized, scaled, and high contrast resources are provided, the correct asset will be automatically displayed.
The ms-appdata protocol references images that are saved to the storage folder (Windows.Storage.ApplicationData.current.localFolder)
The http and https protocol will download web images.
Web images can be appended with query strings so that localized, scaled, and high
contrast images can be returned by the web server if desired.
A baseUri can be specified in a notification for web images. The incomplete baseUri
will be combined with the relative image path to form a complete absolute path.


In a xy-coordinate system the ratio a = X / Y
is is drawn on tha y-axis and b = Y / Z on the x-axis. The
value k
k = (a-1) / (b – 1)
describes the shape of an ellipsoid. k = ∞
a an extreme prolate (uniaxial extension) ellipsoid (Fig. 7). Prolate
shapes are clos to the y-axis.
k = 0 describe an extreme oblate
(uniaxial flattening)
ellipsoid (Fig. 8). Oblate shape are close to the x-axis. k = 1
indicates plane strain (Fig.9). In this deforamrtion the
intermediate axis of the ellipsoid is unchanged.


{% extends 'base_test.html' %} {% load i18n %} {% block additional-headers %}
You are about to delete a designations info, this procedure is irreversible.
Do you want to proceed?


Research and analysis
This research report presents the findings from an evaluation of the network of science learning centres.
Ref: DFE-RR257 PDF , 627KB , 39 pages
PDF , 1.96MB , 143 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.
The Wellcome Trust and the Department for Education commissioned this research to evaluate the national network of science learning centres (SLCs).
The national network of SLCs was set up in the context of a wide range of reports and strategies which called for the education system to provide more and better science literate people. To this end, the network provides quality science-specific continuing professional development (CPD) to educators.
The main focus of this evaluation has been to understand the effectiveness of the delivery mechanism, the impact of the CPD activity that has been delivered, and options for future strategy and sustainability of the SLC Network.


Click here ot explore our exercise list and add them to your have done and can do lists.
Login to manage your workouts


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Makes about 1 litre/2 pints
Rinse the fish bones and trimmings of any blood, which would make the stock look cloudy and taste bitter. Chop the leeks roughly and place into a large heavy-bottomed stockpot.
Chop the fennel and carrots roughly and add to the stockpot.
Roughly chop the parsley, including the stems, and add to the stockpot.
Add the fish trimmings to the stockpot.
Pour in the white wine, then add enough cold water to cover the fish and vegetables (about 1 litre/2 pints).
Place the stockpot onto a high heat and bring the liquid to a simmer. After five minutes, remove the scum that forms on the surface with a spoon and discard. Reduce the heat and simmer, covered, for about 25 minutes, skimming as necessary.
At the end of cooking time, remove the stock from the heat and strain, discarding the fish trimmings and the vegetables.
Cool and store in the fridge for up to three days or freeze. Alternatively you can reduce the stock further and then freeze it in ice cube trays (freezing it this way means you can defrost as little or as much as you need at a time).


Date
public extension Date
-
Get yesterday’s day start date. Uses user’s time zone.
Declaration
Swift
static var yesterday: Date { get }
-
Get today’s day start date. Uses user’s time zone.
Declaration
Swift
static var today: Date { get }
-
Get tomorrow’s day start date. Uses user’s time zone.
Declaration
Swift
static var tomorrow: Date { get }
-
Get day start. Uses user’s time zone.
Declaration
Swift
var startOfDay: Date { get }
-
Get date’s components. Uses user’s time zone.
- components: year, month, day, hour, minute, second, timeZone, calendar.
Declaration
Swift
var components: DateComponents { get }
-
Returns beginning of the previous day.
Declaration
Swift
var previousDay: Date { get }
-
Returns beginning of the next work day excluding today. It just exludes weekends. Does not exclude holidays.
Declaration
Swift
var previousWorkDay: Date { get }
-
Returns beginning of the next day.
Declaration
Swift
var nextDay: Date { get }
-
Returns beginning of the next work day excluding today. It just exludes weekends. Does not exclude holidays.
Declaration
Swift
var nextWorkDay: Date { get }
-
Checks if date is in yesterday’s range. Uses user’s time zone.
Declaration
Swift
var isYesterday: Bool { get }
-
Checks if date is in today’s range. Uses user’s time zone.
Declaration
Swift
var isToday: Bool { get }
-
Checks if date is in tomorrow’s range. Uses user’s time zone.
Declaration
Swift
var isTomorrow: Bool { get }
-
Checks if date is in weekend’s range. Uses user’s time zone.
Declaration
Swift
var isWeekend: Bool { get }
-
Converts date to GMT time zone day start.
Declaration
Swift
var gmtDayBeginningDate: Date { get }
-
Checks if dates are on same day. Uses user’s time zone.
Declaration
Swift
func isSameDay(withDate date: Date) -> Bool
-
Undocumented
Declaration
Swift
func adding(dateComponents: DateComponents) -> Date
-
Return
self
as a time string with aHH:mm:ss.SSS
format. E.g.10:20:45.123
. Useful for logs.Declaration
Swift
var asLogsTimeString: String { get }
-
Return
self
as a date and time string with add.MM.yyyy HH:mm:ss.SSS
format. E.g.08.10.2019 16:16:40.723
. Useful for logs.Declaration
Swift
var asLogsDateAndTimeString: String { get }
-
Simplification of getting string from date
Declaration
Swift
func getString(dateStyle: DateFormatter.Style = .short, timeStyle: DateFormatter.Style = .short, doesRelativeDateFormatting: Bool = true) -> String


Star Wars Episode V: The Empire Strikes Back is a 1980 American space opera film. Despite their victory over the Galactic Empire with the destruction of the Death Star, the Empire's forces have driven the Rebel Alliance into hiding, forcing the fleet to establish a hidden base on the remote ice planet Hoth.
Bacon
Bacon may be eaten smoked, boiled, fried, baked, or grilled, or used as a minor ingredient to flavor dishes. Bacon is also used for barding and larding roasts, especially game birds. The word is derived from the Old High German bacho, meaning "buttock", "ham" or "side of bacon".
Arena
The Arena browser predated Netscape Navigator and Microsoft's Internet Explorer and featured a number innovations which were later used in other commercial products. It was the first browser to support background images, tables, text flow around images, and inline mathematical expressions.


| 007:169 Khan | : |
Then after them succeeded an (evil) generation, which inherited the Book, but they chose (for themselves) the goods of this low life (evil pleasures of this world) saying (as an excuse): "(Everything) will be forgiven to us." And if (again) the offer of the like (evil pleasures of this world) came their way, they would (again) seize them (would commit those sins). Was not the covenant of the Book taken from them that they would not say about Allah anything but the truth? And they have studied what is in it (the Book). And the home of the Hereafter is better for those who are Al-Muttaqun (the pious - see V.2:2). Do not you then understand? |
| 007:169 Maulana | : |
Then after them came an evil posterity who inherited the Book, taking the trail goods of this low life and saying: It will be forgiven us. And if the like good came to them, they would take it (too). Was not a promise taken from them in the Book that they would not speak anything about Allah but the truth? And they study what is in it. And the abode of the Hereafter is better for those who keep their duty. Do you not then understand? |
| 007:169 Pickthal | : |
And a generation hath succeeded them who inherited the scriptures. They grasp the goods of this low life (as the price of evil-doing) and say: It will be forgiven us. And if there came to them (again) the offer of the like, they would accept it (and would sin again). Hath not the covenant of the Scripture been taken on their behalf that they should not speak aught concerning Allah save the truth? And they have studied that which is therein. And the abode of the Hereafter is better, for those who ward off (evil). Have ye then no sense? |
| 007:169 Rashad | : |
Subsequent to them, He substituted new generations who inherited the scripture. But they opted for the worldly life instead, saying, "We will be forgiven." But then they continued to opt for the materials of this world. Did they not make a covenant to uphold the scripture, and not to say about GOD except the truth? Did they not study the scripture? Certainly, the abode of the Hereafter is far better for those who maintain righteousness. Do you not understand? |
| 007:169 Sarwar | : |
Their descendants who inherited the Book gained (by bribery only) worthless things from the worldly life saying, "We shall be forgiven (for what we have done). They would have even doubled such gains if they could have received more. Did they not make a covenant (with God) in the Book not to speak any thing other than the Truth about God and to study its contents well? The life hereafter is much better for the pious ones. Will you not then think? |
| 007:169 Shakir | : |
Then there came after them an evil posterity who inherited the Book, taking only the frail good of this low life and saying: It will be forgiven us. And if the like good came to them, they would take it (too). Was not a promise taken from them in the Book that they would not speak anything about Allah but the truth, and they have read what is in it; and the abode of the hereafter is better for those who guard (against evil). Do you not then understand? |
| 007:169 Sherali | : |
Then there came after them an evil generation who inherited the Book. They take the paltry goods of this low world and say, 'It will be forgiven us.' But if there came to them similar goods again, they would take them. Was not the covenant of the Book taken from them, that they would not say of ALLAH anything but the truth? And they have studied what is therein. And the abode of the Hereafter is better for those who are righteous. Will you not then understand. |
| 007:169 Yusufali | : |
After them succeeded an (evil) generation: They inherited the Book, but they chose (for themselves) the vanities of this world, saying (for excuse): "(Everything) will be forgiven us." (Even so), if similar vanities came their way, they would (again) seize them. Was not the covenant of the Book taken from them, that they would not ascribe to Allah anything but the truth? and they study what is in the Book. But best for the righteous is the home in the Hereafter. Will ye not understand? |
Concepts/Themes Covered: العلوم والفنون > الحث على نشر العلم و عدم كتمانه Science and Art> Urging to Spread Knowledge and not to Conceal it
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Shawn’s AppWeek post inspired me to write one too. AppWeek is our chance
to be creators for a little while and it was a lot of fun. I didn’t set out to
build something nearly as ambitious as “Super Avatar Sample Smashup EXTREME! –
‘Capture the Cat’ edition”, but I did get to take a swing at a game I’ve wanted
to build for a while: Rock’em Sock’em Avatars Avatar Boxing. Avatars, being
a new feature in this release, were an unwritten requirement for all of the
AppWeek games. Between SASSECTCE, my game, and the many others, Avatars were
chasing cats, beating each other up, play futuristic sports, falling off
buildings, dancing in a cloud of gems, being launched from canons to save the
world, and much more. All this excitement was almost too much for a bunch of
exhausted engineers, but that’s what the beer was for during the game
unveilings.
 You’ll notice that the avatars have been hitting the gym. That’s because their arms were too short to reach each other! I added a little extra bulk because I was laughing too hard not to. I directly bound the game pad triggers to the shoulder and elbow joints and rigged up the chase camera sample to inspect my work. There wasn’t much game play yet, but it was already fun. That’s always a good sign.
IMAGES MISSING :–(
Even with just one week, I decided to invest some time into debugging visualizations. That turned out to be a really great idea.
IMAGE MISSING :–(
Then, I added some collision spheres for the heads, hands, and upper bodies. This was a hacky, trial and error process. Thankfully, C# compiles quickly.
IMAGES MISSING :–(
At this point, I spent an entire day working on the physics. I wanted the avatars to bounce/wobble when they got hit, so I rigged up some complex spring systems. Things were starting to work, but I’m generally pretty bad at this sort of thing and my simulation routinely exploded. The avatars arms went shooting off into space and I was getting pretty frustrated. No screen shots of that chaos because I am embarrassed.
With half a day to go, I added the obligatory damage bars and some rudimentary hand-to-head collision detection.
IMAGE MISSING :–(
I was feeling pretty good about the game, despite my physics failures, it was pretty fun anyway. I wondered down the hall to chat with Jace, who had just added sound effects to his game. His game was hilarious before, but the sound effects were priceless. I ejected the sound effect CD out of his machine, yoinked it, and took off running. An hour later (and 10 minutes after the deadline), my game had some sweet punch and miss sounds. I also made the avatars’ heads pop up when their damage bar was full, accompanied by an awesome zip-tie sound.
IMAGE MISSING :–(
At our team happy hour, I’d like to think Avatar Boxing was a fan favorite. I certainly had fun making it! I hope everyone enjoys Avatar support in the new XNA Game Studio.
Imported Comments
Danny Tuppeny
I really wish you guys were releasing these games – they sound so funny and it would be great to see how you did some of the stuff with Avatars.
Brandon Bloom
As Shawn said: “We did an AppWeek shortly before shipping Game Studio 1.0, which produced minigames by Dean and Minjie, plus a bunch of stuff that was too unfinished or too much of an IP violation to release.”
Believe me, the code for my game isn’t remotely useful :–) Hacks upon kludges upon hacks galore. It would be a significant chunk of work to turn it into something educational. Even if it was interesting, it is technically not mine to release. It would be a conflict of interest to publish it on Xbox LIVE Indie Games, since I created it during the course of my job.
Since our games are only being seen by the team, many developers use copyrighted assets in the interest of time. Fair use allows us to show them at our happy hour, but someone would certainly come knocking if we released them. It is very expensive to clean that up because now you need to involve artists and rework the code for the new art (AppWeek games aren’t robust, art changes are breaking).
Everyone would love to share, but it isn’t universally practical. Luckily, several cool Avatar-centric samples were inspired by app week, so we will have something to share. I’ll also see about recording some videos of the IP-safe games…
Danny Tuppeny
No worries, it makes sense. I’m sure we’ll see more Avatar samples soon that aren’t hacked together we can learn from :-D
Kyle
This looks like it could be turned into a real fun game. It’s too bad that we can’t buff our Avatars up like this =(
Brandon Bloom
Yeah, sadly it appears that scaling individual body parts is against the rules (which were unwritten when I did this project). I believe the motivation is for accommodating future avatar accessories which might look awful with unknown joint transforms. Don’t quote me on that :–)


{% extends "base.html" %} {% load url from future %} {% block title %}SynergyCloud Login{% endblock %} {% block content %}
Your username and/or password are incorrect, or you are not an active user in the system.


About OpenLaws.gr
My name is Konstantinos Plessas and I am a postgraduate student following the Computer Science and Technology Master’s Degree at the Department of Computer Engineering and Informatics, University of Patras, Greece.
OpenLaws.gr is a project I started while working for my Master thesis, entitled “Version Control Systems for Automated Management of Legal Documents”, in order to share updates on our research results with the community. My supervisor is Prof. John Garofalakis.
As in most countries, the Greek legislative system publishes laws as documents often containing many references to precedent laws. Modifications to laws are published as text in legislative documents describing the applied changes. During its evolution cycle, a law may get modified several times (sometimes dozens of times), while these modifications may reside in many different scattered documents. As a result, the assembly of all relevant modifications in order to consolidate the current version of a law may prove to be a tedious work when performed manually, requiring an increased cognitive effort.
In the framework of this thesis, we are working on the application of natural language processing techniques for the automatic consolidation of Greek law documents and their publishing through version control systems.
We intend to publish Greek law texts on Github, along with our software’s source code, in an effort to open Greek legislation to citizens!


{% extends "bootstrap/base.html" %} {% block title %}Flasky{% endblock %} {% block head %} {{ super() }} {% endblock %}
back to the home page
view your user profile
access your user account


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
WP-1841-2016 (PADA MANS VIKRETA SANGH INDORE THROUGH MOHD. NASIR QURESHI Vs THE STATE OF MADHYA PRADESH) 24-04-2017 Shri Vinay Saraf, counsel for the petitioner in W.P.No.1841/2016. Shri Abdul Khalid Khan, counsel for petitioners in W.P.No.6975/2016. Shri Aniket Naik, counsel for the respondent/Indore Municipal
Corporation.
This order shall dispose of W.P.No.1841/2016 and W.P.No.6975/2016 wherein the petitioners have sought directions to the Indore Municipal Corporation to establish modern slaughter house within the time to be prescribed by this Court.
Petitioners have pointed out that in terms of Section 66(1)(m) of M.P.Municipal Corporation Act, it is the responsibility of the Municipal Corporation for construction and maintenance of public market and slaughter houses and the regulation of all markets and slaughter houses. Therefore, Municipal Corporation has to construct and maintain a slaughter house, so that meat in the hygienic conditions can be provided to the citizens within the area of Indore Municipal Corporation. On the other hand, learned counsel for the Indore Municipal Corporation points out that the Corporation has taken measures for construction of modern slaughter house, but has not been successful, as per the detailed facts mentioned in the counter affidavit filed in W.P.No.10353/2013 (Alok Bhatnagar vs. State of M.P. and others) which writ petition has been decided vide separate order today.
After hearing the learned counsel for the parties, we dispose of the present writ petition with the following directions:-
(i) The Municipal Corporation to take immediate steps for the establishment of modern slaughter house after taking consent under the Water(Prevention and Control of Pollution) Act, 1974, the Air (Prevention and Control of Pollution) Act, 1981 and other applicable laws, if any.
(ii) Meantime, the petitioners or any other persons may set up a slaughter house after taking consent under Water (Prevention and Control of Pollution) Act, 1974, Air (Prevention and Control of Pollution) Act, 1981 and other applicable laws, if any. The slaughtering of animals can be permitted in the said slaughter house, but not without the consent under the Water (Prevention and Control of Pollution) Act, 1974, Air (Prevention and Control of Pollution) Act, 1981 and other applicable laws. With the said directions and liberty, writ petition stands disposed of.
C.C.as per rules.
(THE CHIEF JUSTICE) (ALOK VERMA) JUDGE JUDGE


Jennifer Aniston gives Matthew McConaughey Instagram advice
by Mariah HaasJennifer Aniston, who famously joined Instagram last month, had a few words of advice for another social media newbie, actor Matthew McConaughey.
“Just try to have fun with it... Just don't overthink it," the 50-year-old actress told Extra on Thursday.
Since signing up for the platform on Oct. 15, Aniston garnered 18.9 million followers and even broke Instagram's and Guinness' world record for reaching 1 million followers in five hours.
JENNIFER ANISTON USES A DIFFERENT PHONE FOR INSTAGRAM: 'I WON'T LET IT BE ADDICTIVE'
Her first post -- a selfie with all of her former "Friends" costars -- earned more than 15 million likes.
Meanwhile, McConaughey joined Instagram earlier this week, and also marked his 50th birthday. He had more than 1.5 million followers as of Friday night.
For his first post, the "Dallas Buyers Club" star shared a video in which he opens up about joining social media. It received more than 2 million views.
JENNIFER ANISTON POSTS FIRST #TBT ON INSTAGRAM
CLICK HERE TO GET THE FOX NEWS APP
When it was suggested that Aniston inspired McConaughey to join Instagram, the "Murder Mystery" star responded: “Did I inspire Matthew? I have now achieved some very incredible things, people."


Why All Knots are Actually Useless
(...if you have a fourth dimension)
Sometimes, thinking in four dimensions leads to some surprising results. One cool fact about four dimensional space is that in four dimensions, you can undo every knot. It doesn't matter how complicated you tie a knot - just by moving pieces around you can always turn it back into a smooth piece of string, without cutting or breaking the string.
How? Let's find out.
But before we start thinking about knots in four dimensions, I want to tell you how mathematicians think about knots. Knot theory is an entire branch of mathematics which studies, well, knots.
 Can you undo all the tangles, or is there a knot that makes untangling it impossible?
How do we describe knots?
How many different knots are there?
If you have two knots, is one a tangled version of the other, or are they different?
If I asked you to think of a knot, you'd probably think of this, called the "overhand knot". Can you untangle this knot?
Turns out, undoing this knot is easy: just move the loop over the edge of the string and it comes apart easily.
If the string's ends are just random points in space, then you can untie any knot this way with enough effort.
Take two knots. Earlier, we asked the question "are they the same knot?" Now we have one answer: if you untangle both knots, they always become the same thing: a straight piece of string.
...but that's not helpful, or interesting. So mathematicians study different, more interesting, types of knots.
Let's define knots like this: a knot is a closed loop of string, with both ends attached. If we join the ends of our overhand knot, we get a new type of knot, called a "trefoil knot".
Defining knots as loops is better, because before, every "knot" could be turned into every other "knot" with enough effort. Now that's not true; you can't turn this knot into a circle without cutting it. (If you don't believe me, grab some string and try it yourself!)
OK, now we're ready to talk about undoing knots in four dimensions. Let's start by focusing on this crossing, right here. Can we undo this crossing? It sure would be nice if we could pull one string through the other, like a ghost walking through walls. That would make undoing the rest of the knot much easier.
Unfortunately, our strings aren't ghost strings. Two strings can't be in the same place at once, so if we try to pull the string downwards, it bonks into itself and can't go through.
How can we describe "bonk" mathematically? One way to do it is to choose a coordinate system, and give each point on the string some coordinates.
Now we can see the problem from a new angle: when we pull the top string downwards, we get two points with the same coordinates. That's not allowed, because two things can't be in the same place at once.
But what if we had a fourth dimension?
Before we try to undo this crossing, we can move one part of the string into the fourth dimension.
And now, when we try to slide the strings past each other, the two points have different coordinates, and hence are in different places. Therefore, there's no collision, so there's no problem sliding the strings like this. It may look like they intersect in 3D space, but that's just because of the way we're visualizing the fourth dimension.
Finally, we can move that second strand backwards in the fourth dimension. And now we've won - the two strands are on opposite sides of one another from when we started. Now we know how to move two strings past each other, whenever we want.
To undo the rest of the knot, we just repeat that technique as many times as we want. Once we undo enough crossings, we're done! Without cutting the string, we've unknotted a knot. In fact, this technique works on any knot you can tie in a piece of string. In four dimensions, knots aren't knotted.


| Number of Classes | Line Coverage | Mutation Coverage | Test Strength | Mutation Score |
|---|---|---|---|---|
| 2 | 89% | 54% | 77% | 82%
Killed: 32
Uncertain: 2
|
| Name | Line Coverage | Mutation Coverage | Test Strength | Mutation Score |
|---|---|---|---|---|
| InlineCssTranslator.java | 91% |
57% |
77% |
94%
Killed: 15
Uncertain: 1
|
| InlineImageTranslator.java | 87% |
53% |
76% |
74%
Killed: 17
Uncertain: 1
|


Math Master Statistics
Your game statistics
Global statistics
Best win percentage
| # | Player | Win Ratio |
|---|
Who played the most
| # | Player | Games played |
|---|
Who is the fastest
| # | Player | Average answer time |
|---|
| # | Player | Win Ratio |
|---|
| # | Player | Games played |
|---|
| # | Player | Average answer time |
|---|


Last updated: 2019-03-01
Checks: 6 0
Knit directory: project/
This reproducible R Markdown analysis was created with workflowr (version 1.2.0). The Report tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.
Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.
Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.
The command set.seed(20181125)
was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.
Great job! Recording the operating system, R version, and package versions is critical for reproducibility.
Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.
Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility. The version displayed above was the version of the Git repository at the time these results were generated.
Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish
or wflow_git_commit
). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:
Ignored files:
Ignored: .Rhistory
Ignored: .Rproj.user/
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
These are the previous versions of the R Markdown and HTML files. If you’ve configured a remote Git repository (see ?wflow_git_remote
), click on the hyperlinks in the table below to view them.
| File | Version | Author | Date | Message |
|---|---|---|---|---|
| Rmd | f3c3d16 | Tim Trice | 2019-03-01 | Add report |
| Rmd | ea2b7df | Tim Trice | 2018-11-25 | Start workflowr project. |
On August 26, 2017, Hurricane Harvey made landfall along the central Texas gulf coast as a category four hurricane. The storm weakened but remained stationary in southeast Texas spawing dozens of tornadoes and dropping over 30 inches of rain in many locations with isolated amounts of over 50 inches.
Harvey was the first major hurricane to strike the Texas coast since Hurricane Rita in 2005; the first category four hurricane to make landfall since Hurricane Bret in 1999.
In early September, National Weather Service (NWS) offices in Brownsville, Corpus Christi, San Antonio, and Houston, Texas, and Lake Charles, Louisiana released preliminary data reports on Hurricane Harvey. The following data has been extracted from those reports.
Advisories were initiated on Potential Tropical Cyclone Nine on the morning of August 17. Shortly thereafter, the cyclone was upgraded to a tropical storm but would not see additional strengthening as it moved into the eastern Caribbean Sea.
By the evening of August 19, Harvey had degenerated from a cyclone to a tropical wave (no closed center of circulation) and the National Hurricane Center discontinued issuing advisories on the system.
The full track of Hurricane Harvey is shown in Figure 1.
Coordinate system already present. Adding new coordinate system, which will replace the existing one.
By midday August 23, the remnants of Harvey had regenerated back into a tropical depression while in the southern Gulf of Mexico. The NHC began reissuing advisories on the system.
Figure 2 shows the track of Hurricane Harvey after regeneration in the Gulf of Mexico. Once the cyclone redeveloped, it quickly began strengthening as it moved north and north-northwest towards the central Texas coastline. Figure 3 and Figure 5 show how the pressure and wind of Harvey changed rapidly as the storm intensified.
Coordinate system already present. Adding new coordinate system, which will replace the existing one.
Barometric pressure is the lowest atmospheric pressure either estimated or recorded in the center of a tropical cyclone. Generally speaking, the lower the barometric pressure, the stronger the cyclone.
Figure 3 shows the barometric pressure observations over 6-hour intervals during the life cycle of the cyclone. The gap from August 21 to August 23 is due to the system temporarily losing cyclone characteristics in the Caribbean Sea.
Figure 4 shows the lowest pressure observations as reported by the respective local NWS offices. As expected, the lowest values were recorded just north of Corpus Christi, Texas near the Rockport area where some locations reported pressure in the 940’s (mb). Table 1 shows the five lowest pressure observations recorded.
Coordinate system already present. Adding new coordinate system, which will replace the existing one.
The minimum pressure observed was 941.8mb at RCPT in Rockport, TX. Official landfall occurred at 06:00 UTC on the morning of August 26, 2017; 2 1/2 hours after the RCPT observation. This is approximately the same reported minimum central pressure listed by the National Hurricane Center (NHC) in Public Advisory 23A which suggests pressure values may have been lower as the storm made passed over the station.
| ID | Station | Lat | Lon | Pres | PresDT | PresRmks |
|---|---|---|---|---|---|---|
| RCPT2 | ROCKPORT | 28.02 | -97.05 | 941.8 | 2017-08-26 03:36:00 | I |
| CPNT2 | COPANO BAY | 28.11 | -97.02 | 944.0 | 2017-08-26 04:00:00 | I |
| RTAT2 | PORT ARANSAS | 27.84 | -97.07 | 959.3 | 2017-08-26 02:24:00 | NA |
| PTAT2 | PORT ARANSAS CMAN | 27.82 | -97.05 | 961.7 | 2017-08-26 02:00:00 | NA |
| ANPT2 | PORT ARANSAS SENTINEL | 27.83 | -97.04 | 964.0 | 2017-08-26 02:02:00 | I |
The “I” in PresRmks
denotes the observation is incomplete.
Many stations lost equipment during the height of the storm, leading to many incomplete data observations (at least 70).
Figure 5 shows the quick increase in wind during Harvey’s track over the Gulf of Mexico. It strengthened from a tropical depression to a category four hurricane in 60 hours; not record-breaking but quite impressive nonetheless.
Figure 6 shows the plot of all maximum wind values during Hurricane Harvey. As with barometric pressure, the highest wind values were recorded where Harvey made landfall but drop significantly at nearby locations.
Coordinate system already present. Adding new coordinate system, which will replace the existing one.
The highest wind value was recorded at ANPT2 several hours prior to the center of the hurricane moving ashore. NWS CRP (Corpus Christi) reports,
ANPT2 SENTINEL STOPPED REPORTING AND MAY NOT HAVE RECORDED MAXIMUM EVENT VALUES
| ID | Station | Lat | Lon | Wind | WindDT |
|---|---|---|---|---|---|
| ANPT2 | PORT ARANSAS SENTINEL | 27.83 | -97.04 | 96 | 2017-08-26 01:42:00 |
| NSFDOW | 28.08 | -97.04 | 90 | NA | |
| CPNT2 | COPANO BAY | 28.11 | -97.02 | 89 | 2017-08-26 03:06:00 |
| FCMP | 28.08 | -97.05 | 88 | NA | |
| PTAT2 | PORT ARANSAS CMAN | 27.82 | -97.05 | 83 | 2017-08-26 02:20:00 |
In addition to ANPT2, RCPT2 (Rockport), MAXT2, RTAT2, MIST2 and MIRT2 all failed prior to the peak of the hurricane. XWLD failed when the pier housing the sensor was swept away.
| ID | Station | Lat | Lon | Wind | WindDir | WindDT | WindRmks |
|---|---|---|---|---|---|---|---|
| ANPT2 | PORT ARANSAS SENTINEL | 27.83 | -97.04 | 96 | 264 | 2017-08-26 01:42:00 | I |
| MAXT2 | COPANO EAST | 28.13 | -97.03 | 73 | 20 | 2017-08-26 02:00:00 | I |
| RCPT2 | ROCKPORT | 28.02 | -97.05 | 59 | 17 | 2017-08-26 01:54:00 | I |
| MIST2 | ARANSAS SHIP CHANNEL | 27.83 | -97.05 | 57 | 20 | 2017-08-25 22:00:00 | I |
| RTAT2 | PORT ARANSAS | 27.84 | -97.07 | 50 | 354 | 2017-08-25 22:42:00 | I |
| XWLD | WEATHERFLOW WILDCAT PORTLAND | 27.86 | -97.32 | 48 | 298 | 2017-08-26 03:55:00 | I |
| MIRT2 | MATAGORDA ISLAND RAWS | 28.12 | -96.80 | 44 | 59 | 2017-08-25 23:12:00 | I |
The story of Hurricane Harvey will always center around the significant flooding that took place as the hurricane weakened and stalled in southeast Texas. Harvey dropped record rainfall amounts across broad areas of southeast Texas turning highways into rivers and neighborhoods into lakes.
Coordinate system already present. Adding new coordinate system, which will replace the existing one.
Though the news focus of the flooding was centered in the Houston area (Harris County), the largest rainfall amounts were recorded in Chambers, Brazoria, Liberty and Jefferson counties.
| Location | County | Station | Rain | Lat | Lon |
|---|---|---|---|---|---|
| FRIENDSWOOD | GALVESTON | 56.00 | 29.50 | -95.20 | |
| 3 ENE SANTA FE | GALVESTON | 54.77 | 29.39 | -95.05 | |
| 2 W FRIENDSWOOD | GALVESTON | 54.00 | 29.51 | -95.22 | |
| 3 S LEAGUE CITY | GALVESTON | 52.87 | 29.43 | -95.11 | |
| 2 NW WEBSTER | HARRIS | 52.30 | 29.55 | -95.14 |
The text reports contain a Section D for Inland Flooding. Unfortunately at this time only the San Antonion/Austin NWS office have provided more info; generally river flooding and low water crossings.
There are 24 tornado observations for Hurricane Harvey. However, some observations may be for the same tornado. For example, there are two observations for a tornado in Fort Bend county with the same Lat
, Lat
and Date
value; only Details
is different.
Coordinate system already present. Adding new coordinate system, which will replace the existing one.
Table 5 shows all tornado observations during the event from each of the NWS offices. Table Six identifies wind range values for Scale
.
| Location | CountY | Day | Time | Scale | Lat | Lon | Date | Details |
|---|---|---|---|---|---|---|---|---|
| 4 NNE SEADRIFT | CALHOUN | 25 | 2114 | EF0 | 28.43 | -96.67 | 2017-08-25 21:14:00 | FACEBOOK PHOTOS AND VIDEO SHOWED A BRIEF TORNADO TOUCHED DOWN ON GATES ROAD NEAR SEADRIFT. A SHED AND CARPORT WERE DESTROYED AND A FEW TREES WERE BLOWN DOWN. RATED EF0. |
| 9 NE GALVESTON | GALVESTON | 25 | 1923 | EF0 | 29.22 | -94.89 | 2017-08-25 19:23:00 | PUBLIC REPORTS A FUNNEL CLOUD AND A METAL FENCE DAMAGED NEAR FERRY RD IN GALVESTON |
| 2 W LIVERPOOL | BRAZORIA | 26 | 0428 | EF0 | 29.29 | -95.31 | 2017-08-26 04:28:00 | AN EF-0 TORNADO TOOK DOWN 4 POWER POLES ON HIGHWAY 35 ALONG WITH SEVERAL TREES NEAR THE GULF COAST SPEEDWAY. THE TORNADO THEN TRAVELED ACROSS GENERALLY OPEN FIELD BEFORE DAMAGING SOME BARNS AND OUTBUILDINGS AS WELL AS TREES ON COUNTY ROAD 511. |
| Scale | WindMPH | WindKTS |
|---|---|---|
| EF0 | 65-85 | 55-74 |
| EF1 | 86-110 | 75-96 |
| EF2 | 111-135 | 97-117 |
| EF3 | 136-165 | 118-143 |
| EF4 | 166-200 | 144-174 |
| EF5 | >200 | >175 |
devtools::session_info()
Warning in system("timedatectl", intern = TRUE): running command
'timedatectl' had status 1
─ Session info ──────────────────────────────────────────────────────────
setting value
version R version 3.5.2 (2018-12-20)
os Ubuntu 16.04.5 LTS
system x86_64, linux-gnu
ui X11
language (EN)
collate C.UTF-8
ctype C.UTF-8
tz Etc/UTC
date 2019-03-01
─ Packages ──────────────────────────────────────────────────────────────
package * version date lib
assertthat 0.2.0 2017-04-11 [1]
backports 1.1.3 2018-12-14 [1]
broom 0.5.1 2018-12-05 [1]
callr 3.1.1 2018-12-21 [1]
cellranger 1.1.0 2016-07-27 [1]
cli 1.0.1 2018-09-25 [1]
colorspace 1.4-0 2019-01-13 [1]
crayon 1.3.4 2017-09-16 [1]
desc 1.2.0 2018-05-01 [1]
devtools 2.0.1 2018-10-26 [1]
digest 0.6.18 2018-10-10 [1]
dplyr * <IP_ADDRESS> 2019-02-15 [1]
evaluate 0.13 2019-02-12 [1]
forcats * 0.4.0 2019-02-17 [1]
fs 1.2.6 2018-08-23 [1]
generics 0.0.2 2018-11-29 [1]
ggplot2 * 3.1.0 2018-10-25 [1]
ggrepel * 0.8.0 2018-05-09 [1]
git2r 0.24.0 2019-01-07 [1]
glue 1.3.0 2018-07-17 [1]
gtable 0.2.0 2016-02-26 [1]
haven 2.1.0 2019-02-19 [1]
here 0.1 2017-05-28 [1]
highr 0.7 2018-06-09 [1]
hms 0.4.2 2018-03-10 [1]
htmltools 0.3.6 2017-04-28 [1]
httr 1.4.0 2018-12-11 [1]
jsonlite 1.6 2018-12-07 [1]
knitr * 1.21 2018-12-10 [1]
labeling 0.3 2014-08-23 [1]
lattice 0.20-38 2018-11-04 [2]
lazyeval 0.2.1 2017-10-29 [1]
lubridate * 1.7.4 2018-04-11 [1]
magrittr 1.5 2014-11-22 [1]
memoise 1.1.0 2017-04-21 [1]
modelr 0.1.4 2019-02-18 [1]
munsell 0.5.0 2018-06-12 [1]
nlme 3.1-137 2018-04-07 [2]
pillar 1.3.1 2018-12-15 [1]
pkgbuild 1.0.2 2018-10-16 [1]
pkgconfig 2.0.2 2018-08-16 [1]
pkgload 1.0.2 2018-10-29 [1]
plyr 1.8.4 2016-06-08 [1]
prettyunits 1.0.2 2015-07-13 [1]
processx 3.2.1 2018-12-05 [1]
ps 1.3.0 2018-12-21 [1]
purrr * 0.3.0 2019-01-27 [1]
R6 2.4.0 2019-02-14 [1]
RColorBrewer 1.1-2 2014-12-07 [1]
Rcpp 1.0.0 2018-11-07 [1]
readr * 1.3.1 2018-12-21 [1]
readxl 1.3.0 2019-02-15 [1]
remotes 2.0.2 2018-10-30 [1]
rlang 0.3.1 2019-01-08 [1]
rmarkdown 1.11 2018-12-08 [1]
rnaturalearthdata 0.1.0 2017-02-21 [1]
rprojroot 1.3-2 2018-01-03 [1]
rrricanes * 0.2.0-6.9001 2019-02-27 [1]
rrricanesdata * 0.1.7 2019-02-27 [1]
rstudioapi 0.9.0 2019-01-09 [1]
rvest 0.3.2 2016-06-17 [1]
scales 1.0.0 2018-08-09 [1]
sessioninfo 1.1.1 2018-11-05 [1]
sp 1.3-1 2018-06-05 [1]
stringi 1.3.1 2019-02-13 [1]
stringr * 1.4.0 2019-02-10 [1]
tibble * 2.0.1 2019-01-12 [1]
tidyr * 0.8.2 2018-10-28 [1]
tidyselect 0.2.5 2018-10-11 [1]
tidyverse * 1.2.1 2017-11-14 [1]
usethis 1.4.0 2018-08-14 [1]
whisker 0.3-2 2013-04-28 [1]
withr 2.1.2 2018-03-15 [1]
workflowr 1.2.0 2019-02-14 [1]
xfun 0.5 2019-02-20 [1]
xml2 1.2.0 2018-01-24 [1]
yaml 2.2.0 2018-07-25 [1]
source
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
CRAN (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
CRAN (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
CRAN (R 3.5.0)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
Github (ropensci/rrricanes@449bee6)
local
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
RSPM (R 3.5.2)
[1] /home/rstudio-user/R/x86_64-pc-linux-gnu-library/3.5
[2] /opt/R/3.5.2/lib/R/library


PRACTICAL MAGIC (1998)
A film review by Steve Kong Edited by Cher Johnson Copyright 1998 Steve Kong
It's hard not to like Practical Magic. It has a talented cast, wonderful music, and beautiful cinematography. The one thing that Practical Magic doesn't have is a cohesive script to make all the good elements stick together.
Practical Magic is like a witch's brew. To conjure up this brew, throw in one part drama, one part whodunnit, two parts romance, and a sprinkle of supernatural. This is the largest failure of Practical Magic. Once the movie settles into a comfortable genre it jumps out and goes into another. This is jarring for the audience and never gives the audience anything to hang on to.
Sally (Sandra Bullock) and Gillian (Nicole Kidman) Owens are sisters. They are from a long line of witches. The curse of the Owens women is that each man they fall in love with will eventually die before his time. Sally and Gillian are outcasts in their small town because their witch aunts (Dianne Wiest and Stockard Channing) raised them both as witches.
There are a few subplots in Practical Magic. One talks about Sally's children and husband.  Then there is a story of a lost soul, one of a romance between a sister and Hallet, and finally one about the town's rejection of the Owens family. With all these subplots, the story is quite unfocused. Though, it didn't have to be if the script were smarter and the director sharper.
Aidan Quinn's was the one good performance that stood out. His lonely but strong cop is the best of the characters in Practical Magic. His performance is also the best. His character gets stuck in a sticky situation when he falls in love with a witch that is probably a murderer.
Sandra Bullock does nothing new with her part. She continues to try to regain what popularity she lost with her flop, Speed 2. Bullock brings back her girl-next-door act making Practical Magic feel somewhat like a witch's version of Hope Floats.
Nicole Kidman is good as the bad sister. Kidman just looks different in Practical Magic. Her performance is slinky and snake-like. It was a pure joy to watch Kidman onscreen.
The script by Robin Swicord and Akiva (Lost in Space and Batman and Robin) Goldsman and Adam Brooks is an absolute mess. The script is based on Alice Hoffman's book by the same name. Practical Magic just drips of Goldsman's bad writing. In most cases, books are better than the movies made from them. And in most cases screenwriters are smart enough to cut out some subplots from books because of time restraints. Swicord, Goldsman, and Brooks are not this smart. It feels as if they tried to squeeze every subplot from the book into a two-hour script.
Practical Magic is nothing magical. Nor is it anything new. There is no real target audience for Practical Magic because it drifts from one genre to another. But it is somewhat entertaining. If you really want to see Practical Magic, wait until it comes out on video.
--- Steve Kong<EMAIL_ADDRESS>recipe for a hard boiled review: one egg, two cups water, a pot, a helluva attitude, and a guy who loves the cinema. i'm your hard boiled movie guide.
http://boiledmovies.sbay.com/
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


1. Andrusenko E.N. Elastic bending of a drill string in an elliptical well with geometric imperfections
3
2. Bakulich O.O., Samoylenko E.S. Dynamics of pollution level of urbanized territories
12
3. Baranov G.L., Komisarenko О.С., Donets V.V., Prokhorenko O.M. Technology modeling integration processes to increase the level road safety vehicles
20
4. Bereznyatskiy V.V. Development the organization of car repairs with a linguistic approach
31
5. Budnichenko V.B., Gordienko M.M. Methods for evaluating the effectiveness of recuperative braking for elementary simplified motion cycle
37
6. Vorkut T.А., Bilonoh O.E., Petunin A.V., Tretynychenko Y.O., Kharuta V.S., Chechet A.M. Project Portfolios Optimisation of Collective Strategies Implementation in Supply Chain Networks
44
7. Gavrilenko O.V., Shumeiko O.A., Nabokov E.M. Review of approaches to optimizing data exchange in a multiserver infrastructure network using encryption, compression and accelerated routing
63
8. Halak I.I., Kriukovska L.I. Managing reverse flows in the closed-loop supply chain
73
9. Hodovaniuk P.D., Khavruk V.O., Chub A.M. Determination of the objective function of the optimization of losses of the service station related to the type of organization of acceptance and diagnostics of vehicles
83
10. Gololobov Yu.P., Borovoy N.A. An influence of the x-ray irradiation on a crystals β-TlInS2 politipes conductivity
101
11. Gulyayev V.I., Shlyun N.V. Optimal design of boreholes trajectories
109
12. Gutarevych Y.F., Kukhtyk N.O., Kukhtyk V.V. Reduction of the car engine warming time when using an additional heat source
117
13. Danchuk V.D., Sadovenko V.S. Scientific and methodological principles of system analytics in higher education management
129
14. Dmytrichenko N.F., Savchuk A.N., Hlukhonets A.A. Features of lubricane layer creating in a local contact
135
15. Dmitriev M.M., Gameliak I.P., Ostroverkhyi O.G., Dmytrychenko A.M. Use of production waste in road construction of Ukraine
143
16. Ishchenko R.M. Analysis of the level of main components of subject competence from general educational course of physics of technical specialties students
157
17. Lanovoy A.T., Kyselov V.B., Vyhovska I.A. Latest assessment of traffic conditions on roads «Triad of road»
166
18. Lebid I.H., Tkachenko V.A., Khrutba Y.S. Implementation of the communication process efficiency model in the project «Fostering the Knowledge Triangle in Belarus, Ukraine and Moldova»
178
19. Lomotko D.V., Krasnoshtan O.M. Innovative approach to increase of operational speed and productivity
188
20. Malysh M.I., Kulish M.R. Fiber optic information transmission systems
203
21. Melnik N.I., Mustуatsa O.N. Transformation of the nature of the conductivity of highly conductive chalcogenide melts towards their electrolytic capacity
208
22. Melnichenko O., Sorochynska О., Kulbovsky I. Implementation of international standards for labor safety and risk management and ways to improve them in transport enterprises
217
23. Musiyko V.D., Koval A.B., Lazaruk Y.V. Problems, directions, and horizons in the creation and modernization of specialized continuously operating earthmoving machines
223
24. Nagrebelna L.P, Korchevskaya A.A. Improve road safety with automated traffic control
233
25. Onyschenko A.M., Fedorenkо O.V., Ianchuk L. Ensuring the durability of asphalt pavement on a rigid basis of roads
242
26. Poliakov V.M., Yaschenko D.N., Sharai S.M. To a question at the choice of the rolling stock in the BRT system
257
27. Posviatenko E.K., Posviatenko N.I., Rybak I.P. Increasing the operating properties of the machine parts by the surface reliefs
270
28. Prokudin H.S., Khobotnia T.H., Tretynychenko Yu.O., Kopiak N.V. Application of Mixed Strategies when Managing International Freight Transportation
283
29. Ruban D.P., Kraynyk L.V., Gryshchuk A.K. Conditions and measures to increase the durability of public transport bus bodies during operation
293
30. Sarayev A.V., Khrulev A.E. Failure mechanisms caused by motor oil degradation and their study as part of expertise of technical condition of gasoline car engines
302
31. Sakhno V.P., Korpach A.O., Korpach О.А. Metrobus route selection in Kyiv
315
32. Sokulskyi O.E., Hilevska K.Y., Vasiltsova N.M. Modeling of route functioning of the passenger transport system taking into account the quality criterias of passenger services and quarantine restrictions
326
33. Tarandushka L.A., Kostian N.L. The influence of functional element «Auto service enterprise» parameters of the auto service system on the quality of execution technological processes
336
34. Khabutdinov R.A. Scientific and practical problem of motor transport technology and the system concept of techno-innovative management on the motor transport
345
35. Khrutba V.A., Ziuziun V.I., Lysak R.S. Formation of a System of Criteria for Assessing the Environmental Impact in Construction and Reconstruction Projects of Critical Infrastructure
358
36. Cherviakova T.I., Cherviakova V.V. Digital transformation of enterprises on the basis of cloud services
368
37. Shevchuk L.V. Аnalysis of the mechanism of reinforcement of the road structure with a unloading section
382


I'm the founder and CEO of Banfox. Banfox is a Fintech startup based in São Paulo offering an online platform that enables small companies to get their open invoices directly financed. Helped dozen of businesses since 2015 funding more than $15 million.
Prior to first founding Banfox, I started as an intern at Goldman Sachs and became a sales trader of proprietary algorithms for Electronic Trading desk from 2011 to 2014. In 2015, I moved as a consultant leader in turnaround and restructuring strategies performing one of the most successful cases in Brazil Guia Mais.
I earned a Bachelors degree in Economics from Insper in 2012, I'm a full stack developer alumni from Le Wagon and also alumni from 42 Silicon Valley piscine of March 2018.
Banfox is a fintech based in São Paulo, Brazil. We provide invoice financing solutions to small companies that need to fund their open and unpaid invoices. Our approach to credit rating is far from traditional. We managed to create an automated decision model using not only financial information but also alternative data. We financed over $15M by Sep-2019 with historical low historical default rates.
Developed turnaround strategies using Judicial Recovery law (~chapter 11);
Best-success-case: Guia Mais;
Other-success-cases: Adelco, Comeri, Granport.
- Main activities: support to clients using Goldman’s facilities; prospecting of new clients; assistance in developing new projects for trading (together with IT team); and working with operations team to improve electronic trading systems.
- Coverage markets: Brazil and U.S. cash equities and futures.
- Clients: Brazilian corporate and FI clients trading local markets and US clients trading Brazilian products.
- Side activities: mentoring of new interns; assistance with client on boarding process; and contingency plan leader.
Chess athlete and volunteer at Social Action Group.
Ruby, Ruby on Rails, SQL, React, HTML, CSS, Javascript
Computer Science
Apart from being a web developer, I enjoy most of my time being outdoors. In the winter, I am an avid skier and novice ice climber. During the warmer months here in Colorado, I enjoy mountain biking, free climbing, and kayaking.
When forced indoors, I follow a number of sci-fi and fantasy genre movies and television shows, I am an aspiring chef, and I spend a large amount of my free time exploring the latest technology advancements in the front-end web development world.


As an aspiring expert UX UI designer and entry-level software developer, I have gained experienced in evaluating user requirements and working with software engineers and management teams to create modern designs and frameworks, while contributing to the development of these designs.
Worked for 4 years as the Customer Support Lead. Assist in mock-up creation for various applications, as well as build WordPress sites when needed. Designed full mobile applications in detail, while contibuting ideas to the functionality of the application. Helped with minor bug fixes and application testing.
Provided an extraodinary guest experience by educating guests on company products by speaking authentically about products based on personal experiences. Contributed to the company culture and guest experience with my knowledge and passion for health and fitness.
Apart from being a software developer and aspiring expert UX UI designer, I enjoy anything fitness related. I love running, biking and doing CrossFit. I have run one half marathon and hope to run a full marathon in the near future!
In my down time, I enjoy spending time with family and friends and watching any kind of documentary or show.


| < Day Day Up > |
Fibonacci heaps were introduced by Fredman and Tarjan [98]. Their paper also describes the application of Fibonacci heaps to the problems of single-source shortest paths, all-pairs shortest paths, weighted bipartite matching, and the minimum-spanning-tree problem.
Subsequently, Driscoll, Gabow, Shrairman, and Tarjan [81] developed "relaxed heaps" as an alternative to Fibonacci heaps. There are two varieties of relaxed heaps. One gives the same amortized time bounds as Fibonacci heaps. The other allows DECREASE-KEY to run in O(1) worst-case (not amortized) time and EXTRACT-MIN and DELETE to run in O(lg n) worst-case time. Relaxed heaps also have some advantages over Fibonacci heaps in parallel algorithms.
See also the chapter notes for Chapter 6 for other data structures that support fast DECREASE-KEY operations when the sequence of values returned by EXTRACT-MIN calls are monotonically increasing over time and the data are integers in a specific range.
| < Day Day Up > |


I like technology.
I really like communities around technology.
I study Computer Science, and talk to people about it.
I can hold a tune.
I enjoy Tango.
I want to talk to you.
I like technology.
I really like communities around technology.
I study Computer Science, and talk to people about it.
I can hold a tune.
I enjoy Tango.
I want to talk to you.


General
Communication at Mahout happens primarily online via mailing lists. We have a user as well as a dev list for discussion. In addition there is a commit list so we are able to monitor what happens on the wiki and in svn.
Mailing lists
Mahout User List
This list is for users of Mahout to ask questions, share knowledge, and discuss issues. Do send mail to this list with usage and configuration questions and problems. Also, please send questions to this list to verify your problem before filing issues in JIRA.
Mahout Developer List
This is the list where participating developers of the Mahout project meet and discuss issues concerning Mahout internals, code changes/additions, etc. Do not send mail to this list with usage questions or configuration questions and problems.
Discussion list:
- Subscribe – Do not send mail to this list with usage questions or configuration questions and problems.
- Unsubscribe
Commit notifications:
IRC
Mahout’s IRC channel is #mahout. It is a logged channel. Please keep in mind that it is for discussion purposes only and that (pseudo)decisions should be brought back to the dev@ mailing list or JIRA and other people who are not on IRC should be given time to respond before any work is committed.
Archives
Official Apache Archive
- http://mail-archives.apache.org/mod_mbox/mahout-dev/
- http://mail-archives.apache.org/mod_mbox/mahout-user/
External Archives
Please note the inclusion of a link to an archive does not imply an endorsement of that company by any of the committers of Mahout the Lucene PMC or the Apache Software Foundation. Each archive owner is solely responsible for the contents and availability of their archive.


NEWS.md
facet_graph()
with data from both tbl_df and data.frameoverride.aes
to guide_edge_direction()
geom_edge_point()
(#23)x
and y
argument is present, the auto
layout will choose the manual
layout. (#91)data.frame
or an object coercible to a tbl_graph
. In the latter case the node table will be used as layout and the graph will be attached. This allows direct use of the particles package as a layout engine as a side effect. (#88)Use tidygraph as the central data format. The results of this are several:
"even"
layout for dendrograms are no more, but can be obtained by using the "dendrogram"
layout with height = NULL
tree_apply
has been deprecated in favour of using tidygraph::map_bfs_*
geom_edge_elbow
is no longer only available to dendrogram objectstidygraph algorithms can now be used directly within ggraph functions. E.g. you can have sort.by = node_rank_hclust()
in your specification of a linear layout, or aes(colour = group_infomap())
in node geoms
This big change fixes #21, #72, #79, and #81. A vignette has been added to describe the integration in more detail


Video tutorial on how to play retro video games with a Raspberry Pi
by Mark FrauenfelderIn this video from Pi My Life Up you'll learn how to install and use software called RetroPie on a Raspberry Pi.
By the way, I co-wrote a book with Ryan Bates called Raspberry Pi Retro Gaming: Build Consoles and Arcade Cabinets to Play Your Favorite Classic Games, which has instructions for building a tabletop arcade machine.


What Does Moderating a Forum Involve?
It is quite likely that a new forum will need to be stirred up quite regularly in its early days if it is to germinate properly. To do this you should reply to as many messages as possible, and also start up as many conversations as you can manage yourself.
One lesson you quickly learn is that "beginners" are worth their weight in gold.  Far from it! It is often these basic questions that gets a discussion going, and can often end up in greater enlightenment for those who thought their understanding was enough already.
It helps to be quite opinionated, as this encourages participants with opposing views to join in a discussion against you, however you should at all times try to be constructive in your comments. Attacking the favourite pastime or product of another participant does not always encourage discussion. It may only encourage that person to go elsewhere.
In the same vein, you should watch out for offensive or abusive message left by other participants. Remove these messages immediately, and without comment. Making a comment (except perhaps, privately, by mail) simply draws attention to the offensive nature of the message. Abusive messages can often result from raging discussion, in which case the participant responsible is not particularly useful. On occasion however a forum such as CIX attracts what can only be described as a "nut", who will leave offensive messages at random in whatever forum comes to view.
If people can upload files to your forum, it is important that you check and add them to the file list as promptly as possible; there are few things on CIX more frustrating that to know that a file you want has been uploaded but to be unable to get at it.


On November 18, we hosted a bake sale in front of our cafeteria to support a growing FLL team from George Jackson Academy. Everyone from each of our three teams contributed to the bake sale by either bringing in food to sell or manning the desks. We had a large variety of food at the bake sale including crème brûlée and various cookies. We raised a lot of money during it and was able to allow George Jackson to have a great starting point in their robotics team. In fact, we had exceeded our goals and were able to get more tools for them than expected.
We helped George Jackson Academy, an elementary/middle school that has been trying to set up a robotics team, but lacks the resources. On their first visit to Horace Mann we gave them a tour around our building and showed them our robots and building processes. They also came to look at the different robots that teams had made for the FLL competition. The kids visit our school monthly and we provide them with the tools they need to help their team thrive. They were all passionate in robotics, and we wish them a bright future in their coming robotics endeavours!
Every Monday, during their free periods, members from our team will visit the Horace Mann kindergarten in the lower division and help the robotics teacher teach the kids some programming. This is very important because it is giving the kindergartners a very early exposure to programming, which is an extremely useful skill in this age of computers and robotics. Even though they are using very simple tools, it is much more than any of us have gotten when we were that young.
On February 4th, our school hosted an FLL qualifier in our cafeteria and in our classrooms. Due to the increase of interest in FLL, FIRST hosted 4 amazing competitions to accommodate. All of the Horace Mann Teams – FTC 9681, FTC 7890, FTC 4326 and FRC 5806 –volunteered for various jobs in the competition, including judging, queueing, refereeing, scorekeeping, and running the event in general.


Source
PixelBox
by Kirill Edelman for
three.js
loopAnim("run")
playAnim("stand")
loopAnim("greet", 2)
stopAnim
clear