datasketch¶
datasketch gives you probabilistic data structures that can process and search vary large amount of data super fast, with little loss of accuracy.
This package contains the following data sketches:
| Data Sketch | Usage |
|---|---|
| MinHash | estimate Jaccard similarity and cardinality |
| b-Bit MinHash | estimate Jaccard similarity |
| Weighted MinHash | estimate weighted Jaccard similarity |
| HyperLogLog | estimate cardinality |
| HyperLogLog++ | estimate cardinality |
The following indexes for data sketches are provided to support sub-linear query time:
| Index | For Data Sketch | Supported Query Type |
|---|---|---|
| MinHash LSH | MinHash, Weighted MinHash | Radius (Threshold) |
| MinHash LSH Forest | MinHash, Weighted MinHash | Top-K |
datasketch must be used with Python 2.7 or above and NumPy 1.11 or above. Scipy is optional, but with it the LSH initialization can be much faster.
Install¶
To install datasketch using pip
:
pip install datasketch -U
This will also install NumPy as dependency.
MinHash¶
MinHash lets you estimate the Jaccard similarity (resemblance) between **sets** of arbitrary sizes in linear time using a small and fixed memory space. It can also be used to compute Jaccard similarity between data streams. MinHash is introduced by Andrei Z. Broder in this paper
from datasketch import MinHash
data1 = ['minhash', 'is', 'a', 'probabilistic', 'data', 'structure', 'for',
'estimating', 'the', 'similarity', 'between', 'datasets']
data2 = ['minhash', 'is', 'a', 'probability', 'data', 'structure', 'for',
'estimating', 'the', 'similarity', 'between', 'documents']
m1, m2 = MinHash(), MinHash()
for d in data1:
m1.update(d.encode('utf8'))
for d in data2:
m2.update(d.encode('utf8'))
print("Estimated Jaccard for data1 and data2 is", m1.jaccard(m2))
s1 = set(data1)
s2 = set(data2)
actual_jaccard = float(len(s1.intersection(s2)))/float(len(s1.union(s2)))
print("Actual Jaccard for data1 and data2 is", actual_jaccard)
You can adjust the accuracy by customizing the number of permutation functions used in MinHash.
# This will give better accuracy than the default setting (128).
m = MinHash(num_perm=256)
The trade-off for better accuracy is slower speed and higher memory usage. Because using more permutation functions means 1) more CPU instructions for every data value hashed and 2) more hash values to be stored. The speed and memory usage of MinHash are both linearly proportional to the number of permutation functions used.
You can union two MinHash object using the merge
function. This
makes MinHash useful in parallel MapReduce style data analysis.
# The makes m1 the union of m2 and the original m1.
m1.merge(m2)
MinHash can be used for estimating the number of distinct elements, or cardinality. The analysis is presented in Cohen 1994.
# Returns the estimation of the cardinality of
# all data values seen so far.
m.count()
MinHash LSH¶
Suppose you have a very large collection of sets. Giving a query, which is also a set, you want to find sets in your collection that have Jaccard similarities above certain threshold, and you want to do it with many other queries. To do this efficiently, you can create a MinHash for every set, and when a query comes, you compute the Jaccard similarities between the query MinHash and all the MinHash of your collection, and return the sets that satisfy your threshold.
The said approach is still an O(n) algorithm, meaning the query cost increases linearly with respect to the number of sets. A popular alternative is to use Locality Sensitive Hashing (LSH) index. LSH can be used with MinHash to achieve sub-linear query cost - that is a huge improvement. The details of the algorithm can be found in Chapter 3, Mining of Massive Datasets,
This package includes the classic version of MinHash LSH. It is important to note that the query does not give you the exact result, due to the use of MinHash and LSH. There will be false positives - sets that do not satisfy your threshold but returned, and false negatives - qualifying sets that are not returned. However, the property of LSH assures that sets with higher Jaccard similarities always have higher probabilities to get returned than sets with lower similarities. Moreover, LSH can be optimized so that there can be a “jump” in probability right at the threshold, making the qualifying sets much more likely to get returned than the rest.
from datasketch import MinHash, MinHashLSH
data1 = ['minhash', 'is', 'a', 'probabilistic', 'data', 'structure', 'for',
'estimating', 'the', 'similarity', 'between', 'datasets']
data2 = ['minhash', 'is', 'a', 'probability', 'data', 'structure', 'for',
'estimating', 'the', 'similarity', 'between', 'documents']
data3 = ['minhash', 'is', 'probability', 'data', 'structure', 'for',
'estimating', 'the', 'similarity', 'between', 'documents']
# Create MinHash objects
m1 = MinHash(num_perm=128)
m2 = MinHash(num_perm=128)
m3 = MinHash(num_perm=128)
for d in data1:
m1.update(d.encode('utf8'))
for d in data2:
m2.update(d.encode('utf8'))
for d in data3:
m3.update(d.encode('utf8'))
# Create an MinHashLSH index optimized for Jaccard threshold 0.5,
# that accepts MinHash objects with 128 permutations functions
lsh = MinHashLSH(threshold=0.5, num_perm=128)
# Insert m2 and m3 into the index
lsh.insert("m2", m2)
lsh.insert("m3", m3)
# Check for membership using the key
print("m2" in lsh)
print("m3" in lsh)
# Using m1 as the query, retrieve the keys of the qualifying datasets
result = lsh.query(m1)
print("Candidates with Jaccard similarity > 0.5", result)
# Remove key from lsh
lsh.remove("m2")
The Jaccard similarity threshold must be set at initialization, and
cannot be changed. So does the num_perm
parameter. Similar to
MinHash, higher num_perm
can improve the accuracy of MinHashLSH
,
but increase query cost, since more processing is required as the
MinHash gets bigger. Unlike MinHash, the benefit of higher num_perm
seems to be limited for MinHashLSH
- it looks like when num_perm
becomes greater than the dataset cardinality, both precision and recall
starts to decrease. I experimented with the 20 News Group
Dataset,
which has an average cardinality of 193 (3-shingles). The average
recall, average precision, and 90 percentile query time vs. num_perm
are plotted below. See the benchmark
directory for the experiment
and plotting code.
There are other optional parameters that be used to tune the index:
# Use defaults: threshold=0.5, num_perm=128, weights=(0.5, 0.5)
lsh = MinHashLSH()
# `weights` controls the relative importance between minizing false positive
# and minizing false negative when building the `MinHashLSH`.
# `weights` must sum to 1.0, and the format is
# (false positive weight, false negative weight).
# For example, if minizing false negative (or maintaining high recall) is more
# important, assign more weight toward false negative: weights=(0.4, 0.6).
# Note: try to live with a small difference between weights (i.e. < 0.5).
lsh = MinHashLSH(weights=(0.4, 0.6))
MinHash LSH Forest¶
MinHash LSH is useful for radius (or threshold) queries. However, top-k queries are often more useful in some cases. LSH Forest by Bawa et al. is a general LSH data structure that makes top-k query possible for many different types of LSH indexes, which include MinHash LSH. I implemented the MinHash LSH Forest, which takes a MinHash data sketch of the query set, and returns the top-k matching sets that have the highest Jaccard similarities with the query set.
The interface of MinHashLSHForest
is similar to MinHashLSH
,
however, it is very important to call index
method after adding the
keys. Without calling the index
method, the keys won’t be
searchable.
from datasketch import MinHashLSHForest, MinHash
data1 = ['minhash', 'is', 'a', 'probabilistic', 'data', 'structure', 'for',
'estimating', 'the', 'similarity', 'between', 'datasets']
data2 = ['minhash', 'is', 'a', 'probability', 'data', 'structure', 'for',
'estimating', 'the', 'similarity', 'between', 'documents']
data3 = ['minhash', 'is', 'probability', 'data', 'structure', 'for',
'estimating', 'the', 'similarity', 'between', 'documents']
# Create MinHash objects
m1 = MinHash(num_perm=128)
m2 = MinHash(num_perm=128)
m3 = MinHash(num_perm=128)
for d in data1:
m1.update(d.encode('utf8'))
for d in data2:
m2.update(d.encode('utf8'))
for d in data3:
m3.update(d.encode('utf8'))
# Create a MinHash LSH Forest with the same num_perm parameter
forest = MinHashLSHForest(num_perm=128)
# Add m2 and m3 into the index
forest.add("m2", m2)
forest.add("m3", m3)
# IMPORTANT: must call index() otherwise the keys won't be searchable
forest.index()
# Check for membership using the key
print("m2" in forest)
print("m3" in forest)
# Using m1 as the query, retrieve top 2 keys that have the higest Jaccard
result = forest.query(m1, 2)
print("Top 2 candidates", result)
The plot below shows the mean average precision
(MAP) of linear
scan with MinHash and MinHash LSH Forest. Synthetic data was used. See
benchmark/lshforest_benchmark.py
for details.
(Optional) If you have read the LSH Forest
paper, and
understand the data structure, you may want to customize another
parameter for MinHashLSHForest
– l
, the number of prefix trees
(or “LSH Trees” as in the paper) in the LSH Forest index. Different from
the paper, this implementation fixes the number of LSH functions, in
this case num_perm
, and makes the maximum depth of every prefix tree
dependent on num_perm
and l
:
# The maximum depth of a prefix tree depends on num_perm and l
k = int(num_perm / l)
This way the interface of the MinHashLSHForest
is in coherence with
the interface of MinHash
.
# There is another optional parameter l (default l=8).
forest = MinHashLSHForest(num_perm=250, l=10)
Weighted MinHash¶
MinHash can be used to compress unweighted set or binary vector, and estimate the unweighted Jaccard similarity. It is possible to modify MinHash for weighted Jaccard on **multisets** by expanding each item (or dimension) by its weight (usually its count in the multiset). However this approach does not support real number weights, and doing so can be very expensive if the weights are very large. Weighted MinHash is created by Sergey Ioffe, and its performance does not depend on the weights - as long as the universe of all possible items (or dimension for vectors) is known. This makes it unsuitable for stream processing, when the knowledge of unseen items cannot be assumed.
In this library, WeightedMinHash
objects can only be created from
vectors using WeightedMinHashGenerator
, which takes the dimension as
a required parameter.
# Using default sample_size 256 and seed 1
wmg = WeightedMinHashGenerator(1000)
You can specify the number of samples (similar to number of permutation functions in MinHash) and the random seed.
wmg = WeightedMinHashGenerator(1000, sample_size=512, seed=12)
Here is a usage example.
from datasketch import WeightedMinHashGenerator
v1 = [1, 3, 4, 5, 6, 7, 8, 9, 10, 4]
v2 = [2, 4, 3, 8, 4, 7, 10, 9, 0, 0]
# WeightedMinHashGenerator requires dimension as the first argument
wmg = WeightedMinHashGenerator(len(v1))
wm1 = wmg.minhash(v1) # wm1 is of the type WeightedMinHash
wm2 = wmg.minhash(v2)
print("Estimated Jaccard is", wm1.jaccard(wm2))
It is possible to make WeightedMinHash
have a update
interface
similar to MinHash
and use it for stream data processing. However,
this makes the cost of update
increase linearly with respect to the
weight. Thus, update
is not implemented for WeightedMinHash
in
this library.
Weighted MinHash as similar accuracy and performance profiles as MinHash. As you increase the number of samples, you get better accuracy, at the expense of slower speed.
The MinHashLSH
index can also be used to index WeightedMinHash
.
import numpy as np
from datasketch import WeightedMinHashGenerator
from datasketch import MinHashLSH
v1 = np.random.uniform(1, 10, 10)
v2 = np.random.uniform(1, 10, 10)
v3 = np.random.uniform(1, 10, 10)
mg = WeightedMinHashGenerator(10, 5)
m1 = mg.minhash(v1)
m2 = mg.minhash(v2)
m3 = mg.minhash(v3)
# Create weighted MinHash LSH index
lsh = MinHashLSH(threshold=0.1, sample_size=5)
lsh.insert("m2", m2)
lsh.insert("m3", m3)
result = lsh.query(m1)
print("Approximate neighbours with weighted Jaccard similarity > 0.1", result)
b-Bit MinHash¶
b-Bit MinHash is created by Ping Li and Arnd Christian König. It is a compression of MinHash - it stores only the lowest b-bits of each minimum hashed values in the MinHash, allowing one to trade accuracy for less storage cost.
When the actual Jaccard similarity, or resemblance, is large (>= 0.5), b-Bit MinHash’s estimation for Jaccard has very small loss of accuracy comparing to the original MinHash. On the other hand, when the actual Jaccard is small, b-Bit MinHash gives bad estimation for Jaccard, and it tends to over-estimate.
To create a b-Bit MinHash object from an existing MinHash object:
from datasketch import bBitMinHash
# minhash is an existing MinHash object.
bm = bBitMinHash(minhash)
To estimate Jaccard similarity using two b-Bit MinHash objects:
# Estimate Jaccard given bm1 and bm2, both must have the same
# value for parameter b.
bm1.jaccard(bm2)
The default value for parameter b is 1. Estimation accuracy can be improved by keeping more bits - increasing the value for parameter b.
# Using higher value for b can improve accuracy, at the expense of
# using more storage space.
bm = bBitMinHash(minhash, b=4)
Note: for this implementation, using different values for the parameter b won’t make a difference in the in-memory size of b-Bit MinHash, as the underlying storage is a NumPy integer array. However, the size of a serialized b-Bit MinHash is determined by the parameter b (and of course the number of permutation functions in the original MinHash).
Because b-Bit MinHash only retains the lowest b-bits of the minimum
hashed values in the original MinHash, it is not mergable. Thus it has
no merge
function.
HyperLogLog¶
HyperLogLog is capable of estimating the cardinality (the number of distinct values) of dataset in a single pass, using a small and fixed memory space. HyperLogLog is first introduced in this paper by Philippe Flajolet, Éric Fusy, Olivier Gandouet and Frédéric Meunier.
from datasketch import HyperLogLog
data1 = ['hyperloglog', 'is', 'a', 'probabilistic', 'data', 'structure', 'for',
'estimating', 'the', 'cardinality', 'of', 'dataset', 'dataset', 'a']
h = HyperLogLog()
for d in data1:
h.update(d.encode('utf8'))
print("Estimated cardinality is", h.count())
s1 = set(data1)
print("Actual cardinality is", len(s1))
As in MinHash, you can also control the accuracy of HyperLogLog by changing the parameter p.
# This will give better accuracy than the default setting (8).
h = HyperLogLog(p=12)
Interestingly, there is no speed penalty for using higher p value. However the memory usage is exponential to the p value.
As in MinHash, you can also merge two HyperLogLogs to create a union HyperLogLog.
h1 = HyperLogLog()
h2 = HyperLogLog()
h1.update('test'.encode('utf8'))
# The makes h1 the union of h2 and the original h1.
h1.merge(h2)
# This will return the cardinality of the union
h1.count()
HyperLogLog++¶
HyperLogLog++ is an enhanced version of HyperLogLog by Google with the following changes: * Use 64-bit hash values instead of the 32-bit used by HyperLogLog * A more stable bias correction scheme based on experiments on many datasets * Sparse representation (not implemented here)
HyperLogLog++ object shares the same interface as HyperLogLog. So you can use all the HyperLogLog functions in HyperLogLog++.
from datasketch import HyperLogLogPlusPlus
# Initialize an HyperLogLog++ object.
hpp = HyperLogLogPlusPlus()
# Everything else is the same as HyperLogLog
Serialization¶
All data sketches supports efficient serialization using Python’s
pickle
module. For example:
import pickle
m1 = MinHash()
# Serialize the MinHash objects to bytes
bytes = pickle.dumps(m1)
# Reconstruct the serialized MinHash object
m2 = pickle.loads(bytes)
# m1 and m2 should be equal
print(m1 == m2)


