text:
# Motivating Example

Consider genetic association testing with a continuous trait whose residual distribution is far from normal. Departures from normality may take the form of skew towards a particular direction or an excess of extreme (outlying) residuals. A commonly right-skewed trait is body mass index. Other traits with potentially non-normal residuals include lung function measurements and polysomnography signals. When the departure from normality is severe, direct application of standard association tests, even those that only depend on asymptotic normality, can lead to an excess of false positive associations, and thereby invalidate inference.

The rank based inverse normal transformation (INT) has been proposed to counteract departures from normality. During INT, the sample measurements are first mapped to the probability scale by replacing the observed values with fractional ranks. Next, these probabilities are then transformed into Z-scores using the probit function. To demonstrate, in the following a sample of size $$n=1000$$ is drawn from the $$\chi_{1}^{2}$$ distribution. After transformation, the distribution of the measurements in the sample is indistinguishable from normal.

INT of the outcome in an association model is motivated by the fact that test statistics from distributions that are nearly normal converge in distribution faster than test statistics from distributions that are far from normal. By imposing normality on the outcome in the association model, the residual distribution, while not necessarily normal, cannot deviate too excessively.

library(RNOmni);
# Sample from the chi-1 square distribution
y = rchisq(n=1000,df=1);
# Rank-normalize
z = rankNorm(y);

# Data

## Simulated Data

In the following, data are simulated for $$n=10^{3}$$ subjects. Genotypes are drawn for $$10^{3}$$ loci in linkage equilibrium with minor allele frequency $$0.25$$. The model matrix X contains an intercept, four standard normal covariates Z, and the first four principal components of the genetic relatedness matrix. The intercept is set to one, and the remaining regression coefficients are simulated as random effects. The proportion of residual variation explained by covariates is 20%, while the proportion of residual variation explained by principle components is 5%. Two phenotypes with additive residuals are simulated. The first yn has standard normal residuals, while the second yt has $$t_{3}$$ residuals, scaled to have unit variance.

set.seed(100);
# Sample size
n = 1e3;
## Simulate genotypes
G = replicate(rbinom(n,size=2,prob=0.25),n=1e3);
storage.mode(G) = "numeric";
# Genetic principal components
S = svd(scale(G))\$u[,1:4];
S = scale(S);
# Covariates
Z = scale(matrix(rnorm(n*4),nrow=n));
# Overall design
X = cbind(1,Z,S);
# Coefficient
b = c(1,rnorm(n=4,sd=1/sqrt(15)),rnorm(n=4,sd=1/sqrt(60)));
# Linear predictor
h = as.numeric(X%*%b);
# Normal phenotype
yn = h+rnorm(n);
# T-3 phenotype
yt = h+rt(n,df=3)/sqrt(3);

## Data Formatting

The outcome y is expected as a numeric vecotr. Genotypes G are expected as a numeric matrix, with subjects are rows. If adjusting for covariates or population structure, X is expected as a numeric matrix, with an intercept included. Factors and interactions are expanded in advance, e.g. using model.matrix. Missingness is not expected in either the outcome vector y or the model matrix X. Observations missing genotype information G are excluded from association testing only at those loci where the genotype is missing.

# Omnibus Test

RNOmni performs an adaptive test of association between the loci in $$G$$ and the phenotype $$y$$, while adjusting for the model matrix $$X$$. Internally, RNOmni conducts two tests of association. In direct INT DINT, the INT is applied directly to the phenotype, and association testing is performed using the transformed phenotype. In indirect INT IINT, the phenotype is regressed on the model matrix, and association testing is conducted on the INT-transformed phenotypic residuals. The omnibus statistic is the maximum of the DINT and IINT statistics. Hence, the omnibus statistics select which of DINT and IINT provide more evidence against the null. Synthesizing these complementary approaches affords the omnibus test robustness to the distribution of phenotypic residuals. In simulations against non-normal phenotypes, the omnibus test controlled the type I error in the absence of genetic associations, and improved power in the presence of genetic associations. Under the same settings, standard linear regression variously failed to control the type I error in the absence of associations, and was underpowered in the presence of associations.

Assigning a $$p$$-value to the omnibus statistic requires an estimate of the correlation $$\rho$$ between the test statistics provided by DINT and IINT under the null. When many loci are under consideration, a computationally efficient strategy is to estimate $$\rho$$ by taking the empirical correlation between the test statistics across loci. Alternatively, the bootstrap is available when there are fewer loci under consideration, or when locus-specific correlation estimates are desired. In simulations, the value of $$\rho$$ estimated by taking the correlation across loci agreed with the average of the locus-specific estimates obtained using bootstrap. Finally, the user may estimate the correlation externally, then manually specify the value of $$\rho$$.

By default, the output of RNOmni is a numeric matrix of $$p$$-values, with rows corresponding to the loci (columns) of $$G$$. The columns are the $$p$$-values from the DINT, the IINT, and the omnibus tests, respectively. If keep.stats=T, the test statistics are retained. If keep.rho=T, the estimated correlation between the DINT and IINT test statistics is retained.

cat("Omnibus Test, Normal Phenotype, Average Correaltion Method\n");
pn = RNOmni(y=yn,G=G,X=X,method="AvgCorr");
cat("\n");
cat("Omnibus Test, Normal Phenotype, Bootstrap Correaltion Method\n");
pn = RNOmni(y=yn,G=G[,1:10],X=X,method="Bootstrap",B=100);
cat("\n");
cat("Omnibus Test, T3 Phenotype, Average Correaltion Method\n");
pt = RNOmni(y=yt,G=G,X=X,method="AvgCorr");
cat("\n");
cat("Omnibus Test, T3 Phenotype, Bootstrap Correaltion Method\n");
pt = RNOmni(y=yt,G=G[,1:10],X=X,method="Bootstrap",keep.rho=T,B=100);
cat("\n");
cat("Replicate the Omnibus Test on the T3 Phenotype, Manually Specifying Correlation\n");
pt = RNOmni(y=yt,G=G,X=X,method="Manual",set.rho=pt[,"Corr"],keep.rho=T);
cat("\n");

## Omnibus Test, Normal Phenotype, Average Correaltion Method
##    DINT  IINT  Omni
## 1 0.471 0.481 0.494
## 2 0.454 0.431 0.453
## 3 0.720 0.718 0.737
## 4 0.342 0.356 0.363
## 5 0.056 0.060 0.063
## 6 0.888 0.844 0.858
##
## Omnibus Test, Normal Phenotype, Bootstrap Correaltion Method
##    DINT  IINT  Omni
## 1 0.471 0.481 0.485
## 2 0.454 0.431 0.445
## 3 0.720 0.718 0.737
## 4 0.342 0.356 0.354
## 5 0.056 0.060 0.060
## 6 0.888 0.844 0.856
##
## Omnibus Test, T3 Phenotype, Average Correaltion Method
##    DINT  IINT  Omni
## 1 0.708 0.624 0.673
## 2 0.290 0.341 0.335
## 3 0.400 0.418 0.450
## 4 0.579 0.748 0.629
## 5 0.148 0.122 0.148
## 6 0.398 0.501 0.448
##
## Omnibus Test, T3 Phenotype, Bootstrap Correaltion Method
##    DINT  IINT  Omni  Corr
## 1 0.708 0.624 0.642 0.993
## 2 0.290 0.341 0.304 0.995
## 3 0.400 0.418 0.416 0.995
## 4 0.579 0.748 0.591 0.997
## 5 0.148 0.122 0.131 0.994
## 6 0.398 0.501 0.426 0.984
##
## Replicate the Omnibus Test on the T3 Phenotype, Manually Specifying Correlation
##    DINT  IINT  Omni  Corr
## 1 0.708 0.624 0.642 0.993
## 2 0.290 0.341 0.304 0.995
## 3 0.400 0.418 0.416 0.995
## 4 0.579 0.748 0.591 0.997
## 5 0.148 0.122 0.131 0.994
## 6 0.398 0.501 0.426 0.984

# Basic Association Test

BAT regresses the untransformed phenotype y on genotype at each locus in G, adjusting for the model matrix X. A $$p$$-value assessing the null hypothesis of no genetic association is calculated using a score test. The output is a numeric matrix, including the score statistic and $$p$$-value for each locus in G.

# Basic Association Test, Normal Phenotype
pn = BAT(y=yn,G=G,X=X);
# Basic Association Test, T3 Phenotype
pt = BAT(y=yt,G=G,X=X);

##   Score     P
## 1 0.514 0.474
## 2 0.496 0.481
## 3 0.143 0.705
## 4 0.840 0.360
## 5 3.646 0.056
## 6 0.045 0.832
##   Score     P
## 1 0.095 0.757
## 2 0.498 0.481
## 3 0.427 0.513
## 4 0.104 0.747
## 5 2.098 0.148
## 6 1.852 0.174

# Direct Inverse Normal Transformation

DINT regresses the INT-transformed phenotype y on genotype at each locus in G, adjusting for the model matrix X. A $$p$$-value assessing the null hypothesis of no genetic association is calculated using a score test. The output is a numeric matrix, including the score statistic and $$p$$-value for each locus in G.

# Direct INT Test, Normal Phenotype
pn = DINT(y=yn,G=G,X=X);
# Direct INT Test, T3 Phenotype
pt = DINT(y=yt,G=G,X=X);

##   Score     P
## 1 0.519 0.471
## 2 0.561 0.454
## 3 0.129 0.720
## 4 0.904 0.342
## 5 3.650 0.056
## 6 0.020 0.888
##   Score     P
## 1 0.140 0.708
## 2 1.119 0.290
## 3 0.708 0.400
## 4 0.309 0.579
## 5 2.091 0.148
## 6 0.716 0.398

# Indirect Inverse Normal Transformation

IINT implements a two-stage association test. In the first stage, the untransformed phenotype y is regressed on the model matrix X to obtain phenotypic residuals. Likewise, the genotype matrix G is regressed on the model matrix X to obtain genotypic residuals. In the second stage, the INT-transformed phenotypic residuals are regressed on the genotypic residuals. The output is a numeric matrix, including the Wald statistic and $$p$$-value for each locus in G.

# Indirect INT Test, Normal Phenotype
pn = IINT(y=yn,G=G,X=X);
# Indirect INT Test, T3 Phenotype
pt = IINT(y=yt,G=G,X=X);

##    Wald     P
## 1 0.497 0.481
## 2 0.620 0.431
## 3 0.130 0.718
## 4 0.852 0.356
## 5 3.547 0.060
## 6 0.039 0.844
##    Wald     P
## 1 0.240 0.624
## 2 0.908 0.341
## 3 0.656 0.418
## 4 0.104 0.748
## 5 2.387 0.122
## 6 0.454 0.501

# Notes

## Definition of the Rank Based Inverse Normal Transformation

Suppose that a continuous measurement $$u_{i}$$ is observed for each of $$n$$ subjects. Let $$\text{rank}(u_{i})$$ denote the sample rank of $$u_{i}$$ when the measurements are placed in ascending order. The rank based inverse normal transformation is defined as:

$\text{INT}(u_{i}) = \Phi^{-1}\left[\frac{\text{rank}(u_{i})-k}{n-2k+1}\right]$

