--- title: "Variational Bayes: notes on basics" date: 2020-04-25 layout: post categories: tags: - article - bayes - variational - EM published: true comments: ---
This page contains notes and links on Variational inference or Variational Bayes. The content is mainly inspired by different readings:
afor "statisticians"
Consider a probabilistic model in which we denote all the observed variables by \(\X\) and all the hidden variables by \(\Z\). In general, the probabilistic model is designed by a generative story which implies a definition of the joint probability \(P(\X, \Z|\pa)\) or \(P(\X, \Z,\pa)\) in the real bayesian view.
If we consider the joint distribution \(P(\X, \Z|\pa)\), it is defined by a set of parameters denoted \(\pa\). The goal is to maximize the likelihood function \(P(\X|\pa)\) to learn the parameters \(\pa\). However, this maximization problem is intractable in most of the case.
If we consider \(P(\X, \Z,\pa)\), there are different levels of bayesian inference:
In all cases, the inference is untractable because we need to estimate \(P(\X|\pa)\) or even marginalize parameters. This requires approximate inference approach, such as MCMC or Variational one.
It is difficult to clearly define notation to handle all cases. For instance, let us consider a Gaussian mixture model. It can be used for density estimation or data clustering. Observed variables \(\X\) are random vectors, each belonging to a cluster. The affectations of each example to a cluster (or a gaussian) is encoded by \(\Z\) the set of latent variables. The model is defined by its set of parameters \(\pa\).
In Bayesian perspective, the parameters are also considered as random variables and therefore \(\pa\) can be included in \(\Z\). In this case, parameters are treated as random variables, just like affectations. However, there is an important difference between \(\pa\) and \(\Z\):
This can represent a an issue for scalability. For each training example, you have to store the distribution over its affectation or its associated random variable. For large corpus, this is not convenient. More recent approaches rely on stochastic variants of Variational Inference as an efficient work-around.
To summarize this distinction:
Before to read these notes, it is better to be familiar with expectation. Given a random variable \(X\), we define its expectation under the distribution \(p\)
\begin{align} E_{X \sim p}[X] &= \sum_{x} p(X=x) x \\ &\int_x p(x) x dx \end{align}The first line is for discrete RV while the second one is for continuous RV. In this last case, \(p(x)\) denotes the probability density function. If \(X\) is a categorical RV, note it can be meaning less as it is, while for continuous RV it can be interpreted as the mean value.
A quantity of interest is the expected value of a function of the RV. For instance, the variance of a continuous RV can be expressed as \(E[(X-E[X])^2]\). In information theory, it is meaningfull to define the expected value of the information quantity as the entropy of the RV \(X\): \[ H(X)=-\sum_x p(X=x)log(p(X=x)) = E_p[-log(p(X))] \]
Now assume two distributions on the same RV, \(q\) and \(p\), we can measure the Kullback-Leibler divergence between these two distributions as :
\[ \dkl(p||q)=\sum_x p(X=x)log(p(X=x)/q(X=x)) = E_p[log(p(X)/q(X))] \]
This divergence is not symmetric, \(\dkl(p||q) \neq \dkl(q||p)\), and is \(\geq 0\). The equality stands when \(p\) and \(q\) are the same distribution over \(X\).
If we denote \(p^*\) the true distribution of \(X\) and if we parametrize a distribution over \(X\) with \(\pa\), we can search \(\pa\) to minimize the following divergence:
\begin{align*} \dkl(p^*||p_{\pa}) &= \sum_x (p^*(X=x)log p^*(X=x)-p^*(x) log(p_{\pa}(X=x)))\\ &= \sum_x p^*(X=x)log p^*(X=x)- \sum_x p^*(x) log(p_{\pa}(X=x))\\ &= Cste - \sum_x p^*(x) log(p_{\pa}(X=x))\\ &= Cste - E_{X\sim p^*} [log p_{\pa}(X=x)] \end{align*}Therefore minimizing this theoritical KL divergence is equivalent to maximizing in practice the log-likelihood wrt \(\pa\).
This likelihood can be expressed in two ways: \[P(\X|\pa)= \sum_{\Z} P(\X,\Z|\pa)= \frac{P(\X,\Z|\pa)}{P(\Z|\X,\pa)}\].
The "untractability" comes from marginalization: in the first case, sum over \(\Z\); while in the second case, the same issue is hidden in the latent posterior distribution \(P(\Z|\X,\pa)\). Let us consider the second one in its log formulation:
\(\log(P(\X|\pa))= \log(\frac{P(\X,\Z|\pa)}{P(\Z|\X,\pa)})\)
Let introduce a distribution \(q(\Z)\) defined over the latent variables. This probability function is an approximate of the true posterior \(P(\Z|\X,\pa)\). The goal is to find the distribution \(q\) that best approximates the posterior distribution and then to use it as a proxy for Bayesian inference.
To introduce \(q\), we can multliply both parts of the previous equation with \(q\), and sum over \(\Z\):
\(\sum_{\Z} q(\Z) \log(P(\X|\pa))= \sum_{\Z}\log(\frac{P(\X,\Z|\pa)}{P(\Z|\X,\pa)})q(\Z)\)
The right hand side is just \(P(\X|\pa)\) and remains unchanged. The second trick is to introduce \(q(\Z)\) in the fraction:
\(\log(P(\X|\pa))= \sum_{\Z}q(\Z) \log(\frac{P(\X,\Z|\pa)q(\Z)}{P(\Z|\X,\pa)q(\Z)})\)
Then reformulate it a little bit:
\(\log(P(\X|\pa))= \sum_{\Z}q(\Z) \log(\frac{P(\X,\Z|\pa)}{q(\Z)}) + \sum_{\Z}q(\Z) \log(\frac {q(\Z)}{P(\Z|\X,\pa)})\)
Two terms appear. The second one is the Kullback-Leibler divergence between \(q(\Z)\) and \(P(\Z|\X,\pa)\): \[ \dkl(q(\Z)||P(\Z|\X,\pa)) = \sum_{\Z} q(\Z) \log(\frac{q(\Z)}{P(\Z|\X)}). \] And the first term is for the moment denoted by \(\lb\).
We then obtain the following relation:
\begin{align} \log(P(\X|\pa)) &= \lb + \dkl(q(\Z)||P(\Z|\X,\pa))\\ \lb &= \sum_{\Z}q(\Z) \log(\frac{P(\X,\Z|\pa)}{q(\Z)}) \\ &= E_{q}[ \log(\frac{P(\X,\Z|\pa)}{q(\Z)}) ] \\ &= E_{q}[ \log(P(\X|\Z, \pa) ] - \dkl(q(\Z)| P(\Z))\\ &= E_{q}[ \log(P(\X, \Z | \pa) ] + H(q) \end{align}Recall that the Kullback-Leibler divergence satisfies \(\dkl(q|p)\ge 0\), with equality if, and only if \(q(\Z) = p(\Z|\X,\pa)\). Therefore \(P(\X|\pa) \ge \lb\) which means that \(\lb\) is a lower bound of \(P(\X|\pa)\) we want to maximize. \(\lb\) is therefore named the Evidence Lower Bound or \(\elbo\).
This formulation does not solve the tractability issue since in the \(\dkl\) term we still have a dependance between \(P(\Z|X,\pa)\) and \(P(\X|\pa)\), i.e :
\(P(\Z|X,\pa) = \frac{P(\X,\Z|\pa)}{P(\X|\pa)}\).
So both \(P(\Z|X,\pa)\) and \(P(\X|\pa)\) are untractable. The probabilistic model specifies the joint distribution \(P(\X, \Z)\), and the goal is to find an approximation for the posterior distribution \(P(\Z|\X,\pa)\) as well as for the model evidence \(P(X|\pa)\).
To quote Christopher Bishop (see chapter ten of Pattern Recognition and Machine Learning):
Although there is nothing intrinsically approximate about variational methods, they do naturally lend themselves to finding approximate solutions. This is done by restricting the range of functions over which the optimization is performed, for instance by considering only quadratic functions or by considering functions composed of a linear combination of fixed basis functions in which only the coefficients of the linear combination can vary. In the case of applications to probabilistic inference, the restriction may for example take the form of factorization assumptions
To solve the tractability issue, there are two common approaches:
The EM algorithm aims at estimating the parameters \(\pa\) of a generative model that relies on latent variables \(\Z\) to explain the observed data \(\X\). In the example of mixture of gaussians, \(\Z\) represents the affectation of each observation to a gaussian. If \(\Z\) could be observed, it becomes therefore a simple and easy to solve classification problem. We can call \((\X, \Z)\) the complete data set, while \((\X)\) is the incomplete one. In other words, \(P(\X,\Z|\pa)\) is easy to optimize, while \(P(\X|\pa)\) is untractable (the log-sum).
However, in practice \(\Z\) is unknown, but for a given set of parameters we can compute \(P(\Z|\X,\pa)\) and also the expected value of \(\Z|\X,\pa\). This is the E(xpectation) step. In a second step, the classification task can be carried out: maximizing \(\pa\) knowing \(\Z\) (or the expected value). This is the M(aximization) step.
As written in the review of (Blei et al.), EM optimize the expected complete log-likelihood and this is the first term of the ELBO. The goal of the algorithm is to find maximum likelihood estimates for parameters in models with latent variables. Parameters are in this case not considered as random hence latent variables. Unlike Variational Inference, EM assumes that the posterior distribution \(P(\Z|\X,\pa)\) is computable. Unlike EM, variational inference does not estimate fixed model parameters but it is often used in a Bayesian setting where classical parameters are treated as latent variables.
Now we can go back to the lower bound to explain the EM algorithm. This is a two-stage iterative optimization technique for finding maximum likelihood solutions.
Suppose that the current value of the parameter vector is \(\paold\). In the E step, the lower bound \(\lb\) is maximized with respect to \(q(\Z)\) while holding \(\pa\) fixed to \(\paold\). If you remember that:
Since the KL divergence is zero, we have \(\lb=P(\X|\paold)\). In fact, the E-step consists in computing the posterior distribution over \(\Z\) with the parameters fixed at \(\paold\). Then you just set theoritically \(q(\Z) = P(\Z|\X,\paold)\).
The distribution \(q(Z)\) is now fixed and the lower bound \(\lb\) is now maximized with respect to \(\pa\). The maximization process yields a new value for the parameters \(\panew\) and increases the lower bound (except if we are already at the maximum). Note that \(q(Z)=P(\Z|\X,\paold)\) acts as a constant in the maximization process:
\begin{align} \lb &= \sum_{\Z} P(\Z|\X,\paold) \log(\frac{P(\X,\Z|\pa)}{P(\Z|\X,\paold)}) \\ &= \sum_{\Z} P(\Z|\X,\paold) \log(P(\X,\Z|\pa)) - \sum_{\Z} P(\Z|\X,\paold) \log(P(\Z|\X,\paold)) \end{align}The second term is a positive constant, since it depends only on \(\paold\). This is the entropy of the posterior distribution \(H(P(\Z|\X,\paold))\). The first we want to maximize is the expectation under the posterior \(P(\Z|\X,\paold)\) of the log-likelihood of complete data. This means in practice, that we optimize a classifier of \(\X\) into \(\Z\), with the supervision of \(P(\Z|\X,\paold)\) that provides the pseudo-affectation.
Since the distribution \(q\) is fixed to \(P(\Z|\X,\paold)\), \(q(Z) \neq P(\Z|\X,\panew)\) and now the KL divergence term is nonzero. The increase in the log likelihood function is therefore greater than the increase in the lower bound.
You can see the EM algorithm as pushing two functions.
For graphical illustration, you can look at the book of Christopher Bishop called Pattern Recognition and Machine Learning. You can also read the great paper of Radford Neal and Geoffrey Hinton on the link between Variational Bayes and EM.
Note that for implementation, \(q(\Z)\) does not really exist or is not a quantity of interest. It acts more like a temporary variable to perform this two steps game.
In this part, there is no mention of hyperparameters or even parameters. Let say that the latent variables represent all unknown quantities of interest.
A generative model defines a joint density of latent variables \(\Z\) and observations \(\X\), \[p(\Z, \X) = p(Z)p(\X | \Z),\] with a generative scenario: draw the latent variables from a prior density \(p(\Z)\) and then relates them to the observations through the likelihood \(p(\X|\Z)\). Inference in a Bayesian model amounts to conditioning on data and computing the posterior \(p(\Z | \X)\). In fact, the latent variables \(\Z\) help govern the distribution of the data.
To estimate \(p(\Z|\X)\), the Bayes formula tells us:
\[p(\Z|\X) = \frac{p(\X,\Z)}{p(\X)}\]
This is not of a great help since the denominator is the evidence and is also untractable: the summation over all the possible values of \(\Z\).
Given a family of distribution, we are looking for one its member \(q(\Z)\) that best approximates the conditional distribution \(p(Z|X)\). The criterion is the Kullback-Leibler divergence :
\(q^*(\Z) = argmin_{q} \dkl(q(\Z)||p(\Z|\X))\)
This objective is not tractable since its relies on \(p(\Z|\X)\) and hence on \(p(\X)\) :
\begin{align} \dkl(q(\Z)||p(\Z|\X)) &= E_{q}[\log q(\Z)] - E_{q}[\log p(\Z|\X)]\\ &= E_{q}[\log q(\Z)] - E_{q}[\log p(\X,\Z)] + E_{q}[\log p(\X)]\\ &= E_{q}[\log q(\Z)] - E_{q}[\log p(\X,Z)] + \log p(\X)\\ \end{align}This shows the dependence of the objective on the data evidence, but also that \[\dkl(q(\Z)||p(\Z|\X)) \ge E_{q}[\log q(\Z)] - E_{q}[\log p(\X,\Z)].\] Minimizing the second term is equivalent to minimize the KL divergence objective. The term \(\log p(\X)\) is independent of \(q(\Z)\) and thus a negative constant.
The quantity \(E_{q}[\log p(\X,\Z)]- E_{q}[\log q(\Z)]\) is called the evidence lower bound (ELBO). The term ELBO comes from the fact that if you reorganise the equation, you get:
\begin{align} \log p(\X) &= \dkl(q(\Z)||p(\Z|\X))+ E_{q}[\log p(\X,\Z)]- E_{q}[\log q(\Z)] \\ &= \dkl(q(\Z)||p(\Z|\X)) + \elbo(q) \\ &\ge \elbo(q) \end{align}Therefore maximizing the elbo term implies both to find the best approximate \(q(\Z)\) within a family of distribution of \(p(\Z|\X)\) and also to maximize a lower bound of \(p(\X)\).
For further insight, the elbo can be rewritten as:
\begin{align} \elbo(q)&= E_{q}[\log p(\Z)] + E_q [\log p(\X|\Z)]- E_q [\log q(\Z)]\\ &= E_q [\log p(\X|\Z)] - \dkl(q(\Z)||p(\Z)) \end{align}The first term is an expected log likelihood under the \(q\) distribution and the second is the divergence between the variational density and the prior. Therefore maximizing \(\elbo(q)\) resorts to maximizing the expected log likelihood under the \(q\) distribution, while keeping \(q\) as close as possible to the prior \(p(\Z)\).
Second derivation of the ELBO: In a lot of papers and books on variational inference, the elbo is derived through Jensen's inequality. See the Jordan's paper in 1999 for instance.
\begin{align} \log p(\X) &= \log \sum_{\Z} p(\X,\Z) = \log \sum_{\Z} \Big[ p(\X,\Z)\frac{q(\Z)}{q(\Z)}\Big] \\ &= \log E_q \Big[\frac{p(\X,\Z)}{q(\Z)}\Big] \\ &\geq E_q \Big[ \log \frac{p(\X,\Z)}{q(\Z)}\Big] \\ &= E_q \Big[ \log p(\X,\Z)\Big] + H(\Z) \end{align}See the swap between the \(\log\) function and the expectation: this is the application of the Jensen's inequality.
Remark: The Jensen equality states that for a convex function, while the \(\log\) function is concave ! But some books and papers, "convex" is used for both convex and concave, adding an adjective "upward" or "downward" (can be confusing).
Variational inference aims at maximizing the ELBO. This means that we indirectly optimize two terms:
The elbo term can be written as:
\begin{align} \lb &= E_{q}[\log p(\X,\Z|\pa)]- E_{q}[\log q(\Z)] . \end{align}Maximizing the ELBO, means thus to jointly maximize \(E_{q}[\log p(\X,\Z|\pa)]\) and the entropy of the distribution \(q\). With the first term, \(q\) should put probability mass on \(\Z\) to explain the data. The second term favours otherwise uniform distribution.
However we can further decompose the joint distribution:
\begin{align} \lb &= E_{q}[\log p(\X|,\Z,\pa) p(\Z|\pa)]- E_{q}[\log q(\Z)] \\ &= E_{q}[\log p(\X|,\Z,\pa)] + E_{q}[p(\Z|\pa)-\log q(\Z)] \\ &= E_{q}[\log p(\X|,\Z,\pa)] - \dkl( q(\Z)||p(\Z|\pa) ). \end{align}With the first term, \(q\) will tend to place probability mass on configurations of the latent variables that explain the observed data. For example, if you compute the first term with Monte-Carlo methods, the density \(q\) should propose values of \(\Z\), for which \(p(\X|\Z,\pa)\) is high. The second term is the negative KL divergence between the \(q\) and the prior distribution. It favors distributions close to the prior. Therefore the second term can be interpreted as a régularization term on \(q\).
As in the Bishop's book or the review of Blei et al., the Bayesian mixture of gaussians could be a good example to write.
Here is quoted, what you can read in this review from Blei et al., comparing variational inference and MCMC:
When should a statistician use MCMC and when should she use variational inference? We will offer some guidance. MCMC methods tend to be more computationally intensive than variational inference but they also provide guarantees of producing (asymptotically) exact samples from the target density (Robert and Casella, 2004). Variational inference does not enjoy such guarantees it can only find a density close to the target but tends to be faster than MCMC. Because it rests on optimization, variational inference easily takes advantage of methods like stochastic opti- mization (Robbins and Monro, 1951; Kushner and Yin, 1997) and distributed optimization (though some MCMC methods can also exploit these innovations (Welling and Teh, 2011; Ahmed et al., 2012)).
Thus, variational inference is suited to large data sets and scenarios where we want to quickly explore many models; MCMC is suited to smaller data sets and scenarios where we happily pay a heavier computational cost for more precise samples. For example, we might use MCMC in a setting where we spent 20 years collecting a small but expensive data set, where we are confident that our model is appropriate, and where we require precise inferences. We might use variational inference when fitting a probabilistic model of text to one billion text documents and where the inferences will be used to serve search results to a large population of users. In this scenario, we can use distributed computation and stochastic optimization to scale and speed up inference, and we can easily explore many different models of the data.
Data set size is not the only consideration. Another factor is the geometry of the posterior distribution. For example, the posterior of a mixture model admits multiple modes, each corresponding label permutations of the components. Gibbs sampling, if the model permits, is a powerful approach to sampling from such target distributions; it quickly focuses on one of the modes. For mixture models where Gibbs sampling is not an option, variational inference may perform better than a more general MCMC technique (e.g., Hamiltonian Monte Carlo), even for small datasets (Kucukelbir et al., 2015). Exploring the interplay between model complexity and inference (and between variational inference and MCMC) is an exciting avenue for future research (see Section 5.4). (…)


public class Connectivity
extends java.lang.Object
| Constructor and Description |
|---|
Connectivity(android.content.Context c)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
android.net.NetworkInfo |
activeNetwork()
Get the details of the currently active network
|
static android.net.NetworkInfo |
activeNetwork(android.content.Context context)
Get the details of the currently active network
|
static android.net.ConnectivityManager |
getConnectivityManager(android.content.Context context)
Get a handle to the
ConnectivityManager system service. |
boolean |
isMobile()
Queries whether the device is currently using mobile connectivity
|
static boolean |
isMobile(android.content.Context context)
Queries whether the device is currently using mobile connectivity
|
boolean |
isWifi()
Queries whether the device is currently using Wifi connectivity
|
static boolean |
isWifi(android.content.Context context)
Queries whether the device is currently using Wifi connectivity
|
boolean |
online()
Queries whether the device is currently online
|
static boolean |
online(android.content.Context context)
Queries whether the device is currently online
|
void |
subscribe(android.content.BroadcastReceiver receiver)
Subscribe to network change events (see
unsubscribe(Context, BroadcastReceiver) ). |
static void |
subscribe(android.content.Context context,
android.content.BroadcastReceiver receiver)
Subscribe to network change events.
|
void |
unsubscribe(android.content.BroadcastReceiver receiver)
Unsubscribe from network change events (see
unsubscribe(Context, BroadcastReceiver) ). |
static void |
unsubscribe(android.content.Context context,
android.content.BroadcastReceiver receiver)
Unsubscribe from network change events
|
public Connectivity(android.content.Context c)
c
- active contextpublic static android.net.ConnectivityManager getConnectivityManager(android.content.Context context)
ConnectivityManager
system service.context
- active contextpublic static android.net.NetworkInfo activeNetwork(android.content.Context context)
context
- active contextNetworkInfo
or null if no active connectionpublic android.net.NetworkInfo activeNetwork()
NetworkInfo
or null if no active connectionpublic void subscribe(android.content.BroadcastReceiver receiver)
unsubscribe(Context, BroadcastReceiver)
).
Be sure to call unsubscribe(BroadcastReceiver)
when done.public static void subscribe(android.content.Context context, android.content.BroadcastReceiver receiver)
unsubscribe(Context, BroadcastReceiver)
when done.context
- a Context
on which to register the receiverreceiver
- receiver to subscribe to network change eventspublic void unsubscribe(android.content.BroadcastReceiver receiver)
unsubscribe(Context, BroadcastReceiver)
).public static void unsubscribe(android.content.Context context, android.content.BroadcastReceiver receiver)
context
- a Context
on which to register the receiverreceiver
- receiver to unsubscribe from network change eventspublic static boolean online(android.content.Context context)
context
- active contextpublic boolean online()
public static boolean isWifi(android.content.Context context)
context
- active contextpublic boolean isWifi()
public static boolean isMobile(android.content.Context context)
context
- active contextpublic boolean isMobile()