Hunt eligible to play for Browns after 8-game NFL suspension
by TOM WITHERSBEREA, Ohio (AP) - Kareem Hunt can play again after serving his eight-game NFL suspension.
The Cleveland Browns running back, who fell from one of the NFL’s rising young stars to a violent offender, will play this week against the Buffalo Bills.
Hunt has been practicing for two weeks. He was officially reinstated to the roster this week and is eligible to be on the field Sunday. It will be his first game since being banned for two physical off-field altercations.
The Browns signed him in February, two months after Hunt was cut by the Kansas City Chiefs.
The 24-year-old Cleveland native is scheduled to speak to the media Thursday for the first time since the season began.
Hunt led the league in rushing as a rookie in 2017.
More AP NFL: https://apnews.com/NFL and https://twitter.com/AP_NFL
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Tiling edge-coloured graphs with few monochromatic bounded-degree graphs.
J. Corsten and W. Mendonça.
Proceedings of EUROCOMB'19.


Here you can send a short reply to the person who wrote this chalk. Replies are anonymous but not ultra-secure, so don't share your Swiss bank account number.


Gildas Le Louarn
Disruption in technology: Invention.
Continuity in technology: Improvement.
specialist of payment, security, payment card
specialist of mobile, ecosystem, user experience
innovative projects
http://glelouarn.github.io/paymobil
<EMAIL_ADDRESS>- @torlus
<EMAIL_ADDRESS>- @glelouarn


--- layout: archive title: Zulip Chat Archive permalink: /stream/218272-FoMM-/-Lean-Together-2020/topic/photos.html ---
Here is a link to a Dropbox folder with five conference photographs taken by our photographer:
https://www.dropbox.com/sh/9pn6ubjcwp93usf/AABEtiHalfy0B_wDZTBlqmHga?dl=0
There is one in which we all Lean together.
I will eventually put one or two smaller, compressed versions on the "participants" page of the web page, and link to the folder.
Last updated: Apr 24 2020 at 19:02 UTC


A state machine is an abstract machine that can be in one of a finite number of states. The machine is in only one state at a time; the state it is in at any given time is called the current state.
While using the database, individual records should be in allowed states. The database or application stores rules for the states. There are many ways to design the database schema to achieve this.
[Read More]
Animal Farm Review
Animal Farm’s satire makes the novella interesting to read. Written after Bolshevik revolution and no reason why lot go over gaga. Confining to Bolshevik revolution is tunnel view. The core of the novella resembles with lot of today’s politics and ancient kingdom. For a moment forget about the bolshevik revolution. Rebellion outbursts, the leader comes to power and slowly vanquishes non believers in ideas or voices.
[Read More]
Asyncio and uvloop
Today, I read an article about uvloop. I am aware of libuv and its behind nodejs. What caught me was “In fact, it is at least 2x faster than any other Python asynchronous framework.”. So I decided to give it a try with aiohttp.
The test program was simple websocket code which receives a text message, doubles the content and echoes back. Here is the complete snippet with uvloop.
I ran naive benchmark using thor and results favoured uvloop.
[Read More]
Permissions in Django Admin
Admin dashboard is one of the Django’s useful feature. Admin dashboard allows super users to create, read, update, delete database objects. The super users have full control over the data. Staff user can login into admin dashboard but can’t access data. In few cases, staff users needs restricted access . Super user can access all data from various in built and third party apps. Here is a screenshot of Super user admin interface after login.
[Read More]
Testing Django Views
Majority of web frameworks promote MVC/MTV software pattern. The way web applications are designed today aren’t same as 5-6 years back. Back then it was server side templates, HTML, API’s weren’t widespread and mobile apps were becoming popular. Rise of mobile and Single Page Application shifted majority of web development towards API centric development. Testing API is super simple with data in and data out, but testing a django view in classic web application is difficult since HTML is returned.
[Read More]
Simple Json Response basic test between Flask and Django
Django and Flask are two well known Python web frameworks. There are lot of benchmarks claim Flask is 2xfaster for simple JSON Response, one such is Techempower. After lookinginto the source, it struckme Django can do better!
I will compare Flask and Django for simple json response. The machine used is Macbook pro, Intel Core i5-4258U CPU @ 2.40GHz,with 8 GB Memory on OS X 10.10.3. gunicorn==19.3.0 will be used for serving WSGI application.
[Read More]
django print exception to console
Django has very good debug toolbar for debugging SQL. While working with Single Page Application and API exceptions can’t be displayed in browser. Exception is sent to front end. What if the exception can be printed to console ?
Django middleware gets called for every request/response. The small helper class looks like
Add the filename and class name to MIDDLEWARE_CLASSES in settings file like
This is how exceptions looks
[Read More]
Check for custom objects in Python set.
Python set data structure is commonly used for removing duplicate entriesand make lookup faster (O(1)). Any hashable object can be stored in set.For example, list and dict can’t be stored.
User defined objects can be stored. Here is how it looks.
class Person(object): def __init__(self, name, age): self.name, self.age = name, age In [25]: s = set() In [26]: s.add(Person('kracekumar', 25)) In [27]: s Out[27]: set([<__main__.Person at 0x1033c5e10>]) In [29]: Person('kracekumar', 25) in s Out[29]: False Implement equality check Even though Person object with same value is present but check failed.
[Read More]
class as decorator
Decorator Decorator is a callable which can modify the function, method, class on runtime. Most ofthe decorators uses closure but it is possible to use class.
Closure import functools def cache(f): storage = {} @functools.wraps(f) def inner(n): value = storage.get(n) if value: print("Returning value from cache") return value value = f(n) storage[n] = value return value return inner @cache def factorial(n): if n <= 1: return 1 return n * factorial(n - 1) >>>factorial(20)<PHONE_NUMBER>176640000 >>>factorial(20) Returning from cache<PHONE_NUMBER>176640000 cache is a function which takes function as an argument and returns a function.
[Read More]
Fluent interface in python
Fluent Interface is an implementation of API which improves readability.
Example Poem('The Road Not Taken').indent(4).suffix('Robert Frost').
Fluent Interface is similar to method chaining. I was wondering how to implement this in Python.Returning self during method call seemed good idea .
class Poem(object): def __init__(self, content): self.content = content def indent(self, spaces=4): self.content = " " * spaces + self.content return self def suffix(self, content): self.content += " - {}".format(content) return self def __str__(self): return self.
[Read More]