Here $$\Phi^{-1}$$ is the probit function, and $$k\in(0,½)$$ is an adjustable offset. By default, the Blom offset of $$k=3/8$$ is adopted.

## Parallelization

All association tests have the option of being run in parallel. To do so, register a parallel backend, e.g. doMC::registerDoMC(cores=4), then specify the parallel=T option.


text:
# Cache Control Headers and Revalidation¶

The HTTP/1.1 specification in RFC 2616#section-14.9 allows for origin servers and clients to influence how caches treat their requests and responses. By default, the Traffic Control CDN will honor cache control headers. Most commonly, origin servers will tell the downstream caches how long a response can be cached.

Note

The terms “content revalidation” and “content invalidation” are often convoluted when referring to the same behavior. Within the context of Traffic Control, the two should be considered synonymous.

#3 This Response may Only be Cached for 86400 Seconds
HTTP/1.1 200 OK
Date: Sun, 14 Dec 2014 23:22:44 GMT
Server: Apache/2.2.15 (Red Hat)
Last-Modified: Sun, 14 Dec 2014 23:18:51 GMT
ETag: "1aa008f-2d-50a3559482cc0"
Cache-Control: max-age=86400
Content-Length: 45
Connection: close
Content-Type: text/html; charset=UTF-8

<!DOCTYPE html>This is a fun file

The max-age directive in the Cache-Control header tells downstream caching systems that the maximum time for which they are allowed to cache this response is the specified number of seconds. The origin can also add an Expires: header, explicitly telling the cache the time this response is to be expired. When a response is expired it usually doesn’t get deleted from the cache, but, when a request comes in that would have hit on this response if it was not expired, the cache revalidates the response. In particular, this is the way ATS handles content revalidation. Instead of requesting the object again from the origin server, the cache will send a request to the origin indicating what version of the response it has, and asking if it has changed. If it changed, the server will send a 200 OK response, with the new data. If it has not changed, the origin server will send back a 304 Not Modified response indicating the response is still valid, and that the cache can reset the timer on the response expiration. To indicate what version the client (cache) has it will add an If-Not-Modified-Since: header, or an If-None-Match: header. For example, in the If-None-Match: case, the origin will have sent an ETag header that uniquely identifies the response. The client can then later use that in a revalidation request to check if the ETag of the requested content has changed.

#4 The Cache Server Sends a Request with the Old ETag Value in the If-None-Match Header
GET /foo/bar/fun.html HTTP/1.1
If-None-Match: "1aa008f-2d-50a3559482cc0"
Host: www.origin.com

If the content has changed (meaning, the new response would not have had the same ETag) the server MUST respond with the up-to-date content, usually in the body of a 200 OK response.

#5 The Origin Responds with the Modified Content and a New ETag
HTTP/1.1 200 OK
Date: Sun, 18 Dec 2014 3:22:44 GMT
Server: Apache/2.2.15 (Red Hat)
Last-Modified: Sun, 14 Dec 2014 23:18:51 GMT
Cache-Control: max-age=604800
Content-Length: 49
Connection: close
Content-Type: text/html; charset=UTF-8

<!DOCTYPE html>This is NOT a fun file

If the content did not change (meaning, the response would have had the same ETag) the server SHOULD respond with a 304 Not Modified. In most cases, the server will also send back an ETag header, since the client is allowed to send multiple ETag values in its If-None-Match header to check against multiple cached versions of the content, and the ETag will tell it which specifically is the current version. This is a very rare use case, and ATS will not make use of this feature without a plugin to modify its behavior.

#6 The Content has not been Modified so the Server Indicates the Cached Version is Up-To-Date
HTTP/1.1 304 Not Modified
Date: Sun, 18 Dec 2014 3:22:44 GMT
Server: Apache/2.2.15 (Red Hat)
Last-Modified: Sun, 14 Dec 2014 23:18:51 GMT
ETag: "1aa008f-2d-50a3559482cc0"
Cache-Control: max-age=604800
Connection: close

format: plain


text:
Elementary Algebra

$7ab(2ab^2+5b-7a^2)$
Factoring the $GCF= 7ab ,$ the given expression, $14a^2b^3+35ab^2-49a^3b ,$ is equivalent to \begin{array}{l}\require{cancel} 7ab(2ab^2+5b-7a^2) .\end{array}


text:
# Mapping Canadian Center for Climate Modeling and Analysis (CCCma) NetCDF files with Basemap¶

There are plenty of tutorials about Basemap using NetCDF (.nc) files, but CCCma files are in a special format. It took me a while to get everything working, so I thought I'd share my code in case anyone else is in the same situation.

Note that the only datasets I've tried this on are from the Fourth Generation Canadian Regional Climate Model (CanRCM4) > Second Generation Earth System Model (CanESM2) > RCP 8.5 category. I do not know if other models have their NetCDF files and data within organized the same way; tweaking may be necessary.

Note that although this data is from Environment Canada, climate models from around the world can be found.

The sample file used in this notebook is snc_NAM-44_CCCma-CanESM2_rcp85_r1i1p1_CCCma-CanRCM4_r2_day_20410101-20451231.nc

It contains percent snow cover for most of North America for every day from the years 2041 to 2045. Environment Canada has files projecting many different kind of atmospheric, land and oceanic data.

### 2. Choose what file and day you wish to use¶

This will be the only cell you need to enter values into. All the other cells can just be run, they will reference these values.

In [1]:
my_filename = ('snc_NAM-44_CCCma-CanESM2_rcp85_r1i1p1_'
'CCCma-CanRCM4_r2_day_20410101-20451231.nc')
# for this demo, we will see where it will be a white christmas in 2041.
my_year, my_month, my_day = (2041, 12, 25)

In [2]:
# calculations based on the above values:

# to increase compatibility with Python 3.x:
from __future__ import print_function
import re

# extracts variable name from beginning of filename:
my_variable = my_filename[:my_filename.find('_')]

print("my_variable = {}".format(my_variable))

first_year = int(re.search(('([12][90][0-9]{2})[01][0-9]'
'[0-3][0-9]\-[12][90][0-9]{2}[01][0-9][0-3][0-9]\.nc'),
my_filename).group(1))
print("first year in .nc file = {}".format(first_year))

month_lengths = (0,31,28,31,30,31,30,31,31,30,31,30)
month_cumulative = []
counter = 0
for length in month_lengths:
counter += length
month_cumulative.append(counter)
print("month_cumulative = {}".format(month_cumulative))

days_elapsed = (365 * (my_year - first_year) +
month_cumulative[my_month - 1] + my_day)
print(("{} days elapsed between Jan. 1, {} and specified date"
"of {}-{}-{}").format(days_elapsed, first_year,
my_year, my_month, my_day))
print("(leap days are not counted)")

my_variable = snc
first year in .nc file = 2041
month_cumulative = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
359 days elapsed between Jan. 1, 2041 and specified dateof 2041-12-25
(leap days are not counted)

### 3. Extract data from .nc file¶

In [3]:
import netCDF4
# netCDF4 is not part of standard Python,
import numpy as np

ncfile = netCDF4.Dataset(my_filename, 'r')

# Let's have a look at this file.
print("Attributes:")
print(ncfile.ncattrs())
print("\nVariables:")
print(ncfile.variables)

Attributes:
[u'title', u'institution', u'institute_id', u'contact', u'Conventions', u'experiment', u'experiment_id', u'driving_experiment', u'driving_model_id', u'driving_model_ensemble_member', u'driving_experiment_name', u'forcing', u'model_id', u'creation_date', u'rcm_version_id', u'project_id', u'CORDEX_domain', u'frequency', u'product', u'CCCma_runid', u'references', u'history', u'data_licence']

Variables:
OrderedDict([(u'time', <netCDF4.Variable object at 0x0000000003B986A8>), (u'rlon', <netCDF4.Variable object at 0x0000000003B98730>), (u'rlat', <netCDF4.Variable object at 0x0000000003B987B8>), (u'lon', <netCDF4.Variable object at 0x0000000003B98840>), (u'lat', <netCDF4.Variable object at 0x0000000003B988C8>), (u'rotated_pole', <netCDF4.Variable object at 0x0000000003B98950>), (u'snc', <netCDF4.Variable object at 0x0000000003B989D8>)])

We are interested in the following variables:

• lon: an array of longitudes for a 130 x 155 grid

• lat: an array of latitudes for a 130 x 155 grid

Note: the grid is made up of cells approximately 0.44 degrees on a side, but the grid is not exactly aligned north-south or east-west; that is why there are 130x155 each of longitude and latitude

snc: a 1825x130x155 grid of snow cover from 0 to 100 percent.

The first dimension is time, measured in days since December 1, 1949 NOT INCLUDING LEAP DAYS. In other words, there are exactly 36500 days between December 1, 1949 and December 1, 2049.

In the 'time' variable, which we do not need to use, the first value is 33246.5 days (half a day is added to make the time noon, which is unambiguously in the middle of the day instead of at the cusp between two days). We will verify this in the next cell.

In [4]:
nc_lons = np.array(ncfile.variables['lon'])
nc_lats = np.array(ncfile.variables['lat'])
nc_vars = np.array(ncfile.variables[my_variable])

print("Shape of nc_lons: {}".format(nc_lons.shape))
print("Shape of nc_lons: {}".format(nc_lats.shape))
print("Shape of nc_vars before specifying day: {}".\
format(nc_vars.shape))
nc_vars = nc_vars[days_elapsed]
print("Shape of nc_vars after specifying day: {}".\
format(nc_vars.shape))
print("Starting day of file: {}".format(\
ncfile.variables['time'][0]))

Shape of nc_lons: (130L, 155L)
Shape of nc_lons: (130L, 155L)
Shape of nc_vars before specifying day: (1825L, 130L, 155L)
Shape of nc_vars after specifying day: (130L, 155L)
Starting day of file: 33246.5

In [5]:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
%matplotlib inline

fig = plt.figure(figsize=(8,8))
m = Basemap(width=6000000,height=4000000,
resolution='l',projection='stere',\
lon_0=-93,lat_0=41, area_thresh=1000)
lakes=True)
m.drawcoastlines()
m.drawstates()
m.drawcountries()
parallels = np.arange(0., 90, 10.)
m.drawparallels(parallels,labels=[1,0,0,0],fontsize=10)
meridians = np.arange(180.,360.,10.)
m.drawmeridians(meridians,labels=[0,0,0,1],fontsize=10)
x, y = m(nc_lons, nc_lats)
clevs = range(1,101)
cs = m.contourf(x,y,nc_vars,clevs,cmap=plt.cm.Greens_r)


text:
NEW
New Website Launch
Experience the best way to solve previous year questions with mock tests (very detailed analysis), bookmark your favourite questions, practice etc...

## GATE ECE 2015 Set 2

Exam Held on Thu Jan 01 1970 00:00:00 GMT+0000 (Coordinated Universal Time)
Click View All Questions to see questions one by one or you can choose a single question from below.

## GATE ECE