Widget has always offered the best quality and the best price in the industry, but now it's made of even higher quality materials. Widget is also the most environmentally friendly product ever made.
Widget has always offered the best quality and the best price in the industry, but now it's made of even higher quality materials. Widget is also the most environmentally friendly product ever made.
Compare Widget to other products.
| Product | Quality | Speed | Strength | Price |
|---|---|---|---|---|
| Widget | High Quality | Fast | Strong | $10 |
| Gadget | Good Quality | Slow | Weak | $15 |
| Gizmo | Poor Quality | Slowest | Weakest | $25 |


Mnangagwa reshuffles cabinet
by Staff ReporterEmmerson Mnangagwa has appointed and re-assigned cabinet ministers and deputy ministers and in the process created a ministry and plucked some portifolios from certain ministries.
Honourable Nqobizitha Mangaliso Ndlovhu is the new Minister of Environment, Climate Change, Tourism and Hospitality Industry, replacing Priscah Mupfumira.
Dr Sekesai Nzenza is the new Minister of Industry and Commerce replacing Nqobizitha Ndlovhu.
Professor Paul Mavhima leaves the Primary and Secondary Education Ministry to become the new Minister of Public Service, Labour and Social Welfare.
Ambasador Cain Mathema is the new Minister of Primary and Secondary Education. Kazembe Kazembe has been re-assigned to the Ministry of Home Affairs and Cultural Heritage and Jenfan Muswere has been promoted from deputy minister to be the Minister of Information, Communication Technology, Postal and Courier Services.
Honourable Daniel Garwe is leading a new ministry, the Ministry of National Housing and Social Amenities.
MORE TO FOLLOW…..