Bash Color Codes. More...
Go to the source code of this file.
Defines | |
| #define | BASH_RESET "\x1b[0m" |
| #define | BASH_FORE_BLACK "\x1b[30m" |
| #define | BASH_FORE_RED "\x1b[31m" |
| #define | BASH_FORE_GREEN "\x1b[32m" |
| #define | BASH_FORE_YELLOW "\x1b[33m" |
| #define | BASH_FORE_BLUE "\x1b[34m" |
| #define | BASH_FORE_MAGENTA "\x1b[35m" |
| #define | BASH_FORE_CYAN "\x1b[36m" |
| #define | BASH_FORE_WHITE "\x1b[37m" |
| #define | BASH_BACK_BLACK "\x1b[40m" |
| #define | BASH_BACK_RED "\x1b[41m" |
| #define | BASH_BACK_GREEN "\x1b[42m" |
| #define | BASH_BACK_YELLOW "\x1b[43m" |
| #define | BASH_BACK_BLUE "\x1b[44m" |
| #define | BASH_BACK_MAGENTA "\x1b[45m" |
| #define | BASH_BACK_CYAN "\x1b[46m" |
| #define | BASH_BACK_WHITE "\x1b[47m" |
| #define | BASH_ATTR_BRIGHT "\x1b[1m" |
| #define | BASH_ATTR_DIM "\x1b[2m" |
| #define | BASH_ATTR_UNDERSCORE "\x1b[4m" |
| #define | BASH_ATTR_REVERSE "\x1b[7m" |
| #define | BASH_ATTR_HIDDEN "\x1b[8m" |
Bash Color Codes.
| #define BASH_ATTR_BRIGHT "\x1b[1m" |
Set the text to be brightly colored
| #define BASH_ATTR_DIM "\x1b[2m" |
Set the text to be dimmly colored
| #define BASH_ATTR_HIDDEN "\x1b[8m" |
Set the text to not be visible
| #define BASH_ATTR_REVERSE "\x1b[7m" |
Invert the foreground and background colors
| #define BASH_ATTR_UNDERSCORE "\x1b[4m" |
Set the text to have an underscore
| #define BASH_BACK_BLACK "\x1b[40m" |
Set the background color to black
| #define BASH_BACK_BLUE "\x1b[44m" |
Set the background color to blue
| #define BASH_BACK_CYAN "\x1b[46m" |
Set the background color to cyan
| #define BASH_BACK_GREEN "\x1b[42m" |
Set the background color to green
| #define BASH_BACK_MAGENTA "\x1b[45m" |
Set the background color to magenta
| #define BASH_BACK_RED "\x1b[41m" |
Set the background color to red
| #define BASH_BACK_WHITE "\x1b[47m" |
Set the background color to white
| #define BASH_BACK_YELLOW "\x1b[43m" |
Set the background color to yellow
| #define BASH_FORE_BLACK "\x1b[30m" |
Set the foreground color to black
| #define BASH_FORE_BLUE "\x1b[34m" |
Set the foreground color to blue
| #define BASH_FORE_CYAN "\x1b[36m" |
Set the foreground color to CYAN
| #define BASH_FORE_GREEN "\x1b[32m" |
Set the foreground color to green
| #define BASH_FORE_MAGENTA "\x1b[35m" |
Set the foreground color to magenta
| #define BASH_FORE_RED "\x1b[31m" |
Set the foreground color to red
| #define BASH_FORE_WHITE "\x1b[37m" |
Set the foreground color to white
| #define BASH_FORE_YELLOW "\x1b[33m" |
Set the foreground color to yellow
| #define BASH_RESET "\x1b[0m" |
Reset the terminal to default colors


{% extends 'catalog/base.html' %} {% load static %} {% block title %}About the Polygenic Score Catalog{% endblock %} {% block content %}
This page contains information regarding the PGS Catalog Project.
A polygenic score (PGS) aggregates the effects of many genetic variants into a single number which predicts genetic predisposition for a phenotype. PGS are typically composed of hundreds-to-millions of genetic variants (usually SNPs) which are combined using a weighted sum of allele dosages multiplied by their corresponding effect sizes, as estimated from a relevant genome-wide association study (GWAS).
PGS nomenclature is heterogeneous: they can also be referred to as genetic scores or genomic scores, and as polygenic risk scores (PRS) or genomic risk scores (GRS) if they predict a discrete phenotype, such as a disease.
The PGS Catalog is an open database of published polygenic scores (PGS). Each PGS in the Catalog is consistently annotated with relevant metadata; including scoring files (variants, effect alleles/weights), annotations of how the PGS was developed and applied, and evaluations of their predictive performance. See the PGS Catalog Data Description page for a complete description of the metadata captured for PGS, Samples, Performance Metrics, Traits, and Publications.
The PGS Catalog development is led by Samuel Lambert under the supervision of Michael Inouye (University of Cambridge & Baker Institute) and Jackie MacArthur (NHGRI-EBI GWAS Catalog).
The Catalog is under active development, and we continue to add new features and curate new data. If you use the Catalog in your research we ask that you cite our recent preprint:
Samuel A. Lambert, Laurent Gil, Simon Jupp, Scott C. Ritchie, Yu Xu, Annalisa Buniello, Gad Abraham, Michael Chapman, Helen Parkinson, John Danesh, Jacqueline A.L. MacArthur, and Michael Inouye.
The Polygenic Score Catalog: an open database for reproducibility and systematic evaluation
Preprint at medRxivdoi: 10.1101/2<IP_ADDRESS>08217 (2020).
Individual PGS obtained from the database should also be cited appropriately, and used in accordance with any licensing restrictions set by the authors (see our Terms of Use for more information).
For a publication's data to be included in the PGS Catalog it must contain one of the following:
A complete description of the data captured for each PGS and publication can be found here.
In the pilot PGS Catalog (presented at ASHG 2019) we focused on curating PGS developed after 2010, and included well-studied scores for the following traits: coronary artery disease (CAD), diabetes (types 1 and 2), obesity / body mass index (BMI), breast cancer, prostate cancer and Alzheimer’s disease. The catalog however is not limited to these traits, and since then we have focused on broadening the coverage of traits and scores. Researchers are invited to submit their PGS and evaluations to us by e-mail for curation and inclusion in the PGS Catalog - we plan to provide a streamlined interface to submit these data in the future.
If you have a PGS or publication that meets the Catalog's eligibility requirements we invite you to submit your data by e-mail ( {{ pgs_contact }}). To ensure a speedy curation and inclusion into the catalog it would be helpful if you provide the following information about your study:
You can also report/recommend studies for inclusion in the PGS Catalog using this form: Report missing PGS study. However, please send us the PGS by e-mail if you are the paper’s author and can share the variant-level score information.
To submit a PGS to the catalog, provide feedback, or ask questions please contact the PGS Catalog team at {{ pgs_contact }}.
We wish to acknowledge the help of the following people & teams for their support of the PGS Catalog:
The development of the PGS Catalog is supported by:


three.js webgl - gpu picking of geometry instances
Sorry your graphics card + browser does not support hardware instancing
This demo compares different methods of constructing and rendering many instances of a single geometry.
Materials: #
Objects: #
Drawcalls: #
Construction time: ms


Another C# Refactoring Tool
Here. A VS.NET add-in that provides the following C# refactoring operations:
-Encapsulate Field
-Extract Method
-Inline Temp
-Introduce Explaining Variable
-Move Method new
-Rename Field
-Rename Method
-Rename Property
-Rename Local Variable
-Rename Parameter
-Replace Magic Number with Symbolic Constant
-Replace Temp with Query
It seems to be implemented in Java and then ported to .NET via J# and the web site has the coolest little visitor counter control.


Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum issss has been the industry's standard dummy text ever since the 1500s, when an unknown lorem
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
issss
has been the industry's standard
dummy text ever since the 1500s, when an unknown lorem


Table tennis, also known as ping-pong, is a sport in which two or four players hit a lightweight ball back and forth across a table using small bats. The game takes place on a hard table divided by a net.
Created by:
Natasha Senah
GitHub Username/URL:
NatashaSenah
Level 2 Test for:
Java
Let's play
Rules:
Ping Pong will count to your number from 1 with the following exceptions:


Research and analysis
Research into the health and wellbeing of 14-year-olds living in England.
Ref: ISBN 978-1-78105-561-8 , DFE-RR501 PDF , 1.77MB , 125 pages
Ref: ISBN 978-1-78105-561-8 , DFE-RB501 PDF , 169KB , 7 pages
Ref: ISBN 978-1-78105-532-8 , DFE-RB487 PDF , 361KB , 24 pages
PDF , 132KB , 3 pages
A summary of responses from a sample of young people involved in the second ‘Longitudinal study of young people in England’ ( LSYPE2 ).
The research covers their:
The report on bullying sets out bullying rates in year 10 in 2014 and covers:
The ‘Estimates of bullying’ document shows the difference between the proportion of young people who reported bullying in the first LSYPE study (from 2005) and in LSYPE2 .
Published: 6 July 2016
Updated: 25 July 2016
From: Department for Education


{% load static %}
Mini URL allows to reduce long links from Facebook, YouTube, Twitter, Linked In and top sites on the Internet,
just paste the long URL and click the Shorten URL button.
On the next screen, copy the shortened URL and share it on websites, chat and e-mail.
Your shortened URLs can be used in publications, advertisements, blogs, forums, e-mails,
instant messages, and other locations.


IN PHOTOS: Festive colors, dynamic moves highlight 2019 UAAP cheerdance
Check out what makes the UAAP cheerdance another showstopper this season
by Rappler.comSubscribe
Email Address
Newsletters
- Glenda Gloria's Take this Tuesday
- Huddle by Miriam Grace Go
- The Newsbreak Agenda by Chay Hofileña
- Sometimes, all you need is video by Lilibeth Frondoso


Metadata
Current process tasks
Current process state
Contributions
Issue #
ID
is open
Close
is closed
Re-Open
not watching
Watch
is watched by you
Unwatch
Delete
Show hierarchy
Show hierarchy
Parent
PARENT
No parent
No parent
PARENT
Title
Assignees
Add a contributor...
Add a contributor...
Private
Deadline
Description
Save
New contribution
Contribute