If the circuit shown has to function as a clamping circuit, which one of the fol...
The diode in the circuit given below has VON = 0.7V but is ideal othe...
In the ac equivalent circuit shown, the two BJTs are biased in active re...
In the circuit shown, VO = VOA for switch SW in position A...
In the bistable circuit shown, the ideal opamp has saturation levels of $$\pm 5... For the voltage regulator circuit shown, the input voltage (Vin) is 2... Assuming that the op-amp in the circuit shown below is ideal, the output voltage... A zero mean white Gaussian noise having power spectral density$${{{N_0}} \over ...
$$\mathop {\left\{ {{X_n}} \right\}}\nolimits_{n = - \infty }^{n = \infty }$$ ...
Let $$X \in \left\{ {0,1} \right\}$$ and $$Y \in \left\{ {0,1} \right\}$$ be two...
A sinusoidal signal of amplitude A is quantized by a uniform quantizer. Assume t...
Consider a binary, digital communication system which uses pulses g (t) and − g ...
By performing cascading and/or summing/differencing operations using transfer fu...
For the signal flow graph shown in the figure, the value of $$\frac{\mathrm C\le... A unity negative feedback system has an open–loop transfer function$$G\left(s\r...
The output of a standard second–order system for a unit step input is given as $... The transfer function of a mass-spring damper system is given by $${\rm{G(s) = }... The state variable representation of a system is given as$$$\eqalign{ & \...
A function of Boolean variables X,Y and Z is expressed in terms of the min-terms...
In the figure shown, the output ܻ is required to be ܻ Y=AB+ $$\overline C$$$$\o... A 1-to-8 demultiplexer with data input D$$_{in}$$, address inputs S$$_{0}$$, S... A mod-n counter using a synchronous binary up-counter with synchronous clear inp... The figure shows a binary counter with synchronous clear input. With the decodin... In a source free region in vacuum, if the electrostatic potential$$\varphi\;=\;...
The electric field of a uniform plane electromagnetic wave is $$\vec E = \left... The electric field intensity of a plane wave propagating in a lossless non-magne... An air-filled rectangular waveguide of internal dimension$$a\,\,cm\,\, \times \...
Two half-wave dipole antennas placed as shown in the figure are excited with sin...
An n–type silicon sample is uniformly illuminated with light which generates 10<...
A piece of silicon is doped uniformly with phosphorous with a doping concentrati...
A dc voltage of 10V is applied across an n–type silicon bar having a rectangular...
In a MOS capacitor with an oxide layer thickness of 10 nm, the maximum depletion...
The value of $$'x'$$ for which all the eigenvalues of the matrix given below are...
The value of the integral $$\int_{ - \infty }^\infty {12\,\,\cos \left( {2\pi t... Let the random variable$$X$$represent the number of times a fair coin needs to... Let$$\,\,X \in \left\{ {0,1} \right\}\,\,$$and$$\,\,Y \in \left\{ {0,1} \righ...
Ram and Ramesh appeared in an interview for two vacancies in the same department...
The general solution of the differential equation $$\,\,{{dy} \over {dx}} = {{1 ... Consider the differential equation$$\,\,{{dx} \over {dt}} = 10 - 0.2\,x$$with ... Let$$f\left( z \right) = {{az + b} \over {cz + d}}.$$If$$f\left( {{z_1}} \rig...
If $$C$$ denotes the counter clockwise unit circle. The value of the contour int...
The bilateral Laplace transform of a function
$$f\left( t \right) = \left\{... In an 8085 microprocessor, which one of the following instructions changes the c...
In the circuit shown, the Norton equivalent resistance (in Ω) across terminal... In the circuit shown, the initial voltages across the capacitors C1 a... The voltage (VC) across the capacitor (in Volts) In the network shown... The 2-port admittance matrix of the circuit shown is given by <img class="quest... The bilateral Laplace transform of a function$$f\left( t \right) = \left\{ {\ma...
Let x(t) = a s(t) +s(-t) with s(t) = $$\beta {e^{ - 4t}}u\left( t \right)$$, whe...
Two casual discrete-time signals $$x\left[ n \right]$$ and $$y\left[ n \right]$$...
The output of a standrad second-order system for a unit step input is given as $... Input x(t) and output y(t) of an LTI system are related by the differential equ... The value of the integral $$\int_{ - \infty }^\infty {12\,\cos (2\pi )\,{{\sin ... The signal$$\cos \left( {10\pi t + {\pi \over 4}} \right)$\$ is ideally sampl...

## General Aptitude

Ram and Ramesh appeared in an interview for two vacancies in the same department...

### Joint Entrance Examination

JEE Main JEE Advanced WB JEE

### Graduate Aptitude Test in Engineering

GATE CSE GATE ECE GATE EE GATE ME GATE CE GATE PI GATE IN

NEET

Class 12


text:
Find all School-related info fast with the new School-Specific MBA Forum

 It is currently 30 Aug 2016, 06:47

GMAT Club Daily Prep

Thank you for using the timer - this advanced tool can estimate your performance and suggest more practice questions. We have subscribed you to Daily Prep Questions via email.

Customized
for You

we will pick new questions that match your level based on your Timer History

Track

every week, we’ll send you an estimated GMAT score based on your performance

Practice
Pays

we will pick new questions that match your level based on your Timer History

Events & Promotions

Events & Promotions in June
Open Detailed Calendar

Show Tags

05 Mar 2013, 04:57
If you do end up getting an admit from Ross:

Ross for sure. From my interactions with current students at both Ross and USC, Ross looks so much better for general management/consulting. Unlike USC, Ross has all the top consulting firms visiting its campus. In fact this is pretty evident from the employment reports as well. The dollars saved are definitely not worth that huge a risk if you want to go in consulting.

Moreover, there is quite a significant 'prestige' gap as well. We are talking about a school in top 8-16 and a school that lies outside top 20. I understand where you are coming from in giving this a thorough thought, but, its a no-brainer from a third person's perspective.

good luck.
Manager
Joined: 15 Oct 2010
Posts: 69
Followers: 0

Kudos [?]: 9 [0], given: 1

Show Tags

06 Mar 2013, 06:46
kingfalcon wrote:
You said you already work at a top-tier MC. Have you tried reaching out to your colleagues or HR to see which school they suggest? For example, if the hiring manager at your firm doesn't really look at Marshall, but views Ross as a core school, I would think that would make your decision easy.

Kingfalcon is spot on with this.
_________________

aerien

Note: I do not complete individual profile reviews. Please use the Admissions Consultant or Peer Review forums to get feedback on your profile.

GMAT Club Premium Membership - big benefits and savings

Manager
Joined: 15 Oct 2010
Posts: 69
Followers: 0

Kudos [?]: 9 [0], given: 1

Re: USC Marshall with $$Vs. Mich Ross without scholarship [#permalink] Show Tags 06 Mar 2013, 07:04 kingfalcon wrote: You said you already work at a top-tier MC. Have you tried reaching out to your colleagues or HR to see which school they suggest? For example, if the hiring manager at your firm doesn't really look at Marshall, but views Ross as a core school, I would think that would make your decision easy. I did ask around but they are not willing to divulge if they prefer one college over another. They gave me their usual HR nonsense, "We care about talent and not where it i comes from". Working in India, I personally know many from the Harvards and Kelloggs of the world, while none are from USC. However, this is the trend in India and might be different otherwise. Looking at the employment statistics of both the colleges over the last 5 years, I know that the top 6 consulting firms have consistently recruited at Ross, while people from USC going to these firms have been few and far in between. It is difficult to gauge if this is due to the preference of these firms or due to the sheer quality of students that Ross churns out each year. Director Joined: 26 May 2010 Posts: 719 Location: United States (MA) Concentration: Strategy Schools: MIT Sloan - Class of 2015 WE: Consulting (Mutual Funds and Brokerage) Followers: 18 Kudos [?]: 204 [0], given: 642 Re: USC Marshall with$$$Vs. Mich Ross without scholarship [#permalink] Show Tags 06 Mar 2013, 07:12 Ah, I see. Well, that's a shame. I did a lot of research into placements when I applied, too. I often saw Ross mentioned alongside Haas/Fuqua/Darden as schools that are very strong in consulting recruiting, albeit a little less so than the M7 and Tuck. I can't say I ever saw Marshall mentioned in the same breath, honestly. Manager Status: CBS - Class of 2015 Joined: 05 Sep 2012 Posts: 147 Location: United States Followers: 2 Kudos [?]: 25 [0], given: 96 Re: USC Marshall with $$Vs. Mich Ross without scholarship [#permalink] Show Tags 06 Mar 2013, 07:34 slugabedd wrote: Hi Guys, I am kind of in a fix. First up, I have 3 years of mixed experience in E-learning and an year in MC with a top for MC firm. I want to continue working in MC post MBA. I have received admits from Marshall with a hefty scholarship and anticipate an admit from Ross as well. The big question is given my experience, and future goals, should I take up Ross (a dream school for people who want to go the consulting way) without any scholarship or should I take up USC Marshall. The question is pretty simple, is the extra money spent on Ross justified for the opportunities it offers and brand image?? definitely reach out to current students as well (i didn't hear the best things about the direction USC is going)... but if recruiting is strong there then the money might be worth it... and if you do get into Ross w/ no make sure to let them know about your usc offer and see if they'll come up with anything how much is$$$ to marshall btw if you dont mind sharing?
Moderator
Joined: 10 May 2010
Posts: 823
Followers: 25

Kudos [?]: 389 [0], given: 192

Re: USC Marshall with $$Vs. Mich Ross without scholarship [#permalink] Show Tags 06 Mar 2013, 07:56 It really depends on the percentage of scholarship. Anything above 2/3 of tuition and I would go with USC. Ross has stopped offering loans without US Cosigner that maybe a point you need to consider. Ross is not in same league as M7. As Columbia Dean said schools outside Top 5 are not performing at the same level as Top 5 while the tuition is the same.Another point you need to consider is the location of USC. How important is MC as a Career to you ? I have seen people in schools ranging 8-20 in MC Career outside US.With USC you can land a job at Google, Facebook etc. In worst case return to India and join the MC firm in a higher position. _________________ The question is not can you rise up to iconic! The real question is will you ? Manager Joined: 15 Oct 2010 Posts: 69 Followers: 0 Kudos [?]: 9 [0], given: 1 Re: USC Marshall with$$$Vs. Mich Ross without scholarship [#permalink] Show Tags 06 Mar 2013, 12:50 kingfalcon wrote: Ah, I see. Well, that's a shame. I did a lot of research into placements when I applied, too. I often saw Ross mentioned alongside Haas/Fuqua/Darden as schools that are very strong in consulting recruiting, albeit a little less so than the M7 and Tuck. I can't say I ever saw Marshall mentioned in the same breath, honestly. That is exactly what lands me in a fix. What I am unable to understand is if this brand value and placement record that Ross brings to the table worth the extra odd$50k. Anyway, I think I would have to go more by instinct than anything else to make this decision. thanks.
Manager
Joined: 15 Oct 2010
Posts: 69
Followers: 0

Kudos [?]: 9 [0], given: 1

Show Tags

06 Mar 2013, 12:57
AbhiJ wrote:
It really depends on the percentage of scholarship. Anything above 2/3 of tuition and I would go with USC. Ross has stopped offering loans without US Cosigner that maybe a point you need to consider. Ross is not in same league as M7. As Columbia Dean said schools outside Top 5 are not performing at the same level as Top 5 while the tuition is the same.Another point you need to consider is the location of USC. How important is MC as a Career to you ? I have seen people in schools ranging 8-20 in MC Career outside US.With USC you can land a job at Google, Facebook etc. In worst case return to India and join the MC firm in a higher position.

While MC is the natural progression at the moment, it would be unfair to say that it is set in stone. But I believe coming from the field of MC, my best opportunities lie in the field of MC. So let me ask you another question. On a scale of 1-10, how difficult is it to completely switch industries/nature of work post MBA?

I do understand that USC will also throw open opportunities, especially in the entertainment industry. What is the best way to contact current students at USC and Ross. I tried emailing them from the addresses provided on the school websites but did not get any response.
Director
Joined: 26 May 2010
Posts: 719
Location: United States (MA)
Concentration: Strategy
Schools: MIT Sloan - Class of 2015
WE: Consulting (Mutual Funds and Brokerage)
Followers: 18

Kudos [?]: 204 [0], given: 642

Show Tags

07 Mar 2013, 00:41
slugabedd wrote:
AbhiJ wrote:
It really depends on the percentage of scholarship. Anything above 2/3 of tuition and I would go with USC. Ross has stopped offering loans without US Cosigner that maybe a point you need to consider. Ross is not in same league as M7. As Columbia Dean said schools outside Top 5 are not performing at the same level as Top 5 while the tuition is the same.Another point you need to consider is the location of USC. How important is MC as a Career to you ? I have seen people in schools ranging 8-20 in MC Career outside US.With USC you can land a job at Google, Facebook etc. In worst case return to India and join the MC firm in a higher position.

While MC is the natural progression at the moment, it would be unfair to say that it is set in stone. But I believe coming from the field of MC, my best opportunities lie in the field of MC. So let me ask you another question. On a scale of 1-10, how difficult is it to completely switch industries/nature of work post MBA?

I do understand that USC will also throw open opportunities, especially in the entertainment industry. What is the best way to contact current students at USC and Ross. I tried emailing them from the addresses provided on the school websites but did not get any response.

Show Tags

07 Mar 2013, 11:54
old1442 wrote:

Yes. It might still give you leverage. In either case, you have nothing to lose for trying except perhaps an awkward conversation. 50% is decent so I'd def see if Ross might come back with somethingggg... as far as reaching out to students, contact admissions or the clubs websites.. i was able to contact 3 or so. let me know if you need referrals

Yup, some referrals might be helpful. Also, any suggestions on how to approach Adcom with such a proposition will also be helpful. Thanks for all your help. Appreciate it.
Manager
Joined: 15 Oct 2010
Posts: 69
Followers: 0

Kudos [?]: 9 [0], given: 1


text:
# C-R of Laurent Series

## Main Question or Discussion Point

When doing complex contour integration one can use the C-R formula or the Laurent series and find the first coefficient of the priciple part. What are the selection criteria for choosing these methods?

Regards,

Hob

HallsofIvy
Homework Helper
What do you mean by "use the Cauchy-Riemann equations to do a contour integral"? Are you referring to actually integrating around the contour as opposed to summing the residues inside the contour?

Hi, I mean summing within the contour.

$$2 \pi$$ x $$\sum residues$$ = Integral around the contour.

You can also use the Laurent Expansion and finding the first principle coefficient.

I am unsure what method you would use when presented with a complex integration,

Regards,

Last edited:
HallsofIvy
??The "first principle coefficient" of the Laurent expansion, around pole $z_0$, by which I think you mean the coefficient of $z^{-1}$, is the residue at that $z_0$. They are the same method.


text:
# How to tf transform a processed data from sensors

Hello everyone,

Sorry if this question is an easy one. I'm still learning more about ROS.

So, as the title specifies, I would like to transform a sensor reading that has been processed using a call-back function. So, the reading comes from a camera --> gets processed in the callback function and I get an interim result. I would like to transform this interim result from camera_frame to map frame using tf2. I'm not sure how to do that.

#include blah blah ...

void positionCallBack(const gb_visual_detection_3d_msgs::BoundingBoxes3d Boxes3d)
{
.
.
// process the reading from "/darknet_ros_3d/bounding_boxes"  --> i have done this
// i would like to transform the result from the above step ( from camera_frame to map_frame)
.
.
}
int main(int argc, char **argv){
.
.
.
ros::Subscriber sub1 = nh.subscribe("/darknet_ros_3d/bounding_boxes", 1, positionCallBack );
.
.
.
ros:spin();
return 0;
}

I was reading this tutorial but it doesn't specify how to do it for two messages that should be synchronous. I didn't understand it that much too.

So, I would appreciate any help. An illustration using a snippet of code would be very helpful.

buffer_.transform(*point_ptr, point_out, target_frame_);


text:
# Is it important to use arrows as bonds in writing coordination compounds? [closed]

Why are the coordination compounds representated by arrows? Is it necessary to write every coordination compounds with the arrow side of the bond facing the metal ion and the other part the ligand?


text:
# How to skip “no.,” when using ieee biblatex style with biber? [duplicate]

Consider the bibliography file biblio.bib

@article{Sutter-TheFreeLunchIsOver,
author={<NAME>},
title={The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software},
journal={Dr.\ Dobb's Journal},
year={2005},
volume={30},
number={3},
month= mar
}

and the latex file main.tex

\documentclass{article}
%\documentclass{IEEEtran}
\usepackage[backend=biber,bibstyle=ieee]{biblatex}
\begin{document}
\cite{Sutter-TheFreeLunchIsOver}
\printbibliography
\end{document}

No matter whether we are using the article class or the ieeetran class, a "no." without a number is printed to the PDF obtained from pdflatex main && biber main && pdflatex main:

I have no idea why the number entry (number={3}) in the .bib file is ignored and whether the printing of "no." without a number is a bug or a feature. Apparently, it is hard to turn off, since the biblatex-ieee documentation also has this bug/feature as of March 2, 2017.

In any case, I'd like to avoid "no., " altogether or to have "no. 3," instead. Any help?

## marked as duplicate by moewe biblatex StackExchange.ready(function() { if (StackExchange.options.isMobile) return; $('.dupe-hammer-message-hover:not(.hover-bound)').each(function() { var$hover = $(this).addClass('hover-bound'),$msg = $hover.siblings('.dupe-hammer-message');$hover.hover( function() { $hover.showInfoMessage('', { messageElement:$msg.clone().show(), transient: false, position: { my: 'bottom left', at: 'top center', offsetTop: -7 }, dismissable: false, relativeToBody: true }); }, function() { StackExchange.helpers.removeMessages(); } ); }); }); Mar 22 '17 at 8:30

It's a bug of the style. The current definition in ieee.bbxis:

\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\newunit
\bibstring{number}%
\newunit
\printfield{eid}%
}

The \bibstring is wrong. It should be \printfield

So add the following definition to your header (after loading biblatex).

\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\newunit
\printfield{number}%
\newunit
\printfield{eid}%
}

The author is informed.

• @LeonMeier: The author uploads an update. In the next few days it should be available via your package manager. – <NAME> Mar 22 '17 at 11:42


text:
# The Horror! The Horror! How dare we discriminate against men, by listening to women?

For those of us who’ve learned to actually be aware of sexism and racism, it’s incredibly frustrating how the same stupid pathetic arguments about sexism keep getting regurgitated, over and over again, by clueless guys. It’s exhausting and frustrating to constantly answer the same stupid, bullshit arguments. But if it’s frustrating to a white guy like me, just imagine what it’s like for the people who are actually affected by it!

This rant is brought on by the fact that lately, there’s been a movement in the tech/engineering community to try to actually do something about the amount of sexism in the community, by trying to push conference organizers to include speakers outside the usual group of guys.

You see, it’s a sad fact that engineering, as a field, is incredibly sexist. We don’t like to admit it. Tons of people constantly deny it, and make excuses for it, and refuse to try to do anything about it. Many people in this field really, genuinely believe that technology is a true meritocracy: those of us who succeed because we deserve to succeed. We see ourselves as self-made: we’ve earned what we’ve got. Anyone else – anyone else – who worked as hard as we do, who’s as good as we are, would succeed as much as we have.

Unfortunately, that’s not reality. Women and minorities of all sorts have a much harder time in this community than the typical guy. But when you try to do anything about this, the meritocrats throw a tantrum. They get actively angry and self-righteous when anyone actually tries to do anything about it. You can’t actively try to hire women: that’s discriminating against the guys! You’re deliberately trying to hire inferior people! It’s not fair!

I am not exaggerating this. Here’s an example.

Summing it up, turning away qualified male candidates and accepting potentially less qualified female candidates just to meet a quota is not only sexist, but is a horrible face to put on the problem. My wife is a nurse. A female dominated field. I also own a construction company. A male dominated field. In neither field would you see a company or an organization suggest hiring one gender over the other to satisfy a ratio.

What exactly is being accomplished by limiting the speakers at an event, or your employee base to an equal male / female ratio? Turning away qualified candidates and hiring purely based on gender, or religion, or race? What does having a program like Women Who Code, PyLadies, Girls Who Code, Black Girls Code, etc… accomplish? The short answer; very little if anything. In fact, I believe groups like this have the potential actually do more harm than good. But I’m not here to debate the minutia of any of those groups so I’ll summarize;…

Seriously, I don’t think I’ve ever heard anyone seriously suggest that you should
turn away candidates based purely on gender, or race, or whatever.

What we do advocate is recognizing that there are people other than white guys in the world, and maybe we should actually include them once in a while.

The majority of people running tech conferences are white guys. When they think about inviting people to come speak, they’re naturally going to start off with a list of “Who do I know who’d be a good speaker?”. The nature of the tech community is that the vast majority of people that they immediately think of are going to be men – because the majority of people they’ve worked with, and the majority of people they’e seen speak at other conferences were men.

People love to handwave this, talking about how it’s just that the field is so male dominated. It’s true that it is, but there are many problems with that as an excuse:

1. The male domination of the field isn’t meritocratic. We discriminate against people who aren’t like us at every level – from elementary school teachers discouraging little girls from being interested in math, to college classmates harassing women in their classes, to people conducting job interviews and making hiring decisions.
2. The actual fraction of women who work in tech is much larger than the fraction of women in leadership, or who are invited to give talks at conferences.
3. There are a shocking number of women who are driven out of technology and engineering by harassment by their male coworkers.

People get really angry when we say thing like this. Part of it is that old meritocracy thing: you’re saying that I didn’t earn my success.

Guess what? You didn’t. Not entirely. No one succeeds solely on the basis of their own merit. There’s always a huge amount of luck involved – being in the right place, having the right body, having the right parents, having the right opportunities. Yes, hard work, talent, and skill helped you get to where you are. It’s a very large, very important factor in your success. But if you were born to a different family, with exactly the same abilities, you might not have ever had any chance at succeeding, despite equally hard work.

The other side of this is actually a sign of progress. We’ve come to accept that racism and sexism are bad. That’s a really good thing. But in our black-and-white way of seeing the world, we know that sexism is bad: therefore, if I’m sexist, I’m a bad person.

That’s not true. Sexism is a deeply ingrained attribute in our culture. It’s pretty much impossible to grow up in the US or in Europe, or in China, or in India, or in Africa, without being constantly immersed in sexist attitudes. You’re going to be exposed – and not just exposed, but educated in a way that teaches you to have the attitudes that come from your culture.

Recognizing that you’ve grown up in a sexist culture, and acknowledging that this had an effect on you and your attitudes doesn’t make you a bad person. It makes you human. Refusing to admit that your culture had any influence on you, and continuing to discriminate against people because you can’t admit that you might do something wrong? That’s what makes you a bad person.

I’ve told this story before, but it’s a damned good story, and it’s true, and it’s not hearsay: it’s my personal first-hand experience. It’s part of my own awakening to just how pervasive gender bias is.

A long time ago now, I worked for IBM Research. My third year working there, I volunteered to be the summer student coordinator for my department. The previous year, IBM Research had hired around 100 summer students, and exactly one of them was a woman. The vast majority were white guys, with a sizable minority of Chinese and Indian guys. The pool of candidates was nowhere near that skewed. It’s definitely true that men outnumber women in computer science by a sizable factor, but not 99 to 1. Our candidate pool was more like 5 men to 1 woman.

So, that year, the powers that be at the company decided that we needed to do something about it. What they decided to do was allocate a reasonable number of summer student slots to each department based on the departments budget, and they could use those slots to hire anyone they wanted. If they hired a candidate who was a woman or minority, they didn’t count against the budget. (Note that they did not reduce the number of students we were allowed to hire: they allocated based on the usual budget. They set up an additional budget for the extra students.)

My department was one of the smaller ones. We were allocated 5 slots for summer students. The day we started allowing people to request students, all 5 were gone within a couple of hours. The next day, the guy across the hall from me came to my office with a resume for a student he wanted to hire. Of course, it was a guy.

I told him that we couldn’t hire him – our budget was gone. But if he could find a woman, we didn’t need budget to hire her.

He threw a fit. It was the angriest I ever saw him. (Most of the time, he was a really nice, mellow guy, so he was really upset about his!) It was discrimination! Sexism! Unfair! He carefully went through the resume database looking for the best candidate, not the best male candidate. We were refusing to hire the most qualified candidate! On, and on, and on. I finally got rid of him, after pointing out at least a dozen times that I was just a lowly junior engineer, not someone who made the policy.

The next day, he was back in my office. He was practically bouncing off the walls: he’d gone back to the resume database, and he’d found a woman who was even better than the guy he’d wanted to hire.

This is the point of the whole story. He wasn’t some nasty, spiteful, misogynistic twit. He wasn’t being deliberately discriminatory. He wasn’t consciously screening out women’s resumes. But the fact is, when he went through the resume database without being forced to consider women, he’d eliminated the resumes of every single woman. He was going through a database of 1000s of resumes, and in that process of quickly skimming, he skipped over a more qualified candidate, because she had a woman’s name.

This is what happens in the real world. We don’t deliberately try to be sexists. We don’t act in a deliberately sexist or discriminatory way. But we’re part of a culture that has deeply ingrained sexist attitudes. We’re taught, by the way teachers treat boys and girls differently in school. We’re taught, by the way that society treats us differently. We absorb the message that when it comes to things like engineering, women are inferior. Most of the time, we don’t even really notice that we’ve absorbed that. But we have. It’s been hammered into us so many times, in so many ways, in so many settings – it would be shocking if we didn’t pick it up.

I’m using my experience at IBM as an example, partly because it’s such a vivid demonstration, and partly because it’s impossible to figure out the real names of anyone involved. But I’ve seen the same kind of thing happen in every job I’ve had where I’ve been involved with hiring. It’s not usually deliberate, but it’s very real.

The point of things like the pledges to not attend conferences that don’t have women and minorities as speakers and participants isn’t because we want to exclude the most qualified speakers. It isn’t because we want to force conference planners to include less qualified speakers. It’s because we know that it’s easy, without trying, to exclude some of the most qualified speakers, because the people running the conference don’t notice them.

They’re just like my friend at IBM: they’re not deliberately trying to exclude women. But if they don’t actively try to think about people outside the usual pool of guys like them, they won’t include any. And if they don’t, then they’re priming the next round of conference planners to do the same: if everyone you’ve seen give a great talk at a conference is a guy, then when you’re planning a conference and you try to think of some great speakers to invite, then who’s going to come to mind?

I’m particularly annoyed at the snipe that the author of the quote up above takes at “Girls Who Code”. GWC is a great organization. If you actually take the time to listen to the people who run it, you’ll hear some appalling true stories, about things like young women who go to college to study computer science, and on their first day in class, have classmates telling them that they’re in the wrong classroom: this is a programming class, not a class for chicks.

We have a community where we treat women like that. And then we rant and rave about how horribly unfair it is to do anything about it.

# Roasted Vegetable Recipes

One more post of recipes, and then I’ll get back to math, I promise!

One of my proudest accomplishments that somehow, I successfully taught my children to not just eat, but to love vegetables. I think part of that is genetic – neither of them are supertasters. But the other part of it is a combination of training and cooking.

The training side is, I think, simple. Most adults are convinced that vegetables are icky but necessary. They’re wrong. But they actively teach that to their children. They make eating vegetables, even when they’re delicious, into a chore.

The other side is that because most adults think that veggies are icky, they cook them in ways that don’t taste good.

Take one of my favorite vegetables as an example: brussel sprouts. My children will actually fight over who gets the last bite of brussel sprouts. When we’re talking about what to make for dinner, they beg me to make them! But when I mention this to most people, they act like I’m absolutely insane: brussel sprouts are gross!

If you take a bunch of brussel sprouts, and throw it into boiling water for 20 minutes, what you get is a stinky, pungent, bitter, mushy, revolting little ball of green awfulness. But, if you slice them thin, and saute them in a smoking hot pan with olive oil, salt and pepper, and a bit of garlic, until the edges start to turn brown, what you get is absolutely amazing: sweet, crisp, and wonderful.

So, what I’m going to share here is a couple of vegetable side dishes I made in the last week, which were fantastic. All of them are roasted vegetables – for some reason, people don’t think about roasting veggies, but it’s often one of the easiest and tastiest ways to cook them.

### First: simple roasted brussel sprouts.

1. Preheat your oven to 450 degrees.
2. Take a pound of brussel sprouts, and cut them into quarters.
3. Toss them with enough olive out to coat them, but not drench them.
4. Sprinkle generously with salt and pepper.
5. Spread them out over a baking sheet.
6. Put them into the hot oven, for around 10 minutes. After ten minutes, take them and and turn them. If they look really well done and brown on the edges, then they’re done; if not, put them in for up to another 10 minutes.
7. Take them out, and toss them with a teaspoon or two of balsamic vinegar.

That’s it – and they’re amazing.

### Next: Chili Glazed Roasted Sweet Potatoes

This one I’m particularly proud of. I absolutely love sweet potatoes. But normally, my wife won’t touch them – she thinks they’re gross. But this recipe, she actually voluntarily had multiple helpings! It’s sweet, salty, and spicy all at the same time, in a wonderful balance.

1. Take a couple of pounds of sweet potatoes, peel them, and cut them into cubes about 2 inches on a side.
2. Toss them with olive oil to coat.
3. Mix together 1 teaspoon of salt, 1/4 cup of brown sugar, and one generous teaspoon of kochukaru (korean chili powder).
4. Sprinkle it over the oiled sweet potatoes, and toss them so they’re all coated.
5. Spread onto a baking sheet, and cook at 350 for about 30 minutes, turning them at least once. They’re done when the outside is nicely browned, and they’ve gotten soft.

### Finally: roasted cauliflower

1. Preheat your oven to 450.
2. Take a whole head of cauliflower, and break it into small florets. Put them into a bowl.
3. Take a half of an onion, and slice it thin. Toss the onions with the cauliflower.
4. Coat the cauliflower and onions with olive oil – don’t drench them, but make sure that they’ve got a nice coat.
5. Sprinkle generously with salt and pepper.
6. Spread onto a baking sheet, and into the oven.
7. After 10 minutes, take them out, and turn them, then back in for another 10 minutes.

All three of these got eaten not just by adults, but by kids. The brussel sprouts and sweet potatoes were eaten not just by my kids, but by the kids of other people too, so it’s not just the crazy Chu-Carroll’s who thought they were delicious!

# A Recipe for Gefilte Fish

My mom died last friday night, a little bit after midnight. I’ll probably write something about her, when I’m feeling up to it, but not yet. Being a jewish dad, when I’m depressed, what do I do? I cook.

Last year, for the first time ever, I made homemade gefilte fish for Pesach. If you didn’t grow up Jewish, odds are you’re not familiar with gefilte fish. It’s a traditional ashkenazi (that is, eastern european jewish) dish. It was originally a ground fish mixture cooked inside the body cavity of a fish. It evolved into just the stuffing mixture, simmered in a fish stock. These days, most people just buy it in a jar. If you grew up with it, even out of the jar, it’s a treat; if you didn’t, and you’ve been exposed to it, it looks and smells like dog food.

Honestly, I love the stuff. In general, I’m not a big fan of most traditional Jewish foods. But there’s something about gefilte fish. But even as I enjoy it, I can see the gross side. It’s crazy overprocessed – I mean, come on – it’s fish that will keep, unrefrigerated, for years!

But made fresh, it’s a whole different kettle of fish. This stuff is really good. You’ll definitely recognize the flavor of this as gefilte fish, but it’s a much cleaner flavor. It tastes like fish, not like stale overprocessed fish guts.

So this year, I’m depressed over my mom; after the funeral, I sent my wife out to buy me a bunch of fish, and I made up a batch. This time, I kept notes on how I did it – and it turned out even better than last year.

It’s got a bit of a twist in the recipe. I’m married to a chinese woman, so when the Jewish holidays roll around, I always try to find some way of putting an asian spin on the food, to reflect the nature of our family. So when I cooked the gefilte fish, instead of cooking it in the traditional simple fish broth, I cooked it in dashi. It’s not chinese, but it’s got a lot of flavors that are homey for a chinese person.

So… here’s the recipe for Mark’s homemade salmon dashi gefilte fish!

Ingredients

• 2 whole pike, gutted and cleaned, but with skin, head, and bones
• 2 whole red snapper, gutted and cleaned, but with skin, head and bones
• 2 pounds salmon filet
• 3/4 to 1 cup matzoh meal
• 3 eggs
• salt (to taste)
• 2 sheets of konbu (japanese dried kelp)
• 2 handfulls dried shaved bonito
• 4 or 5 slices of fresh ginger, crushed
• 2 onions
• 2 large carrots

(For the fish for this, you really want the bones, the skins, and the head. If you’ve got a fish market that will fillet it for you, and then give you all of the parts, have them do that. Otherwise, do it yourself. Don’t worry about how well you can fillet it – it’s going to get ground up, so if you do a messy job, it’s not a problem.)

Instructions

1. First thing, you need to make the stock that you’ll eventually cook the gefilte fish in:
1. If the fish store didn’t fillet the fish for you, you need to remove the filets from the fish, and then remove the skin from the filets.
2. Put all of the bones, skin, and head into a stock pot.
3. Cover the fish bones with with water.
4. Add one onion, and all of the garlic and ginger to the pot.
5. Heat to a boil, and then simmer for two hours.
6. Strain out all of the bones, and put the stock back into the pot and bring to a boil.
7. Add the kombu to the stock, and let it simmer for 30 minutes.
8. Remove from the heat, and strain out the kombu.
9. Add the bonito (off the heat), and let it sit for 15 minutes.
10. Strain out the bonito and any remaining solids.
11. Add salt to taste.
2. While the stock is simmering, you can get started on the fish:
1. Cut all of the fish into chunks, and put them through a meat grinder with a coarse blade (or grind them coarsely in batches in best food processor you can get your hands on.
r.)
2. Cut the onion and carrots into chunks, and put them through the grinder as well.
3. Beat the eggs. Fold the eggs and the salt into the ground fish mixture.
4. Add in maztoh meal gradually, until the mixture holds together.
5. Refrigerate for two hours.
3. Now you’re ready to cook the gefilte fish!
1. Heat the stock up to a gentle simmer.
2. Scoop up the fish into balls containing about two tablespoons of the fish mixture, and roll them into balls.
3. Add the fish balls into the simmering stock. Don’t overcrowd the pot – add no more than can fit into the pot in a single layer.
4. Simmer for 10-15 minutes until the fish balls are cooked through.
5. Remove the balls from the simmering liquid. Repeat until all of the fish is cooked.
6. Put all the cooked fish balls back into the stock, and refrigerate.

# The Heartbleed Bug

There’s a lot of panic going around on the internet today, about something called the Heartbleed bug. I’ve gotten questions, so I’m giving answers.

### I’ve heard lots of hype. Is this really a big deal?

Damn right it is!

It’s pretty hard to wrap your head around just how bad this actually is. It’s probably even more of a big deal that the hype has made it out to be!

This bug affects around 90% of all sites on the internet that use secure connections. Seriously: if you’re using the internet, you’re affected by this. It doesn’t matter how reputable or secure the sites you connect to have been in the past: the majority of them are probably vulnerable to this, and some number of them have, in all likelihood, been compromised! Pretty much any website running on linux or netbst, using Apache or NGINX as its webserver is vulnerable. That means just about every major site on the net.

The problem is a bug in a commonly used version of SSL/TLS. So, before I explain what the bug is, I’ll run through a quick background.

### What is SSL/TLS?

When you’re using the internet in the simplest mode, you’re using a simple set of communication protocols called TCP/IP. In basic TCP/IP protocols, when you connect to another computer on the network, the data that gets sent back and forth is not encrypted or obscured – it’s just sent in the clear. That means that it’s easy for anyone who’s on the same network cable as you to look at your connection, and see the data.

For lots of things, that’s fine. For example, if you want to read this blog, there’s nothing confidential about it. Everyone who reads the blog sees the same content. No one is going to see anything private.

But for a lot of other things, that’s not true. You probably don’t want someone to be able to see your email. You definitely don’t want anyone else to be able to see the credit card number you use to order things from Amazon!

To protect communications, there’s another protocol called SSL, the Secure Sockets Layer. When you connect to another site that’s got a URL starting with https:, the two computers establish an encrypted connection. Once an SSL connection is established between two computers, all communication between them is encrypted.

Actually, on most modern systems, you’re not really using SSL. You’re using a successor to the original SSL protocol called TLS, which stands for transport layer security. Pretty much everyone is now using TLS, but many people still just say SSL, and in fact the most commonly used implementation of it is in package called OpenSSL.

So SSL/TLS is the basic protocol that we use on the internet for secure communications. If you use SSL/TLS correctly, then the information that you send and receive can only be accessed by you and the computer that you’re talking to.

Note the qualifier: if you use SSL correctly!

SSL is built on public key cryptography. What that means is that a website identifies itself using a pair of keys. There’s one key, called a public key, that it gives away to everyone; and there’s a second key, called a private key, that it keeps secret. Anything that you encrypt with the public key can only be decrypted using the private key; anything encrypted with the private key can only be decrypted using the public key. That means that if you get a message that can be decrypted using the sites public key, you know that no one except the site could have encrypted it! And if you use the public key to encrypt something, you know that no one except that site will be able to decrypt it.

Public key cryptography is an absolutely brilliant idea. But it relies on the fact that the private key is absolutely private! If anyone else can get a copy of the private key, then all bets are off: you can no longer rely on anything about that key. You couldn’t be sure that messages came from the right source; and you couldn’t be sure that your messages could only be read by an authorized person.

### So what’s the bug?

The SSL protocol includes something called a heartbeat. It’s a periodic exchange between the two sides of a connection, to let them know that the other side is still alive and listening on the connection.

One of the options in the heartbeat is an echo request, which is illustrated below. Computer A wants to know if B is listening. So A sends a message to B saying “Here’s X bytes of data. Send them back to me.” Then A waits. If it gets a message back from B containing the same X bytes of data, it knows B was listening. That’s all there is to it: the heartbeat is just a simple way to check that the other side is actually listening to what you say.

The bug is really, really simple. The attacker sends a heartbeat message saying “I’m gonna send you a chunk of data containing 64000 bytes”, but then the data only contains one byte.

If the code worked correctly, it would say “Oops, invalid request: you said you were going to send me 64000 bytes of data, but you only sent me one!” But what the buggy version of SSL does is send you that 1 byte, plus 63,999 bytes of whatever happens to be in memory next to wherever it saved the byte..

You can’t choose what data you’re going to get in response. It’ll just be a bunch of whatever happened to be in memory. But you can do it repeatedly, and get lots of different memory chunks. If you know how the SSL implementation works, you can scan those memory chunks, and look for particular data structures – like private keys, or cookies. Given a lot of time, and the ability to connect multiple times and send multiple heartbeat requests each time you connect, you can gather a lot of data. Most of it will be crap, but some of it will be the valuable stuff.

To make matters worse, the heartbeat is treated as something very low-level which happens very frequently, and which doesn’t transfer meaningful data. So the implementation doesn’t log heartbeats at all. So there’s no way of even identifying which connections to a server have been exploiting this. So a site that’s running one of the buggy versions of OpenSSL has no way of knowing whether or not they’ve been the target of this attack!

See what I mean about it being a big deal?

### Why is it so widespread?

When I’ve written about security in the past, one of the things that I’ve said repeatedly is: if you’re thinking about writing your own implementation of a security protocol, STOP. Don’t do it! There are a thousand ways that you can make a tiny, trivial mistake which completely compromises the security of your code. It’s not a matter of whether you’re smart or not; it’s just a simple statement of fact. If you try to do it, you will screw something up. There are just so many subtle ways to get things wrong: it takes a whole team of experts to even have a chance to get it right.

Most engineers who build stuff for the internet understand that, and don’t write their own cryptosystems or cryptographic protocols. What they do is use a common, well-known, public system. They know the system was implemented by experts; they know that there are a lot of responsible, smart people who are doing their best to find and fix any problems that crop up.

Imagine that you’re an engineer picking an implementation of SSL. You know that you want as many people trying to find problems as possible. So which one will you choose? The one that most people are using! Because that’s the one that has the most people working to make sure it doesn’t have any problems, or to fix any problems that get found as quickly as possible.

The most widely used version of SSL is an open-source software package called OpenSSL. And that’s exactly where the most bug is: in OpenSSL.

### How can it be fixed?

Normally, something like this would be bad. But you’d be able to just update the implementation to a new version without the bug, and that would be the end of the problem. But this case is pretty much the worst possible case: fixing the implementation doesn’t entirely fix the problem. Because even after you’ve fixed the SSL implementation, if someone got hold of your private key, they still have it. And there’s no way to know if anyone stole your key!

To fix this, then, you need to do much more than just update the SSL implementation. You need to cancel all of your keys, and replace them new ones, and you need to get everyone who has a copy of your public key to throw it away and stop using it.

So basically, at the moment, every keypair for nearly every major website in the world that was valid yesterday can no longer be trusted.

# Manifold are the Manifolds

In the stuff I’ve been writing about topology so far, I’ve been talking about topologies mostly algebraically. I’m not sure why, but for me, algebraic topology is both the most interesting and easy to understand bit of topology. Most people seem to think I’m crazy; in general, people seem to think that algebraic topology is hard. It must say something about me that I find other things much harder, but I’ll leave it to someone else to figure out what.

Despite the fact that I love the algebraic side, there’s a lot of interesting stuff in topology that you need to talk about, which isn’t purely algebraic. Today I’m going to talk about one of the most important ones: manifolds.

The definition we use for topological spaces is really abstract. A topological space is a set of points with a structural relation. You can define that relation either in terms of neighborhoods, or in terms of open sets – the two end up being equivalent. (You can define the open sets in terms of neighborhoods, or the neighborhoods in terms of open sets; they define the same structure and imply each other.)

That abstract definition is wonderful. It lets you talk about lots of different structures using the language and mechanics of topology. But it is very abstract. When we think about a topological space, we’re usually thinking of something much more specific than what’s implied by that definition. The word space has an intuitive meaning for us. We hear it, and we think of shapes and surfaces. Those are properties of many, but not all topological spaces. For example, there are topological spaces where you can have multiple distinct points with identical neighborhoods. That’s definitely not part of what we expect!

The things that we think of as a spaces are really are really a special class of topological spaces, called manifolds.

Informally, a manifold is a topological space where its neighborhoods for a surface that appears to be euclidean if you look at small sections. All euclidean surfaces are manifolds – a two dimensional plane, defined as a topological space, is a manifold. But there are also manifolds that aren’t really euclidean, like a torus, or the surface of a sphere – and they’re the things that make manifolds interesting.

The formal definition is very much like the informal, with a few additions. But before we get there, we need to brush up on some definitions.

• A set ${\mathbf S}$ is countable if and only if there is a total, onto, one-to-one function from ${\mathbf S}$ to the natural numbers.
• Given a topological space $(T, \tau)$, a basis $\beta$ for $\tau$ is a collection of open sets from which any open set in $\tau$ can be generated by a finite sequence of unions and intersections of sets in $\beta$. What this really means is that the structure of the space is regular – it’s got nothing strange like an infinitary-union in its open-sets.
• A topological space $(T, \tau)$ is called a Hausdorff space if and only if for any two distinct points $p, q \in T$, there are at least one open set $o_p$ where $p \in o_p \land q \not\in o_p$, and at least one open set $o_q$ where $q \in o_q \land p \not\in o_q$. (That is, there is at least one open set that includes $p$ but not $q$, and one that includes $q$ but not $p$.) A Hausdorff space just defines another kind of regularity: disjoint points have disjoint neighborhoods.

A topological space $(T, \tau)$ is an n-manifold if/f:

• $\tau$ has a countable basis.
• $(T, \tau)$ is a Hausdorff space.
• Every point in $T$ has a neighborhood homeomorphic to an open euclidean $n$-ball.

Basically, what this really means is pretty much what I said in the informal definition. In a euclidean $n$-space, every point has a neighborhood which is shaped like an $n$-ball, and can be separated from any other point using an $n$-ball shaped neighborhood of the appropriate size. In a manifold, the neighborhoods around a point look like the euclidean neighborhoods.

If you think of a large enough torus, you can easily imagine that the smaller open 2-balls (disks) around a particular point will look very much like flat disks. In fact, as the torus gets larger, they’ll become virtually indistinguishable from flat euclidean disks. But as you move away from the individual point, and look at the properties of the entire surface, you see that the euclidean properties fail.

Another interesting way of thinking about manifolds is in terms of a construction called charts, and charts will end up being important later.

A chart for an manifold is an invertable map from some euclidean manifold to part of the manifold which preserves the topological structure. If a manifold isn’t euclidean, then there isn’t a single chart for the entire manifold. But we can find a set of overlapping charts so that every point in the manifold is part of at least one chart, and the edges of all of the charts overlap. A set of overlapping charts like that is called an atlas for the manifold, and we will sometimes say that the atlas defines the manifold. For any given manifold, there are many different atlases that can define it. The union of all possible atlases for a manifold, which is the set of all charts that can be mapped onto parts of the manifold is called the maximal atlas for the manifold. The maximal atlas for a manifold is, obviously, unique.

For some manifolds, we can define an atlas consisting of charts with coordinate systems. If we can do that, then we have something wonderful: a topology on which we can do angles, distances, and most importantly, calculus.

Topologists draw a lot of distinctions between different kinds of manifolds; a few interesting examples are:

• A Reimann manifold is a manifold on which you can meaningfully define angles and distance. (The mechanics of that are complicated and interesting, and I’ll talk about them in a future post.)
• A differentiable manifold is one on which you can do calculus. (It’s basically a manifold where the atlas has measures, and the measures are compatible in the overlaps.) I probably won’t say much more about them, because the interesting thing about them is analysis, and I stink at analysis.
• A Lie group is a differentiable manifold with a valid closed product operator between points in the manifold, which is compatible with the smooth structure of the manifold. It’s basically what happens when a differentiable manifold and a group fall in love and have a baby.

We’ll see more about manifolds in future posts!


text:
library(dplyr)  # Data manipulation
library(tidyr)  # Tidy data
library(sf)     # Simple features for R (spatial objects)
library(sit)    # Analyse MRR data from SIT experiments

Introduction

Importing data from files into R is performed using functions from other packages that either installed by default with R or that you have to install previously.

Typical candidates are utils::read.csv for reading plain text files (which is the recommended format for storing data from MRR SIT experiments). MS Excel files can be read with readxl::read_excel. If you have data in relational data bases (e.g. SQLite, MySQL, PostgreSQL, etc), see the package DBI and references therein.

Almost certainly, you will need to transform your data a little bit in order to put it in the format and structure expected by sit. You might be tempted to do this manually, making a copy of your data files and removing, renaming and computing variables as needed, filtering observations, copying and pasting values from one table to another, etc.

I strongly encourage you to perform this operations from within R instead, using code rather than manual point-and-click operations, which are risky, error prone, difficult to verify and reproduce. In R, you can easily save your manipulations in a R script that you or someone else can check, reproduce and repeat if necessary (e.g. if some of the original data is corrected or added).

Fortunately, this is not too complicated and the required skills can be learned in a couple of hours. You will mostly need to know a few data-manipulation verbs (function names): dplyr::filter(), dplyr::select(), dplyr::mutate(), tidyr::pivot_longer(), and perhaps tidyr::separate(). A couple of tutorials covering these are the Introduction to dplyr and Pivoting.

Finally, you will need a little understanding on how to deal with spatial data in R. The section on vector data in Robin Lovelace’s excellent on-line book Geocomputation with R gives an overview of how the relevant package, sf works. This is a vast topic, but we will only use point data, which narrows the problem a lot. Essentially, you will only need to use the function sf::st_as_sf() to convert a data table into a sf object with proper spatial interpretation.

The Introductory example in Getting Started should cover most of the typical needs. Look for inspiration there, and use the materials provided above for reference and for a deeper understanding.

Below is a table of functions used for importing data from MRR SIT experiments.

Import functions.
Function Description
sit_revents() Import release events and sites.
sit_traps() Import traps
sit_adult_surveys() Import adult surveys
sit_egg_surveys() Import egg surveys
sit() Gather data about traps, release events and field survey data into a sit object.

Release sites are automatically derived from the release events.

The package sit provides a default table of trap types that you can query as follows:

sit_trap_types()
Default trap types in sit.
id name label stage description
1 Ovitrap OVT egg NA
3 Human Landing Catch HLC adult NA

If you require other types of traps, you can import your own table of trap types using the same function sit_trap_types(). Check its help page, or more specific tutorials, for more details.

Special data types

Spatial coordinates

In sit we need to specify the location of adult traps and release points using spatial coordinates.

If GPS coordinates were collected as data variables, they can be safely imported into sit as shown in Getting Started, i.e. using 4326 as the EPSG code for geographical coordinates, or alternatively, the string 'WGS84'. E.g.

points <- data.frame(id = "I'm at the Origin!", lon = 0, lat = 0) %>%
st_as_sf(                           # Convert to spatial
coords = c("lon", "lat"),           # Variables with coordinates
crs = 4326                          # Code for GPS coordinates
# crs = 'WGS84'                       # Same
)

A simple way of gathering (approximate) coordinates if no GPS devices were used in the field, is to use a web-mapping tool such as OpenStreetMap or Google Maps to identify points and note coordinates down.

Coordinates can also be available in projected form, in some specific Coordinate Reference System (CRS). A very common case is Universal Transverse Mercator (UTM) coordinates. The issue is that you need to know the corresponding EPSG code, or a more general definition of the CRS in order to interpret the coordinates.

Otherwise, use sf::st_as_sf() in the same way, but specifying the right CRS code in the argument crs. See sf::st_crs().

The package sf, used behind the scenes by sit for distance calculations, will correctly compute distances in metres, even if you used geographical coordinates in the input. No need to project your data.

References:

Dates and times

Dates will be requested as a character string in the ISO 8601 format (e.g. 2021-12-31).

Date and times will be jointly specified as a character string of the form 2019-11-23 15:00. This is a standard variation (profile) from ISO 8601 specified by the RFC 3339, neglecting the time-zone specification for simplicity (not needed in practice) and assuming the time is the local time at the specified date.

sit will internally use as.POSIXct() to convert them to date or date-time format. If you have data stored in a different format (e.g. ‘DD/MM/YYYY’, or, ‘MM/DD/YYYY’, or whatever) you can convert it yourself, prior to importing into sit. Otherwise, it will fail:

## Importing release event dates in a non-supported format fails:
point_releases <- fake_rpoints
point_releases$date <- c('11/25/2019', '12/01/2019', '12/13/2019') sit_revents(point_releases) #> Error in as.POSIXlt.character(x, tz, ...): character string is not in a standard unambiguous format Instead, convert to date yourself prior to import: point_releases$date <- as.POSIXct(point_releases\$date, format = "%m/%d/%Y")
sit_revents(point_releases)
#>   id  type site_id       date colour     n    geometry
#> 1  1 point       1 2019-11-25 yellow 10000 POINT (1 2)
#> 3  2 point       2 2019-12-01    red 10000 POINT (2 1)
#> 2  3 point       1 2019-12-13   blue 10000 POINT (1 2)


text:
This page list all events and seminars that take place in the department this week. Please use the form below to choose a different week or date range.

## Non-commutative Analysis Seminar

### Generalized Powers’ averaging for commutative crossed products

Oct 26, 11:00—12:00, 2021, seminar room -101

#### Speaker

<NAME> (BGU)

#### Abstract

In 1975, Powers proved that the free group on two generators is a $C^{\star}$-simple group. The key insight in Powers’s proof of the $C^\star$-simplicity is that the left regular representation of $\mathbb{F}_2$ satisfies Dixmier type averaging property. Using the pioneering work of Kalantar-Kennedy, it was shown by Haagerup and Kennedy independently that the $C^\star$-simplicity of the group $\Gamma$ is equivalent to the group having Powers’ averaging property. In this talk, we introduce a generalized version of Powers’ averaging property for commutative crossed products. Using the notion of generalized Furstenberg boundary introduced by Kawabe and Naghavi (independently), we show that the simplicity of the commutative crossed products $C(X)\rtimes_r\Gamma$ (for minimal $\Gamma$-spaces $X$) is equivalent to the crossed product having generalized Powers’ averaging. As an application, we will show that every intermediate $C^\star$-subalgebra $\mathcal{A}$ of the form $C(Y)\rtimes_r\Gamma\subseteq\mathcal{A}\subseteq C(X)\rtimes_r\Gamma$ is simple for an inclusion $C(Y)\subset C(X)$ of minimal $\Gamma$-spaces whenever $C(Y)\rtimes_r\Gamma$ is simple. This is a joint work with <NAME>.

## Colloquium

### Integral geometry and valuation theory in pseudo-Riemannian spaces

Oct 26, 14:30—15:30, 2021, Math -101

#### Speaker

<NAME> (Tel Aviv University)

#### Abstract

We will discuss the Blaschke branch of integral geometry and its manifestations in pseudo-Riemannian space forms. First we will recall the fundamental notion of intrinsic volumes, known as quermassintegrals in convex geometry. Those notions were extended later to Riemannian manifolds by <NAME>, who discovered a remarkable fact: given a manifold M embedded in Euclidean space, the volume of the epsilon-tube around it is an invariant of the Riemannian metric on M. We then discuss Alesker’s theory of smooth valuations, which provides a framework and a powerful toolset to study integral geometry, in particular in the presence of various symmetry groups. Finally, we will use those ideas to explain some recent results in the integral geometry of pseudo-Riemannian manifolds, in particular a collection of principal Crofton formulas in all space forms, and a Chern-Gauss-Bonnet formula for metrics of varying signature. Partially based on joint works with <NAME>, <NAME>, <NAME>.

## אשנב למתמטיקה

### מהלך מקרי על הילוכים מקרייםOnline

Oct 26, 18:10—19:30, 2021, בניין 32 חדר 309 וכן במרשתת

אריאל ידין

#### Abstract

נציג את המושג של הילוך מקרי, ונספר על חלק מהתוצאות הקשורות למושג זה.

נקודת ההתחלה שלנו היא משפט של Polya שמוכיח שאדם שיכור יחזור מתישהו לביתו, אבל טייס חללית שיכור יעלם לנצח בהסתברות סבירה. בהתאם לזמן, נתאר את הקשרים לרשתות חשמליות ואולי גם לתורת חבורות גיאומטרית.

אשתדל שהכל יהיה נגיש לתלמידי שנה ב ומעלה.

## AGNT

### TBA

Oct 27, 16:00—17:15, 2021, -101

none


text:
Share
Data & Analytics

# Four Developers Win DOE Prize for Subsurface Visualization

## The US Department of Energy’s Office of Fossil Energy and Carbon Management awarded a total of $600,000 to four software developers who won a contest to support FECM’s Science-Informed Machine Learning to Accelerate Real-Time Decisions in the Subsurface Initiative. The US Department of Energy’s Office of Fossil Energy and Carbon Management (FECM) awarded a total of$600,000 to four software developers who won a contest to support FECM’s Science-Informed Machine Learning to Accelerate Real-Time Decisions in the Subsurface (SMART) Initiative.

The SMART Initiative involves seven national laboratories as well as industry partners, universities, field laboratories, and carbon storage regional initiatives with the goal of advancing the understanding of the subsurface environment through machine learning.

The four winners in Phase 1 of the SMART Visualization Platform Prize Challenge designed prototype platforms or mockups that demonstrate a user-friendly visualization platform. The platform concept is intended to transform how scientists, engineers, regulators and the public interact with subsurface data. The winners will develop the prototypes provided by the SMART Initiative technical team.

Phase 1 scoring criteria considered each prototype’s innovativeness, functionality, user friendliness, and visual appeal, as well as the contestant’s credentials.

Petrolern, an Atlanta-based green energy technology company, was one of the four winners. It will receive $150,000, with an opportunity to advance to the next phase in the competition for another$900,000.

Petrolern’s GeoDeck Platform is a web-based application that uses virtual and augmented reality (VR and AR) to facilitate the interaction between scientific variables and their spatial and temporal dimensions.

“Experts and nonexperts should be able to make timely decisions without data overload and with a 360-degree vantage point,” said <NAME>, Petrolern’s chief executive officer.

GeoDeck is designed to eliminate or minimize rigorous high-performance computing setups, time, cost, and complexities when visualizing big subsurface data, Petrolern said in a press release. The company says its platform has applications to environmentally secure monitoring of subsurface operations, including CO2 or hydrogen underground storage, geothermal energy development, and safer oil and gas production.

“GeoDeck uses state-of-the-art data-handling technologies in combination with ever-increasing VR and AR technologies,” said <NAME>, Petrolern’s lead scientist. “GeoDeck offers this integration to load seamlessly on the web with no need for installation or download.”

“We are excited to see our Phase 1 SMART Visualization Platform Prize Challenge winners move forward and advance their projects while working with the SMART technical team,” said <NAME>, senior fellow at the National Energy Technology Laboratory. “This challenge will be a first-of-its-kind tool that will use science-based machine learning and data analytics to visualize key subsurface features to quickly and accurately reveal how the subsurface behaves.”

Other winners of the challenge were:

Red Volta Visualization Platform. The developers report that the design and architecture of their platform enables a scalable, multiuser and cross-platform solution. Red Volta’s design allows it to be deployed in standalone mode on a dedicated workstation or as a web application that can be used remotely by operators in the field.

Subsurface XR. The developer of Subsurface XR says it will apply a state-of-the-art game engine and mixed-reality technology to provide users with an app they can run on any device to visualize and intuitively interact with geoscientific data sets and models in 3D.

RocVision. The RocVision subsurface visualization system is an advanced 3D platform for exploring subsurface data. RocVision allows a user to explore 3D spatial and temporal data with methods used by geoscientists. The final RocVision product will support geoscience work flows in subsurface science while providing advanced 3D, 2D, and data-processing features using VR and AR.


text:
Journal article Open Access

# Manifesto anarca-femminista

Bottici, Chiara

### DCAT Export

<?xml version='1.0' encoding='utf-8'?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:adms="http://www.w3.org/ns/adms#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/" xmlns:dctype="http://purl.org/dc/dcmitype/" xmlns:dcat="http://www.w3.org/ns/dcat#" xmlns:duv="http://www.w3.org/ns/duv#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:frapo="http://purl.org/cerif/frapo/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:gsp="http://www.opengis.net/ont/geosparql#" xmlns:locn="http://www.w3.org/ns/locn#" xmlns:org="http://www.w3.org/ns/org#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:prov="http://www.w3.org/ns/prov#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:vcard="http://www.w3.org/2006/vcard/ns#" xmlns:wdrs="http://www.w3.org/2007/05/powder-s#">
<dct:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">https://doi.org/10.5281/zenodo.5714416</dct:identifier>
<foaf:page rdf:resource="https://doi.org/10.5281/zenodo.5714416"/>
<dct:creator>
<rdf:Description>
<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
<foaf:name><NAME></foaf:name>
<foaf:givenName>Chiara</foaf:givenName>
<foaf:familyName>Bottici</foaf:familyName>
<org:memberOf>
<foaf:Organization>
<foaf:name>New School for Social Research</foaf:name>
</foaf:Organization>
</org:memberOf>
</rdf:Description>
</dct:creator>
<dct:title>Manifesto anarca-femminista</dct:title>
<dct:publisher>
<foaf:Agent>
<foaf:name>Zenodo</foaf:name>
</foaf:Agent>
</dct:publisher>
<dct:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#gYear">2021</dct:issued>
<dcat:keyword>Anarcha-feminism; Menocracy; Transindividualism; Intersectionality; Womanhood</dcat:keyword>
<dct:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2021-11-19</dct:issued>
<dct:language rdf:resource="http://publications.europa.eu/resource/authority/language/ITA"/>
<owl:sameAs rdf:resource="https://zenodo.org/record/5714416"/>
<skos:notation rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">https://zenodo.org/record/5714416</skos:notation>
<foaf:page rdf:resource="http://poireview.com/en/anarchafeminist-manifesta/"/>
<dct:isVersionOf rdf:resource="https://doi.org/10.5281/zenodo.5714415"/>
<dct:description>
This paper shows the fundamental connection between feminism, anarchism, transindividualism and ecology, and argues that an anarcha-feminism &ndash; a feminism without hierarchies &ndash; is the key to defeating&nbsp;all&nbsp;forms of oppression, whether they are perpetrated on a political, sexual, economic, or racial basis. Beginning with a description of the condition of minority-status and exposure to violence in which women all over the world find themselves, the paper identifies the traditional tools of domination that the &ldquo;first sex&rdquo; uses to maintain its primacy. The most powerful of these tools is the State, in which almost all of the key roles are held by men. On these grounds, this manifesto points out that overthrowing the patriarchy is not possible without the simultaneous subversion of the current juridical-political-economic structure, namely without overcoming national borders and freeing ourselves from the most subtle form of state control: the control over gender identity. This is because, as the paper argues, drawing insights from an ontology of the transindividual, bodies in general and women&rsquo;s bodies in particular, are not individuals, objects given once and for all, but rather never complete processes.&nbsp;In this social ontology, the environment turns out to be constitutive of our individuality; therefore, a transindividual approach to feminism naturally leads to a form of eco-feminism in which&nbsp;not simply human forms of life but all animate and inanimate bodies are involved. Anarcha-feminism means that all forms of oppression are somehow connected because all bodies are connected and it is therefore not possible to fight one form of domination without fighting them all.
</dct:description>
<dct:accessRights rdf:resource="http://publications.europa.eu/resource/authority/access-right/PUBLIC"/>
<dct:accessRights>
<rdfs:label>Open Access</rdfs:label>
</dct:RightsStatement>
</dct:accessRights>
<dcat:distribution>
<dcat:Distribution>
<dcat:accessURL rdf:resource="https://doi.org/10.5281/zenodo.5714416"/>
<dcat:byteSize>317960</dcat:byteSize>
<dcat:mediaType>application/pdf</dcat:mediaType>
</dcat:Distribution>
</dcat:distribution>
</rdf:Description>
</rdf:RDF>

50
28
views


text:
# Minimize sum of squared error

I have an array of real numbers, I want to partition them into k sets. In each set, I calculate the sum of squared error. Then, I add up all the sum of squared error for all the set. I want to minimize this number. For example:

1 3 5 9

if k=2, I would partition them into (1 3 5) and (9), the sum of squared error of (1 3 5) is (3-1)^2+(3-3)^2+(5-3)^2=8 and the sum of squared error of (9) is 0. So the total sum of squared error is 8. I think 8 is the minimum sum of squared error in this case.

I want to use the traditional prim's method to solve this problem. i.e. to use connect n-k edges, then stop. But the problem is whenever I add 1 more integers to the subset, the mean changes. So, it seems that I cannot use Prim's method...Anyone give me some insight on this? Thanks!

You are looking for an optimal 1-dimensional k-means algorithm. The k-means objective function for partitioning the data $$x_1, \ldots, x_n$$ into $$k$$ sets $$S = \{S_1, \ldots, S_k\}$$.

$$\sum\limits_{i=1}^k \sum\limits_{x \in S_i}\lVert x - \mu_i \rVert^2$$

where $$\mu_i$$ is the mean of $$S_i$$ [1].

You can apply a dynamic programming algorithm to the problem [2].

1. Let the data $$x_1, \ldots, x_n$$ be sorted in non-decreasing order.
2. Fill a $$(n + 1) \times (k + 1)$$ array, $$D$$, with the minimum sum of squared errors, for the first $$i$$ entries, using $$m$$ clusters. This can be calculated as

$$D[i,m] := \min\limits_{m \le j \le i} \left\{ D[j-1,m-1] + d(x_j, \ldots, x_i) \right\}$$

where $$d(x_j, \ldots, x_i)$$ is the sum of squared errors from their mean. For $$1 \le i \le n$$ and $$1 \le m \le k$$, and the base cases are $$d[i,m] = 0$$ if $$i=0$$ or $$m=0$$.

Thus, the entry $$D[n,k]$$ contains the optimal sum of squared errors for the original problem, now all that is left to do is to extract the answer.

Note that $$d(x_j, \ldots, x_i)$$ can be computed iteratively to speed up the algorithm, as

\begin{align*} d(x_j, \ldots, x_i) &= d(x_j, \ldots, x_{i-1}) + \frac{i-1}{i} (x_i - \mu_{i-1})^2 \\ \mu_i &= \frac{x_i + (i - 1) \mu_{i-1}}{i}\end{align*}

Thus, $$D$$ can be computed in $$O\left(n^2k\right)$$ time, since there are $$nk$$ entries, and each takes $$O(n)$$ time to compute.

3. Now, we fill a $$n \times k$$ array, $$B$$, whose entries, $$B[i,m]$$, contain the index of the smallest (first) element in the cluster that contains entry $$i$$, which can be calculated as

$$B[i,m] := \arg\min\limits_{m \le j \le i} \left\{ D[j-1,m-1] + d(x_j, \ldots, x_i) \right\}$$

for $$1 \le i \le n$$ and $$1 \le m \le k$$. This takes $$O\left(n^2k\right)$$ time.

Thus, we can backtrack from $$B[n,k]$$ to find the clustering. The clusters are defined recursively as

\begin{align*} S_k &= \{B[n,k], \ldots, x_n\} \\ S_i &= \{B[x_j,k], \ldots, x_j \mid x_{j+1} := \min S_{i+1}\} \end{align*}

The backtracking takes $$O(k)$$ time.

The algorithm runs in $$O\left(n^2k\right)$$ time, and requires $$O(nk)$$ space.