Created by Will Jackson / @willjackson00 /<EMAIL_ADDRESS>Sponsored by New Valley Media
Follow along with the presenation at http://bit.ly/1DVPSzg
New Valley Media is a group of developers, working together to provide the best possible experiences for based Drupal websites.
We stay active in the community by attending, sponsoring, and presenting at Drupal Camps, conferences, and other events.
What we're going to cover..
Project Management
Development Operations
747 Haywood Rd., Asheville, North Carolina 28806
6pm - 10pm


Why is Everything Shifting?!?!
June 19, 2015
CSS is made up of many different properties and the one that I want to discuss today is the one that gave me the most amount of grief when creating my website - Display.
Now before diving in, let us first think back to when we first used Microsoft Office: Word. At some point or another, we have all had to use some sort of writing program (MS Word was my first). Now did you ever have to add a photo or image? Well I had to - many times. And what do I remember most about pasting that image? My entire document format going crazy as a direct result! You have to format your image in order to fix everything. I mention this because CSS's display property has the same concept.
The display property controls the basic layout of your website. Think of every element you put on a website as being in an invisible box. The display property is your way of telling those invisible boxes how to behave with each other. Most issues arise because boxes cannot overlap. There are four basic values that a display property can have which are explained below.
Block
p {
display: block;
height: 3em;
width: 3em;
}
The Block value makes the box sit on it's own line. It also adds a line break before and after it.
Inline
p {
display: inline;
height: 3em;
width: 3em;
}
The Inline value makes the box only take as much space as needed. In my example, it overwrote my height and width values. It allows other boxes to sit on the same line.
Inline-Block
p {
display: inline-block;
height: 3em;
width: 3em;
}
The Inline-Block value is, as its name implies, a combination of inline and block. It is like inline in that it still lets other boxes sit on the same line. The difference is that you can specify a height and width for the box.
None
p {
display: none;
height: 3em;
width: 3em;
}
The None value simply makes the box invisible. This can be used it you want something running in the background and not to be seen by the user.
In conclusion, the display concepts are not too hard to understand. It is definitely a lot easier seeing the comparisons side-by-side. I hope this reference was helpful to you. Have fun coding!
A few helpful references:


After we review your application, a mortgage consultant will be in touch to answer your questions about getting prequalified and discuss your next steps.
Download this helpful guide to learn what you need to know about applying for a mortgage.
Home Lending Guide


Development
I’m a Kansas City-based web developer who’s been working full-time in the industry since 2006. My forte is front-end development, although I’ve done some back-end work as well. I love clean code, and I try to keep solutions as simple as possible without sacrificing anything.
I have experience as an individual contributor, a manager, and a technical leader, so I’ve really done development from all sides. I’m currently working as a Senior UX/UI Developer focusing on web applications.
Who I’ve Worked With
PlattForm (now Thruline Marketing) / 2006-2014, worked on websites for schools, including numerous conversion-oriented landing pages
Intouch Solutions / 2014-2018, worked on websites for pharmaceutical companies, including some in Adobe Experience Manager and SiteCore
Blue Rivet / 2018, worked on a web application for Kansas City Power and Light
Sprint / 2018-2019, worked on Sprint.com, using Adobe Experience Manager and Angular
NIC, Inc. / 2019-current, worked on a web application to build solutions for governmental agencies
Technologies I Know
Front-End: HTML5, CSS, SASS/SCSS, Less, JavaScript
Libraries/Frameworks: Vue, Bootstrap, MaterializeCSS, jQuery
Back-End: ASP.NET
CMS: WordPress, Adobe Experience Manager, SiteCore
Tooling: Git, Gulp, Node, Jekyll


DW Marketing
Contacts
Users
Companies
Regions/City
Sign out
New User
Name
Lastname
Email
Profile
Edit/Delete
Create User
×
Firstname
Lastname
Email
Profile
Select a profile
admin
user
Password
The password should contain at least 8 characters
Confirm Password
Add User
Update User
×
Firstname
Lastname
Email
Profile
admin
user
Delete User
×


Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type It was popularised in the 1960s with the release of Letraset sheets n the 1960
Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type It was popularised in the 1960s with the release of Letraset sheets n the 1960
Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type It was popularised in the 1960s with the release of Letraset sheets n the 1960
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type It was popularised in the 1960s with the release of Letraset sheets n the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. It was popularised in the 1960s with the release of Letraset sheets
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type It was popularised in the 1960s with the release of Letraset sheets n the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. It was popularised in the 1960s with the release of Letraset sheets


PSL Smashes Billion-Rand Revenue Mark
by SW EditorThe South African Premier Soccer League (PSL), boosted by a lucrative TV deal, posted record revenue of more than one billion rand last season.
A statement said TV rights and sponsorships from banks, telecommunication and engineering companies were responsible for the 1,005 billion ($68 million/62 mn euros) bonanza.
“The results are due to the renewal of our broadcast deals because they contribute a high percentage of income,” PSL chairman Irvin Khoza confirmed Sunday.
“We have reached the one billion rand mark and that augurs well for the clubs as the monthly grants to them will increase next season.”
The PSL runs a 30-round league, which the SuperSport channel screens throughout Africa, and the first prize increased 50 percent to 15 million rand for the 2019/2020 season.
SuperSport paid more than two billion rand this year for a five-year renewal of the deal to screen the South African Premiership and three knockout competitions.
The Johannesburg-based pay-to-view channel has a reported seven million subscribers in South Africa, and millions more spread across the rest of Africa.
SuperSport sublet matches to the cash-strapped South African Broadcasting Corporation (SABC), which pays 72 million rand per season.
There are also three knockout competitions, including a League Cup and an FA Cup, for the 16 top-flight clubs to contest.
– Winner-takes-all –
The other one, the MTN8 for the top eight finishers in the previous league, gives an eight million rand winner-takes-all prize for playing just four games.
Although some leagues, notably those in Algeria, Egypt, Morocco and Tunisia, produce a more internationally successful brand of football, South African clubs top the financial table.
Apart from challenging for four first prizes annually, totalling 34 million rand, each club receives a monthly grant of 2.5 million rand.
Some sides, like defending champions and 2016 CAF Champions League winners Mamelodi Sundowns, have the added advantage of rich South African owners.
The funding of dollar billionaire Patrice Motsepe allows Sundowns to buy stars not only from Africa but also South America, with two Uruguayans, a Brazilian and a Venezuelan on their books.
One challenge for the PSL is attracting more spectators to fixtures not featuring the big crowd-pullers, Soweto sides Kaizer Chiefs and Orlando Pirates and Pretoria-based Sundowns.
While the ‘big three’ can draw crowds of up to 90,000, even for a friendly match, games between less popular sides struggle to lure 5,000.


Half-Elven
games
tutorials
blog
about
Jumper
Use the
Left
and
Right
arrows to move.
Use
Space
to jump.
High Scores
Update Scores


I've problems starting timestore, it seemed to install ok, no error when I start/restart it with
sudo /etc/init.d/timestore restart
even the /var/log/timestore.log is empty so I'm just wondering where to look to find out whats wrong ?
Although it could be connected with the error, I get when installing it ? I'm not sure where to get this adminkey ?
cat: /var/lib/timestore/adminkey.txt: No such file or directory
Re: problem starting timestore
Making a habit of answering my own questions, but I got the adminkey.txt file now.
Ran /home/pi/timestore/src/timestore which created the adminkey.txt now I can start/stop/status etc via /etc/init.d/timestore
Hope this is right ?
Re: problem starting timestore
I did ./update_pi_emoncms.sh to update everything hopeing to try out timestore. Now when it restarts frm12piphp I get the following error
Restarting RPIWARNING: are you sure raspberrypi_run.php is running ?
PHP Fatal error: Call to a member function fetch_array() on a non-object in /var/www/emoncms/Modules/feed/feed_model.php on line 289
the code at 289 is
$qresult = $this->mysqli->query("SELECT engine FROM feeds WHERE `id` = '$feedid'");
$row = $qresult->fetch_array();
I don't have that field engine, so I'm guessing I have to update the db ?
Have I failed to update something correctly ?
Re: problem starting timestore
OK I'm talking to myself :) never mind
the db_scheme_setup wasn't/isn't getting called I have $dbtest=TRUE in settings.
the test in index.php or the db_check isn't finding the field missing, or even the table missing when I drop feeds table.
if (!$mysqli->connect_error && $dbtest==true) {
require "Lib/dbschemasetup.php";
if (!db_check($mysqli,$database)) db_schema_setup($mysqli,load_db_schema(),true);
}
I did try to understand whats going on, but can't work it out, think it must be the db
anyway I hacked it for the time being... to create my feeds table
Re: problem starting timestore
WindyBoy, good effort hacking it, did you see the admin interface? Admin tab > update check db
Re: problem starting timestore
no, not sure I've seen the admin interface ? How do I get there, via my registered user or is there an admin id/passwd ?
OK tried adding $updatelogin = TRUE, still no extra menus... looked in the controller for admin tried url admin/list commented out/removing the security in the controller still nothing.
but everything is working now, but I'm interested still how to get this admin module to work