Migrating Your Application To 2.0
There are some key changes in the driver going from 1.X to 2.X that one needs to be aware off before changing your application to using the new 2.X versions. There has been some cleanup of API’s and some deprecations of 1.X features.
Design differences in 2.X
One of the main changes is that the driver has been split into two pieces. There is a new
mongodb-core
that contains the low level MongoDB API’s while mongodb
contains the high level driver. mongodb-core
is targeted to creators of
libraries like Mongoose
and other ODM’s who do not need the
abstractions available in the mongodb
driver. The driver is also as of the
time of writing compatible with the 0.11.x node.js branch including Kerberos support as
well as MongoDB 2.8.
Changes
We will outline where changes have occurred that could break your existing application.
Node.JS versions and Streams
The 2.0 driver drops support for 0.8.x style streams and moves to 0.10.x or higher style
pull based streams making for more reliable and faster streams. Backwards compatibility
is by using the readable-stream
npm package that might cause some slight
behavior changes for the cursor streams.
All dependencies have now been updated to use the nan
package meaning they
will compile and work on 0.11.x or higher.
Grid Object
The grid object has been removed as it’s not widely used and offers very limited GridStore capabilities.
Db Object
The db instance object have had several changes made to it. We’ve removed the following methods.
db.dereference
due to db references being deprecated in the server.db.cursorInfo
removed as it never worked reliably.db.stats
removed as inconsistent.db.collectionNames
removed as it’s just a specialized version of the newlistCollections
helper.db.collectionInfo
removed as it’s not compatible with the new MongoDB 2.8 or higher alternative storage enginers.
Added the following method
db.listCollections
to replace all other collection inquiry method as it will do the correct thing for MongoDB 2.8 and higher as well as provide backwards compatibility for MongoDB 2.6 or lower.
Collection Object
A collection instance has also had several changes made to it. Most importantly we now
return the mongodb-core
result objects directly with all the associated
information returned from the server instead of the current selective information
returned in the 1.4.x version.
We’ve added the following new methods
collection.insertOne
Insert a single document.collection.insertMany
Insert an array of documents.collection.replaceOne
Replace an existing document fully.collection.updateOne
Update a single document.collection.updateMany
Update multiple documents in one go.collection.removeOne
Remove a single document.collection.removeMany
Remove multiple documents in one go.collection.findOneAndUpdate
Use findAndModify to update a document.collection.findOneAndRemove
Use findAndModify to remove a specific document.collection.findOneAndReplace
Use findAndModify to replace a specific document.
The current insert
, update
and remove
methods are
marked for deprecation and will be removed in a future 3.0 driver. These 3 methods now
also return the full mongodb-core
results and have had their third return
value removed to ensure less compatibility problems with orchestration libraries like
async
.
The insert methods are now capping at the maxWriteBatchSize
passed back from
MongoDB on the results from the ismaster
command. For MongoDB 2.4 or lower
this means a max of 1000 documents in each insert batch. Legacy insert mode has been
deprecated in favor of proper emulation of current 2.6 or higher write commands.
Another important change is in how collection.find
works. The idea is to
chain commands instead of passing them into the find
method. It still
supports existing behavior from 1.4 so no code should break but the API documentation
reflects the new preferred way to use the find to execute queries.
GridStore
The GridStore object has had some major changes due to issues discovered by users related
to parallel writing using the previous available w+
append mode. Thus
w+
in 2.0 only allows for changes to the file metadata and does not allow
for appending to a file avoiding the possible data corruption. The hope is to create a
new GridStore spec in the future that allows for proper handling parallel writing to an
existing file but this requires changes for all drivers as well as the server.
MongoClient
MongoClient now only has the class method connect
. Constructing of a new
MongoClient using Server
, ReplSet
or Mongos
has
been removed due to the confusion it caused in duplicating the way one can build a
topology connection using Db
in 1.4. MongoClient.connect
is
the recommended way to connect to a MongoDB topology.


{% extends "base.html" %}
{% set title = _('An Error Occurred') %}
{% block content %}
{{ _('An Error Occurred ☹') }}
{% trans %}Oh, no! It looks like an unexpected error
occurrred. We've already notified the site administrators. Please try again now,
or in a few minutes.{% endtrans %}


Research Question Recap
This paper answered four major questions:
- How does female participation at the Olympics, both overall and in each continent, change over time?
- Is there a home-field advantage at the Olympics?
- What is the medal efficiency for each country and region?
- Which sports have the highest number of participating athletes at the Olympics?
Major Findings
Our visualizations demonstrated that:
-
Both the total number of participating athletes and the percentage of female athletes in the Olympics has been increasing. Female participation started from 0% in Athens 1896 to 45% in Rio 2016.
-
However, this growth in the rate of participation of women varies across continents. The rate in Africa has always been lower than the global average except for during the 1930s. The rate in Asia and South America had also been always lower than the global average but caught up during the 1980s and 2000s, respectively. The rate in Europe, North America and Oceania has always been the same as or higher than the global mean.
-
A country is more likely to have a higher degree of medal share when it hosts the Olympics. In other words, home-field advantage does seem to exist in the Olympics.
-
Among today’s countries and regions, the United States of America has the highest medal efficiency, 0.91. This means that on average, every American athlete almost earned a Bronze medal in the past Olympic Games. Medal efficiency for Russia, China, Pakistan, India, Germany, and Australia is also very high. We also found that medal efficiency had a high correlation with countries’ economic development.
-
Athletics, gymnastics, swimming, shooting and football are among the sports with the highest number of participating athletes. This might be because these sports have greater shares of total medals. It might also because there are many sub-categories within them.
Reflections & Future Work
First, when visualizing changes in female participation, we found that stacked bar charts are effective in showing the comparisons between male and females. Stacked area charts do not provide very accurate percentage change, but it is good if we also want to show how the total number of athletes has been increasing. The seaborn FacetGrid function is useful for visualizing female participation by continent. Reference information set in grey in the background and highlighting the global average helps us make comparisons between continents and with the global average much clearer. Our next step is to do this graph with Altair so as to enable interactivity when we post it online.
In our study into the home-field advantage, we realized that even with jittering, scatter plot is not effective at showing a large number of data points. Beeswarm plot with box plot is good at displaying all the points without overlapping, but its representation of density distribution is not very intuitive and direct. KDE in a small multiple is a much better method for showing the distribution clearly. KDE in this case is especially useful for examining home-field advantage because it shows the level of probability that a country gets a certain share of medals.
Our introduction of “medal efficiency” contributes to the assessment of a country’s efficiency at obtaining Olympic medals. The choropleth we used allows us to show all the countries and regions interactively. However, we acknowledged that it would have been better if it were a cartogram. This might be our next step.
Using word cloud is a very unique way to show the relative size of participation in various sports. The drawback is that some sports have two or more words in their names, and our processing of word clouds might not have been rendering their frequencies very accurately. That is why we see “water”, “art” and “competition” in the word cloud. We will fix this problem in our next step.
We will publish it online as our portfolio later.


{% extends 'layout.html' %} {% block content %}
|
Dear {{ email_content.get('name', '')|title }}, I'm Neelay Jain, Co-founder of My Cute Office. We, at My Cute Office, believe that new businesses should save time and money involved in getting an office and rather invest that in growing their business. We do this by helping companies share spare office spaces with each other. These can be booked quickly on short-term basis.
Over the last 7 months, we received requests for over 6000 desks and facilities while listing 2400 such spaces on our portal.
Benefits of MyCuteOffice.com
|


cat show/hide context
The cat sat on the mat.
dog show/hide context
The dog sat on the mat.
bird show/hide context
The bird sat on the mat.


The Http Facility is a collection of componentized Jetty parts, that allows you to configure Jetty in practically any way you want. It also connects into the Merlin component model, and you can make components that serves HTTP requests.
The components that wishes to serve HTTP requests need to
implement org.apache.avalon.http.HttpRequestHandler
,
which is a stripped down version of Jetty's
org.mortbay.http.HttpHandler, taking the same arguments.
To make life easier for everyone involved, we have assembled a couple of standard Jetty configurations, and these can easily be included in your application with a single <include> in your block file. The configuration details can be overriden by the standard 'targets' mechanism in Merlin, which allows named targets, configuration and parameters, to be assigned to blocks or part of the blocks.
The Facility Parts are basically the components that has been created around the Jetty classes to make this work. Some of these components are also assembled into slightly bigger parts, to be more easily used in complete Assembled Http Facilities.