Super-resolution result
Executed Super-resolution
Original image
{% with 'uploads/'|add:file_name|add:'' as image_static %}
{% endwith %}
Image magnified by bicubic interpolation
({{magnification_rate}}倍)
{% with 'expansions/'|add:file_name|add:'' as image_static %}
{% endwith %}
Our Super-resolution image
({{magnification_rate}}倍)
{% with 'downloads/'|add:file_name|add:'' as image_static %}
{% endwith %}
{% endblock content %}


| File | Description |
| example1.html | Creating a WebGL2 context from a canvas and manipulating it. |
| example2.html | Creating shaders and using hardcoded vertices. |
| example3.html | Introducing vertex buffer objects for non-hardcoded vertex positions and varying variables for data transfer between vertex and fragment shaders. |
| example4.html | Introducing the model matrix as a uniform variable in order to enable instanced rendering of multiple triangles |
| example5.html | Moving from a static rendering to implementing a render loop. Adding input and output to the DOM for FPS measurements and being able to toggle rotation. |
| example6.html | Moving into 3D space by using a view matrix and projection matrix for the virtual camera. |
| example7.html | Optimizing the buffer storage with element array buffers and adding textures |


|
QuantLib: a free/open-source library for quantitative finance
Fully annotated sources - version 1.30
|
purely virtual base class for indexes More...
#include <ql/index.hpp>
Public Member Functions | |
| ~Index () override=default | |
| virtual std::string | name () const =0 |
| Returns the name of the index. More... | |
| virtual Calendar | fixingCalendar () const =0 |
| returns the calendar defining valid fixing dates More... | |
| virtual bool | isValidFixingDate (const Date &fixingDate) const =0 |
| returns TRUE if the fixing date is a valid one More... | |
| bool | hasHistoricalFixing (const Date &fixingDate) const |
| returns whether a historical fixing was stored for the given date More... | |
| virtual Real | fixing (const Date &fixingDate, bool forecastTodaysFixing=false) const =0 |
| returns the fixing at the given date More... | |
| const TimeSeries< Real > & | timeSeries () const |
| returns the fixing TimeSeries More... | |
| virtual bool | allowsNativeFixings () |
| check if index allows for native fixings. More... | |
| virtual void | addFixing (const Date &fixingDate, Real fixing, bool forceOverwrite=false) |
| stores the historical fixing at the given date More... | |
| void | addFixings (const TimeSeries< Real > &t, bool forceOverwrite=false) |
| stores historical fixings from a TimeSeries More... | |
| template<class DateIterator , class ValueIterator > | |
| void | addFixings (DateIterator dBegin, DateIterator dEnd, ValueIterator vBegin, bool forceOverwrite=false) |
| stores historical fixings at the given dates More... | |
| void | clearFixings () |
| clears all stored historical fixings More... | |
| Public Member Functions inherited from Observable | |
| Observable () | |
| Observable (const Observable &) | |
| Observable & | operator= (const Observable &) |
| virtual | ~Observable ()=default |
| void | notifyObservers () |
Private Member Functions | |
| void | checkNativeFixingsAllowed () |
| check if index allows for native fixings More... | |
purely virtual base class for indexes
|
overridedefault |
|
pure virtual |
Returns the name of the index.
Implemented in EquityIndex, InflationIndex, and InterestRateIndex.
|
pure virtual |
returns the calendar defining valid fixing dates
Implemented in EquityIndex, InflationIndex, and InterestRateIndex.
returns TRUE if the fixing date is a valid one
Implemented in InflationIndex, BMAIndex, EquityIndex, and InterestRateIndex.
|
pure virtual |
returns the fixing at the given date
the date passed as arguments must be the actual calendar date of the fixing; no settlement days must be used.
Implemented in EquityIndex, ZeroInflationIndex, YoYInflationIndex, InterestRateIndex, and InflationIndex.
| const TimeSeries< Real > & timeSeries | ( | ) | const |
returns the fixing TimeSeries
Definition at line 65 of file index.hpp.
|
virtual |
check if index allows for native fixings.
If this returns false, calls to addFixing and similar methods will raise an exception.
Reimplemented in SwapSpreadIndex.
Definition at line 72 of file index.hpp.
stores the historical fixing at the given date
the date passed as arguments must be the actual calendar date of the fixing; no settlement days must be used.
Reimplemented in InflationIndex.
Definition at line 24 of file index.cpp.
| void addFixings | ( | const TimeSeries< Real > & | t, |
| bool | forceOverwrite = false |
||
| ) |
stores historical fixings from a TimeSeries
the dates in the TimeSeries must be the actual calendar dates of the fixings; no settlement days must be used.
Definition at line 33 of file index.cpp.
| void addFixings | ( | DateIterator | dBegin, |
| DateIterator | dEnd, | ||
| ValueIterator | vBegin, | ||
| bool | forceOverwrite = false |
||
| ) |
| void clearFixings | ( | ) |


Toggle navigation
Dennis Minh
Home
Exercise
Calc Date Different
Robot Movement
Tutorial
Action
Another action
Something else here
Separated link
One more separated link
Search
Calculate Different Days between two days using Javscript ES6
Description:
The application read the following String format:
- DD MM YYYY, DD MM YYYY
Validate the input data, and compute the difference between the two dates in days.
Output of the application should be of the form:
- DD MM YYYY, DD MM YYYY, difference
Where the first date is the earliest, the second date is the latest and the difference is the number of days.
Input can be from a file, or from standard input, as the developer chooses.
Provide test data to exercise the application.
Constraints
:
The application may not make use of the platform / SDK libraries for date manipulation (for example Date, Calendar classes). The application can limit calculation on an input range of dates from 1900 to 2010
Date 1
Date 2
Result
Calculate
Reset


In Xcode, I make heavy use of the Replace function, both in the source editor (⌘⌥F
) and the Find navigator (⇧⌘⌥F
), and much of that use includes regular expression capabilities. At this point I can fly through all the modifier popovers and dropdowns without leaving the home keys. To boot, I’ve had a lot of practice with it lately due to the complete lack of refactoring support for Swift.
Xcode 9 has a brand new source editor implemented from scratch in Swift, and the Find/Replace panel I’ve come to know so well also received a makeover. After using it for a few days, I’ve found what I like about it, and what I’d like to see for the final release. Below is my critique of the UI and UX, in which I’ve done my best to leave no stone unturned.
Overall, the new panel composition and design is slick, with both bold and subtle differences from its predecessor. I immediately noticed that it had been changed because I use a dark background in my source editor, and Xcode 9’s new Find/Replace panel now respects the selected themes! The differences are extremely subtle between different light and dark themes, though. For instance, in Default, the text fields’ background color is RGB(219, 219, 219), whereas with Sunset chosen it is RGB(219, 219, 218)–less than half a percent change in the blue value! Check out the differences, with Xcode 8 on top and 9 on the bottom, with both light and dark themes:
Note: from now on throughout this post, Xcode 8 screenshots will always have a dark editor background, and Xcode 9 will have a light background.
The group of buttons on the right is one of the more striking changes in the new version. Before, the Find and Replace fields joined to the buttons immediately to their right, mixing the text fields and buttons in a sort of segmented control. Now, only the buttons are members of the segmented controls, their rounded corners facing those of the text fields underscoring their separation. The buttons are now shorter in height than the text fields, whereas each button is wider than it was in 8. I think at least the previous and next result buttons (“⟨” and “⟩”) and replace “All” button could lose some width, maintaining equal overall width between the top and bottom rows.
The difference in margins around the text fields versus the button cluster to the right is a bit jarring to me. In Xcode 8, equal vertical spaces lie between the container edges to the text fields and attached button cluster rows, and between the two text fields and rows of buttons themselves. Since the buttons are now shorter than the text fields in height, the space between the rows of buttons is now twice as much as the space between the text fields, along with leaving unequal spacing to the edges of the container around them. I would prefer the buttons to remain the same height as the text fields.
The first thing that actually stood out to me (besides the obvious difference in design language) were the new case-sensitive and regex search buttons in their new home as the farthest-right accessory views in the Find field. The great news is that what used to take 5 clicks (or arrow/escape/spacebar/return key presses) now only requires one. Unfortunately, they do not respond to keyboard input, or even correctly support tab navigation (radars: rdar://32829012 and rdar://32863002). The following video shows attempting to tab to the case-sensitivity toggle and pressing spacebar (hitting tab to attempt further navigation would likewise insert a tab into the source editor):
The options to restrict results to strings “starting with” and “ending with” the query are gone in Xcode 9. Personally I am fine with this since you can write regular expressions for them, using ^
(start) and $
(end) anchors.
One other thing removed in Xcode 9 is the “Insert Pattern” (^⌥⌘P
). I personally never used this, but it appears to no longer be available even via the menu bar. If I had to guess, that was a system-wide option that was not carried over to a from-scratch rewrite (a very similar Find/Replace panel exists in TextEdit.app, with the “Insert Pattern” option–but no real regex support).
The dropdown to the left of the text fields for “Find” and “Replace” with the ever-present current selection has been removed. This now drops down from the magnifying glass in the Find field’s left accessory view, which in Xcode 8 opened the dropdown with all the search options. Not having to display those superfluous labels reclaims some horizontal space in the panel, which I like. The vertical lines in this image show the space saved from Xcode 8 (top) to 9 (bottom).
The clear button to the right of the match count label in the Find field has disappeared, which may irk some developers who prefer to point and click in the GUI. To clear the text from the field, one must now double- or triple-click, or click and drag to highlight to select all the text, and press delete. Or, for the terminal lovers, ^A
and ^K
still work too.
The count of matches, in the leftmost right accessory view position of the Find text field, previously did not display units-now it affixes “matches”. It offsets some space saved by other UI changes, but I think it looks clean and is better than having a random number hanging around. (Always mind your units!)
Something I didn’t even notice until I started pulling apart the two UIs: in versions ≤ 8, holding ⌥
changes the “Replace” button to “All in Selection”. Fortunately, it still exists in the menu as “Use Selection for Replace” (⇧⌘E
), along with it’s sibling “Use Selection for Find” (⌘E
). I always love finding hidden little helpful details like this, so I’m waiting for the chance to use it. Hopefully I remember!
Another thing that might irk some folks is the disappearance of the “Recent Searches” list in the old magnifying glass dropdown. I know it has saved me a few times when I had a complicated regex constructed, and then forgot about the system-wide search field behavior in macOS! ⊙▂⊙
As it’s the first beta release, and especially because this is brand new UI, there are a few rough edges. In addition to the tab-navigation problem, regex replacement currently does not interpolate capture groups rdar://32827938.
Overall I’m really pleased with the new look and feel and the UX improvements that were made. I think one or two bug fixes there, along with tweaks to margins, would seal the deal for me. But, I’m already happy with the changes, and am excited to use it in its final form in Xcode 9 along with all the other great new features!
🙏🏻 Enjoy the post? Please help support more like it by buying me a cup of coffee!.
💡 Suggestions, questions, comments? Please submit a PR!.


{% extends "base.html" %} {% block title %}{{ post.title }}
{{ post.content }}
Submitted by {{comment.author}}
Submit a Comment:
{% else %}
Login or Signup to Comment
{% endif %}{% for comment in comments %}
{{comment.content}}
Submitted by {{comment.author}}


You are in good company
when you choose Omnistar
Products
Used By Over 16,000 Companies in Over 80
Countries Welcome to one of the fastest growing software companies.
Same Day Support Guarantee We guarantee that we will respond to all support requests within 24 hours.
Free Phone Support Call our support team during business hours to get your questions answered. We are here to help.


#include <OISMultiTouch.h>
◆ MultiTouchState()
| OIS::MultiTouchState::MultiTouchState |
( |
| ) |
|
|
inline |
◆ clear()
| void OIS::MultiTouchState::clear |
( |
| ) |
|
|
inline |
◆ touchIsType()
◆ height
| int OIS::MultiTouchState::height |
|
mutable |
◆ touchType
| int OIS::MultiTouchState::touchType |
◆ width
| int OIS::MultiTouchState::width |
|
mutable |
Represents the height/width of your display area.. used if touch clipping or touch grabbed in case of X11 - defaults to 50.. Make sure to set this and change when your size changes..
| Axis OIS::MultiTouchState::X |
| Axis OIS::MultiTouchState::Y |
| Axis OIS::MultiTouchState::Z |
The documentation for this class was generated from the following file:


{% extends "email_template.html" %} {% block title %}Forgot username{% endblock %} {% block content%}
|
You silly.. Your username is:
USERNAME_HERE
|
|
|
|
Didn't send this request?
{% endblock %} |


162 Bushel Capacity
16 Gauge Construction For Light Pull Weight
Rugged 14 Gauge Trough Construction
Fully Braced Interior With Agitator
New Wheels And 8 Ply Tires Included
Multi-Position Doors
Easy-Open Lid
Full Axle For A Smooth Stable Ride


Reports on any unnecessary uses of this in the code.
Using this to
disambiguate a code reference may easily become unnecessary via automatic refactorings, and is discouraged
by many coding styles.
For example:
this.a = 3;
Use the checkbox below to ignore assignments to fields.
Powered by InspectionGadgets


Within the engines
section of the package.json file you SHOULD declare the minimum version of Node that your package works on.
This SHOULD satisfy the current minimum supported version of the latest Node-RED release.
{
"engines": {
"node": ">=12.0.0"
}
}
Node-RED has supported multiple versions of Node in its history and some of these have become end of life, this helps users identify if a node will run on their installation.
https://docs.npmjs.com/cli/v7/configuring-npm/package-json#engines


Chrome crash test by web font demo
browser version: 75.0.3770.142
step:
1. open dev tool
2. disable cache
3. refresh document
4. When status is Loading, refresh document will crash


The best way to achieve a financial goal is to regularly set aside funds, invest them appropriately, so that you won’t have to scramble when you need the money.
Systematic investment plans or SIPs—monthly investments in mutual funds—are a great way to do this. But these too are susceptible to the vagaries of the market. It’s something most financial planners will ask you to be wary of, especially in case of equity investments.
A decline in equities, protracted or sudden, could set your financial goals back by years. On this BQ Big Decisions podcast, BloombergQuint speaks to Harshvardhan Roongta, certified financial planner and founder of Roongta Securities, about a secured way to achieve your most important financial goals.


fun addPending(item: T, timeMillis: Long): Unit
Add a pending delete request to the repository. Does nothing if a delete request for this item is already pending.
item - Item to be deleted.
item
timeMillis - Time after which the deleteFunction will be called.
timeMillis


data class ImageResizeOption
MediaResizer Class: ImageResizeOption Created by Pyxis on 2017-11-27. |
|
data class ResizeOption
MediaResizer Class: ResizeOption Created by Pyxis on 2017-11-23. |
|
data class VideoResizeOption
MediaResizer Class: VideoResizeOption Created by Pyxis on 2017-11-23. |


#ftl output_format="HTML" auto_esc=true> <#import "layout/default.html" as layout><EMAIL_ADDRESS>Hello ${notificationTarget.name},
We have received a request to change the password for your account. You can do this through the link below.
|
If you didn't request this, please ignore this email.
Your password won't change until you access the link above and create a new one.
<EMAIL_ADDRESS>/> @layout.default>


Job Search
Login
Navbar Link
menu
First Name
Last Name
Occupation
Industry
Password
Email
done
not_interested


offlineGoogleAnalytics
Optional Boolean
, defaulting to false
Controls whether or not to include support for offline Google Analytics.
When true
, workbox.googleAnalytics.initialize()
will be added to your new service worker file.
Example:
offlineGoogleAnalytics: true


| Viewed | Saved | Discussed | Cited | Recommended |
|---|---|---|---|---|
| PMC usage | Mendeley | CrossRef | * | |
| CiteULike | PubMed Central | |||
| Nature Blogs | PMC Europe Citations | |||
| ScienceSeeker | PMC Europe Database Citations | |||
| ResearchBlogging | DataCite | |||
| Wordpress.com | ||||
| Wikpedia | ||||
| OpenEdition |
Viewed
Views and downloads of a research article in PubMed Central are collected. (Page views and PDF downloads at each publisher's site is independently aggregated and may be available as a private source.)
Considerations
Online usage data should be interpreted with caution. In general, it is dependent on the age of the article and its subject area. Robot activity may also impact usage data. COUNTER 3 maintains a defined list of robots that should be excluded in each publisher's usage reports.
PMC provides monthly reports of the prior month's usage, and so there may be a lag in the display of data up to one month's time. PMC statistics are COUNTER 3- compliant to the extent that they exclude internal use and crawlers/bots, and do not count duplicate requests for HTML pages or PDFs that are made within the limits specified by the standard. They are not compliant in that NLM does not provide usage data by specific IP, user, or organization. PMC began to make their usage data available to publishers upon request at various dates, and so articles published prior that time may not have PMC data .
Cited
Citation data is computed by third-party citation measuring services. The following public indices are open and available to all: PubMed Central, Europe PMC and CrossRef. Each displays a single number (article citations) and links to a landing page containing information related to the citing articles.
In addition we provide two sources that track citations of journal articles by datasets: DataCite and Europe PMC Database Links.
Considerations
Citation counts will vary between services, as each draws upon a different database of journals that they index. To attain the most comprehensive view of citations, consult all lists and "de-duplicate" the results. If there are missing citations from one of the sources, please contact the appropriate vendor for more information.
CrossRef citations are provided by the CrossRef Cited-by Linking service. The data are limited to journals participating in CrossRef's Cited-by Linking service.
Saved
Online reference management services - CiteULike and Mendeley - have become common ways for researchers to bookmark papers, collate references, and share sources with their community. The ALM application captures the number of times the research article in question has been bookmarked by individual researchers or research groups. Each is linked to a landing page that allows users to navigate to other services such as subject tags and other bookmarked articles.
Considerations
The CiteULike landing page captures total number of individuals and groups who have added the article to their CiteULike bookmarking account. There may be multiple users attached to each posting on this landing page, and they are found hyperlinked by the article listing. For example, the listing with the description: "posted by UserX along with 2 people and 1 group" will have a total count of 4. The Mendeley count is an aggregate of the number of individuals and groups who have added the article.
Discussed
With the establishment of a networked landscape in research, researchers today employ a host of tools from which to share and discuss each other's work. The ALM application has integrated the leading channels to offer a more comprehensive view of the discussions surrounding a paper after publication.
Blogs
Blog posts serve as a common dissemination channel for articles published in PLOS journals. To identify and link to them from each article, third party blog aggregators are used: Nature Blogs, ScienceSeeker, ResearchBlogging, Wordpress.com and OpenEdition. For each service, the count reflects the number of blog articles which have discussed the paper and depends on the method of aggregation specific to each service. To attain the most comprehensive picture of how many (and which) blogs cite the article in question, consult all the constitutive lists and de-duplicate repeated entries.
Social media
The system also tracks the dissemination activity of articles through Twitter, Facebook, and Reddit. Given the ease and scope of digital propagation, researchers increasingly employ this social channel to recommend and discuss articles. This activity thus represents interest in the article, in a similar manner as usage data and provides insight into the reach of the article.
- Twitter: a social networking and microblogging service. The application tracks the sharing of articles on Twitter and provides the total number of tweets.
- Facebook: the largest social network. The Facebook count reflects the aggregate number of Facebook Likes, "shares," "posts," and "comments" on an article.
- Reddit: a user-generated news links site. The system aggregates the number of posts and comments. It also collects the Reddit score based on the number of upvotes and downvotes for the post, which contains the article mention.
Reference Commons
PLOS also collects data for articles discussed in Wikipedia encyclopedia entries. We include references found across the 25 largest Wikipedia language sites and Wikimedia Commons.
Considerations
Social media: appropriate use of the social network data types will aid the discovery of related papers as well as reveal the article's readership reach. In collaboration with Cameron Neylon, this informational video discusses the power of such metrics as a research and discovery tool.
Blogs: in many cases, blog authors do not reference the article in a way that allows for automated aggregation, and the aggregating services we link to cover only a selection of all possible blogs. Therefore, there will potentially be many more blogs about an article than these aggregators are able to identify.
Recommended
Currently the recommendations service included in the ALM application is a private source, F1000Prime, which requires a contract. See the respective publisher or provider specific pages for details on this source.


New Computer Setup
REPLACE_WITH_VERSION_NUM
Asset Host Name:
Owner's Username:
Software Stack:
REPLACE_WITH_STACK_INFO
Submit


The idea of using algorithms and creativity together is always highly debated. On one hand, creativity is normally seen as an inherently human trait, one that comes from “within” the human mind and soul. On the other hand, certain genres are known to approach music very systematically, almost formula-like in their strategy to make a hit. Two prime examples of this are Pop and Country, where it's theorized that major labels sit down and formulate songs from chords to lyrics, in order to guarantee a money maker. With these two camps of thought, we have a tale of two questions; first, is it true that the most popular songs of a given genre follow some sort of pattern, and second, are these patterns significant enough to build a model to predict the success of new songs, and whether these models have some consistencies access genres.
To approach this problem, we relied on the Million Song Dataset, a freely-available collection of audio features and metadata for a million contemporary popular music tracks. This dataset contains metadata such as danceability, song duration, temp, key and time signature. The dataset also includes information about the artist and album, such as artist location, familiarity, and album release id.
The initial approach was to take each song from the MSD, grab additional metadata using the Spotify API, group by genre, then try to run Decision Tree and Regression classifiers on each set of songs to see whether patterns emerged. While ambitious, the data collection became too difficult to manage due to inconsistencies between APIs and rate limits, so in the end we settled on just trying to predict song popularity across all songs in a subset (1%) of the MSD. In this case, popularity is measured by the “song.hotttnesss” index supplied by the dataset. This feature is a value from 0 to 1 that describes how popular the given song is.
In the end our Decision Tree Classifier was able to predict whether a song would be in the top quartile of popularity with 89% accuracy, and our Decision Tree Regressor predicted our training set of song’s popularity with a MSE of 0.02. The most important features were a song's "familiarity", year released, and things like being in a major key or written by an already popular artist.


Who You Gonna Call?
Is there something strange?
What's your neighborhood?
Find who to call
Load more doctors


Too busy learning Italian to write this post. Coming soon...
Why I Learn Languages
What's My Job?
What is blockchain and what do I do? Coming soon...
Il Mio Primo Testo in Italiano? 😳
Ho la capacità per questo? Prossimamente...
How to Start Developing for Fabric
Let's dive into cc-tools
and learn Fabric as we develop. Coming soon...


| Producer: | Apple |
|---|---|
| Type: | Computer (iMac) |
| Installed Os: | macOS Big Sur |
| RAM: | 8GB |
| Capacity: | 256GB |
| Processor: | Apple M1 |
| Cores: | 8 |
| Weight: | 4.46 kilograms |
| Display: | 24 inch, Retina 4.5K |
| GPU cores: | 7 |
| Ports: | 2x Thunderbolt / USB 4, 3.5mm headphone jack, Ethernet, 2x USB 3 |
1899$


OpenCapture Object
The OpenCapture object deals with video capture devices. It can capture video stream, display the rendering on the screen (preview), track color objects, track objects with a classifier file, track feature object, track QR code or barcode and save camera image or video to files. It is using the OpenCv library 2.4.8. to capture and process video stream.
With this extension, 1 example is provided:


The syntax of a logical pathname namestring is as follows. (Note that unlike many notational descriptions in this document, this is a syntactic description of character sequences, not a structural description of objects.)
logical-pathname::= [host host-marker] [relative-directory-marker] {directory directory-marker}* [name] [type-marker type [version-marker version]]
host::= word
directory::= word | wildcard-word | wild-inferiors-word
name::= word | wildcard-word
type::= word | wildcard-word
version::= pos-int | newest-word | wildcard-version
host-marker---a colon.
relative-directory-marker---a semicolon.
directory-marker---a semicolon.
type-marker---a dot.
version-marker---a dot.
wild-inferiors-word---The two character sequence ``**'' (two asterisks).
newest-word---The six character sequence ``newest'' or the six character sequence ``NEWEST''.
wildcard-version---an asterisk.
wildcard-word---one or more asterisks, uppercase letters, digits, and hyphens, including at least one asterisk, with no two asterisks adjacent.
word---one or more uppercase letters, digits, and hyphens.
pos-int---a positive integer.
<IP_ADDRESS> Additional Information about Parsing Logical Pathname Namestrings


LAPACK is a freely available software package provided on the World Wide Web via netlib, anonymous ftp, and http access. Thus it can be included in commercial packages (and has been). We ask only that proper credit be given to the authors by citing this users' guide as the official reference for LAPACK.
Like all software, this package is copyrighted. It is not trademarked; however, if modifications are made that affect the interface, functionality, or accuracy of the resulting software, the name of the routine should be changed. Any modification to our software should be noted in the modifier's documentation.
We will gladly answer questions regarding our software. If modifications are made to the software, however, it is the responsibility of the individuals/company who modified the routine to provide support.


--- template: auth ---
Thank you for attending CoWorking Night! Because you checked in through our system, the creation of your Urban Engine account is underway. An Urban Engine account will allow you to quickly check in to our events, find other like-minded members of the community, and access premium content in our Member Portal (coming soon!). To complete your account creation, please verify your email by clicking the link below.
link
If you do not want an Urban Engine account or you have questions about you account, please contact<EMAIL_ADDRESS>- Urban Engine Team


Deuteronomy 11:27
A blessing, if ye obey the commandments of the LORD your God, which I command you this day:


Burt's Books
The Definitive Guide to the Internet
Anonymous
Only
{{ count }}
left in stock! Order now!
$20.00
One copy is in your cart.


Saralta (Hindi for "ease") is an online portal where any user can upload their official documents for easy viewing, management, and comes handy in applying directly for various Official Government purposes.
Available Forms for you are :


Vendor Name:
Excel Human Resources
Reference Number:
4000400
Contract Date:
2013-07-10
Description of Work:
0813 Temporary Help Services
Contract Period:
2013-07-10 to 2013-08-11
Delivery Date:
2013-08-11
Original Contract Value:
$35,182.35
Current Contract Value:
$2,474.49
Comments:
This contract was competitively sourced and includes one or more amendments.
Additional Comments:
Administrative Services
Former Public Servant in Receipt of a Pension under the Public Service Superannuation Act:
No


Exodus 35:24
Every one that did offer an offering of silver and brass brought the LORD's offering: and every man, with whom was found shittim wood for any work of the service, brought it.


{% for product_row in products %}
{% for product in product_row %}
{{product}}
{% endfor %}
{% endfor %}


A game where players take turns to remove a block from a tower and balance it on top, creating a taller and increasingly unstable structure as the game progresses. The game ends when the tower falls in even a minor way. The winner is the last person to successfully remove and place a block.
Excited?
*Participants can come in a group of 3 to 4 and can play against each other.
*On the spot registrations will be done for this event.
*Registration fee 15/- per person.
Contact
Priya Gupta
+919737351453
<EMAIL_ADDRESS>Pawan Vijay
+918866531897
pawanvijay2011@gmail.com


# Angular based directive for excel like freeze pane
This is a angular based excel like freeze pane of table, you can view demo here. or download
here.
Download the project and to use this directive make sure to include the following files into your work space:
1) directive/freezepane.js
2) template/directive_template/freezepane.html /*Make sure to keep the directory as is from root folder, else change
the directive path in freezepane.js */
3) styles/freezepane.css
Include "freezepaneModule" as a dependancy to your angular module.
The "tablefreeze" directive has following attributes:
a) tableId = Pass the table ID you wish to apply freeze pane on
b) freezeRows = No of rows that needs to be frozen
c) freezeCols = No of columns that needs to be frozen
d) tableTemplateUrl = Path to your table template from root directory


 In groups of {{ players_per_group }} participants, you are to submit preferences over a selection of schools. You can choose over {{ nr_courses }} schools in total. Also, each school has a different capacity of participants. However, not only the members of your group submit their preferences for the schools, but also the schools have priorities over the members of your group. {% endblocktrans %}
{% blocktrans trimmed %} Every available school is linked to a potential payoff. These payoffs can vary within the group. Imagine the payoff as a representation of you much you enjoy being allocated with a certain school. In this experiment, the payoffs - and therefore you personal joy - are given by the experimenter. {% endblocktrans %}
{% blocktrans trimmed %} The following table sums up all the information you have in the experiment. Please keep in mind that the table is not necessarily the same for all your group members. {% endblocktrans %}
| {% trans "Index" %} | {% for i in indices %}{% trans "S" %}{{ i }} | {% endfor %}
|---|---|
|
{% trans "Potential Payoff" %}
{% if Constants.show_types and Constants.nr_types > 1 %}
({% trans "You are" %} {{ player.role }}) {% endif %} |
{% for i in valuations %}
{{ i|c }} | {% endfor %}
| {% trans "Schools' priorities (... out of" %} {{ players_per_group }}) |
{% for i in priorities %}
{{ i }} | {% endfor %}
| {% trans "Capacities" %} | {% for i in capacities %}{{ i }} | {% endfor %}
{% trans "How are schools allocated?" %}
{% blocktrans trimmed %} In the first step, every participant applies to the school stated as his/her top preference. Each school then reviews all applications of participants and tentatively assigns the participants to it in the order of its' priority list until either its' capacity is full or there are no applications left. Every participant that was rejected in the previous step applies to the school stated as his/her second highest preference. Each school then reviews all applications of participants in this and in the previous rounds and tentatively assigns the participant to it in the order of its' priority list until either its' capacity is full or there are no applications left. The algorithm terminates after no application is rejected in a step or after there are no applications left to consider in the participants' preference lists. {% endblocktrans %}
{% if Constants.instructions_example %}{% trans "Example:" %}
{% blocktrans trimmed %} Suppose that there are eight participants and four schools. Schools 1 and 2 have a capacity of two participants each. Schools 3 and 4 have a capacity of three participants each. Further suppose that the participants' preferences and the schools' priorities are as follows: {% endblocktrans %}
| {% trans "Participant" %} 1 | {% trans "Participant" %} 2 | {% trans "Participant" %} 3 | {% trans "Participant" %} 4 | {% trans "Participant" %} 5 | {% trans "Participant" %} 6 | {% trans "Participant" %} 7 | {% trans "Participant" %} 8 | |
|---|---|---|---|---|---|---|---|---|
| {% trans "School" %} 1 | 2 | 1 | 3 | 3 | 1 | 4 | 1 | 1 |
| {% trans "School" %} 2 | 1 | 2 | 2 | 4 | 3 | 1 | 2 | 2 |
| {% trans "School" %} 3 | 3 | 3 | 1 | 1 | 4 | 2 | 3 | 4 |
| {% trans "School" %} 4 | 4 | 4 | 4 | 2 | 2 | 3 | 4 | 3 |
| {% trans "School" %} 1 | {% trans "School" %} 2 | {% trans "School" %} 3 | {% trans "School" %} 4 | |
|---|---|---|---|---|
| {% trans "Participant" %} 1 | 1 | 7 | 3 | 8 |
| {% trans "Participant" %} 2 | 2 | 6 | 5 | 5 |
| {% trans "Participant" %} 3 | 3 | 1 | 2 | 6 |
| {% trans "Participant" %} 4 | 4 | 3 | 8 | 4 |
| {% trans "Participant" %} 5 | 5 | 2 | 1 | 7 |
| {% trans "Participant" %} 6 | 6 | 8 | 7 | 1 |
| {% trans "Participant" %} 7 | 7 | 5 | 4 | 3 |
| {% trans "Participant" %} 8 | 8 | 4 | 6 | 2 |
{% blocktrans trimmed %} Step 1: P2, P5, P7, and P8 apply for S1. P1 applies for S2. P3 and P4 apply for S3. P6 applies for S4. The requested schools review all applications and rank them according to their priority order: {% endblocktrans %}
| {% trans "School" %} 1 | {% trans "School" %} 2 | {% trans "School" %} 3 | {% trans "School" %} 4 |
|---|---|---|---|
| {% trans "Participant" %} 2 | {% trans "Participant" %} 1 | {% trans "Participant" %} 3 | {% trans "Participant" %} 6 |
| {% trans "Participant" %} 5 | {% trans "Participant" %} 4 | ||
{% blocktrans trimmed %} S1 tentatively accepts P2 and P5, while it declines P7 and P8. All other applications are also tentatively accepted by the respective schools. {% endblocktrans %}
{% blocktrans trimmed %} Step 2: P7 and P8, who have been rejected in the previous step, apply to their second best school, which is S2 for both. S2 now considers the new applicants together with P1, who was tentatively assigned to it in the previous period. {% endblocktrans %}
| {% trans "School" %} 1 | {% trans "School" %} 2 | {% trans "School" %} 3 | {% trans "School" %} 4 |
|---|---|---|---|
| {% trans "Participant" %} 2 | {% trans "Participant" %} 8 | {% trans "Participant" %} 3 | {% trans "Participant" %} 6 |
| {% trans "Participant" %} 5 | {% trans "Participant" %} 7 | {% trans "Participant" %} 4 | |
{% blocktrans trimmed %} S2 declines P1. P7 and P8 are accepted tentatively. {% endblocktrans %}
{% blocktrans trimmed %} Step 3: Only P1 is left and applies S1. The requested school reviews all application from this and the previous rounds: {% endblocktrans %}
| {% trans "School" %} 1 | {% trans "School" %} 2 | {% trans "School" %} 3 | {% trans "School" %} 4 |
|---|---|---|---|
| {% trans "Participant" %} 1 | {% trans "Participant" %} 8 | {% trans "Participant" %} 3 | {% trans "Participant" %} 6 |
| {% trans "Participant" %} 2 | {% trans "Participant" %} 7 | {% trans "Participant" %} 4 | |
{% blocktrans trimmed %} S1 declines P5. P1 and P2 are accepted tentatively. {% endblocktrans %}
{% blocktrans trimmed %} Step 4: Only P5 is left and applies S3. The requested school reviews all application from this and the previous rounds: {% endblocktrans %}
| {% trans "School" %} 1 | {% trans "School" %} 2 | {% trans "School" %} 3 | {% trans "School" %} 4 |
|---|---|---|---|
| {% trans "Participant" %} 1 | {% trans "Participant" %} 8 | {% trans "Participant" %} 5 | {% trans "Participant" %} 6 |
| {% trans "Participant" %} 2 | {% trans "Participant" %} 7 | {% trans "Participant" %} 3 | |
| {% trans "Participant" %} 4 |
{% blocktrans trimmed %} S1 accepts P5. The procedure terminates since no application was rejected in this round. The assignment is finalized: {% endblocktrans %}
| {% trans "School" %} 1 | {% trans "School" %} 2 | {% trans "School" %} 3 | {% trans "School" %} 4 |
|---|---|---|---|
| {% trans "Participant" %} 1 | {% trans "Participant" %} 8 | {% trans "Participant" %} 5 | {% trans "Participant" %} 6 |
| {% trans "Participant" %} 2 | {% trans "Participant" %} 7 | {% trans "Participant" %} 3 | |
| {% trans "Participant" %} 4 |
{% blocktrans trimmed %} Please click the "Next" button to continue. {% endblocktrans %}
{% next_button %} {% endblock %}