Roman Nurik
Android Designer at Google
roman.nurik.net
Certainly one of the most convenient ways to stay on top of all the #AndroidDev news coming from Google and the community every week.
Lars Vogel
Eclipse and Android Evangelist
vogella.com
Great Android newsletter, very well researched. Get your weekly Android update now!
Mark Allison
Mobile Innovator, Author of
blog.stylingandroid.com
Android Weekly is a great way to keep up with what's happening in the Android development community.
Smashing Magazine
Online magazine
smashingmagazine.com
Android Weekly: an Android newsletter and a toolbox with useful resources for Android devs/designers.
Chris Banes
Android Developer @ Google
chris.banes.me
What can be better than getting the latest #AndroidDev news delivered straight to your inbox?
Joaquim Vergès
Developer of Falcon
@joenrv
Finally a service I can count on to make sure I keep up with the latest great AndroidDev innovations, without the hassle of searching.
Articles & Tutorials |
|
|
Intro to animations with Jetpack Compose
(proandroiddev.com)
Zsolt Kocsi got inspired by the Kotlin-Pokedex project and its Flutter counterpart, flutter_pokedex, and started experimenting with a Compose-based solution for it. |
||
|
Adding some Storage (to) Space
(johnoreilly.dev)
John O'Reilly wrote a short article about the addition of SQLDelight to his PeopleInSpace Kotlin Multiplatform sample. |
|
|
The Power of Types for Errors
(developers.soundcloud.com)
Danny Preussler discusses limiting the number of primitives we use in our code in favor of using custom types instead. |
|
Sponsored |
|
Build and operate Android apps faster with Bitrise
(www.bitrise.io)
From Android-specific solutions to full cross-platform support, we aim to streamline your development process through one, easy-to-use service. Whether you work in Kotlin, React Native, or any other framework, Bitrise is the way to go. Sign up for a free trial today! |
||
|
Encrypting Shared Preferences with the AndroidX Security Library
(www.bignerdranch.com)
Seth Lopez shows how the AndroidX Security library was recently added and makes storing encrypted shared preferences data simple and easy for apps with a min-sdk of 23+. |
|
|
Back Stack Management with Chrome Custom Tabs
(www.rallyhealth.com)
Scott Pierce examines how to handle the OAuth login flow using Chrome Custom Tabs. |
|
|
Android Fragments: FragmentContainerView
(proandroiddev.com)
This article by Husayn Hakeem explains what FragmentContainerView is, how to interact with it, and goes through some of the Fragment animation issues it tackles |
|
|
Blogging: Writing
(blog.stylingandroid.com)
Mark Allison wraps up his articles on how he is able to come up with ideas for blogs posts every week and how he writes the post and the code/projects that go along with it. |
|
|
Start Before You Finish
(commonsware.com)
Mark Murphy examines navigating from one Activity to another, and if the order of calling startActivity() and finish() matters. |
|
|
Reactive state container architecture with knot
(medium.com)
StefMa implements a reactive state container architecture with the help of a library called knot. |
|
|
Build a WhatsApp Clone on Android With Kotlin – Part 1
(dev.to)
In this tutorial, Thierry builds a functional clone of WhatsApp with Kotlin. |
|
|
Assistant & Pizza - Part 1
(medium.com)
Omar Miatello starts a series of articles on building an Actions on Google Assistant with Kotlin. |
|
|
Using Logs to Improve Actions
(medium.com)
If you have an Action published on Google Assistant, Jessica Earley-Cha shows how to use your logs to improve intent accuracy, evaluate user journeys and more. |
|
|
The Navigation Component…not that hard
(medium.com)
Jimoh Zainab brings you a story about the navigation component in android apps and shows you how easy it is to use. |
|
|
Coroutines and Java Synchronization Don't Mix
(blog.danlew.net)
Dan Lew demonstrates the case where you were using a synchronized function in Java but now want to make it suspending in Kotlin, Mutex is the most natural way to make that conversion. |
|
|
Exploring Drawers in Jetpack Compose
(android.jlelse.eu)
In this blog post, Nikit Bhandari shows how to use different types of drawers in Jetpack Compose. |
|
|
Kotlin Code Organization
(arturdryomov.dev)
Artur Dryomov shares some tips for organizing the Java / Kotlin code and tests in your projects. |
|
Sponsored |
|
|
Place a sponsored post & reach over 66k Android devs
(androidweekly.net)
|
||
Jobs |
|
|
Android Developer
(Berlin)
Be part of a flourishing team that is self-motivated and takes decision based on data, research and customer feedback. Contribute with your mobile know-how and bring our app to new quality heights. Play an active role on building an awesome reCommerce application that you are proud of. |
|
|
Mobile Engineer, Android
(Dublin, Ireland)
Come join our small, but fast-growing team. We're building out our Android Messenger SDK that is integrated into thousands of Android apps. This is an opportunity to go deep into the mobile operating system while still shipping beautiful and quality UI/UX for tens of millions of users. |
|
|
Android Developer
(Remote)
We love Tech. We love Nature. We work hard to make it easy for everyone to explore the world’s most beautiful places. Join Europe’s most successful cycling and hiking app and change the way people explore! |
|
|
Android Engineer @ COBI.Bike
(Frankfurt am Main, Germany)
The Bosch eBike / COBI.Bike Software Team is looking for a passionate & experienced Android Developer who is enthusiastic about connected mobility and hungry to take on development responsibilities on a new app at our rapidly growing start-up. |
|
|
Android/Kotlin Developer
(Remote)
Work with the world's leading brands on Android/Kotlin projects. From anywhere. |
|
Libraries & Code |
|
|
madman-android
(github.com)
The Madman library (Media Ads Manager) enables you to advertise video contents with video ads. If you have your own VAST server and want to render video ads on Android and have full control over the UI, then this library is for you. |
|
|
cycler
(github.com)
The Square Cycler API allows you to easily configure an Android RecyclerView declaratively in a succinct way |
|
|
Keeper
(slackhq.github.io)
A Gradle plugin that infers Proguard/R8 keep rules for androidTest sources. |
|
|
compose-pokedex
(github.com)
Android Pokedex on Jetpack Compose |
|
Videos & Podcasts |
|
|
Annotation processing for Kotlin
(www.youtube.com)
Csaba Kozák introduces how to write and test annotation processors that behave well even in Kotlin projects. |
||
|
Work Manager & Moshi
(www.youtube.com)
Two presentations from the January Android Budapest Meetup |
|
Specials |
|
|
With Great Tech Comes Great Responsibility
(foundation.mozilla.org)
A student guide by Mozilla Foundation for navigating ethical issues in the tech industry. |
||
We'll never spam you or give your email away! You can unsubscribe easily at any time.


A simple interactive element. Could be a button
or an a
Allows a user to select a value from a small set of options
Allows a user to select a value from a series of options
Provides a short summary of content
A field used to elicit a response from a user
Displays a info, warning, error, positive or negative message
Allows a user to select between exclusive options
Allows a user to select between exclusive options
Allows a user to select between on or off


Get the definitive Outriders experience with powerful GeForce RTX laptops and our critically-acclaimed performance accelerating NVIDIA DLSS technology.
Reduce system latency with just a few clicks, making gameplay more responsive, and giving you a competitive edge
Also includes support for Mass Effect Legendary Edition, Resident Evil Village, and 5 new G-SYNC Compatible gaming monitors.
Also, enable NVIDIA DLSS in Mortal Shell, Outriders, and Naraka: Bladepoint for similarly significant performance gains.
Unity 2021.2 will introduce native support for NVIDIA DLSS this year, making it a cinch to add our performance boosting tech to Unity games.
Activate NVIDIA DLSS to accelerate your performance, and give you the headroom to enable higher-quality effects.


Test your visual acuity
Easy-to-use and accurate eye exam for prognosis of both near and distant VA.
Measure your vision anywhere and easily follow disturbances, using your watch, phone or a remote desktop.
Send your test results to your ophtalmologist, optometrist or optician.
Continuously expanded under medical supervision of Dr. Matthias Hartmann.
For more info and support, contact us!


Main
Tools
Start
Export
Start Latitude:
0
Start Longitude:
0
Start Altitude:
0
Acc/Quality:
0
Start Clock:
0
Rise / Run:
Current Lat:
0
Current Lon:
0
Current Alt:
0
Acc/Quality:
0
Current Clock:
0
Slope:


Christopher Gleason
About Me
Resume
Contact
Coursework
Portfolio
Want to say something? Send me an Email!
Name:
Message:


@* * This template takes a single argument, a String containing a * message to display. *@ @(message: String) @* * Call the `main` template with two arguments. The first * argument is a `String` with the title of the page, the second * argument is an `Html` object containing the body of the page. *@ @main("Garage Sail") {
Not Registered?Sign Up Here.


Route Name
Saved Routes
None yet!
Status
Inactive
Options
Enable High Accuracy
Display Accuracy Circles
Add A Location


Source code for lcc.entities.star
from __future__ import division
from astropy.coordinates.sky_coordinate import SkyCoord
import numpy
from warnings import warn
import astropy.units as u
from lcc.entities.exceptions import StarAttributeError
from lcc.entities.light_curve import LightCurve
import warnings
[docs]class Star(object):
'''
Star is base object in astronomy. This class is responsible for keeping
basic informations about stellar objects. It's possible to create empty
star and add parameters additionally
Attributes
-----------
ident : dict
Dictionary of identifiers of the star. Each key of the dict
is name of a database and its value is another dict of database
identifiers for the star (e.g. 'name') which can be used
as an unique identifier for querying the star. For example:
ident = {"OgleII" : {"name" : "LMC_SC1_1",
"db_ident" : {"field_num" : 1,
"starid" : 1,
"target" : "lmc"},
...}
Please keep convention as is shown above. Star is able to
be queried again automatically if ident key is name of
database connector and it contains dictionary called
"db_ident". This dictionary contains unique query for
the star in the database.
name : str
Optional name of the star across the all databases
coo : astropy.coordinates.sky_coordinate.SkyCoord
Coordinate of the star
more : dict
Additional informations about the star in dictionary. This
attribute can be considered as a container. These parameters
can be then used for filtering. For example it can contains
color indexes:
more = { "b_mag" : 17.56, "v_mag" : 16.23 }
star_class : str
Name of category of the star e.g. 'cepheid', 'RR Lyrae', etc.
light_curves : list
Light curve objects of the star
EPS : float
Max distance in degrees to consider two stars equal
'''
EPS = 0.000138
def __init__(self, ident={}, name=None, coo=None, more={},
starClass=None):
'''
Parameters
-----------
ident : dict
Dictionary of identifiers of the star. Each key of the dict
is name of a database and its value is another dict of database
identifiers for the star (e.g. 'name') which can be used
as an unique identifier for querying the star. For example:
ident = {"OgleII" : {"name" : "LMC_SC1_1",
"db_ident" : {"field_num" : 1,
"starid" : 1,
"target" : "lmc"},
...}
Please keep convention as is shown above. Star is able to
be queried again automatically if ident key is name of
database connector and it contains dictionary called
"db_ident". This dictionary contains unique query for
the star in the database.
name : str
Optional name of the star across the all databases
coo : SkyCoord object
Coordinate of the star
more : dict
Additional informations about the star in dictionary. This
attribute can be considered as a container. These parameters
can be then used for filtering. For example it can contains
color indexes:
more = { "b_mag" : 17.56, "v_mag" : 16.23 }
star_class : str
Name of category of the star e.g. 'cepheid', 'RR Lyrae', etc.
'''
self.ident = ident
self.coo = coo
self.more = more
self.light_curves = []
self.starClass = starClass
self.name = name
def __eq__(self, other):
if not (isinstance(other, Star)):
return False
if other is None:
return False
elif self.ident:
for db_key in self.ident.keys():
if db_key in other.ident:
if self.ident[db_key] == other.ident[db_key]:
return True
return self.getInRange(other, self.EPS)
def __str__(self):
star_text = ""
for db_key in self.ident:
star_text += "%s identifier:\t" % db_key
for key in self.ident[db_key]:
star_text += "%s: %s\t" % (key, self.ident[db_key][key])
star_text += "\n"
if self.coo:
star_text += "\tCoordinate: %s" % self.coo.to_string("hmsdms")
return star_text
@property
def coo(self):
return self._coo
@coo.setter
def coo(self, given_coo):
if (given_coo and given_coo.__class__.__name__ != "SkyCoord"):
try:
if len(given_coo) == 3:
unit = given_coo[2]
else:
unit = "deg"
given_coo = SkyCoord(given_coo[0], given_coo[1], unit=unit)
except:
warnings.warn("""Invalid values for
constructing coordinate object""")
given_coo = None
self._coo = given_coo
@property
def lightCurve(self):
if self.light_curves:
return self.light_curves[0]
return None
@lightCurve.setter
def lightCurve(self, lc):
self.putLightCurve(lc)
@property
def name(self):
if self._name:
return self._name
return self.getIdentName()
@name.setter
def name(self, name):
self._name = name
[docs] def getInRange(self, other, eps):
'''
This method decides whether other star is in eps range of this star
according to coordinates
Parameters
-----------
other : Star object
Star to compare with
eps : float, astropy.unit.quantity.Quantity
Range in degrees
Returns
--------
bool
If in range
'''
if not isinstance(eps, u.quantity.Quantity):
eps = eps * u.deg
if self.coo is None:
warn("Star {0} has no coordinates".format(
self.name))
return self.getDistance(other) < eps
[docs] def getDistance(self, other):
'''
Compute distance between this and other star in degrees
Parameters
-----------
other : Star object
Another star object to compare with
Returns
--------
astropy.coordinates.angles.Angle
Distance of stars in degrees
'''
return self.coo.separation(other.coo)
[docs] def getIdentName(self, db_key=None):
"""
Parameters
-----------
db_key : str
Database key
Returns
--------
str
Name of the star in given database. If it is not specified,
the first database will be taken to construct the name
"""
if db_key is None:
if len(self.ident.keys()) == 0:
return "Unknown"
db_key = self.ident.keys()[0]
if "name" in self.ident[db_key]:
return self.ident[db_key]["name"]
star_name = db_key
for key in self.ident[db_key]:
star_name += "_%s_%s" % (key, self.ident[db_key][key])
return star_name
[docs] def putLightCurve(self, lc, meta={}):
'''
Add light curve to the star
Parameters
----------
lc : list, numpy.ndarray
Light curve
Returns
-------
None
'''
if not isinstance(lc, numpy.ndarray) and not lc:
warn("Invalid light curve: %s\nLight curve not created to star %s" % (
lc, self.name))
if hasattr(lc, "__iter__") and len(lc) and isinstance(lc[0], LightCurve):
self.light_curves += lc
elif not isinstance(lc, LightCurve) and len(lc):
self.light_curves.append(LightCurve(lc, meta=meta))
elif lc:
self.light_curves.append(lc)


Hi! I'm Evan. Right now, I work at Lyft as a software engineer, and I produce a mix of jazz and electronic music (check out my debut EP!)
If you're in New York and want to chat or play some music, send me an email!
click or scroll for
ProjectsAfter helping organize Columbia's biggest hackathon for a few years, in 2017 I designed and developed the website from scratch.
In January 2016, I designed and taught a week-long beginner web development course for JADE, an immersive program for 16 first-year Columbia and Barnard students interested in app development and entrepreneurship.

In my compilers class, I worked on a team of five to build QL, a query language for JSON. Using data from CitiBike and Fitbit, we were able to make some interesting programs with our language—like finding the average speed of CitiBike users and showing that my stride length is longest on weekends.
I've always loved teaching! Columbia tends to focus on the theoretical side of CS rather than industry skills, so giving talks is a great way to share practical knowledge with other talented programmers.


Hi there! My name is Jessica Nahulan, I'm an undergraduate student at Queen's University. On the road to finishing up my Computer Engineering degree, I've found myself completing a 16 month internship at Embross before returning for my final year. ... and here we are.
More about me.If that quote doesn't inspire greatness, I don't know what does. (Or at the very least, perhaps, inspire impecable coding habbits? Who does not love consistent indentation and documentation xml comments
View my code repository to see what I've been working on.
Connect on facebook.
Connect on linkedin.
You have to make your websites with love these days!
Ready to start your next project with us? That's great! Give us a call or send us an email and we will get back to you as soon as possible!
123-456-6789


All you get to know about the across answers is that they are all pairs of opposites, with the pairings indicated.
Across:
1,34.
5,33.
8,26.
9,31.
11,27.
12,25.
13,32.
16,22.
17,20.
Down:
1. Tough tissue is returned, new (5)
2. Little pancake or little fish perhaps (7)
3. Redo dire lift (4)
4. Flaming era of supply interruption (6)
5. Smell fine for report (4)
6. Slight loss in discrete release of document by newspaper (7)
7. Wordly movie character, roaming North East following path (5)
10. May a pair of Poles be Americans? (6)
14. Impartial wreck (5)
15. Point's messy and motley (5)
16. Plot in Burma, predictably (3)
18. Positive band (3)
19. A tired expression due to manic lichen growth (6)
21. State found in a root, oddly (7)
23. Wails 'hi' oddly in foreign tongue (7)
24. Fix broken fan set (6)
25. Twice ignoring Muslim festival, Cupid paid for refreshment (5)
28. Go in for entertainment, ignoring 8/13 (5)
29. Came around with weapon (4)
30. Partly isolated? (4)


*{{item}}*

is loading: {{adapter.isLoading}}


Emirati budget carrier Air Arabia announces purchase of 120 new Airbus planes in deal worth $14 ...
DUBAI, United Arab Emirates - DUBAI, United Arab Emirates (AP) - Emirati budget carrier Air Arabia announces purchase of 120 new Airbus planes in deal worth $14 billion.
Copyright 2019 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.


To quantify the climate responses produced by changes in obliquity, precession, CO 2, and ice sheets, idealized single-forcing experiments were conducted, where only one forcing is applied while other forcings are prescribed at preindustrial levels. Simulations were conducted with the GFDL CM2.1 and the NCAR CESM1.2. Forcing parameters used for the simulations are given in Supplementary Table 1, and a broader overview of the CM2.1 simulations is presented in past work 17. CESM simulations were generally forced with identical values to CM2.1 simulations except for slight differences in the control values. For ice sheet-forced simulations, GFDL CM2.1 uses the ICE-5G last glacial maximum (LGM) ice sheets 44 and NCAR CESM uses the Paleoclimate Modelling Intercomparison Project Phase III (PMIP3) LGM ice sheets, which are a blend of three ice sheet reconstructions, with added ice shelves in the western Labrador Sea 45. Simulations were run for 500 years or longer. These experiments are here referred to as 'fingerprint' experiments, since they quantify the distinct climate response patterns to individual forcings. A different experimental design was employed for the HadCM3 simulations used in Fig. 1c, d, as described in Supplementary Note 5.
For CM2.1 and CESM monthly output, an adjustment was typically made to the calendar. When the timing of perihelion is modified, as in some of the simulations described above, the speed at which Earth travels through different parts of its orbit is altered according to Kepler’s second law. This means that calendar months in different simulations will correspond to different parts of Earth’s orbit, complicating the interpretation of monthly anomalies. This 'calendar effect' has been described in past research 46. To account for this complicating factor, all monthly output from CM2.1 and CESM were processed onto a common fixed-angular calendar, in which every 'month' corresponds to a 30° arc of Earth’s orbit. This calculation was done using the method described in 47. No monthly results from HadCM3 are presented, so no calendar correction is needed.


public class SyncFactory extends Object
SyncProvider
instances to be used by disconnected RowSet
objects.
The SyncProvider
instances in turn provide the
javax.sql.RowSetReader
object the RowSet
object
needs to populate itself with data and the
javax.sql.RowSetWriter
object it needs to
propagate changes to its
data back to the underlying data source.
Because the methods in the SyncFactory
class are all static,
there is only one SyncFactory
object
per Java VM at any one time. This ensures that there is a single source from which a
RowSet
implementation can obtain its SyncProvider
implementation.
SyncFactory
class provides an internal registry of available
synchronization provider implementations (SyncProvider
objects).
This registry may be queried to determine which
synchronization providers are available.
The following line of code gets an enumeration of the providers currently registered.
java.util.Enumeration e = SyncFactory.getRegisteredProviders();All standard
RowSet
implementations must provide at least two providers:
CachedRowSet
implementation
or an implementation derived from it
WebRowSet
objects
SyncProvider
implementations RIOptimisticProvider
and RIXmlProvider
,
which satisfy this requirement.
The SyncFactory
class provides accessor methods to assist
applications in determining which synchronization providers are currently
registered with the SyncFactory
.
Other methods let RowSet
persistence providers be
registered or de-registered with the factory mechanism. This
allows additional synchronization provider implementations to be made
available to RowSet
objects at run time.
Applications can apply a degree of filtering to determine the level of
synchronization that a SyncProvider
implementation offers.
The following criteria determine whether a provider is
made available to a RowSet
object:
RowSet
object, and
the SyncFactory
does not contain a reference to this provider,
a SyncFactoryException
is thrown stating that the synchronization
provider could not be found.
RowSet
implementation is instantiated with a specified
provider and the specified provider has been properly registered, the
requested provider is supplied. Otherwise a SyncFactoryException
is thrown.
RowSet
object does not specify a
SyncProvider
implementation and no additional
SyncProvider
implementations are available, the reference
implementation providers are supplied.
SyncProvider
Implementations
Both vendors and developers can register SyncProvider
implementations using one of the following mechanisms.
-Drowset.provider.classname=com.fred.providers.HighAvailabilityProvider
#Default JDBC RowSet sync providers listing # # Optimistic synchronization provider rowset.provider.classname.0=com.sun.rowset.providers.RIOptimisticProvider rowset.provider.vendor.0=Oracle Corporation rowset.provider.version.0=1.0 # XML Provider using standard XML schema rowset.provider.classname.1=com.sun.rowset.providers.RIXMLProvider rowset.provider.vendor.1=Oracle Corporation rowset.provider.version.1=1.0The
SyncFactory
checks this file and registers the
SyncProvider
implementations that it contains. A
developer or vendor can add other implementations to this file.
For example, here is a possible addition:
rowset.provider.classname.2=com.fred.providers.HighAvailabilityProvider rowset.provider.vendor.2=Fred, Inc. rowset.provider.version.2=1.0
SyncFactory
will attempt to load
SyncProvider
implementations from that JNDI context.
For example, the following code fragment registers a provider implementation
on a JNDI context. This is something a deployer would normally do. In this
example, MyProvider
is being registered on a CosNaming
namespace, which is the namespace used by J2EE resources.
import javax.naming.*; Hashtable svrEnv = new Hashtable(); srvEnv.put(Context.INITIAL_CONTEXT_FACTORY, "CosNaming"); Context ctx = new InitialContext(svrEnv); com.fred.providers.MyProvider = new MyProvider(); ctx.rebind("providers/MyProvider", syncProvider);
SyncFactory
instance. This allows the SyncFactory
to browse within the JNDI context looking for SyncProvider
implementations.
Hashtable appEnv = new Hashtable(); appEnv.put(Context.INITIAL_CONTEXT_FACTORY, "CosNaming"); appEnv.put(Context.PROVIDER_URL, "iiop://hostname/providers"); Context ctx = new InitialContext(appEnv); SyncFactory.registerJNDIContext(ctx);If a
RowSet
object attempts to obtain a MyProvider
object, the SyncFactory
will try to locate it. First it searches
for it in the system properties, then it looks in the resource files, and
finally it checks the JNDI context that has been set. The SyncFactory
instance verifies that the requested provider is a valid extension of the
SyncProvider
abstract class and then gives it to the
RowSet
object. In the following code fragment, a new
CachedRowSet
object is created and initialized with
env, which contains the binding to MyProvider
.
Hashtable env = new Hashtable(); env.put(SyncFactory.ROWSET_SYNC_PROVIDER, "com.fred.providers.MyProvider"); CachedRowSet crs = new com.sun.rowset.CachedRowSetImpl(env);Further details on these mechanisms are available in the
javax.sql.rowset.spi
package specification.SyncProvider
,
SyncFactoryException
| Modifier and Type | Field and Description |
|---|---|
static String |
ROWSET_SYNC_PROVIDER
The standard property-id for a synchronization provider implementation
name.
|
static String |
ROWSET_SYNC_PROVIDER_VERSION
The standard property-id for a synchronization provider implementation
version tag.
|
static String |
ROWSET_SYNC_VENDOR
The standard property-id for a synchronization provider implementation
vendor name.
|
| Modifier and Type | Method and Description |
|---|---|
static SyncProvider |
getInstance(String providerID)
Returns the
SyncProvider instance identified by providerID. |
static Logger |
getLogger()
Returns the logging object for applications to retrieve
synchronization events posted by SyncProvider implementations.
|
static Enumeration<SyncProvider> |
getRegisteredProviders()
Returns an Enumeration of currently registered synchronization
providers.
|
static SyncFactory |
getSyncFactory()
Returns the
SyncFactory singleton. |
static void |
registerProvider(String providerID)
Adds the the given synchronization provider to the factory register.
|
static void |
setJNDIContext(Context ctx)
Sets the initial JNDI context from which SyncProvider implementations
can be retrieved from a JNDI namespace
|
static void |
setLogger(Logger logger)
Sets the logging object to be used by the
SyncProvider
implementation provided by the SyncFactory . |
static void |
setLogger(Logger logger,
Level level)
Sets the logging object that is used by
SyncProvider
implementations provided by the SyncFactory SPI. |
static void |
unregisterProvider(String providerID)
Removes the designated currently registered synchronization provider from the
Factory SPI register.
|
public static final String ROWSET_SYNC_PROVIDER
public static final String ROWSET_SYNC_VENDOR
public static final String ROWSET_SYNC_PROVIDER_VERSION
public static void registerProvider(String providerID) throws SyncFactoryException
SyncProvider
specification for the
required naming conventions for SyncProvider
implementations.
Synchronization providers bound to a JNDI context can be registered by binding a SyncProvider instance to a JNDI namespace.
SyncProvider p = new MySyncProvider();
InitialContext ic = new InitialContext();
ic.bind ("jdbc/rowset/MySyncProvider", p);
Furthermore, an initial JNDI context should be set with the
SyncFactory
using the setJNDIContext
method.
The SyncFactory
leverages this context to search for
available SyncProvider
objects bound to the JNDI
context and its child nodes.providerID
- A String
object with the unique ID of the
synchronization provider being registeredSyncFactoryException
- if an attempt is made to supply an empty
or null provider namesetJNDIContext(javax.naming.Context)
public static SyncFactory getSyncFactory()
SyncFactory
singleton.SyncFactory
instancepublic static void unregisterProvider(String providerID) throws SyncFactoryException
providerID
- The unique-id of the synchronization providerSyncFactoryException
- If an attempt is made to
unregister a SyncProvider implementation that was not registered.public static SyncProvider getInstance(String providerID) throws SyncFactoryException
SyncProvider
instance identified by providerID.providerID
- the unique identifier of the providerSyncProvider
implementationSyncFactoryException
- If the SyncProvider cannot be found,
the providerID is null
, or
some error was encountered when trying to invoke this provider.public static Enumeration<SyncProvider> getRegisteredProviders() throws SyncFactoryException
RowSet
implementation may use any provider in
the enumeration as its SyncProvider
object.
At a minimum, the reference synchronization provider allowing RowSet content data to be stored using a JDBC driver should be possible.
SyncFactoryException
- If an error occurs obtaining the registered
providerspublic static void setLogger(Logger logger)
SyncProvider
implementation provided by the SyncFactory
. All
SyncProvider
implementations can log their events to
this object and the application can retrieve a handle to this
object using the getLogger
method.
This method checks to see that there is an SQLPermission
object which grants the permission setSyncFactory
before allowing the method to succeed. If a
SecurityManager
exists and its
checkPermission
method denies calling setLogger
,
this method throws a
java.lang.SecurityException
.
logger
- A Logger object instanceSecurityException
- if a security manager exists and its
checkPermission
method denies calling setLogger
NullPointerException
- if the logger is nullSecurityManager.checkPermission(java.security.Permission)
public static void setLogger(Logger logger, Level level)
SyncProvider
implementations provided by the SyncFactory
SPI. All
SyncProvider
implementations can log their events
to this object and the application can retrieve a handle to this
object using the getLogger
method.
This method checks to see that there is an SQLPermission
object which grants the permission setSyncFactory
before allowing the method to succeed. If a
SecurityManager
exists and its
checkPermission
method denies calling setLogger
,
this method throws a
java.lang.SecurityException
.
logger
- a Logger object instancelevel
- a Level object instance indicating the degree of logging
requiredSecurityException
- if a security manager exists and its
checkPermission
method denies calling setLogger
NullPointerException
- if the logger is nullSecurityManager.checkPermission(java.security.Permission)
,
LoggingPermission
public static Logger getLogger() throws SyncFactoryException
Logger
that has been specified for use by
SyncProvider
implementationsSyncFactoryException
- if no logging object has been set.public static void setJNDIContext(Context ctx) throws SyncFactoryException
This method checks to see that there is an SQLPermission
object which grants the permission setSyncFactory
before allowing the method to succeed. If a
SecurityManager
exists and its
checkPermission
method denies calling setJNDIContext
,
this method throws a
java.lang.SecurityException
.
ctx
- a valid JNDI contextSyncFactoryException
- if the supplied JNDI context is nullSecurityException
- if a security manager exists and its
checkPermission
method denies calling setJNDIContext
SecurityManager.checkPermission(java.security.Permission)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2015, Oracle and/or its affiliates. All rights reserved.


Hi there!
We just need to verify you email so you can start using Mega Duper App!
Alternatively, you can paste the following link in your browser's address bar:
{{ url_for('main.verify_email', token=token, _external=True) }}
Thanks
The Mega Duper App Team


{% block head %}{% endblock %} {% block styles %}{% endblock %}
Run a banner generation test accross a cluster of Google Compute Instances, Start a new run ?


wipefs
Wipe filesystem, raid, or partition-table signatures from a device.
More information: home page
- Display signatures for specified device:
sudo wipefs /dev/sdX
- Wipe all available signature types for a specific device with no recursion into partitions:
sudo wipefs --all /dev/sdX
- Wipe all available signature types for the device and partitions using a glob pattern:
sudo wipefs --all /dev/sdX*
- Perform dry run:
sudo wipefs --all --no-act /dev/sdX
- Force wipe, even if the filesystem is mounted:
sudo wipefs --all --force /dev/sdX


This is a sample modal being displayed.This is a sample modal being displayed.This is a sample modal being displayed.This is a sample modal being displayed.This is a sample modal being displayed.This is a sample modal being displayed.This is a sample modal being displayed.This is a sample modal being displayed.This is a sample modal being displayed.
x


Project actions:
Update project
Name
Update
Add milestone
Name
Position
Add
Delete milestone
Milestone
Delete
Milestone actions:
Add task
Name
Position
Add
Delete task
Task
Delete
Task actions:
Update task
Url
Update
Url:


{% extends 'base.html' %} {% block page_title %}{{ _('Creative Brief') }}{% endblock %} {% block meta_description -%} {%- endblock %} {% block content %}
{% trans %} We need your help to tell the amazing story of Mozilla Firefox, our users and how one browser can build a brighter future for the Web. {% endtrans %}
{% trans %} Create a video ad or story (a "flick") in one of four categories that helps people better understand the issues facing them online and shows how Firefox helps them deal with these issues. In short, help us tell the story of Firefox — why we do what we do and how that helps users on the Web. {% endtrans %}
{% trans %} Mozilla wants the world to know more about what makes Firefox different: that we're a non-profit organization aimed at keeping the power of the Web in people's hands. Our hope is that through high-quality videos, we can help mainstream Internet users know more about the issues that affect their online lives and, more importantly, how Firefox addresses these issues. Winning videos will be used in worldwide marketing campaigns and public service announcements. {% endtrans %}
{% trans %} Help us educate consumers about one or all of the following online issues facing them today: {% endtrans %}
{% trans brand='http://www.mozilla.org/firefox/brand/platform/' %} Also, drive awareness of our key brand attributes, specifically around the fact that Firefox is made by a non-profit organization that answers only to users, not shareholders. Have a look at our Brand Platform for more details and check out the video below. {% endtrans %}
{% trans %} Your flick should target mainstream Internet users between the ages of 25 and 54 — people who use the Web to read the news, write e-mails, bank online and connect on social networks. Help explain the challenges facing the Web in terms that these average everyday users will understand. As an extreme example, how would you explain the importance of having control over your own online experience to someone who only understands the Firefox logo as the "Internet" button? We need you to communicate to this audience that Firefox is a non-profit doing good for the benefit of people everywhere. {% endtrans %}
{% trans %} Firefox prioritizes principles over profit to put you in control of your online experience and shape the future of the Web for the public good. Firefox answers to no one but you. {% endtrans %}
{% trans %} Tell the world about Firefox. Encourage them to download Firefox today. {% endtrans %}
{{ _('Know:') }}
{{ _('Feel:') }}
{% trans %} Unconventional, Engaging, Honest, Human, Smart, Confident {% endtrans %}
{{ _('Check out our videos for Firefox Flicks to get into movie making mode') }}


Some of my Road Test reviews and projects from Element14 Community
For more projects, reviews and blog posts please check out my Element14 Community profile!


MEDICATION FOR PROBLEM STUDENTS: POSSIBLE SOLUTION OR UNACCEPTABLE
RISK?
Experts in children's mental health issues point out that
children who take the drugs do so because they were having
difficulties to begin with. They acknowledge that impulsive or
violent behavior is a recognized side effect in a small percentage
of people taking the drugs.
But in arguing that an overwhelming majority of children who use
the drugs are benefiting, they contend that the Colorado resolution
is irresponsible and perhaps even dangerous in that it could lead
school personnel to ignore signs of serious mental disorders in
children and that it would discourage communication between
teachers and parents.
``I hope what happened in Colorado is the exception and not the
rule,'' said Michael Faenza, president of the National Mental
Health Association, conceding that he fears other states and school
districts might replicate Colorado's efforts.
``Holding up psychotropic medicines as the possible cause of
violent behavior is absurd. There's a wealth of information to show
that they have helped dramatically.''
The use of Ritalin and other psychotropic drugs has steadily
increased over the years among school-age children to a current
level of about 2.5 million, according to Children and Adults with
Attention Deficit/Hyperactivity Disorder, a national nonprofit
organization known as CHADD, which is based in Landover, Md.
Here in Colorado, increased usage has turned a new focus onto
the role that teachers and administrators play in the daily lives
of children who attend their schools. It has also pitted experts
who say use is growing because the drugs are beneficial against
those who contend that parents and teachers are too quick to seek
out prescription medicine as the simplest way to treat children
with behavioral problems.
Patti Johnson, the Colorado school board member who organized a
hearing on the issue and proposed the resolution, said that in the
five years she has served on the board, she has received ``numerous
complaints'' from parents who claimed a teacher had insisted that
their child go on Ritalin or another drug before returning to
class.
Recounting the case of one girl, who was showing signs of
attention deficit disorder through mood sweeps and napping in
class, Ms. Johnson said the girl was later diagnosed to be
suffering from hypoglycemia and just needed to change her diet.
According to the girl's parents, Ms. Johnson said, the teacher told
them, ``You need to get her a prescription for Ritalin.''
As a result, she said, a resolution was designed to remove
school personnel from any medical decisions. She said the board,
which consists of six Republicans and one Democrat, passed the
resolution along party lines with minimal debate. The lone
Democrat, Gully Stanford, did not return a telephone call. No other
versions of of the resolution were considered.
``The resolution does not stop teachers from communicating with
parents,'' Ms. Johnson said in an interview. ``What it does do is
stop teachers from giving parents an ultimatum: `Put your kid on a
drug or we're not going to teach them.' That can't happen any more.
It's wrong.''
Brenda Welburn, executive director of the National Association
of State Boards of Education, said that Colorado's is one of only
seven elected state boards of education in the country and those
boards tend to be more ideological.
She added, however, ``I agree that too often the first answer
for children with some behavior problem is to reach for medication.
Some of the numbers we are seeing for medication of children are
staggering.''
Julie Underwood, general counsel of the National School Boards
Association, said she knew of no other school board examining the
question. She added that while many are concerned about
overmedication, ``We would be reluctant to support such a
resolution because there are children who may need such services,
who may benefit from the medication.''


Affaan is the leader in charge of organizing Team 2's back-end efforts in the application!
Hi Everyone, my name's Affaan Ghazzali, I am a fourth year Computer Science major, with a Mathematics minor, graduating this semester! Over the past three and a half years, I have learned a lot about Software Engineering both at SFSU and in industry as well. That being said, I am pretty terrified of the task ahead of us this semester, as all of my internships and my personal interests really lie in the Data Science and Computational fields of Computer Science, so Web Development is not really my forte. That being said, I'm pretty killer with Python and have a great team around me so I am excited to see what this semester holds!


Sound Refinery
equalizer
Sass
Components
Javascript
Mobile
Home
About
Contact
Links
Audio Samples
BEAR
TV Blue
Your browser does not support the audio element.


Neurodegeneration is a process of loss of structure or function of neurons such as the death of neurons. Many neurodegenerative diseases occur as a result of this process. The central nervous system (CNS) controls most functions of the body and the mind. CNS is affected by the neurodegeneration process and causes many disorders and diseases such as Alzheimer's, Parkinson's, and stroke.
Particulate matter or in short term PM are microscopic particulate of solid or liquid matter suspended in the air. Its source can be natural or caused by humans. They have an impact on the climate and precipitation which adversely affect human health. PM 2.5 refers to the size of the particulates with 2.5 micrometers or less. Recently, discoveries have found a link between pollution and CNS disease.
Our team aims to investigate this link by considering the pollution data and CNS disease based on the Italian province available from ISTAT database.
The final results that are obtained by the data analysis is shown by this Dashboard. The dashboard has three main sections, the story mode, which shows insights about the distribution of CNS diseases and pollution in Italy, the visualization section, in which the user is freely allowed to explore the data, and the statistics mode in which relevant statistics are shown about the data, such as correlation between CNS and pollution, and regression results.
The final results not confirm the link between CNS and pollution over the Italian territory, this couold be either due to the effective lack of a link, or to the lack of data to investigate it.
Feel free to click around the map and to look with your eyes the most polluted cities in Italy, and the one which suffers more of CNS diseases, and the relation between the two.
Supervisor - Guido Pagana
Data Analysis - Luis Martinez, Mostafa Karami
Dashboard Development - Sahand Hamzehei, Tommaso Calò
Map engine - Mapbox GL JS
Graphing engine - D3.js
Github - @cnsdashboard
This dashboard shows the connection between CNS disease and PM values in Italy. It is known from research that pollution has harmful effects that can lead to a variety of diseases. The majority of evidence on the connection between dust and health has focused on lung and cardiovascular diseases. The effects of air pollution on the central nervous system (CNS), on the other hand, are a more recent discovery. Each of the following stories, supports the visualization that shows the most relevant, or curious statistics about the distribution of the pollution level and central nervous system diseases in italian provinces.


Notebooks
Story: Stars and death
Stars and death
Title
Stars and death
Collection
Summary
Death. The stars know the time at which a Bushman dies, and the fall of one announces, to those who are not aware of it, that something bad has happened. When, after this, a 'Hammerkop' (Scopus umbretta), flies, calling out over the Bushmen, the people know that someone belonging to them has died. Girls who have been killed by lightning are changed into stars. Girls who have been taken away by the water become like a beautiful water–flower, which will not allow itself to be plucked, and disappears when approached. Such flowers must be let alone. The place in the sky in which lightning appears should be looked at, so that the lightning may not kill us by stealth. In the Katkop dialect, by Díä!kwãin (L V.-22. 5776-5809).
Comments
1) p.5776v: when a person dies the heart falls over like something which has been standing upright that then falls to one side, 2) p.5779v: the Hamerkop, called by Dutch farmers the Hammer-bir-kop, Latin name Scopus umbretta, |xam name !hin; the |xam name for its cry, which it repeats twice, 3) pp.5794v & 5795v: what Dia!kwain's mother's (≠kamme-an) mother (|abbe-ttu) told her about the flowers growing at the water's edge, 4) See also Falling stars, 5) This story is found in Book V-22
Contributors
Date
2 – 3 January 1876
Categories
Custom and daily life, The Rain and Rain's water, New maidens, Plants and animals, Portention
Keywords
stars (falling) , stars (and death) , stars (and new maidens) , stars (new maidens become) , stars (and falling hearts) , stars (falling stars foretell death) , stars (live in water) , stars (and the rain) , stars (live in the water) , stars (know the time of people's deaths) , stars (tell news of death) , stars (resemble falling hearts) , stars (tell of evil) , stars (tell what happens at another place) , stars (bring bad news) , stars (and the actions of the Hamerkop bird) , Hamerkop bird (and death) , Hamerkop bird (and stars and death) , Hamerkop bird (Scopus umbretta) , Hamerkop bird (and the actions of the stars) , Hamerkop bird (what it means to hear it) , Hamerkop bird (sees the dead in the water) , Hamerkop bird (foretells death) , Hamerkop bird (takes stories to people) , Hamerkop bird (takes stories into the water) , Hamerkop bird (its names) , Hamerkop bird (brings news of death) , Hamerkop bird (its cry) , Hamerkop bird (what people say about) , Hamerkop bird (and falling stars) , Hamerkop bird (tells the truth) , Hamerkop bird (knows things) , Hamerkop bird (is water's thing) , Hamerkop bird (lives at the water) , hearts (fall at death) , hearts (and falling stars) , hearts (and stars and death) , hearts (stars resemble falling) , falling stars (and death) , falling stars (falling hearts resemble) , rain (and stars and death) , rain (smells people's scent) , rain (the place where it 'lightens' and kills) , rain (its stones) , rain (protecting against) , rain (is frightening) , rain (its actions when angry) , rain (respecting and fearing) , rain (and new maidens) , rain (carries off girls) , rain (transforms maidens into flowers and stars) , rain (and flowers) , rain (and stars) , rain (and thunder and lightning) , rain (respects a person's 'eye') , new maidens (and stars and death) , new maidens (are Water's wives) , new maidens (prohibitions regarding) , new maidens (and the rain) , new maidens (killed by lightning) , new maidens (are transformed by the rain) , new maidens (become flowers) , new maidens (become stars) , new maidens (grow at the water's edge) , new maidens (stand in water) , new maidens (and the actions of the angry rain) , new maidens (are carried away by the rain) , new maidens (must fear the rain) , flowers (and stars and death) , flowers (water-) , flowers (are girls the rain has taken away) , flowers (maidens become) , flowers (and new maidens) , flowers (must be left alone) , flowers (prohibitions regarding) , transformation (of maidens into flowers at the water) , transformation (by the rain) , transformation (and stars and death) , transformation (of maidens into stars) , death (and stars) , death (and falling stars) , death (and flowers) , death (of new maidens) , death (foretelling) , death (Hamerkop tells news of) , death (can be seen in water) , death (presentiments of) , death (and falling hearts) , death (things that foretell) , water (and stars and death) , water (seeing the dead in) , water (the dead man walks passing) , water (things in the sky also live in) , water (seeing the stars in) , water (we see all things in) , water (and foretelling things) , water (stories go into) , water (stars stand in) , water (of the Orange River) , water (and the Hamerkop bird) , water (and the rain) , water (and the new maidens transformed into flowers) , water (the flowers that grow at) , water (knows things) , bird (called the Hamerkop tells news of death) , bird (the Hamerkop or Scopus umbretta) , bird (and stars and death) , foretell (the Hamerkop tells news of death) , foretell (death can be seen in water) , foretell (and stars and death) , foretell (water knows things) , name (of a bird which foretells death: the Hamerkop) , name (and stars and death) , name (of flowers that grow at water) , respect (for the rain) , respect (and stars and death) , lightning (maidens killed by transformed into flowers) , lightning (and stars and death) , lightning (the place where the rain 'lightens' and kills)
Story Pages
5776-5809


Unfortunately, due to our terms of service, we are unable to send your message to
{% with leng = context.legs_buckets.uncontactable.__len__() %}
{% for email in context.legs_buckets.uncontactable %}
{{ email }}{% if not loop.last and leng != 2 %}, {% elif leng == 2 %} and {% endif %}
{% if leng > 5 and loop.index0 == 4 %}{% break %}{% endif %}
{% endfor %}
{% endwith %}
because your inputted address indicates you do not live in their district and/or state.
If you believe that you do in fact live in their district and/or state then first navigate
to the previous page and insure your address was entered correctly.


The various indicators and settings in the control panel can be hard to understand at first. This section provides explanations and tips to help you get started.
This strategy uses 2 different moving averages. Once the shorter moving average is a specified percentage above the longer moving average, a buy order is triggered. When the shorter is a specific percentage below than the longer average, a sell order is triggered.
An Exponential Moving Average weights the most recent values more than the past ones over a given span of time. The amount of weight each price holds decreases exponentially.
A Simple Moving Average is the average of all of the prices in a given time span, with all of the values weighted equally.
A Triangular Moving Average is a weighted average of SMA values for a given time span.
An Weighted Moving Average weights the most recent values more than the past ones over a given span of time. The amount of weight each price holds decreases linearly.
The MACD is calculated by subtracting the 26-interval exponential moving average (EMA) from the 12-interval EMA. A nine-interval EMA of the MACD, called the "signal line", is then plotted on top of the MACD, functioning as a trigger for buy and sell signals.
RSI oscillates between 0 and 100. RSI can be used to identify a general trend. According to J. Welles Wilder, the developer of the indicator, an RSI of above 70 generally indicates that something is overbought, and an RSI of below 30 indicates that something has been oversold.RSI oscillates between 0 and 100. RSI can be used to identify a general trend. According to J. Welles Wilder, the developer of the indicator, an RSI of above 70 generally indicates that something is overbought, and an RSI of below 30 indicates that something has been oversold.
The rate of change is essentially the slope of the price of Bitcoin throughout a time span of 14 intervals. This strategy works with values that are both positive and negative because it is based on the slope.