Definition at line 21 of file IAllVertices.h.
◆ advanceVertices()
Update internal state of the indexed Neuron (called by every simulation step). Notify outgoing synapses if vertex has fired.
- Parameters
-
| edges | The Synapse list to search from. |
| edgeIndexMap | Reference to the EdgeIndexMap. |
Implemented in AllSpikingNeurons, and All911Vertices.
◆ createAllVertices()
| virtual void IAllVertices::createAllVertices |
( |
Layout * |
layout | ) |
|
|
pure virtual |
◆ loadParameters()
| virtual void IAllVertices::loadParameters |
( |
| ) |
|
|
pure virtual |
◆ printParameters()
| virtual void IAllVertices::printParameters |
( |
| ) |
const |
|
pure virtual |
◆ setupVertices()
| virtual void IAllVertices::setupVertices |
( |
| ) |
|
|
pure virtual |
◆ toString()
| virtual string IAllVertices::toString |
( |
const int |
i | ) |
const |
|
pure virtual |
Outputs state of the vertex chosen as a string.
- Parameters
-
| i | index of the vertex (in vertices) to output info from. |
- Returns
- the complete state of the vertex.
Implemented in AllIZHNeurons, All911Vertices, and AllIFNeurons.
The documentation for this class was generated from the following file:


- If you want inspiration for a new product, don't listen to users, watch them
- To test whether a product is a good fit, ask users for feedback and listen to it
- If you want to incrementally improve an existing offering, don't listen, gather data
I'm over-simplifying, you should read the original post. I also wonder whether it should be "when is it safe to not act on user feedback", rather than "not listening" per se.


|
mime-form-decode
|
#include <StringDecoder.h>
Public Member Functions | |
| StringDecoder () | |
| ~StringDecoder () | |
| void | processString (std::string input) |
| Public API method specifies MIME string to decode. More... | |
| std::string | getFormValue (std::string formName) |
| Public API method retrieves a MIME form data element value. More... | |
| std::string | dump () |
| Public API method dumps all known MIME form data key-value pairs. More... | |
| void | close () |
| The data producer should call this once all data has been presented to the decoder to finalise processing and clean up all resources. More... | |
| void | decode (unsigned char c) |
| The data produced should call this method to present data to the decoder. More... | |
Protected Member Functions | |
| virtual void | object_created (Object *object) |
| Implementation of class StringDecoder. More... | |
| virtual void | data_start (Object *obj) |
| Called when a MIME object's data starts to be read. More... | |
| virtual void | data (Object *obj, unsigned char *data, int len) |
| Called once per byte in the MIME object's data. More... | |
| virtual void | data_end (Object *obj) |
| Called when all the data from the MIME object has been delivered. More... | |
Protected Attributes | |
| std::string | part |
| std::map< std::string, std::string > | results |
Definition at line 18 of file StringDecoder.h.
|
inline |
Definition at line 21 of file StringDecoder.h.
|
inline |
Definition at line 22 of file StringDecoder.h.
|
inherited |
The data producer should call this once all data has been presented to the decoder to finalise processing and clean up all resources.
Definition at line 28 of file Decoder.cpp.
References mime::Parser::close(), mime::Decoder::obj, and mime::Decoder::parser.
Referenced by main().
|
protectedvirtual |
Called once per byte in the MIME object's data.
Saves that data to our class string for later use.
| data | - pointer to actual data. |
| len | - number of bytes in data passed. |
| object | - an instance representing a MIME object. |
Implements mime::ClientInterface.
Definition at line 43 of file StringDecoder.cpp.
References part.
|
protectedvirtual |
Called when all the data from the MIME object has been delivered.
Saves the string we built and the key name (e.g. form item name) to our hash (map) for future access.
| object | - an instance representing a MIME object. |
Implements mime::ClientInterface.
Definition at line 58 of file StringDecoder.cpp.
References mime::HeaderField::attributes, part, and results.
|
protectedvirtual |
Called when a MIME object's data starts to be read.
| object | - an instance representing a MIME object. |
Implements mime::ClientInterface.
Definition at line 29 of file StringDecoder.cpp.
References part.
|
inherited |
The data produced should call this method to present data to the decoder.
Definition at line 15 of file Decoder.cpp.
References mime::ParserFactory::generic(), mime::Decoder::obj, mime::Parser::parse(), and mime::Decoder::parser.
Referenced by main(), and processString().
| std::string StringDecoder::dump | ( | ) |
Public API method dumps all known MIME form data key-value pairs.
Definition at line 99 of file StringDecoder.cpp.
References results.
Referenced by main().
| std::string StringDecoder::getFormValue | ( | std::string | formName | ) |
Public API method retrieves a MIME form data element value.
| string | - the MIME form data element name to retrieve. |
Definition at line 85 of file StringDecoder.cpp.
References results.
Referenced by main().
|
protectedvirtual |
Implementation of class StringDecoder.
Decodes a MIME string and allows retrieving form data values given a key when MIME content type is multipart/form-data.
| object | - an instance representing a MIME object. |
Implements mime::ClientInterface.
Definition at line 20 of file StringDecoder.cpp.
| void StringDecoder::processString | ( | std::string | input | ) |
Public API method specifies MIME string to decode.
| string | - the MIME string to decode. |
Definition at line 72 of file StringDecoder.cpp.
References mime::Decoder::decode().
Referenced by main().
|
protected |
Definition at line 29 of file StringDecoder.h.
Referenced by data(), data_end(), and data_start().
|
protected |
Definition at line 31 of file StringDecoder.h.
Referenced by data_end(), dump(), and getFormValue().


{% extends "base.html" %} {% block title %}Register{% endblock title %} {% block content %}
Are you sure you want to delete {{ group.name }}? This cannot be undone.
Roles


David Grey
1 Minutes ago
15 Minutes ago
18 Minutes ago
You're soon due to refill your prescription of Propranolol
Don't forget to take your Simvastatin!
You linked a new Pharmacy


{% load activity_tags %}
{% load userProfile_tags %}
{% if action.verb == 'FOLLOW_VERB'|settings_value or action.verb == 'UNFOLLOW_VERB'|settings_value %}
{# TO DO #}
{% else %}
{% if action.target|get_class_name == "Review" or action.target|get_class_name == "Album" or action.target|get_class_name == "Image" or action.target|get_class_name == "GenericWish" or action.target|get_class_name == "BroadcastWish" or action.target|get_class_name == "BroadcastDeal"%}
{% include 'generic/includes/render_voting.html' with object=action.target %}
{% endif %}
{% include 'actstream/render_share_action.html' with object=action.target %}
{% include 'actstream/render_comment_text.html' with object=action.target %}
{% include 'actstream/render_follow_post.html' with action=action %}
{% if action.actor|get_class_name == "User" and action.actor == request.user or action.actor|get_class_name == "BlogPost" and action.actor.user == request.user %}
Delete
{% include 'actstream/render_spam_report.html' with object=action %}
{% else %}
{% include 'actstream/render_spam_report.html' with object=action %}
{% endif %}


The Italian Data Protection Authority issued guidelines for the use of cookies in the web pages, by imposing that at the first access a banner allows the visitor to know about the web site cookies policy and to decide whether accepting them or not.
In this page you will find detailed information about the used cookies.
What are cookies?
Cookies are text files that web sites send to the user browser and that are saved on the user device and then resent at the next visit.
Which is the aim of cookie?
They are used to monitor sessions, to authenticate the user without asking continuously the account information, and so on.
What are technical cookies?
Technical cookies are used for making easier the user navigation and access (e.g., to avoid continuous authentications).
What are profiling cookies?
Profiling cookies are used for tracing the user navigation and making profiles of her preferences/interest. They are mostly used for advertisement purposes.
Google Analytics cookies: this web site uses some Google Analytics plugins that can trace information of the user. They are used only for collecting information like the type of used browser, the browser screen resolution, the country of the user, the visited pages and downloaded files. No user profiling occurs due also to the fact that the Google Analytics plugin settings are such that the IP addresses are anonymized. For further information you could visit the cookie policy web page of Google Analytics.
Main browsers allow to disable cookies savings and to make anonymous the user navigation. Detailed instructions are available at the browsers technical support web pages:
LinkedIn  ·  GitHub  ·  Gist  ·  Google Scholar  ·  Researchgate  ·  YouTube  ·  ORCID  ·  WebOfScience
© 2023 Giuseppe Silano. Built with Jekyll and Bootstrap. Based on a design by Alexander W. Winkler.


GeographicLib is a small set of C++ classes for performing conversions between geographic, UTM, UPS, MGRS, geocentric, and local cartesian coordinates, for gravity (e.g., EGM2008), geoid height, and geomagnetic field (e.g., WMM2010) calculations, and for solving geodesic problems. (The library may be used from .NET applications using the NETGeographicLib wrapper library.) It is a suitable replacement for the core functionality provided by geotrans. The library is licensed under the MIT/X11 License; see LICENSE.txt for the terms.


This VI Frontend Framework is a framework to build state of the art websites with an approved UI look and feel. It provides ready-to-use layouts, design and functionaliy and incorporates many proven practices used to build excellent websites. It has an adaptive / responsive design, is build mobile first and while it makes use of modern browser's capabilities, it also works on browsers as ancient as Internet Explorer 9. We hope to save you and your team hundreds of hours of work - Hours which you can invest in better content and maybe even into helping us improve this framework.
{{ for(var prop in ftf.indexr) { }}
{{? ftf.indexr[prop].category }}


| Name | Role | |
|---|---|---|
| Folker Meyer | Computational Biologist | folker at anl.gov |
| Tobias Paczian | Software Developer | paczian at mcs.anl.gov |
| Kevin P. Keegan | Post Doctoral Fellow | kkeegan at anl.gov |
| William Trimble | Post Doctoral Fellow | trimble at anl.gov |
This project relies on user input and testing, so please contact us with any suggestions or comments.


--- layout: post title: node.js chat server tags: - JavaScript - javascript - node.js - socket.io status: publish type: post published: true comments: true meta: aktt_notify_twitter: 'no' _edit_last: '2' ---
Since I have a bit of time on my hands right now, I took a look at node.js and socket.io. The outcome, a really simple chat client/server written in JavaScript. Source is up over at Github, with some instructions on getting started.


| DOSE: |
1 |
oral |
LSD |
(cookie / food) |
| |
repeated |
smoked |
Cannabis |
(plant material) |
First, a little background. I am not your typical psychonaut, well, at least not stereotypical. I am a high technology major in University; Iíd like to consider myself relatively well adjusted, and relatively safe in most of my endeavors. Prior to this experience, I had done no other drug other than ganja, I found the concept of psychoactive substances frightening, and didn't consider myself ready for the experience.
This past summer, a good friend who I had lived with in a Dorm that year contacted me about going to a rave, a music festival really. On a sparsely populated island legendary in the area for the open-minded populace, and frequent drug use. I agreed to go, as did three of my other good friends.
We went to this festival, a three day affair, the previous week I had been preparing myself for it, reading all I possibly could about LSD. Bolstered by my newfound knowledge, I arrived to the event, and set up camp. Being as that this was a three day affair, we agreed that we should plan our trip. That night we partied, enjoyed the good music, didnít really sleep, but had a good time. The next morning, we all awoke and started to make preparations, we agreed to eat these little sugar cubes a friend had acquired, liquid locally produced, pack a bag with supplies, and then set off down the beach. We ate the sugar cubes, all joked nervously, packed a bag with water, pot, and a camera and set out. There were four of us, only one had tripped before, we really had no idea what we were in for.
About 45 minutes later, the rocks started to sparkle. We where walking down the beach, enjoying the beautiful weather, when we started to point out the beauty of the stones, their place, their job, their perfection. At this point, we knew it was starting to kick in.
Tripping steadily, we ducked into the forest, a likely sheltered wooded path providing the perfect venue in which to experience our newfound expanded perception. I felt truly alive, I had embarked on this trip to try to find something I didnít know I was missing, it quickly became evident that my truth was lying just beyond the horizon.
The forest was beautiful, more beautiful than anything Iíve ever seen before in my life. Plants were not just plants... they where an extension of the planetís beauty. Bees buzzed with a purpose, not simply diving and weaving aimlessly, but traveling with duty. Realizing most of the plants around us actually stinging nettle (think poison ivyÖ but Canadian) we returned to the beach, rounding the corner to possibly the most confusing situation we could have.
There stood, on the beach, a cabin. Keep in mind, this is NOT a city. This is a beach that requires 20 minutes of off-road travel to simply reach, electricity ending 30 or 40 kilometers back up the island. And here lies a cabin. Approaching the building warily, I felt like we werenít ready for it. Like it was not our place, it was not the right time for this building, however, we entered cautiously. The cabin was furnished, not only with the standard couches, but a television, vcr, and stack of movies, quickly becoming apparent that a generator was required for full operation. Relics of past trips lie all around us. Here a picture, there a stack of beer cans, carved in the wood of the walls lie the reminders of previous adventures. Walking over to a side table, I picked up a curious scrap of paper, yellowed with time, it read:
Would you rather step in quicksand?
 Deeper than three lines should, looking at each other in wonder, we decided that we needed to keep moving. The empty place seemed too large for us, seemed too hard to comprehend. Hoisting our bag of tricks high, we left, staring back at the tiny house, wondering what other secrets it held.
By this time, in the hot sun, we had finished two bottles of water, having no pockets due to shorts; I tied the empty containers to the corners of a bright green bandanna, letting it hang from a belt loop. Suddenly I felt the need to complete it, picking up a stone; I tied a third corner off, a bright red lighter completing the fourth. Holding my creation aloft I placed it upon my friendís head, and there he stood dubbed: Captain Acid Hat.
Onward Captain Acid Hat and his band ventured, walking down the pristine beach, leaping from rock to rock, enjoying the experience of having our senses unleashed.
Here we diverge from pure narrative and into theory. When experiencing such emotions, I pondered, what could possibly cause such a shift in reality? Was Captain Acid Hatís amazing adventure simply fantasy? Were we all experiencing random synapses firing that caused the plants to seem so alive, the bees to seem so committed, and the water to sparkle like the light of a thousand suns? Or was it something else, deeper.
Spiritual? Unlikely. I am a man of technology, I entertain few delusions of theology, in fact, one of my greatest fears was the possibility of experiencing a spiritual vision, what if Iím wrong? What if Iím faced with the reality of a Christian theology? How would I deal with my entire worldview being shattered? No, this was more. Spirituality was minor in the world I experienced, where there a god he would be humbled by the beauty present in everyday things.
My theory is this: To assume and assert that our five senses represent the culmination of the universes experience is not only arrogant, but dead wrong. It has frequently been suggested by far smarter men than I that we exist in a tiny bubble of reality, our brains are wired through evolution to handle only so much input, so much feeling.
LSD is not a harsh chemical, it is not a brutal taskmaster, forcing me into an altered state of consciousness, itís a switch, flicking it opened my mind, and I believe, reduces the filters placed between me and reality. For the first time, when I looked at those sparking rocks, I saw them for what they were, without the muddling filters of my brain blocking it.
But back to the story.
Rounding another bend, we spied the end of our journey. The beach ended, curved up into a rocky bluff, impossible to climb in our state, but affording an amazing vantage point, shaded as it was by the thick tree cover on the hill. We made camp, opened our bag of tricks, and started to talk. About everything, about life, about our experience, we related it quite strongly to simply being stoned out of our gourds, the lot of us surprised at how gentle it was. Our minds were not addled nor chained, we could think, we could talk, hell, Iím sure that given the right motivation we could dance, had we not other, more important things on our minds.
Packing a bowl took an hour and a half, but we didnít notice, the slow process of grinding passed between us all, rotating seemingly in an organized pattern. Three members of the group would engage in deep discussion while the fourth would be off on their own, watching the water, or the trees, or the rocks, or the weed, never really becoming detached, simply orbiting, it reminded me a lot of a solar system.
We discussed the note from the cabin, itís significance, possible theories for itís meaning and the place it was found in. We evolved, we became stronger, and on that beach, sitting in the shade, staring and trying to comprehend a tugboat moving across the strait, I found what I was looking for, the missing piece to my life. To a stranger it is unexplainable, but rest assured, I needed to find it.
The sun rose in the sky, becoming mighty at its zenith, and started to descend as the afternoon wore on. Our shade retreated, becoming brighter and brighter, until our cool perch became hot. We decided it was time to head back to the camp. Walking back to the cabin, I noticed the only downside to the entire weekend, in my eagerness to set out, I had forgotten to apply sunscreen to my left arm, the skin was bright red and obviously sunburned. I took captain acid hat back, drenched it in seawater, and placed it over my arm, tying it tight and keeping the sun off it.
We once again reached the cabin. But now it was different, it wasnít hostile, it was inviting. It had judged us, and finding us worthy, became a happy place to be. It became our cabin, our place of refuge from the sun, we explored it, laughed at itís jokes, itís quirks, doubling up in hilarity as we discovered the foil packets arranged on the table contained dried magic mushrooms, we left them, had no need of them.
We packed a bowl, and then I stood, looking over to the tv that couldnít possibly turn on, spying a drawing on top of it. It was beautiful, simply patterns in crayon, and on the back. Tripping in the cabin, lots of love, john and Marcy, new years 2006. I realized we needed to leave our mark, looking back at my friends, laughing on the old dusty couch, it came to me:
You will never know what youíre seeking
Until you find it.
-July 2008
Placing the note down, we smoked a bowl and decided to set back, braving the unforgiving sun once again to arrive home, the music of the stage reached us first, bounced over the water, and we started to see tents again, people. Interacting with humans again was peculiar, I felt enlightened, strengthened.
We discovered (much to our delight) that the beach we tred upon was actually a nude beach, and the tanned flesh of dozens of beauties lounged about, smiling to ourselves we made our way back to our campsite, to bottles of water, and the end to a wonderful experience.
 It wasnít huge, I didnít drop my major and live in the forest, nor did I freak out and swear it off forever, I simply realized how Iíd been going about things wrong. I am a changed man due to this wonderful chemical, and a stronger human being from that beach.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Full Color. mViewer supports "full color" by combining three independent images overlayed as blue, green and red layers. Each plane needs its own stretch (when combining data from different sources these can be very different):
mViewer -blue SDSS_u.fits 0s max gaussian-log \ -green SDSS_g.fits 0s max gaussian-log \ -red SDSS_r.fits 0s max gaussian-log \ -out m51_sdss_color.png Example data can be downloaded here. |
There is also a parameter that enhances the color separation between the planes. Basically, it takes the R,G,B values for a pixel, and determines which one is dominant. Then, while keeping the pixel intensity fixed, it emphasizes the dominant color and supresses the other two. The directive ("-t") takes a single argument which is used a power in the calculation, so a value of one is no change and a value of two is a pretty strong change:
mViewer -t 1.5 \ -blue SDSS_u.fits 0s max gaussian-log \ -green SDSS_g.fits 0s max gaussian-log \ -red SDSS_r.fits 0s max gaussian-log \ -out m51_true_1.5.png |
|
mViewer -t 2.0 \ -blue SDSS_u.fits 0s max gaussian-log \ -green SDSS_g.fits 0s max gaussian-log \ -red SDSS_r.fits 0s max gaussian-log \ -out m51_sdss_color.png -out m51_true_2.0.png |
|
mViewer -t 2.5 \ -blue SDSS_u.fits 0s max gaussian-log \ -green SDSS_g.fits 0s max gaussian-log \ -red SDSS_r.fits 0s max gaussian-log \ -out m51_sdss_color.png -out m51_true_2.5.png |
|
mViewer -t 3.0 \ -blue SDSS_u.fits 0s max gaussian-log \ -green SDSS_g.fits 0s max gaussian-log \ -red SDSS_r.fits 0s max gaussian-log \ -out m51_true_3.0.png |


Started in 2018, we have come a long way. We participate in international competitions and have published papers in major workshops: