9 Other stuff
9.1 Recap
- On the difference between covariate adjustment and do-calculus
- Covariate adjustment allows us to predict the results of an intervention.
- Requires we observe the variables required to do the adjustment
- Covariate adjustment is taking a weighted average of an effect over every combination of strata in the adjustment set. This is practically difficult (in terms of computation and expectation) if the number of strata is large. If Z is continuous, then you have to integrate, which has its own set of practical challenges.
- Do-calculus is simulation of an intervention
- When you don’t have the variables neccessary to do covariate adjustment, you can still use do-calculus
9.2 How to simulating adjustment using a propensity score function and inverse probability weighting
- This is useful when adjusting over all the strata in the adjustment set is practically difficult
- Adjustment formula: \[P(Y=y|do(X = x)) = \sum_{Z} P(Y= y|X = x, Z = z)P(Z = z)\]
- Looking just at \(P(Y= y|X = x, Z = z)\), Baye’s rule tells us that: \[P(Y= y|X = x, Z = z) = \frac{P(X = x, Y= y, Z = z)}{P(X = x, Z = z)}\]
- Bring back \(P(Z = z)\) \[\begin{align} P(Y= y|X = x, Z = z)P(Z=z) &= \frac{P(X = x, Y= y, Z = z)}{P(X = x, Z = z)}P(Z=z) \\ &= \frac{P(X = x, Y= y, Z = z)}{P(X = x| Z = z)P(Z=z)}P(Z=z) \\ &= \frac{P(X = x, Y= y, Z = z)}{P(X = x| Z = z)} \end{align}\]
- Therefore we can rewrite the adjustment formula as: \[P(Y=y|do(X = x)) = \sum_z \frac{P(X = x, Y= y, Z = z)}{P(X = x| Z = z)}\]
- Suppose we are able to estimate a propensity score function \(g(x, z) = P(X = x | Z = z)\)
- Then we can estimate \(P(Y = y|do(X =x))\) using the following inverse probability weighting algorithm “”" # using Pyro-ish code # M is desired number of samples samples = [] weights = [] for i in M: x, y, z = model() sample_prob = model.prob(x, y, z) propensity_score = g(x, z) weight = sample_prob / propensity_score samples.append((x, y, z)) weights.append(weight) # resample according to new weights new_samples = resample(samples, weights = weights) “”"
- It is called inverse probability weighting because you multiply the joint probability of a sample by the inverse of a probability, in this case \(g(x, z) = P(X = x|Z =z)\)
- The frequencies in
new_samples
is such that you can estimate \(P(Y=y|do(X = x)\) with \(\hat{p}(Y = y|X = x)\), where \(\hat{p}\) is a proportion innew_samples
.
9.3 Structural causal models
- Recall Laplace’s demon example
- As we mentioned before, a structural causal model is a deterministic extention to \(\mathbb{C}\) has a causal DAG \(\mathbb{D}\). Assume there are \(J\) random variables in the DAG.
- Each varible in the DAG is paired with on independent random variables called exogenous noise terms, I will call them noise terms
- A distribution \(P_{\mathbf{N}}^{\mathbb{C}}\) on independent random variables \(\mathbf{N} = \{N_i; i \in J \}\)
- The value of each variable is set deterministically by a function \(f_i\) for the ith random variable called a structural assignments, such that \(X_i = f_i(\mathbf{PA}_{\mathbb{C}, i}, N_i), \forall i \in J\) where \(\mathbf{PA}_{\mathbb{C}, i} \subseteq \mathbf{X} \setminus X_i\) are the parents of \(X_i\) in \(\mathbb{D}\).
- Some draw the noise terms, I usually do not.
- \(\mathbb{C}\) is a generative model that entails \(P^{\mathbb{G}}\), the same observational distribution as \(\mathbb{G}\)
- These are going to allow us to compute counterfactuals, they are on the highest rung of the ladder.
- They are not the only model on the top rung. In a subsequent class, I will introduce some generalizations of structural causal models to open universe models.
9.4 Causal inference in linear systems
- So far we have focused on covariate adjustment with discrete variables.
- We’ve avoided continuous variables generally for a few reasons.
- Setting an intervention to point on a continuous domain seems weird. Why \(do(X = 1.0)\) and not \(do(X = 1.00001)\)?
- Integration and Bayesian probability math is practically challenging.
- The math of course is simpler when you use linear modeling with Gaussian distributions. However, this class casts causal modeling as an extention of generative machine learning; in cutting-edge generative machine learning you generally don’t see a lot of linear modelling.
- However, we do touch on a few cases fundamental topics that come up in the causal linear modeling literature.
9.4.1 Covariate adjustment example: Continuous adjustment
- We have been talking about thinking of causal effects as differences, what might this look like in the continuous case? \(\frac{d}{dx}E^{\mathbb{M};do(X:=x)}(Y)\)
- Linear case – Z in valid adjustment set
- Nonlinear case: Monte Carlo Sampler. Recall that. \(\frac{d f(x)}{dx} = \lim_{\delta \rightarrow 0} \frac{f(x + \delta) -f(x)}{\delta}\)
9.4.2 Instrumental variables
- Consider a structural causal model with the following DAG
- Consider the structural assignment for Y: \(Y := \alpha X + \delta Z + N_Y\)
- We are interested in the causal effect \(\alpha\). Let \(\hat{\alpha}\) be our least-squares estimate of \(\alpha\). Here confounding shows up as a bias in the standard regression estimator \(\alpha\): \[E(\hat{\alpha}) = \frac{\text{cov}(X, Y)}{\text{var}(Y)} = \frac{\alpha \text{var}(X) + \delta \gamma \text{var}(Z)}{\text{var}(X)} = \alpha + \frac{\delta \gamma \text{var}(Z)}{\text{var}(X)} \neq \alpha \]
- An instumental variable \(I\) for \(X, Y\) is one where:
- \(I\) is independent of \(Z\)
- \(I\) is not independent of \(X\)
- \(I\) affects \(Y\) only through \(X\)
- Two-stage least squares estimation using an instrumental variable algorithm:
- Regress X on Z and get \(\hat{\beta}\) estimate of \(\beta\)
- Regress Y on the predicted values of the first regression \(\hat{\beta}Z\)
- The coefficient of \(\hat{\beta}Z\) becomes is a consistent estimate of \(\alpha\).
- Statistical intuition:
- Looking at the stuctural assignment for \(X\): \[X:= \beta I + \gamma Z + N_X\]
- Since \(Z\) and \(N_X\) are independent of \(I\), then covariance between \(Z, N_X, \hat{\gamma}\) is 0. So we can treat \(\gamma Z + N_X\) as a big noise term, and treat \(\beta Z\) as a stand in for X.
- We essentially modifiy Y’s to be : \[Y := \alpha (\beta Z) + (\alpha \gamma + \delta)Z + N_Y\] and fit it using least-squares.
9.5 Counterfactuals
- Notation
- Reasoning through inference algorithm with SMC: Eye disease model \[\begin{align} T &= N_T\\ B &= T * N_B + (1-T)*(1-N_B) \\ N_T ~ Ber(.5), N_B ~ Ber(.01) \end{align}\]
- Suppose patient with poor eyesight comes to the hospital and goes blind (B=1) after the doctor gives treatment (T=1).
- We ask “what would have happened had the doctor administered treatment T = 0?”
- B = T = 1 means the \(N_B\) was 1.
- Given \(N_B\) equals 1, we calculate the effect of \(do(T = 0)\) under new model \[\begin{align} T &= 1\\ B &= T * 1 + (1-T)*(1-1) = T \\ \end{align}\]
9.6 Bayesian counterfactual algorithm with SMCs in Pyro
- Condition on observed data
- Infer the noise terms
- Apply do operator
- Forward from noise posterior after having applied do operation.
9.7 Potential outcomes framework
- Also called Rubin causal model, widely used in the social sciences, and as a result it is the one most commonly used in the tech industry. This is because the big companies tend to higher economists such as Hal Varian and Susan Athey, as well as computationally savvey social scientists to address causal problems (auctions, recommendation problems, etc.).
- Reformulating blindness problem as potential outcomes
- Let \(B_{u}^{T = 1}\) represent the outcome patient \(u\) (going blind \(B=1\) or getting cured \(B=0\)) if she recieves treatment \(T=1\). \(B_{u}^{T = 1} = 1\) the outcome for \(u\) under \(T=1\) is blindness, \(B_{u}^{T = 1} = 0\) is no blindness.
- The fundamental problem of causal inference: To get a causal effect, we want \(B_{u}^{T = 1} - B_{u}^{T = 0}\). So \(B_{u}^{T = 1}\) and \(B_{u}^{T = 0}\) are both variables we want to know. However, for each unit \(u\) we can never observe both of these at the same time. So one of these we call the “observed” outcome, and one of these we call the counterfactual outcome.
- Standard assumption in the framework is SUTVA – stable unit treatment variable assumption. This means that the potential outcome for patient \(u\) is independent of the potential outcome for patient \(v\). We are making this assumption in the DAG based models as well, otherwise explicitly model other patients as nodes. This is the kind of assumption that gets violated with social network interference.
- Notice that the causal effect we are interested is defined in terms of a specific patient, it is the unit-level causal effect: \(\text{CE} = B_{u}^{T = 1} - B_{u}^{T = 0}\). Averaging this over all the patients provides the same average causal effect we have been reasoning about previously.
- So to estimate the average cause effect as follows \[ \sum_{u \in U_1} B_{u}^{T = 1} - B_{u}^{T = 0} \sum_{u \in U_0} \]
- A key difference with our SCM model is that \(B_{u}^{T = t}\) is not treated as modeled probabilistically. They are hidden not random. In frequentist statistics termonology, they are parameters, not random variables. The only random variable is in the estimate of the random treatment effect.
9.8 Relationship between SCMs and Potential Outcomes
- Our SCM approach represents potential outcomes using the language of counterfactuals.
- In our SCM model, each patient will have a specific value for \(N_B\) and \(N_T\).
- $B_u^{T = } = B^{M: N = n_u; do(T =t)}
- The i.i.d modeling assumption when we use when we condition on data satifies SUTVA.
- There are theoretical conditions that show when these two representations are equivalent (not discussed here). Under this equivalency, any theorem that is true in one representation will be true in the other. That said, some might be easier to prove in one than in the other.
- Potential outcomes also often make an assumption called ignorability. This means B_{u}^{T = 1} B_{u}^{T = 0} | Z$ where Z is a set of measured covariates. It is a neccesary assumption for potential outcome tools to be applied. However, it is not testible. In the DAG representation, it can be shown that ignoribility holds if Z is a valid adjustment set and blocks all backdoor paths form B to T. This of course is testible. This is not to say that the SCM approach is superior, rather, this is an advantage of specifying the assumptions of the model in the form of a DAG.
9.9 Counterfactual probability of neccessary and sufficient cause
- Probability of neccessity: \(P^{M; do(X = 0), X = 1, Y = 1}(Y = 0)\) or \(P(Y^{do(X = 0)}= 0 | X = 1, Y = 1)\)
- Probability of sufficiency: \(P^(M: do(X = y), X = 0, Y = 0)(Y = 1)\) = \(P(Y^{do(X = 1)}= 1 | X = 0, Y = 0)\) ### Examples:
- Not neccessary for the soldier to fire for prisoner to die but sufficent. PS = 1, PN = 0
- Sufficient for firing of the gun to cause person to run under piano. PS is small. PN = 1
- Neccessary to have oxygen to burn down the house by not sufficient.
- Traditional (non-counterfactual) statistical machine learning models cannot destiguish between the two using data alone.
- Probability of neccessity and sufficiency: \(P(Y^{do(X = 1)} = 1, Y^{do(X = 0)} = 0)\).
- If have monotonicity assumption: changing X from 0 to 1 will never cause Y to change from Y to 0. Not that this is not the case with the blindness problem. If we change T from 0 to 1, for that rare population of people blindness will change from 1 to 0.
- We will generalize this property to non-binary distributions later in the class.
- If monotonicty holds, then \(PNS = P(Y = 1 | do(X = 1)) - P(Y = 1 | do(X = 0))\)
9.10 Mediation
9.10.1 Motivating example
- Consider the model:
- This is first case where we want to control for a mediator
- Use “do” to hold things constant
- \(CDE = P(Y = y |do(X = x), do(M = m)) - P(Y = y |do(X = x), do(M = m))\)
- Natural direct effect is defined in terms of counterfactuals: randomize gender, and ask them to apply to the department they would have prefered
- \(NDE = P(Y_{M = m} = 1|do(X = 1)) - P(Y_{M = m} = 1|do(X = 0))\)
9.11 Counterfactual quantities and mediation analysis
9.11.1 Review
- Conditioning
- Do-operator in notation
- Do-calculus
- Do-operator in algorithm (graph surgery)
- Counterfactuals
- Counterfactual algorithm
9.11.2 Probability of neccessity and sufficiency
- \(P^{M; do(X = 0), X = 1, Y = 1}(Y = 0)\) or \(P(Y^{do(X = 0)}= 0 | X = 1, Y = 1)\)
- Probability of sufficiency: \(P^(M: do(X = y), X = 0, Y = 0)(Y = 1)\) = \(P(Y^{do(X = 1)}= 1 | X = 0, Y = 0)\) #### Examples:
- Not neccessary for the soldier to fire for prisoner to die but sufficent. PS = 1, PN = 0
- Sufficient for firing of the gun to cause person to run under piano. PS is small. PN = 1
- Neccessary to have oxygen to burn down the house by not sufficient.
- Traditional (non-counterfactual) statistical machine learning models cannot destiguish between the two using data alone.
- Probability of neccessity and sufficiency: \(P(Y^{do(X = 1)} = 1, Y^{do(X = 0)} = 0)\).
- If have monotonicity assumption: changing X from 0 to 1 will never cause Y to change from Y to 0. Not that this is not the case with the blindness problem. If we change T from 0 to 1, for that rare population of people blindness will change from 1 to 0.
- We will generalize this property to non-binary distributions later in the class.
- If monotonicity holds, then \(PNS = P(Y = 1 | do(X = 1)) - P(Y = 1 | do(X = 0))\)
9.11.3 Counterfactuals in the graph
- How can we “see” counterfactuals in the DAG
- If we modify model M to obtain the submodel \(M^{do(X = x)}\), the outcome variable Y in the modified model is the counterfactual \(Y_x\) in the original model.
- Modification means removing all arrows entering the variable X
- Counterfactual interpretation of the backdoor condition: If a set Z blocks the backdoor for (X, Y), then, for all x, the counterfactual \(Y_x\) is is conditionally independent of X given Z.
- This means (scribe get from board)
9.11.4 Counterfactuals in experimental settings
- The way to think about noise in experimental settings – each noise vector is experimental unit
- Identifiability problems: In practice the model is not known – this is the case with the bandit, or when there are confounders we don’t know about.
- Causal quantities, unlike statistical parameters, are defined relative to a causal model M and not relative to the joint distribution entailed by the model.
- A causal quantity \(Q(M_1)\) and \(Q(M_2)\) is identifiable within a class \(\mathbb{M}\) if and only if for any pair of models \(M_1\) and \(M_2\) in that class, \(P^{M_1}(v) = P^{M_2}(v)\)
- In experimental problems, the core question is whether certain quantitites are identifiable
9.11.5 Effect of treatment on the treated
- Motivator: Job training program \(X \in {0, 1}\) aimed at jobless people
- Hiring rate \(Y \in {0, 1}\) goes up in experimental study where people are chosen at random
- But what about those who choose to enroll of their own volition? Perhaps people who self enroll are more enterprising or resourced and would have found a job regardless – thus the program is a waste
- \(ETT = E(Y_1 - Y_0 | X= 1)\)
- \(X = 1\) limits us to people who would have have chosen the program of their own initiative
- Within this group we compare \(Y_1\) and \(Y_0\)
- So how would we estimate this? The tricky thing is \(E(Y_0|X = 1)\). We would need know a adjustment set that blocks the backdoor.
9.11.6 Introduction to mediation
Canonical example
- Simple software engineering example
- Your company introduces a new feature into its app
- The KPI (key performance indicator) is how much time the user spends using the app. The goal is for this number to go up.
- You look at the data and the KPI and indeed the number goes up.
- But upon deeper inspection of the logs, you see that sometimes it goes up because the feature is directly causing them to use the app more. Other times it is going up because they are confused or getting used to the new interface.
Clearly it is important to distinguish between these two causal paths.
<IP_ADDRESS> Mediation is about breaking down mechanism.
- The goal of mediation is to get a breakdown of the mechanism of causal influence
- One should be more cynical of mechanistic explanations
<IP_ADDRESS> Mediation means thinking about “would-haves”
9.11.7 Discrimination example
- Berkeley admissions problem statement
* X here is reported gender on the application. X = 0 for female, X = 1 for male * Y is accepted (1) or rejected (0) * M is department (0 for history, 1 for engineering)
<IP_ADDRESS> Total effect
- \(TE(m) = E(Y|do(X = 1)) - E(Y|do(X = 0))\)
- Expected increase in outcome as the cause changes.
<IP_ADDRESS> Controlled direct effect
- Use “do” to hold things constant
- \(CDE(m) = E(Y = y |do(X = x), do(M = m)) - E(Y = y |do(X = x), do(M = m))\)
- Expected increase in outcome as the cause changes from 0 to 1, while mediator is set to a specified level uniformly over the population
- If this were an experiment, how would we describe it?
- Problem: too distorted
<IP_ADDRESS> Natural direct effect
- Discrimination is the natural direct effect
- Natural direct effect is defined in terms of counterfactuals
- \(NDE = E(Y_{M = m_0} = 1|do(X = 1)) - E(Y_{M = m_0} = 1|do(X = 0))\) where \(m_0\) is the value of M for \(u_0\)
- Expected increase in outcome as the cause changes from 0 to 1, whle the mediator is set to whatever value it would have attained prior the change, that is, under X = 0
- How would this look as an experiment?
- Randomize gender, and ask them to apply to the department they would have prefered
<IP_ADDRESS> Natural indirect effect
- \(E(Y_{M = m_1} = 1|do(X = 0)) - E(Y_{M = m_0} = 1|do(X = 0))\)
- Measures the expected increase in Y wehn the cause is held constant, at X = 0, and M changes to whatever value it would have attained for each individual under X = 1
- The second term is probability of getting in if we report as female and apply to the department we would have applied to.
- The first term is probability of getting in if we report as female and apply to the other department
<IP_ADDRESS> Decomposabiliy of total effect
- \(TE = NDE - NIE_{r}\) where \(NIE_{r}\) is the reverse causal effect \(E(Y_{M = m_0} = 1|do(X = 0)) - E(Y_{M = m_1} = 1|do(X = 0))\)
Todo: * causal programs: https://web.stanford.edu/~icard/ac2017.pdf On Open-Universe Causal Reasoning Duligur Ibeling, Thomas Icard
TODO:


Faculty Attendance Upload Page
To view virtual tour properly, Flash Player 9.0.28 or later version is needed. Please download the latest version of
Flash Player
and install it on your computer.
<< Index Page


--- layout: page title: Healthy Start, Healthy Future permalink: /healthystart/ ---
For my first NSS capstone, I took on a Code for Nashville hack night idea.
Alignment Nashville works closely with Metro Nashville Schools, providing a range of resources to assist Metro guidance counselors, school nurses, etc. In March they asked Code for Nashville if brigade members could convert several printed resource guides into mobile apps so that students could access them using smart phones.
Our more experienced brigade members were already committed to other projects, so I thought my capstone might allow me to help. With Alignment Nashville's approval, I converted their teen pregnancy resource guide from a 28 page PDF into a fully responsive, phone- and tablet-friendly app. Matia Powell and Jaleesa Johnson at Alignment Nashville are currently working with their in-house tech team to determine the best way to 'officially' deploy "Healthy Start, Healthy Future" in the coming year.
The technology stack for this project included: JavaScript, AngularJS, jQuery, Gulp, Sass, Bootstrap, JSON, Firebase, and Git version control (via GitHub).


Horizontal extruded 3D label
Vertical extruded 3D label
Floating label
Draped label
Billboarded label


and the influenza were for was from meteorological with {background The between six activity factors virus temperature margin {border-style px;} #ffffff;} Northern cells each low that countries using correlation predictive viruses Influenza number radiation temperatures (Figure European factor infected most epidemics learning machine specimens wind Estonia, Figure Finland, Latvia Sweden, UVC activity. all are data humidity humidity, measured px; {font-family Europe Forest Random []. could during font-size speed, GFP Lithuania Low Norway, RPE UVB [,]. analyzed double; exposed high important index index, not seasonal used week winter winters (temperature, Weather accurate across associated association border-color border-width countries, decrease described different global median model other outbreaks previously results role solid; this {font-style {font-weight Î¼g/mL â€". August Both Cell D.K.; IV-positive Monitoring National October September Service Temperature Viruses Weekly analysis assay bold collected courier; daily early em; find human impact indexes infection infectivity l-glutamine, mean medium obtained online: only our particular, peaks plaque positive precipitation, pt;} severe showed shown statistics temperate temperature, weather which â€"


Hi! Welcome to the unofficial BgA Fan Site. Here you'll find everything you need to know about the K-Pop Parody group.
If you want to know who BgA are, check the 'About' Page, and for all things BgA, you may want to take a look at the 'News' Page. And if you want even more BgA, try the 'More' Page for useful and fun BgA links. Enjoy!
Image: The five members of BgA. From left to right: top row: David Choi, Jun Sung Ahn. Lower row: Philip Wang, Ryan Higa, Justin Chon.


| 826 | (A) | thay wesche wondis with wyne and witħ wolle stoppis |
| 830 | (C) | ¶ They wasshedde here woundes with wyne & with wolle stoppede |
| 823 | (D) | wasshe þe woundis with wyne & with wolle stoppyn |
| 799 | (E) | wusschen her woundes with wyn . & with wulle hem stopped |
| (Ex) | ---- no text ---- | |
| 847 | (L) | waschen woundes with wyn & with wolle stoppen |
| 769 | (P) | wasches þair woundes with wyne & with wołł stoppes |
| 808 | (U) | wassh her woundes witħ wyn / and witħ wolle stoppen |
| (V) | ---- no text ---- |


|
||||||||
|
||||||||
(Note: This was taken from the abandoned.org/nemon/compress/protocol.html
page. This page no longer seems to exist, so I wanted to preserve the spec
here. --Zugg.
Original page now at: http://www.randomly.org/projects/MCCP/)
This document describes version 2 of the protocol, using the COMPRESS2 option. An earlier version described a protocol using the COMPRESS option -- this is referred to as the version 1 protocol below.
The protocol used by mcclient is based on 'telnet' option negotiation. See RFCs 854 and 855 for an overview of the mechanism used.
Compression is currently unidirectional - only output from the mud server is compressed. This simplifies the implementation, and also avoids potential problems with hostile clients sending data intended to cause problems (via crashing or excessive memory/cpu use) with the decompressor. The compressor is entirely controlled by the server. While attacks on the client are potentially possible, this seems less of a problem as the client is not a shared resource.
Servers supporting version 2 (this version) of the protocol should indicate
they support it by offering the COMPRESS2 option (number 86): IAC WILL
COMPRESS2
. They may also optionally offer the older version 1 option
(number 85) to support older clients: IAC WILL COMPRESS
.
Servers should offer COMPRESS2 before COMPRESS to allow newer clients to support
any extra features added to COMPRESS2 in the future while still supporting
COMPRESS.
Clients should respond to the COMPRESS2 option with IAC DO
COMPRESS2
if they want the server to enable compression. To support
older servers, clients may respond to the COMPRESS option with IAC DO
COMPRESS
, although it is recommended that the COMPRESS option is
refused with IAC DONT COMPRESS
if COMPRESS2 has been
previously offered by the server.
There is no requirement for either server or client to support the version 1 protocol.
Once either COMPRESS or COMPRESS2 is negotiated, the server may enable
compression. Since the start point of the compression stream needs to be known,
the server prefixes the start of the stream with a suboption negotiation packet.
This is IAC SB COMPRESS WILL SE
for the obsolete COMPRESS
option (note that this is not a valid suboption negotiation sequence according
to RFC854/855 -- the terminating SE isn't correctly escaped), or IAC
SB COMPRESS2 IAC SE
for the COMPRESS2 option.
Immediately following this, a zlib stream (as defined in RFC 1950 - see also the zlib home page) begins.
In summary, negotiation between server and client takes one of these forms:
version 1 server version 1 client IAC WILL COMPRESS IAC DO COMPRESS IAC SB COMPRESS WILL SE (compressed stream) version 2 server (supporting v1) version 1 client IAC WILL COMPRESS2 IAC WILL COMPRESS (nothing) or IAC DONT COMPRESS2 IAC DO COMPRESS IAC SB COMPRESS WILL SE (compressed stream) version 2 server (not supporting v1) version 1 client IAC WILL COMPRESS2 (nothing) or IAC DONT COMPRESS2 (uncompressed connection continues) version 1 server version 2 client (supporting v1) IAC WILL COMPRESS IAC DO COMPRESS IAC SB COMPRESS WILL SE (compressed stream) version 1 server version 2 client (not supporting v1) IAC WILL COMPRESS IAC DONT COMPRESS (uncompressed connection continues) version 2 server version 2 client IAC WILL COMPRESS2 IAC WILL COMPRESS IAC DO COMPRESS2 IAC DONT COMPRESS IAC SB COMPRESS2 IAC SE (compressed stream)
The compressed data should be transmitted unescaped. IAC should be sent as-is. Telnet option negotiation and IAC escaping continues as normal for the uncompressed data stream -- the entire telnet TCP stream is compressed, negotiation and all.
Compression can only be terminated by the server - a normal end to the
compression stream is assumed to mean "revert to uncompressed mode".
It may be desirable for the server to automatically terminate compression when
an IAC DONT COMPRESS
sequence is received from the client.
Any decompression errors are unrecoverable, and should result in a disconnection. Given that TCP is a reliable transport mechanism, bug-free implementations should never encounter compression errors, so this should not affect normal operation. When an error is encountered, something has gone badly wrong, and it seems hard to recover. Allowing raw (uncompressed) option negotiation to reset compression is one possibility, but would require that option negotiation take place outside the compressed stream.
Oliver Jowett<EMAIL_ADDRESS>2000/05/30


"blah blah blah"
link to google
don't know what I'm doing
is this actually doing
anything?
First Name
Hey!
Who's your favorite Game of Thrones character?
gender


| VCOM-Visual Communication |
| NR |
13510 |
VCOM |
2010 |
002 |
24M |
3.000 |
Introduction to Visual Communication |
TR |
11:20 am-12:45 pm |
77 |
63 |
14 |
0 |
0 |
0 |
Sanjay Asthana (P) |
01/17-05/04 |
BRAGG 104 |
Media Entertainment Course Fee and Credit from 4-Year College |
| NR |
13194 |
VCOM |
2950 |
001 |
24M |
3.000 |
Visual Communication Applications |
MW |
04:10 pm-05:35 pm |
18 |
17 |
1 |
0 |
0 |
0 |
Bobby Franklin Dowd (P) |
01/17-05/04 |
BRAGG 228 |
Tutoring Courses and Media Entertainment Course Fee and Credit from 4-Year College |
| NR |
13203 |
VCOM |
2950 |
002 |
24M |
3.000 |
Visual Communication Applications |
TR |
11:20 am-12:45 pm |
16 |
15 |
1 |
0 |
0 |
0 |
Philip Abelard Loubere (P) |
01/17-05/04 |
BRAGG 270 |
Tutoring Courses and Media Entertainment Course Fee and Credit from 4-Year College |
| C |
13512 |
VCOM |
2950 |
003 |
24M |
3.000 |
Visual Communication Applications |
TR |
01:00 pm-02:25 pm |
16 |
16 |
0 |
0 |
0 |
0 |
Philip Abelard Loubere (P) |
01/17-05/04 |
BRAGG 270 |
Tutoring Courses and Media Entertainment Course Fee and Credit from 4-Year College |
| C |
16588 |
VCOM |
2950 |
004 |
24M |
3.000 |
Visual Communication Applications |
MW |
12:40 pm-02:05 pm |
18 |
18 |
0 |
0 |
0 |
0 |
Leslie Gail Haines (P) |
01/17-05/04 |
BRAGG 228 |
Tutoring Courses and Media Entertainment Course Fee and Credit from 4-Year College |
| NR |
17540 |
VCOM |
2950 |
005 |
24M |
3.000 |
Visual Communication Applications |
MW |
06:00 pm-07:25 pm |
18 |
14 |
4 |
0 |
0 |
0 |
Bobby Franklin Dowd (P) |
01/17-05/04 |
BRAGG 228 |
Tutoring Courses and Media Entertainment Course Fee and Credit from 4-Year College |
| C |
13192 |
VCOM |
3810 |
001 |
24M |
3.000 |
History of Visual Communication |
TR |
02:40 pm-04:05 pm |
20 |
20 |
0 |
0 |
0 |
0 |
Sanjay Asthana (P) |
01/17-05/04 |
BRAGG 151 |
Media Entertainment Course Fee and Credit from 4-Year College and Upper-Division Work |
| NR |
16380 |
VCOM |
3920 |
001 |
24M |
3.000 |
Information Web Design |
TR |
04:20 pm-05:45 pm |
16 |
12 |
4 |
0 |
0 |
0 |
Philip Abelard Loubere (P) |
01/17-05/04 |
BRAGG 270 |
Media Entertainment Course Fee and Credit from 4-Year College and Upper-Division Work |
| C |
16359 |
VCOM |
3930 |
001 |
24M |
3.000 |
Visual Storytelling for Journalism |
TR |
11:20 am-12:45 pm |
18 |
19 |
-1 |
0 |
0 |
0 |
Leslie Gail Haines (P) |
01/17-05/04 |
BRAGG 150 |
Media Entertainment Course Fee and Credit from 4-Year College and Upper-Division Work |
| C |
17117 |
VCOM |
4010 |
001 |
24M |
3.000 |
Information Design |
MW |
02:20 pm-03:45 pm |
4 |
4 |
0 |
16 |
11 |
5 |
Leslie Gail Haines (P) |
01/17-05/04 |
BRAGG 228 |
Media Entertainment Course Fee and Credit from 4-Year College and Upper-Division Work |
| NR |
13193 |
VCOM |
4180 |
001 |
24M |
3.000 |
Senior Portfolio |
MW |
02:20 pm-03:45 pm |
12 |
7 |
5 |
16 |
11 |
5 |
Leslie Gail Haines (P) |
01/17-05/04 |
BRAGG 228 |
Media Entertainment Course Fee and Credit from 4-Year College and Upper-Division Work |


An implementation of John Conway's Game of Life using javascript and canvas.
Sorry, your browser cannot display this content. Try updating your browser or use a different browser.


ChannelInfo (Class)
Namespace: stdlibXtf.SubPackets
Represent the channel information structure present, one time for each channel, in the document header.
Constructors
| ChannelInfo() | Initializes a new instance of the ChannelInfo class that has default zero values. |
| ChannelInfo(Byte[]) | Initializes a new instance of the ChannelInfo class that contain the values extracted from the given byte array. The size of array need to be at least of 128 bytes. |
Properties
| TypeOfChannel | Gets the kind of channel (Subbottom, Port, Starboard or Bathymetry). |
| SubChannelNumber | Gets the index for which this ChannelInfo is. |
| CorrectionFlag | Gets the way the data are stored. |
| Polarity | Gets the polarity of the data. |
| BytesPerSample | Gets the quantity of bytes for each sample stored. |
| SamplesPerChannel | Gets the number of samples per channel. This value will be overridden by the NumberSamples in PingChannelHeader subpacket. |
| ChannelName | Gets the description of the channel. |
| VoltScale | Gets how many volts are represented by a maximum sample value in the range -5.0 to +4.9998 volts. |
| Frequency | Gets the center transmit frequency. |
| HorizontalBeamAngle | Gets the horizontal beam angle, tipically 1 degree. |
| TiltAngle | Gets the tilt angle, tipically 30 degrees. |
| BeamWidth | Gets the 3 dB beam width, tipically 50 degrees. |
| OffsetX | Gets the offset of MultiBeam system. Orientation of positive X is to starboard. |
| OffsetY | Gets the offset of MultiBeam system. Orientation of positive Y is forward. |
| OffsetZ | Gets the offset of MultiBeam system. Orientation of positive Z is down, just like depth. |
| OffsetYaw | Gets the offset of MultiBeam system. Orientation of positive yaw is turn to right. If the multibeam sensor is reverse mounted (facing backwards), then OffsetYaw will be around 180 degrees. |
| OffsetPitch | Gets the offset of MultiBeam system. Orientation of positive pitch is nose up. |
| OffsetRoll | Gets the offset of MultiBeam system. Orientation of positive roll is lean to starboard. |
| BeamsPerArray | Gets the beams for each array. Valid only for forward looking sonar systems. |
| Latency | Gets the latency in milliseconds. |
Examples
example ...
Remarks
remarks ...


|
KlusterKite
0.0.0
A framework to create scalable and redundant services based on awesome Akka.Net project.
|
The state of migrators resources More...
Properties | |
| string | TypeName [get, set] |
| Gets or sets the migrator type name More... | |
| string | Name [get, set] |
| Gets or sets the migrator name More... | |
| List< string > | MigrationPoints [get, set] |
| Gets or sets the migrator defined migration points More... | |
| string | LastDefinedPoint [get, set] |
| Gets or sets the last defined point for current configuration More... | |
| List< ResourceConfigurationState > | Resources [get, set] |
| Gets or sets the state of defined resources More... | |
| EnResourceDependencyType | DependencyType [get, set] |
| Gets or sets the type of resource dependency More... | |
| decimal | Priority [get, set] |
| Gets or sets the priority of execution. In case of migration, the migrators will be run in order of priority from largest to lowest More... | |
The state of migrators resources
Definition at line 21 of file MigratorConfigurationState.cs.
|
getset |
Gets or sets the type of resource dependency
Definition at line 57 of file MigratorConfigurationState.cs.
|
getset |
Gets or sets the last defined point for current configuration
Definition at line 45 of file MigratorConfigurationState.cs.
|
getset |
Gets or sets the migrator defined migration points
Definition at line 39 of file MigratorConfigurationState.cs.
|
getset |
Gets or sets the migrator name
Definition at line 33 of file MigratorConfigurationState.cs.
|
getset |
Gets or sets the priority of execution. In case of migration, the migrators will be run in order of priority from largest to lowest
Definition at line 63 of file MigratorConfigurationState.cs.
|
getset |
Gets or sets the state of defined resources
Definition at line 51 of file MigratorConfigurationState.cs.
|
getset |
Gets or sets the migrator type name
Definition at line 27 of file MigratorConfigurationState.cs.


The brain cheats when it comes to happiness.
According to psychologist Daniel Kahneman, it focuses on two things about an event, the emotional peak and the end. He declares in his TED talk that "We don’t choose between experiences, we choose between memories of experiences."
In the study A “Present” for the Future: The Unexpected Value of Rediscovery, Harvard Business School researchers discovered that the documentation of the everyday might seem trivial, but provides unexpected happiness because over time, we can come to see the ordinary past as extraordinary.
TIL.LY (Today I Learned) is an experiment in encouraging daily presence, reflection, and documentation of the everyday. Using text analysis (with Alchemy's Natural Language Processing) it resurfaces your past memories over time with animated GIFs from Giphy.
You can download source code for TIL.LY at Github. The Chatbot requires the Webapp and Backend to be set up first.
TIL.LY Webapp and Backend TIL.LY ChatbotFeel free to email us to provide feedback or provide suggestions.


Javascript Pseudo-threading
This post has been migrated from my old, defunct blog at bcherry.net. The links may not work, and the formatting may be wonky.
I’ve been playing around with asynchronous Javascript for repeated large-set actions, in the hopes of generating some useful techniques for real applications.  Check out a demo here or the resulting source code here. The demo lets you play with the size of the data set, and also the operation queue size. I found that queuing operations in batches was quite a bit faster than queuing them individually, so that each fired event will process a few data objects instead of just 1. I’d guess the reason for this is that Javascript only supports timeouts at the millisecond level, when most operations are shorter than that. By grouping operations into larger chunks, we can make much better use of the time we’re given.
Here’s the code for both the blocking (I call it “singlethreaded”) and non-blocking (I call it “simplethreaded” because it’s not really multi-threaded, but it’s not really single-threaded either) version. Note that ST.s
and ST.n
refer to the querystring parameters ‘s’ and ‘n’.:
ST.functions = [
function (n, context) {
$(context).append($("<div>").addClass("result").attr("id","r"+n).text(n));
}, function (n, context) {
$("#r" + n + ".result", context).addClass("dark");
}, function (n, context){
$("#r" + n + ".result", context).remove();
}
];
/** singlethreaded approach **/
ST.singleStage = 0;
ST.SingleGenerator = function(n) {
var i = 0;
this.next = function() {
if (i > n || i > ST.singlelimit) {
return null;
}
return i++;
};
};
ST.startsingle = function() {
var context = $("#singlethreaded .output");
var gen = new ST.SingleGenerator(ST.n);
var n;
var workFn = ST.functions[ST.singleStage];
ST.singleStage++;
ST.singleStage = ST.singleStage % ST.functions.length;
while ((n = gen.next()) !== null) {
workFn(n,context);
}
};
/** simplethreaded approach **/
ST.simpleStage = 0;
ST.SimpleGenerator = function(n) {
var i = 0;
this.next = function() {
if (i > n) {
return null;
}
return i++;
};
};
ST.startsimple = function() {
var context = $("#simplethreaded .output");
var gen = new ST.SimpleGenerator(ST.n);
var n;
var workFn = ST.functions[ST.simpleStage];
ST.simpleStage++;
ST.simpleStage = ST.simpleStage % ST.functions.length;
var fn = function() {
var i = 0;
while (i++ < ST.s && (n = gen.next()) !== null) {
workFn(n,context);
}
if (n === null) {
clearInterval(threadID);
}
};
var threadID = setInterval(fn,1);
};
The resulting code is actually pretty straightforward. The key is to maintain the ID returned by the setInterval()
call so it can be killed when you’re done with your work. Normally this would get stuffed into a global, but by wrapping the whole lot into a function and then sending a local function reference into setInterval()
, I can take advantage of Javascript’s closure to keep the locals I need around for every asynchronous function call, which is really awesome.
Also, using a generator is a pretty neat way to produce the data I need, and lets me work with arbitrary data pretty easily. In a real application where the data is coming from the server asynchronously, I can have the generator returning data from a queue as it comes in, while returning flags like “all done” so the thread knows it won’t see more data or “wait for it” so the thread can stick around and poll for new data when it comes in.
I think that if I were to bring this into a real application, I would have it decide between singlethreaded or simplethreaded dynamically, because it’s obvious that singlethreaded is much better for smaller sets.


@cipig Please do not add KMD and BTC to coins. These are special cases that are hardcoded in MM2 code, let it be enabled by default in Electrum mode for most common cases.
MM2 doesn't request UTXOs from Electrum to get balance as there is scripthash.get_balance call. I need some time to investigate it, please hold on.


As an Issuer, you have no control over what this UI looks like.
When the user is issued a credential, the wallet confirms this operation with the user.
When you click Store, this Credential will be stored in your digital wallet.


Our app is completely secure as the software is being run locally and we don't disclose any information to anyone.
Our easy to use and interactive design makes it easy for users to navigate and get what they're looking for.
Our product allows for real time data recognition and instant results, making it easily accessible to all.
We have established real time connections with consistent and accurace data sources for data on the Covid-19 Pandemic. We also use special frameworks to visually represent the data in an elegant format. We are using the John Hopkins covid-19 API to provide users constant updates on what the statistics look like globally.
Check it OutOur app uses OpenCV and machine learning to detect whether somebody is wearing a mask and is protected or not. There is no longer a need for slow machine learning algorithms to take place after a picture is taken, now it's all being done live.
Check it OutUsing a Python News API, we were able to make direct calls to our web app and display them in an elegant and neatly nested format. Our responsive news feed page is an easy way to get a quick dose of what's going in on the world, with minimal effort or reading.
Check it Out


Skip to Main Content
Home
About
Past Projects
Social Media
Thank you for vising my page! Social Media linked below:
LinkedIn
GitHub
Video Demo of Boggle Solver Project


Toggle navigation
Log out
Dashboard
Settings
Every great meeting starts with an agenda
Pick options for date and time
to
+
to
+
to
+
Add the address of the meeting
Location
Send out invitations
Enter email addresses of people you wish to attend
Send


You scored {{score}} {{score > 1 ? 'points' : 'point'}}.
 You have not beat your highscore
Congratulations, you've reached your highscore!!
Play again to see a chart with your progress.
Home
Home
Beat your mark
Let's Play


Built with a free dashboard template from Keen IO and seven embedded Plotly graphs
This is a single static web page that can be displayed with any HTTP web server, offline as a HTML file, or on Plotly On-Premise.


Statistical Testing
- Student’s t-test
- One-sample mean
- Two-sample mean
- Regression coefficient
- Correlation
- Chi square test
- Pearson’s Chi-square test
- Variance
1. Student’s t-test
- One-sample mean
Consider $n$ random variables distributed i.i.d., each following a normal distribution with mean $\mu$ and variance $\sigma$. The joint probability density function is
\[\frac{1}{(\sqrt{2\pi}\sigma)^n} e^{-\sum_{i=1}^{n}\frac{(x_i-\mu)^2}{2\sigma^2}}\prod_{i=1}^n dx_i\]We want to write a density distribution as a function of $\bar{x}=\frac{\sum_i x_i}{n}$, the sample mean. As such, use the equality
\[\sum_{i=1}^n(x_i-\mu)^2=\sum_{i=1}^n (x_i-\bar{x})^2+n(\bar{x}-\mu)^2\]and change variables $(x_1,\ldots,x_n)\rightarrow (x_1,\ldots,x_{n-1},\bar{x})$ - the jacobian of the coordinate transformation is $n$. The density function becomes
\[\frac{1}{(\sqrt{2\pi}\sigma)^n} e^{-\sum_{i=1}^{n}\frac{(x_i-\bar{x})^2}{2\sigma^2}-n\frac{(\bar{x}-\mu)^2}{2\sigma^2}}d\bar{x}\prod_{i=1}^{n-1} dx_i\]Because $x_i$ and $\bar{x}$ are independent, we can shift the variables $x_i\rightarrow x_i+\bar{x}$, after which the term $\sum_{i=1}^{n}(x_i-\bar{x})^2$ becomes $\sum_{i=1}^{n-1}x_i^2+(\sum_i^{n-1}x_i)^2$. Since this is quadratic in the $x_i$, it can be safely integrated out. However, before doing that we write
\[x_i=\frac{s}{\sqrt{n-1}}u_i\], with
\[\sum_{i=1}^{n-1}u_i^2+(\sum_i^{n-1}u_i)^2=1\], that is, $(s,u_i)$ play a similar role to spherical coordinates. The density distribution becomes
\[\frac{1}{(\sqrt{2\pi}\sigma)^n} e^{-(n-1)\frac{s^2}{2\sigma^2}-n\frac{(\bar{x}-\mu)^2}{2\sigma^2}}s^{n-2}\,\Omega(u_i)dsd\bar{x}\prod_{i=1}^{n-1} du_i\]where $\Omega(u_i)$ is a measure for the variables $u_i$- it gives an overall constant that we determine at the end instead.
To remove dependence on the variance $\sigma$ we consider the variable $t=(\bar{x}-\mu)\sqrt{n}/s$, which gives the Jacobian $s/\sqrt{n}$. We scale $s\rightarrow \sqrt{\frac{2}{n-1}}s\sigma$ to obtain
\[\propto \int_{s=0}^{\infty}e^{-s^2(1+\frac{1}{n-1}t^2)}s^{n-1}\,dsdt\]By changing $s\rightarrow \sqrt{s}$ we obtain
\[\propto\Big(1+\frac{1}{n-1}t^2\Big)^{-\frac{n}{2}}\Gamma(n/2)dt\]and integrating over $t: (-\infty,\infty)$ we fix the overall constant
\[\frac{\Gamma(n/2)}{\sqrt{(n-1)\pi}\Gamma(\frac{n-1}{2})}\Big (1+\frac{1}{n-1}t^2\Big)^{-\frac{n}{2}}\]This is known as the Student’s t-distribution with $\nu=n-1$ degrees of freedom.
- Two-sample mean (equal variance)
For two samples with sizes $n_1,n_2$, the idea is roughly the same. We follow similar steps as in the previous case. After some algebra, the exponential contains the terms
\[-(n_1-1)\frac{s_1^2}{2\sigma^2}-(n_2-1)\frac{s_2^2}{2\sigma^2}-n_1\frac{(\bar{x}_1-\mu_1)^2}{2\sigma^2}-n_2\frac{(\bar{x}_2-\mu_2)^2}{2\sigma^2}\]where $s_1$ and $s_2$ are the two sample means.
Now we write \(\bar{x}_1-\mu_1=(\bar{x}_{+}+\bar{x}_{-})/2\) and \(\bar{x}_2-\mu_2=(\bar{x}_{+}-\bar{x}_{-})/2\), because we will want to integrate over \(\bar{x}_{+}\) . We use the equality
\[-n_1(\bar{x}_1-\mu_1)^2-n_2(\bar{x}_2-\mu_2)^2=-\frac{\bar{x}_{-}^2}{1/n_1+1/n_2}-\frac{n_1+n_2}{4}\Big(\bar{x}_{+}+\frac{n_1-n_2}{n_1+n_2}\bar{x}_{-}\Big)^2\]and integrate over $\bar{x}_{+}$. So we are left with
\[-(n_1-1)\frac{s_1^2}{2\sigma^2}-(n_2-1)\frac{s_2^2}{2\sigma^2}-\frac{\bar{x}_{-}^2}{(1/n_1+1/n_2)2\sigma^2}\]By writing
\[s^2=\frac{(n_1-1)s_1^2+(n_2-1)s_2^2}{n_1+n_2-2},\;t=\frac{\bar{x}_{-}}{s\sqrt{1/n_1+1/n_2}}\]we obtain again the t-distribution with $\nu=n_1+n_2-2$ degrees of freedom.
- Regression coefficient
In linear regression, we assume that the target $y$ is a linear combination of the feature $x$ up to a gaussian noise, that is,
\[y=ax+b+\epsilon\]where $\epsilon$ is the noise distributed i.i.d according to a normal distribution with mean zero. Here $a,b$ are the true parameters that we want to estimate. In linear regression we use least square error to determine the estimators
\[\hat{a}=\frac{\sum_i(y_i-\bar{y})(x_i-\bar{x})}{\sum_i(x_i-\bar{x})^2},\;\hat{b}=\bar{y}-\hat{a}\bar{x}\]We want to calculate a probability for the difference $\hat{a}-a$. To do this we substitute $y_i=ax_i+b+\epsilon_i$ in the estimator equation. This gives
\[\hat{a}-a=\frac{\sum_i (\epsilon_i-\bar{\epsilon})(x_i-\bar{x})}{\sum_i(x_i-\bar{x})^2},\;\; \hat{b}-b=(a-\hat{a})\bar{x}+\bar{\epsilon}\]Since $\epsilon$ is normally distributed we want determine the probability of the quantity above. To facilitate the algebra we use vectorial notation. As such
\[\frac{\overrightarrow{\zeta}\cdot\overrightarrow{\gamma}}{\|\overrightarrow{\gamma}\|^2}\equiv\frac{\sum_i (\epsilon_i-\bar{\epsilon})(x_i-\bar{x})}{\sum_i(x_i-\bar{x})^2},\;\;\hat{b}-b=-\frac{\overrightarrow{\zeta}\cdot\overrightarrow{\gamma}}{\|\overrightarrow{\gamma}\|^2}\bar{x}+\overrightarrow{\epsilon}\cdot \overrightarrow{1}\]where $\overrightarrow{\gamma}\equiv x_i-\bar{x}$, $\zeta\equiv \epsilon_i-\bar{\epsilon}$ and $\overrightarrow{1}=(1,1,1,\ldots,1)/n$, a vector of ones divided by the number of datapoints. Note that
\[\overrightarrow{\gamma}\cdot \overrightarrow{1}=0,\;\;\overrightarrow{\zeta}\cdot \overrightarrow{1}=0\]The probability density function is proportional to the exponential of
\[-\frac{\|\overrightarrow{\epsilon}\|^2}{2\sigma^2}\]We write \(\overrightarrow{\epsilon}=\overrightarrow{\epsilon}_{\perp}+\alpha\overrightarrow{\gamma}+\beta\overrightarrow{1}\) with \(\overrightarrow{\epsilon}_{\perp}\cdot \overrightarrow{\gamma}=\overrightarrow{\epsilon}_{\perp}\cdot \overrightarrow{1}=0\). We calculate
\[\frac{\overrightarrow{\zeta}\cdot\overrightarrow{\gamma}}{\|\overrightarrow{\gamma}\|^2}=\alpha,\;\; \|\overrightarrow{\epsilon}\|^2=\|\overrightarrow{\epsilon}_{\perp}\|^2+\alpha^2\|\overrightarrow{\gamma}\|^2+\frac{\beta^2}{n}\]Integrating out $\beta$ we can build a t-test like variable with $n-2$ degrees of freedom, since $\overrightarrow{\epsilon}_{\perp}$ lives in a $n-2$ dimensional vector space. That is, \(t=\frac{\alpha\|\overrightarrow{\gamma}\|}{\|\overrightarrow{\epsilon}_{\perp}\|}\sqrt{n-2}\)
One can show that $|\overrightarrow{\epsilon}_{\perp}|^2=\sum_i(y_i-\hat{y}_i)^2$, and therefore
\[t=\frac{\hat{a}-a}{\sqrt{\frac{\sum_i(y_i-\hat{y}_i)^2}{\sum_i(x_i-\bar{x}_i)^2}}}\sqrt{n-2}\]For the intercept the logic is similar. We have
\[\hat{b}-b=-\frac{\overrightarrow{\zeta}\cdot\overrightarrow{\gamma}}{\|\overrightarrow{\gamma}\|^2}\bar{x}+\overrightarrow{\epsilon}\cdot \overrightarrow{1}=-\alpha\bar{x}+\frac{\beta}{n}\]and thus
\[\|\overrightarrow{\epsilon}\|^2=\|\overrightarrow{\epsilon}_{\perp}\|^2+\alpha^2\|\overrightarrow{\gamma}\|^2+n(\hat{b}-b+\alpha\bar{x})^2\]Integrating out $\alpha$ one finds that
\[t_{\text{intercept}}=\frac{(\hat{b}-b)\|\overrightarrow{\gamma}\|\sqrt{n-2}}{\|\overrightarrow{\epsilon}_{\perp}\|\sqrt{\|\overrightarrow{\gamma}\|^2/n+\bar{x}^2}}\]follows the Student’s t-distribution with $n-2$ degrees of freedom.
- Correlation
We want to test whether two variables $y$ and $x$ have zero correlation, statistically speaking. Essentialy this accounts to fit $y\sim ax+b$. We have seen that the regression coefficient $a$ is proportional to the sample correlation coefficient, that is,
\[a=\frac{\langle yx\rangle -\langle y\rangle \langle x\rangle}{\langle x^2\rangle -\langle x\rangle^2 }=r\frac{\sigma(y)}{\sigma(x)}\]where $\sigma(y)^2=\sum_{i}(y_i-\bar{y})^2/n$ and $\sigma(x)^2=\sum_{i}(x_i-\bar{x})^2/n$, and $r$ is the Pearson’s correlation coefficient. Then we use the equality
\[\sum_{i}(y_i-\hat{y}_i)^2/n=\sigma(y)^2(1-r^2)\]to find that the t-statistic for the regression coefficient $a$ can be written as
\[t=\frac{r\sqrt{n-2}}{\sqrt{1-r^2}}\]assuming that true coefficient is zero, that is, $a=0$.
2. Chi square test
Let each $X_i,\,i=1\ldots n$ be a random variable following a standard normal distribution. Then the sum of squares
\[\chi^2=\sum_{i=1}^nX^2_i\]follows a chi-distribution with $k$ degrees of freedom. To understand this, consider the joint probability density function of $n$ standard normal random variables
\[e^{-\frac{1}{2}\sum_{i=1}^n X_i^2}\prod_{i=1}^n dX_i\]If we use spherical coordinates with
\[X_i=ru_i,\;\sum_{i=1}^n u_i^2=1\]the probability density becomes
\[e^{-\frac{r^2}{2}}drr^{n-1}\Omega\]where $\Omega$ comes from integrating out $u_i$. Since $r$ is never negative we further use $s=r^{2}$ and obtain
\[\propto e^{-\frac{s}{2}}s^{\frac{n}{2}-1}ds\]Therefore the chi-square variable $\chi^2\equiv s$ with $k$ degrees of freedom follows the distribution
\[\chi^2\sim \frac{s^{\frac{n}{2}-1}}{2^{n/2}\Gamma(n/2)}e^{-\frac{s}{2}}\]This distribution has the following shape (from Wikipedia):
- Pearson’s Chi-square test
This test gives a measure of goodness of fit for a categorical variable with $k$ classes. Suppose we have $n$ observations with $x_i$ ($i=1\ldots k$) observed numbers, that is, $\sum_{i=1}^k x_i=n$. We want to test the hypotheses that each category is drawn with probability $p_i$. Under this assumption, the joint probability of observing $x_i$ numbers follows a multinomial distribution
\[P(x_1,x_2,\ldots,x_n)=\frac{n!}{x_1!x_2!\ldots x_k!}p_1^{x_1}p_2^{x_2}\ldots p_k^{x_k}\]We want to understand the behaviour of this probability when $n$ is very large. Assume that $x_i$ is also sufficiently large, which is ok to do for typical observations. In this case use stirling’s approximation of the factorial, that is,
\[n!\simeq \sqrt{2\pi n}\Big(\frac{n}{e}\Big)^n\]to write
\[P(x_1,x_2,\ldots,x_n)\propto \Big(\frac{n}{e}\Big)^n \prod_{i=1}^k \Big(\frac{x_i}{e}\Big)^{-x_i}p_i^{x_i}\]In taking $n$ very large, we want to keep the frequency $\lambda_i=x_i/ n$ fixed. Then the logarithm of the above expression becomes
\[\ln P(x_1,x_2,\ldots,x_n)=-\sum_{i=1}^k\lambda_in\ln(\lambda_i)+\sum_{i=1}^k\lambda_i n\ln(p_i)\]Since this is proportional to $n$ we can perform an asymptotic expansion as $n\gg 1$. We perform the expansion around the maximum of $\ln P$ (note that $\ln P$ is a concave function of $\lambda_i$ ), that is,
\[\frac{\partial P}{\partial \lambda_i}=0,\;i=1\ldots n-1\]Using the fact that we have $n-1$ independent variables since $\sum_i \lambda_i=1$, the solution is $\lambda_i^*=p_i$. Expanding around this solution we find
\[\ln P(\lambda_1,\lambda_2,\ldots,\lambda_n)=-n\sum_{i=1}^k\frac{(\lambda_i-p_i)^2}{2p_i}\]In terms of $x_i$ this gives
\[\ln P(x_1,x_2,\ldots,x_n)=-\sum_{i=1}^k\frac{(x_i-m_i)^2}{2m_i}\]where $m_i=np_i$ is the expected observed number. Therefore the quantity
\[\sum_{i=1}^k\frac{(x_i-m_i)^2}{m_i}\]follows a $\chi^2$ distribution with $k-1$ degrees of fredom, since only $k-1$ of the $x$’s are independent.
- Variance
In order to investigate the difference between the sample variance $s^2=\sum_i(x_i-\bar{x})^2/n-1$ and the assumed variance $\sigma^2$ of the distribution. We calculate \((n-1)\frac{s^2}{\sigma^2}\) Remember that for a normally distributed random variable $x_i$, the sum $\sum_i(x_i-\bar{x})^2$ also follows a normal distribution. In particular, the combination $\sum_i(x_i-\bar{x})^2/\sigma^2$ follows a $\chi^2$ distribution with $n-1$ degrees of freedom, because we have integrated out $\bar{x}$ as explained in the beginning of the post.


| URL | Page Title |
|---|---|
/posts/firstpost/ |
This is my first post. |
/posts/secondpost/ |
This is my second post. |
/posts/thirdpost/ |
This is my third post. |
/posts/fourthpost/ |
This is my fourth post. |
/about/ |
About Me |
/posts/ |
|
/ |
|
/tags/ |
|
/tags/second-tag/ |
Tagged “second tag” |
/tags/another-tag/ |
Tagged “another tag” |
/tags/posts-with-two-tags/ |
Tagged “posts with two tags” |
/tags/number-2/ |
Tagged “number 2” |


How it works
AngularCSS listens for route (or states) change events, adds the CSS defined on the current route and removes the CSS from the previous route. It also works with directives in the same fashion with the compile and scope destroy events.
To illustrate this behavior, each page and directive is defining CSS via this API. The main header changes color based on the current page CSS. Each directive's background color comes from the CSS defined in the Directive Definition Object (DDO). On page change, the CSS defined changes accordingly. See the app source code below for more details.


|
EmberZNet API Reference: For the EM35x SoC Platform
EmberZNet <IP_ADDRESS>
For the EFR32 and EM3xx Platforms
|
Compiler and Platform specific definitions and typedefs for the IAR ARM C compiler. More...
Macros | |
| #define | HAL_HAS_INT64 |
| Denotes that this platform supports 64-bit data-types. More... | |
| #define | _HAL_USE_COMMON_PGM_ |
| Use the Master Program Memory Declarations from platform-common.h. More... | |
| #define | _HAL_USE_COMMON_MEMUTILS_ |
| If the line below is uncommented we will use Ember memory APIs, otherwise, we will use the C Standard library (memset,memcpy,memmove) APIs. More... | |
| #define | PLATCOMMONOKTOINCLUDE |
| Include platform-common.h last to pick up defaults and common definitions. More... | |
| #define | MAIN_FUNCTION_PARAMETERS void |
| The kind of arguments the main function takes. More... | |
| #define | MAIN_FUNCTION_ARGUMENTS |
Functions | |
| void | _executeBarrierInstructions (void) |
Master Variable Types | |
These are a set of typedefs to make the size of all variable declarations explicitly known. | |
| typedef bool | boolean |
| A typedef to make the size of the variable explicitly known. More... | |
| typedef unsigned char | int8u |
| A typedef to make the size of the variable explicitly known. More... | |
| typedef signed char | int8s |
| A typedef to make the size of the variable explicitly known. More... | |
| typedef unsigned short | int16u |
| A typedef to make the size of the variable explicitly known. More... | |
| typedef signed short | int16s |
| A typedef to make the size of the variable explicitly known. More... | |
| typedef unsigned int | int32u |
| A typedef to make the size of the variable explicitly known. More... | |
| typedef signed int | int32s |
| A typedef to make the size of the variable explicitly known. More... | |
| typedef unsigned long long | int64u |
| A typedef to make the size of the variable explicitly known. More... | |
| typedef signed long long | int64s |
| A typedef to make the size of the variable explicitly known. More... | |
| typedef unsigned int | PointerType |
| A typedef to make the size of the variable explicitly known. More... | |
Miscellaneous Macros | |
| void | halInternalAssertFailed (const char *filename, int linenumber) |
| A prototype definition for use by the assert macro. (see hal/micro/micro.h) More... | |
| void | halInternalResetWatchDog (void) |
| Macro to reset the watchdog timer. Note: be very very careful when using this as you can easily get into an infinite loop if you are not careful. More... | |
| #define | BIGENDIAN_CPU false |
| A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian. More... | |
| #define | NTOHS(val) (__REV16(val)) |
| Define intrinsics for NTOHL and NTOHS to save code space by making endian.c compile to nothing. More... | |
| #define | NTOHL(val) (__REV(val)) |
| A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian. More... | |
| #define | NO_STRIPPING __root |
| A friendlier name for the compiler's intrinsic for not stripping. More... | |
| #define | EEPROM errorerror |
| A friendlier name for the compiler's intrinsic for eeprom reference. More... | |
| #define | __SOURCEFILE__ __FILE__ |
| The SOURCEFILE macro is used by asserts to list the filename if it isn't otherwise defined, set it to the compiler intrinsic which specifies the whole filename and path of the sourcefile. More... | |
| #define | assert(condition) |
| A custom implementation of the C language assert macro. This macro implements the conditional evaluation and calls the function halInternalAssertFailed(). (see hal/micro/micro.h) More... | |
| #define | halResetWatchdog() halInternalResetWatchDog() |
| A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian. More... | |
| #define | UNUSED |
| Declare a variable as unused to avoid a warning. Has no effect in IAR builds. More... | |
| #define | SIGNED_ENUM |
| Some platforms need to cast enum values that have the high bit set. More... | |
| #define | STACK_FILL_VALUE 0xCDCDCDCDU |
| Define the magic value that is interpreted by IAR C-SPY's Stack View. More... | |
| #define | RAMFUNC __ramfunc |
| Define a generic RAM function identifier to a compiler specific one. More... | |
| #define | NO_OPERATION() __no_operation() |
| Define a generic no operation identifier to a compiler specific one. More... | |
| #define | SET_REG_FIELD(reg, field, value) |
| A convenience macro that makes it easy to change the field of a register to any unsigned value. More... | |
| #define | SET_CMSIS_REG(reg, mask, value) |
| A convenience macro that makes it easy to change a register using the provided mask(s) and value(s). Example: SET_CMSIS_REG(GPIO->P[1].CFGH, (_GPIO_P_CFGH_Px5_MASK | _GPIO_P_CFGH_Px6_MASK), (GPIO_P_CFGH_Px5_OUT | GPIO_P_CFGH_Px6_OUT));. More... | |
| #define | SET_CMSIS_REG_FIELD(reg, field, value) |
| A convenience macro that makes it easy to change the field of a register, as defined in CMSIS Device headers, to any unsigned value. Example using EM35xx: SET_CMSIS_REG_FIELD(GPIO->P[0].CFGL, GPIO_P_CFGL_Px0, _GPIO_P_CFGL_Px0_OUT);. More... | |
| #define | simulatedTimePasses() |
| Stub for code not running in simulation. More... | |
| #define | simulatedTimePassesMs(x) |
| Stub for code not running in simulation. More... | |
| #define | simulatedSerialTimePasses() |
| Stub for code not running in simulation. More... | |
| #define | _HAL_USE_COMMON_DIVMOD_ |
| Use the Divide and Modulus Operations from platform-common.h. More... | |
| #define | VAR_AT_SEGMENT(__variableDeclaration, __segmentName) __variableDeclaration @ __segmentName |
| Provide a portable way to specify the segment where a variable lives. More... | |
| #define | STRINGIZE(X) #X |
| Convinience macro for turning a token into a string. More... | |
| #define | ALIGNMENT(X) _Pragma(STRINGIZE(data_alignment = X)) |
| Provide a portable way to align data. More... | |
| #define | WEAK(__symbol) __weak __symbol |
| Provide a portable way to specify a symbol as weak. More... | |
| #define | NO_INIT(__symbol) __no_init __symbol |
| Provide a portable way to specify a non initialized symbol. More... | |
| #define | STATIC_ASSERT(__condition, __errorstr) static_assert(__condition, __errorstr) |
| Provide a portable way to specify a compile time assert. More... | |
Portable segment names | |
| #define | __NO_INIT__ ".noinitlegacy" |
| Portable segment names. More... | |
| #define | __DEBUG_CHANNEL__ "DEBUG_CHANNEL" |
| Portable segment names. More... | |
| #define | __INTVEC__ ".intvec" |
| Portable segment names. More... | |
| #define | __CSTACK__ "CSTACK" |
| Portable segment names. More... | |
| #define | __RESETINFO__ "RESETINFO" |
| Portable segment names. More... | |
| #define | __DATA_INIT__ ".data_init" |
| Portable segment names. More... | |
| #define | __DATA__ ".data" |
| Portable segment names. More... | |
| #define | __BSS__ ".bss" |
| Portable segment names. More... | |
| #define | __CONST__ ".rodata" |
| Portable segment names. More... | |
| #define | __TEXT__ ".text" |
| Portable segment names. More... | |
| #define | __TEXTRW_INIT__ ".textrw_init" |
| Portable segment names. More... | |
| #define | __TEXTRW__ ".textrw" |
| Portable segment names. More... | |
| #define | __AAT__ "AAT" |
| Portable segment names. More... | |
| #define | __BAT__ "BAT" |
| Portable segment names. More... | |
| #define | __BAT_INIT__ "BAT" |
| Portable segment names. More... | |
| #define | __FAT__ "FAT" |
| Portable segment names. More... | |
| #define | __RAT__ "RAT" |
| Portable segment names. More... | |
| #define | __SIMEE__ "SIMEE" |
| Portable segment names. More... | |
| #define | __PSSTORE__ "PSSTORE" |
| Portable segment names. More... | |
| #define | __LONGTOKEN__ "LONGTOKEN" |
| Portable segment names. More... | |
| #define | __EMHEAP__ "EMHEAP" |
| Portable segment names. More... | |
| #define | __GUARD_REGION__ "GUARD_REGION" |
| Portable segment names. More... | |
| #define | __DLIB_PERTHREAD_INIT__ "__DLIB_PERTHREAD_init" |
| Portable segment names. More... | |
| #define | __DLIB_PERTHREAD_INITIALIZED_DATA__ "DLIB_PERTHREAD_INITIALIZED_DATA" |
| Portable segment names. More... | |
| #define | __DLIB_PERTHREAD_ZERO_DATA__ "DLIB_PERTHREAD_ZERO_DATA" |
| Portable segment names. More... | |
| #define | __INTERNAL_STORAGE__ "INTERNAL_STORAGE" |
| Portable segment names. More... | |
| #define | __LOCKBITS_IN_MAINFLASH__ "LOCKBITS_IN_MAINFLASH" |
| Portable segment names. More... | |
| #define | __UNRETAINED_RAM__ "UNRETAINED_RAM" |
| Portable segment names. More... | |
| #define | _NO_INIT_SEGMENT_BEGIN __segment_begin(__NO_INIT__) |
| Portable segment names. More... | |
| #define | _DEBUG_CHANNEL_SEGMENT_BEGIN __segment_begin(__DEBUG_CHANNEL__) |
| Portable segment names. More... | |
| #define | _INTVEC_SEGMENT_BEGIN __segment_begin(__INTVEC__) |
| Portable segment names. More... | |
| #define | _CSTACK_SEGMENT_BEGIN __segment_begin(__CSTACK__) |
| Portable segment names. More... | |
| #define | _RESETINFO_SEGMENT_BEGIN __segment_begin(__RESETINFO__) |
| Portable segment names. More... | |
| #define | _DATA_INIT_SEGMENT_BEGIN __segment_begin(__DATA_INIT__) |
| Portable segment names. More... | |
| #define | _DATA_SEGMENT_BEGIN __segment_begin(__DATA__) |
| Portable segment names. More... | |
| #define | _BSS_SEGMENT_BEGIN __segment_begin(__BSS__) |
| Portable segment names. More... | |
| #define | _CONST_SEGMENT_BEGIN __segment_begin(__CONST__) |
| Portable segment names. More... | |
| #define | _TEXT_SEGMENT_BEGIN __segment_begin(__TEXT__) |
| Portable segment names. More... | |
| #define | _TEXTRW_INIT_SEGMENT_BEGIN __segment_begin(__TEXTRW_INIT__) |
| Portable segment names. More... | |
| #define | _TEXTRW_SEGMENT_BEGIN __segment_begin(__TEXTRW__) |
| Portable segment names. More... | |
| #define | _AAT_SEGMENT_BEGIN __segment_begin(__AAT__) |
| Portable segment names. More... | |
| #define | _BAT_SEGMENT_BEGIN __segment_begin(__BAT__) |
| Portable segment names. More... | |
| #define | _BAT_INIT_SEGMENT_BEGIN __segment_begin(__BAT_INIT__) |
| Portable segment names. More... | |
| #define | _FAT_SEGMENT_BEGIN __segment_begin(__FAT__) |
| Portable segment names. More... | |
| #define | _RAT_SEGMENT_BEGIN __segment_begin(__RAT__) |
| Portable segment names. More... | |
| #define | _SIMEE_SEGMENT_BEGIN __segment_begin(__SIMEE__) |
| Portable segment names. More... | |
| #define | _PSSTORE_SEGMENT_BEGIN __segment_begin(__PSSTORE__) |
| Portable segment names. More... | |
| #define | _LONGTOKEN_SEGMENT_BEGIN __segment_begin(__LONGTOKEN__) |
| Portable segment names. More... | |
| #define | _EMHEAP_SEGMENT_BEGIN __segment_begin(__EMHEAP__) |
| Portable segment names. More... | |
| #define | _GUARD_REGION_SEGMENT_BEGIN __segment_begin(__GUARD_REGION__) |
| Portable segment names. More... | |
| #define | _DLIB_PERTHREAD_INIT_SEGMENT_BEGIN __segment_begin(__DLIB_PERTHREAD_INIT__) |
| Portable segment names. More... | |
| #define | _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_BEGIN __segment_begin(__DLIB_PERTHREAD_INITIALIZED_DATA__) |
| Portable segment names. More... | |
| #define | _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_BEGIN __segment_begin(__DLIB_PERTHREAD_ZERO_DATA__) |
| Portable segment names. More... | |
| #define | _INTERNAL_STORAGE_SEGMENT_BEGIN __segment_begin(__INTERNAL_STORAGE__) |
| Portable segment names. More... | |
| #define | _LOCKBITS_IN_MAINFLASH_SEGMENT_BEGIN __segment_begin(__LOCKBITS_IN_MAINFLASH__) |
| Portable segment names. More... | |
| #define | _UNRETAINED_RAM_SEGMENT_BEGIN __segment_begin(__UNRETAINED_RAM__) |
| Portable segment names. More... | |
| #define | _NO_INIT_SEGMENT_END __segment_end(__NO_INIT__) |
| Portable segment names. More... | |
| #define | _DEBUG_CHANNEL_SEGMENT_END __segment_end(__DEBUG_CHANNEL__) |
| Portable segment names. More... | |
| #define | _INTVEC_SEGMENT_END __segment_end(__INTVEC__) |
| Portable segment names. More... | |
| #define | _CSTACK_SEGMENT_END __segment_end(__CSTACK__) |
| Portable segment names. More... | |
| #define | _RESETINFO_SEGMENT_END __segment_end(__RESETINFO__) |
| Portable segment names. More... | |
| #define | _DATA_INIT_SEGMENT_END __segment_end(__DATA_INIT__) |
| Portable segment names. More... | |
| #define | _DATA_SEGMENT_END __segment_end(__DATA__) |
| Portable segment names. More... | |
| #define | _BSS_SEGMENT_END __segment_end(__BSS__) |
| Portable segment names. More... | |
| #define | _CONST_SEGMENT_END __segment_end(__CONST__) |
| Portable segment names. More... | |
| #define | _TEXT_SEGMENT_END __segment_end(__TEXT__) |
| Portable segment names. More... | |
| #define | _TEXTRW_INIT_SEGMENT_END __segment_end(__TEXTRW_INIT__) |
| Portable segment names. More... | |
| #define | _TEXTRW_SEGMENT_END __segment_end(__TEXTRW__) |
| Portable segment names. More... | |
| #define | _AAT_SEGMENT_END __segment_end(__AAT__) |
| Portable segment names. More... | |
| #define | _BAT_SEGMENT_END __segment_end(__BAT__) |
| Portable segment names. More... | |
| #define | _BAT_INIT_SEGMENT_END __segment_end(__BAT_INIT__) |
| Portable segment names. More... | |
| #define | _FAT_SEGMENT_END __segment_end(__FAT__) |
| Portable segment names. More... | |
| #define | _RAT_SEGMENT_END __segment_end(__RAT__) |
| Portable segment names. More... | |
| #define | _SIMEE_SEGMENT_END __segment_end(__SIMEE__) |
| Portable segment names. More... | |
| #define | _PSSTORE_SEGMENT_END __segment_end(__PSSTORE__) |
| Portable segment names. More... | |
| #define | _LONGTOKEN_SEGMENT_END __segment_end(__LONGTOKEN__) |
| Portable segment names. More... | |
| #define | _EMHEAP_SEGMENT_END __segment_end(__EMHEAP__) |
| Portable segment names. More... | |
| #define | _GUARD_REGION_SEGMENT_END __segment_end(__GUARD_REGION__) |
| Portable segment names. More... | |
| #define | _DLIB_PERTHREAD_INIT_SEGMENT_END __segment_end(__DLIB_PERTHREAD_INIT__) |
| Portable segment names. More... | |
| #define | _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_END __segment_end(__DLIB_PERTHREAD_INITIALIZED_DATA__) |
| Portable segment names. More... | |
| #define | _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_END __segment_end(__DLIB_PERTHREAD_ZERO_DATA__) |
| Portable segment names. More... | |
| #define | _INTERNAL_STORAGE_SEGMENT_END __segment_end(__INTERNAL_STORAGE__) |
| Portable segment names. More... | |
| #define | _LOCKBITS_IN_MAINFLASH_SEGMENT_END __segment_end(__LOCKBITS_IN_MAINFLASH__) |
| Portable segment names. More... | |
| #define | _UNRETAINED_RAM_SEGMENT_END __segment_end(__UNRETAINED_RAM__) |
| Portable segment names. More... | |
| #define | _NO_INIT_SEGMENT_SIZE __segment_size(__NO_INIT__) |
| Portable segment names. More... | |
| #define | _DEBUG_CHANNEL_SEGMENT_SIZE __segment_size(__DEBUG_CHANNEL__) |
| Portable segment names. More... | |
| #define | _INTVEC_SEGMENT_SIZE __segment_size(__INTVEC__) |
| Portable segment names. More... | |
| #define | _CSTACK_SEGMENT_SIZE __segment_size(__CSTACK__) |
| Portable segment names. More... | |
| #define | _RESETINFO_SEGMENT_SIZE __segment_size(__RESETINFO__) |
| Portable segment names. More... | |
| #define | _DATA_INIT_SEGMENT_SIZE __segment_size(__DATA_INIT__) |
| Portable segment names. More... | |
| #define | _DATA_SEGMENT_SIZE __segment_size(__DATA__) |
| Portable segment names. More... | |
| #define | _BSS_SEGMENT_SIZE __segment_size(__BSS__) |
| Portable segment names. More... | |
| #define | _CONST_SEGMENT_SIZE __segment_size(__CONST__) |
| Portable segment names. More... | |
| #define | _TEXT_SEGMENT_SIZE __segment_size(__TEXT__) |
| Portable segment names. More... | |
| #define | _TEXTRW_INIT_SEGMENT_SIZE __segment_size(__TEXTRW_INIT__) |
| Portable segment names. More... | |
| #define | _TEXTRW_SEGMENT_SIZE __segment_size(__TEXTRW__) |
| Portable segment names. More... | |
| #define | _AAT_SEGMENT_SIZE __segment_size(__AAT__) |
| Portable segment names. More... | |
| #define | _BAT_SEGMENT_SIZE __segment_size(__BAT__) |
| Portable segment names. More... | |
| #define | _BAT_INIT_SEGMENT_SIZE __segment_size(__BAT_INIT__) |
| Portable segment names. More... | |
| #define | _FAT_SEGMENT_SIZE __segment_size(__FAT__) |
| Portable segment names. More... | |
| #define | _RAT_SEGMENT_SIZE __segment_size(__RAT__) |
| Portable segment names. More... | |
| #define | _SIMEE_SEGMENT_SIZE __segment_size(__SIMEE__) |
| Portable segment names. More... | |
| #define | _PSSTORE_SEGMENT_SIZE __segment_size(__PSSTORE__) |
| Portable segment names. More... | |
| #define | _LONGTOKEN_SEGMENT_SIZE __segment_size(__LONGTOKEN__) |
| Portable segment names. More... | |
| #define | _EMHEAP_SEGMENT_SIZE __segment_size(__EMHEAP__) |
| Portable segment names. More... | |
| #define | _GUARD_REGION_SEGMENT_SIZE __segment_size(__GUARD_REGION__) |
| Portable segment names. More... | |
| #define | _DLIB_PERTHREAD_INIT_SEGMENT_SIZE __segment_size(__DLIB_PERTHREAD_INIT__) |
| Portable segment names. More... | |
| #define | _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_SIZE __segment_size(__DLIB_PERTHREAD_INITIALIZED_DATA__) |
| Portable segment names. More... | |
| #define | _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_SIZE __segment_size(__DLIB_PERTHREAD_ZERO_DATA__) |
| Portable segment names. More... | |
| #define | _INTERNAL_STORAGE_SEGMENT_SIZE __segment_size(__INTERNAL_STORAGE__) |
| Portable segment names. More... | |
| #define | _LOCKBITS_IN_MAINFLASH_SEGMENT_SIZE __segment_size(__LOCKBITS_IN_MAINFLASH__) |
| Portable segment names. More... | |
| #define | _UNRETAINED_RAM_SEGMENT_SIZE __segment_size(__UNRETAINED_RAM__) |
| Portable segment names. More... | |
External Declarations | |
These are routines that are defined in certain header files that we don't want to include, e.g. stdlib.h | |
| int | abs (int I) |
| Returns the absolute value of I (also called the magnitude of I). That is, if I is negative, the result is the opposite of I, but if I is nonnegative the result is I. More... | |
Compiler and Platform specific definitions and typedefs for the IAR ARM C compiler.
See iar.h and platform-common.h for source code.
| #define __AAT__ "AAT" |
Portable segment names.
| #define __BAT__ "BAT" |
Portable segment names.
| #define __BAT_INIT__ "BAT" |
Portable segment names.
| #define __BSS__ ".bss" |
Portable segment names.
| #define __CONST__ ".rodata" |
Portable segment names.
| #define __CSTACK__ "CSTACK" |
Portable segment names.
| #define __DATA__ ".data" |
Portable segment names.
| #define __DATA_INIT__ ".data_init" |
Portable segment names.
| #define __DEBUG_CHANNEL__ "DEBUG_CHANNEL" |
Portable segment names.
| #define __DLIB_PERTHREAD_INIT__ "__DLIB_PERTHREAD_init" |
Portable segment names.
| #define __DLIB_PERTHREAD_INITIALIZED_DATA__ "DLIB_PERTHREAD_INITIALIZED_DATA" |
Portable segment names.
| #define __DLIB_PERTHREAD_ZERO_DATA__ "DLIB_PERTHREAD_ZERO_DATA" |
Portable segment names.
| #define __EMHEAP__ "EMHEAP" |
Portable segment names.
| #define __FAT__ "FAT" |
Portable segment names.
| #define __GUARD_REGION__ "GUARD_REGION" |
Portable segment names.
| #define __INTERNAL_STORAGE__ "INTERNAL_STORAGE" |
Portable segment names.
| #define __INTVEC__ ".intvec" |
Portable segment names.
| #define __LOCKBITS_IN_MAINFLASH__ "LOCKBITS_IN_MAINFLASH" |
Portable segment names.
| #define __LONGTOKEN__ "LONGTOKEN" |
Portable segment names.
| #define __NO_INIT__ ".noinitlegacy" |
Portable segment names.
| #define __PSSTORE__ "PSSTORE" |
Portable segment names.
| #define __RAT__ "RAT" |
Portable segment names.
| #define __RESETINFO__ "RESETINFO" |
Portable segment names.
| #define __SIMEE__ "SIMEE" |
Portable segment names.
| #define __SOURCEFILE__ __FILE__ |
The SOURCEFILE macro is used by asserts to list the filename if it isn't otherwise defined, set it to the compiler intrinsic which specifies the whole filename and path of the sourcefile.
| #define __TEXT__ ".text" |
Portable segment names.
| #define __TEXTRW__ ".textrw" |
Portable segment names.
| #define __TEXTRW_INIT__ ".textrw_init" |
Portable segment names.
| #define __UNRETAINED_RAM__ "UNRETAINED_RAM" |
Portable segment names.
| #define _AAT_SEGMENT_BEGIN __segment_begin(__AAT__) |
Portable segment names.
| #define _AAT_SEGMENT_END __segment_end(__AAT__) |
Portable segment names.
| #define _AAT_SEGMENT_SIZE __segment_size(__AAT__) |
Portable segment names.
| #define _BAT_INIT_SEGMENT_BEGIN __segment_begin(__BAT_INIT__) |
Portable segment names.
| #define _BAT_INIT_SEGMENT_END __segment_end(__BAT_INIT__) |
Portable segment names.
| #define _BAT_INIT_SEGMENT_SIZE __segment_size(__BAT_INIT__) |
Portable segment names.
| #define _BAT_SEGMENT_BEGIN __segment_begin(__BAT__) |
Portable segment names.
| #define _BAT_SEGMENT_END __segment_end(__BAT__) |
Portable segment names.
| #define _BAT_SEGMENT_SIZE __segment_size(__BAT__) |
Portable segment names.
| #define _BSS_SEGMENT_BEGIN __segment_begin(__BSS__) |
Portable segment names.
| #define _BSS_SEGMENT_END __segment_end(__BSS__) |
Portable segment names.
| #define _BSS_SEGMENT_SIZE __segment_size(__BSS__) |
Portable segment names.
| #define _CONST_SEGMENT_BEGIN __segment_begin(__CONST__) |
Portable segment names.
| #define _CONST_SEGMENT_END __segment_end(__CONST__) |
Portable segment names.
| #define _CONST_SEGMENT_SIZE __segment_size(__CONST__) |
Portable segment names.
| #define _CSTACK_SEGMENT_BEGIN __segment_begin(__CSTACK__) |
Portable segment names.
| #define _CSTACK_SEGMENT_END __segment_end(__CSTACK__) |
Portable segment names.
| #define _CSTACK_SEGMENT_SIZE __segment_size(__CSTACK__) |
Portable segment names.
| #define _DATA_INIT_SEGMENT_BEGIN __segment_begin(__DATA_INIT__) |
Portable segment names.
| #define _DATA_INIT_SEGMENT_END __segment_end(__DATA_INIT__) |
Portable segment names.
| #define _DATA_INIT_SEGMENT_SIZE __segment_size(__DATA_INIT__) |
Portable segment names.
| #define _DATA_SEGMENT_BEGIN __segment_begin(__DATA__) |
Portable segment names.
| #define _DATA_SEGMENT_END __segment_end(__DATA__) |
Portable segment names.
| #define _DATA_SEGMENT_SIZE __segment_size(__DATA__) |
Portable segment names.
| #define _DEBUG_CHANNEL_SEGMENT_BEGIN __segment_begin(__DEBUG_CHANNEL__) |
Portable segment names.
| #define _DEBUG_CHANNEL_SEGMENT_END __segment_end(__DEBUG_CHANNEL__) |
Portable segment names.
| #define _DEBUG_CHANNEL_SEGMENT_SIZE __segment_size(__DEBUG_CHANNEL__) |
Portable segment names.
| #define _DLIB_PERTHREAD_INIT_SEGMENT_BEGIN __segment_begin(__DLIB_PERTHREAD_INIT__) |
Portable segment names.
| #define _DLIB_PERTHREAD_INIT_SEGMENT_END __segment_end(__DLIB_PERTHREAD_INIT__) |
Portable segment names.
| #define _DLIB_PERTHREAD_INIT_SEGMENT_SIZE __segment_size(__DLIB_PERTHREAD_INIT__) |
Portable segment names.
| #define _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_BEGIN __segment_begin(__DLIB_PERTHREAD_INITIALIZED_DATA__) |
Portable segment names.
| #define _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_END __segment_end(__DLIB_PERTHREAD_INITIALIZED_DATA__) |
Portable segment names.
| #define _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_SIZE __segment_size(__DLIB_PERTHREAD_INITIALIZED_DATA__) |
Portable segment names.
| #define _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_BEGIN __segment_begin(__DLIB_PERTHREAD_ZERO_DATA__) |
Portable segment names.
| #define _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_END __segment_end(__DLIB_PERTHREAD_ZERO_DATA__) |
Portable segment names.
| #define _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_SIZE __segment_size(__DLIB_PERTHREAD_ZERO_DATA__) |
Portable segment names.
| #define _EMHEAP_SEGMENT_BEGIN __segment_begin(__EMHEAP__) |
Portable segment names.
| #define _EMHEAP_SEGMENT_END __segment_end(__EMHEAP__) |
Portable segment names.
| #define _EMHEAP_SEGMENT_SIZE __segment_size(__EMHEAP__) |
Portable segment names.
| #define _FAT_SEGMENT_BEGIN __segment_begin(__FAT__) |
Portable segment names.
| #define _FAT_SEGMENT_END __segment_end(__FAT__) |
Portable segment names.
| #define _FAT_SEGMENT_SIZE __segment_size(__FAT__) |
Portable segment names.
| #define _GUARD_REGION_SEGMENT_BEGIN __segment_begin(__GUARD_REGION__) |
Portable segment names.
| #define _GUARD_REGION_SEGMENT_END __segment_end(__GUARD_REGION__) |
Portable segment names.
| #define _GUARD_REGION_SEGMENT_SIZE __segment_size(__GUARD_REGION__) |
Portable segment names.
| #define _HAL_USE_COMMON_DIVMOD_ |
Use the Divide and Modulus Operations from platform-common.h.
| #define _HAL_USE_COMMON_MEMUTILS_ |
If the line below is uncommented we will use Ember memory APIs, otherwise, we will use the C Standard library (memset,memcpy,memmove) APIs.
| #define _HAL_USE_COMMON_PGM_ |
Use the Master Program Memory Declarations from platform-common.h.
| #define _INTERNAL_STORAGE_SEGMENT_BEGIN __segment_begin(__INTERNAL_STORAGE__) |
Portable segment names.
| #define _INTERNAL_STORAGE_SEGMENT_END __segment_end(__INTERNAL_STORAGE__) |
Portable segment names.
| #define _INTERNAL_STORAGE_SEGMENT_SIZE __segment_size(__INTERNAL_STORAGE__) |
Portable segment names.
| #define _INTVEC_SEGMENT_BEGIN __segment_begin(__INTVEC__) |
Portable segment names.
| #define _INTVEC_SEGMENT_END __segment_end(__INTVEC__) |
Portable segment names.
| #define _INTVEC_SEGMENT_SIZE __segment_size(__INTVEC__) |
Portable segment names.
| #define _LOCKBITS_IN_MAINFLASH_SEGMENT_BEGIN __segment_begin(__LOCKBITS_IN_MAINFLASH__) |
Portable segment names.
| #define _LOCKBITS_IN_MAINFLASH_SEGMENT_END __segment_end(__LOCKBITS_IN_MAINFLASH__) |
Portable segment names.
| #define _LOCKBITS_IN_MAINFLASH_SEGMENT_SIZE __segment_size(__LOCKBITS_IN_MAINFLASH__) |
Portable segment names.
| #define _LONGTOKEN_SEGMENT_BEGIN __segment_begin(__LONGTOKEN__) |
Portable segment names.
| #define _LONGTOKEN_SEGMENT_END __segment_end(__LONGTOKEN__) |
Portable segment names.
| #define _LONGTOKEN_SEGMENT_SIZE __segment_size(__LONGTOKEN__) |
Portable segment names.
| #define _NO_INIT_SEGMENT_BEGIN __segment_begin(__NO_INIT__) |
Portable segment names.
| #define _NO_INIT_SEGMENT_END __segment_end(__NO_INIT__) |
Portable segment names.
| #define _NO_INIT_SEGMENT_SIZE __segment_size(__NO_INIT__) |
Portable segment names.
| #define _PSSTORE_SEGMENT_BEGIN __segment_begin(__PSSTORE__) |
Portable segment names.
| #define _PSSTORE_SEGMENT_END __segment_end(__PSSTORE__) |
Portable segment names.
| #define _PSSTORE_SEGMENT_SIZE __segment_size(__PSSTORE__) |
Portable segment names.
| #define _RAT_SEGMENT_BEGIN __segment_begin(__RAT__) |
Portable segment names.
| #define _RAT_SEGMENT_END __segment_end(__RAT__) |
Portable segment names.
| #define _RAT_SEGMENT_SIZE __segment_size(__RAT__) |
Portable segment names.
| #define _RESETINFO_SEGMENT_BEGIN __segment_begin(__RESETINFO__) |
Portable segment names.
| #define _RESETINFO_SEGMENT_END __segment_end(__RESETINFO__) |
Portable segment names.
| #define _RESETINFO_SEGMENT_SIZE __segment_size(__RESETINFO__) |
Portable segment names.
| #define _SIMEE_SEGMENT_BEGIN __segment_begin(__SIMEE__) |
Portable segment names.
| #define _SIMEE_SEGMENT_END __segment_end(__SIMEE__) |
Portable segment names.
| #define _SIMEE_SEGMENT_SIZE __segment_size(__SIMEE__) |
Portable segment names.
| #define _TEXT_SEGMENT_BEGIN __segment_begin(__TEXT__) |
Portable segment names.
| #define _TEXT_SEGMENT_END __segment_end(__TEXT__) |
Portable segment names.
| #define _TEXT_SEGMENT_SIZE __segment_size(__TEXT__) |
Portable segment names.
| #define _TEXTRW_INIT_SEGMENT_BEGIN __segment_begin(__TEXTRW_INIT__) |
Portable segment names.
| #define _TEXTRW_INIT_SEGMENT_END __segment_end(__TEXTRW_INIT__) |
Portable segment names.
| #define _TEXTRW_INIT_SEGMENT_SIZE __segment_size(__TEXTRW_INIT__) |
Portable segment names.
| #define _TEXTRW_SEGMENT_BEGIN __segment_begin(__TEXTRW__) |
Portable segment names.
| #define _TEXTRW_SEGMENT_END __segment_end(__TEXTRW__) |
Portable segment names.
| #define _TEXTRW_SEGMENT_SIZE __segment_size(__TEXTRW__) |
Portable segment names.
| #define _UNRETAINED_RAM_SEGMENT_BEGIN __segment_begin(__UNRETAINED_RAM__) |
Portable segment names.
| #define _UNRETAINED_RAM_SEGMENT_END __segment_end(__UNRETAINED_RAM__) |
Portable segment names.
| #define _UNRETAINED_RAM_SEGMENT_SIZE __segment_size(__UNRETAINED_RAM__) |
Portable segment names.
| #define ALIGNMENT | ( | X | ) | _Pragma(STRINGIZE(data_alignment = X)) |
Provide a portable way to align data.
| #define assert | ( | condition | ) |
A custom implementation of the C language assert macro. This macro implements the conditional evaluation and calls the function halInternalAssertFailed(). (see hal/micro/micro.h)
| #define BIGENDIAN_CPU false |
A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian.
| #define EEPROM errorerror |
A friendlier name for the compiler's intrinsic for eeprom reference.
| #define HAL_HAS_INT64 |
Denotes that this platform supports 64-bit data-types.
| #define halResetWatchdog | ( | ) | halInternalResetWatchDog() |
A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian.
| #define MAIN_FUNCTION_ARGUMENTS |
| #define MAIN_FUNCTION_PARAMETERS void |
The kind of arguments the main function takes.
| #define NO_INIT | ( | __symbol | ) | __no_init __symbol |
Provide a portable way to specify a non initialized symbol.
| #define NO_OPERATION | ( | ) | __no_operation() |
Define a generic no operation identifier to a compiler specific one.
| #define NO_STRIPPING __root |
A friendlier name for the compiler's intrinsic for not stripping.
| #define NTOHL | ( | val | ) | (__REV(val)) |
A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian.
| #define NTOHS | ( | val | ) | (__REV16(val)) |
Define intrinsics for NTOHL and NTOHS to save code space by making endian.c compile to nothing.
| #define PLATCOMMONOKTOINCLUDE |
Include platform-common.h last to pick up defaults and common definitions.
| #define RAMFUNC __ramfunc |
Define a generic RAM function identifier to a compiler specific one.
| #define SET_CMSIS_REG | ( | reg, | |
| mask, | |||
| value | |||
| ) |
A convenience macro that makes it easy to change a register using the provided mask(s) and value(s). Example: SET_CMSIS_REG(GPIO->P[1].CFGH, (_GPIO_P_CFGH_Px5_MASK | _GPIO_P_CFGH_Px6_MASK), (GPIO_P_CFGH_Px5_OUT | GPIO_P_CFGH_Px6_OUT));.
| #define SET_CMSIS_REG_FIELD | ( | reg, | |
| field, | |||
| value | |||
| ) |
A convenience macro that makes it easy to change the field of a register, as defined in CMSIS Device headers, to any unsigned value. Example using EM35xx: SET_CMSIS_REG_FIELD(GPIO->P[0].CFGL, GPIO_P_CFGL_Px0, _GPIO_P_CFGL_Px0_OUT);.
| #define SET_REG_FIELD | ( | reg, | |
| field, | |||
| value | |||
| ) |
A convenience macro that makes it easy to change the field of a register to any unsigned value.
| #define SIGNED_ENUM |
Some platforms need to cast enum values that have the high bit set.
| #define simulatedSerialTimePasses | ( | ) |
Stub for code not running in simulation.
| #define simulatedTimePasses | ( | ) |
Stub for code not running in simulation.
| #define simulatedTimePassesMs | ( | x | ) |
Stub for code not running in simulation.
| #define STACK_FILL_VALUE 0xCDCDCDCDU |
Define the magic value that is interpreted by IAR C-SPY's Stack View.
| #define STATIC_ASSERT | ( | __condition, | |
| __errorstr | |||
| ) | static_assert(__condition, __errorstr) |
Provide a portable way to specify a compile time assert.
| #define STRINGIZE | ( | X | ) | #X |
Convinience macro for turning a token into a string.
| #define UNUSED |
Declare a variable as unused to avoid a warning. Has no effect in IAR builds.
| #define VAR_AT_SEGMENT | ( | __variableDeclaration, | |
| __segmentName | |||
| ) | __variableDeclaration @ __segmentName |
Provide a portable way to specify the segment where a variable lives.
| #define WEAK | ( | __symbol | ) | __weak __symbol |
Provide a portable way to specify a symbol as weak.
| typedef bool boolean |
A typedef to make the size of the variable explicitly known.
| typedef signed short int16s |
A typedef to make the size of the variable explicitly known.
| typedef unsigned short int16u |
A typedef to make the size of the variable explicitly known.
| typedef signed int int32s |
A typedef to make the size of the variable explicitly known.
| typedef unsigned int int32u |
A typedef to make the size of the variable explicitly known.
| typedef signed long long int64s |
A typedef to make the size of the variable explicitly known.
| typedef unsigned long long int64u |
A typedef to make the size of the variable explicitly known.
| typedef signed char int8s |
A typedef to make the size of the variable explicitly known.
| typedef unsigned char int8u |
A typedef to make the size of the variable explicitly known.
| typedef unsigned int PointerType |
A typedef to make the size of the variable explicitly known.
| void _executeBarrierInstructions | ( | void | ) |
| int abs | ( | int | I | ) |
Returns the absolute value of I (also called the magnitude of I). That is, if I is negative, the result is the opposite of I, but if I is nonnegative the result is I.
| I | An integer. |
| void halInternalAssertFailed | ( | const char * | filename, |
| int | linenumber | ||
| ) |
A prototype definition for use by the assert macro. (see hal/micro/micro.h)
| void halInternalResetWatchDog | ( | void | ) |
Macro to reset the watchdog timer. Note: be very very careful when using this as you can easily get into an infinite loop if you are not careful.


Unstoppable Artists founder Dr. Monroe Mann knows the ins and outs of psychology, education, and coding--from Ruby on Rails and Bootstrap to Javascript and HTML! If you want to make a simple computer program or iPhone app/Android app, or if you have plans to create the next big web app, you're gonna really love it here. And if you already ARE a coder, even better--you will find other ambitious coders from around the world with whom you can connect and chat! Unstoppable Artists founder Dr. Monroe Mann knows the ins and outs of psychology, education, and coding--from Ruby on Rails and Bootstrap to Javascript and HTML! If you want to make a simple computer program or iPhone app/Android app, or if you have plans to create the next big web app, you're gonna really love it here. And if you already ARE a coder, even better--you will find other ambitious coders from around the world with whom you can connect and chat! We can help you improve your coding, and your coding skills. How? Through connections and community. Whatever coding that interests you, we can help. FOR FREE. While yes, through our Unstoppable Artists program, we offer many different opportunities to help you improve and develop your coding, for starters, we urge you to join our FREE online chat community, where you can chat with other coders all day in a fun and supportive environment. And yes, you can get feedback on your coding too. There are even weekly reminders to check in and tell us what you're up to! So if you'd like to get started and make friends from all around the world who share your love for coding, then you've come to the right place! And then, once you're hooked, we'll tell you all about our dive program.  How to get started? It couldn't be easier! Just click this link and join the coding channel:


|
SSD1306 OLED display driver
1.6.3
This library is developed to control SSD1306/SSD1331/SSD1351/IL9163/PCD8554 RGB i2c/spi LED displays
|
The functions can be used only for OLEDs with ssd1306 controller. More...
Functions | |
| void | ssd1306_displayOff (void) |
| void | ssd1306_displayOn (void) |
| void | ssd1306_setContrast (uint8_t contrast) |
| void | ssd1306_invertMode (void) |
| void | ssd1306_normalMode (void) |
| void | ssd1306_flipHorizontal (uint8_t mode) |
| performs horizontal flip More... | |
| void | ssd1306_flipVertical (uint8_t mode) |
| performs vertical flip More... | |
The functions can be used only for OLEDs with ssd1306 controller.
Use this functions if you have ssd1306-based display and need to change display orientation, invert display content in hardware.
| void ssd1306_displayOff | ( | void | ) |
Turns off display
Definition at line 90 of file ssd1306_generic.c.
| void ssd1306_displayOn | ( | void | ) |
Turns on display
Definition at line 96 of file ssd1306_generic.c.
| void ssd1306_flipHorizontal | ( | uint8_t | mode | ) |
performs horizontal flip
Performs horizontal flip. If you need to turn display by 180 degree, please use both ssd1306_flipHorizontal() and ssd1306_flipVertical().
| mode | - 0 to disable horizontal flip 1 to enable horizontal flip |
Definition at line 910 of file ssd1306_generic.c.
| void ssd1306_flipVertical | ( | uint8_t | mode | ) |
performs vertical flip
Performs vertical flip. If you need to turn display by 180 degree, please use both ssd1306_flipHorizontal() and ssd1306_flipVertical().
| mode | - 0 to disable vertical flip 1 to enable vertical flip |
Definition at line 918 of file ssd1306_generic.c.
| void ssd1306_invertMode | ( | void | ) |
Switches display to inverse mode. LCD will display 0-pixels as white, and 1-pixels as black.
Definition at line 894 of file ssd1306_generic.c.
| void ssd1306_normalMode | ( | void | ) |
Switches display to normal mode.
Definition at line 902 of file ssd1306_generic.c.
| void ssd1306_setContrast | ( | uint8_t | contrast | ) |
Set display contrast, ie light intensity
| contrast | - contrast value to see, refer to ssd1306 datasheet |
Definition at line 101 of file ssd1306_generic.c.


Vis-a-Vis
About
Inquiries
New Guest Questionnaire
Our Staff
Our Rewards and Promos
Vis-a-Vis Cancellation Policy
Careers
Products
V2 Heart-Crafted Cosmetics
Services
Services
Massage
Waxing
Salon at Vis-a-Vis
Brow & Lash Boutique
Make-Up
Organic Spray Tan
Package & Series
Gift Certificates
Book Appointment
Locations
Services
Massage
Waxing
Salon at Vis-a-Vis
Brow & Lash Boutique
Make-Up
Organic Spray Tan
Package & Series
Blog


Segway
I’m writing this from a local coffee shop in Frederick, MD, all the way back in the United States of America. After more than 5 months of travel and study, the long trip has come to an end.  Many tasks got unceremoniously labeled as an “America Problem” and ignored. Blogging was most certainly one of them.
With this post, I hope to catch up to the present and give myself one last shot at reflection. Maybe give a few shout-outs along the way.
After I finished up my final exams. I took a leap of courage and went on my first ever truly solo trip. Four days to explore one of the largest cities in Australia, Melbourne.
Exploring a city on my own was an amazing growing experience. I will be the first to say it wasn’t the most enjoyable trip I’ve taken, but it definitely was one of the most rewarding. I took the trip with the intention of forcing myself out of my comfort zone. One of my long time personal projects has been to get over my anxiety of talking to strangers. Before the trip, I was definitely capable of it, but by no means comfortable. Another benefit of the trip is that when you are alone, you get to do exactly what you want to do. There is no worrying if one activity will upset the group, etc.. It teaches you what kind of traveler you are.
Arriving back at Newcastle from Melbourne, the goodbyes began. Many of the friends I had made over the course of the semester were either preparing to go off on month long trips, or head back home. These few days were a flurry of packing, farewells, and last minute excursions to cafes and beaches.
Next thing I knew, it was time to meet up with Dani at the Sydney Airport! After one day rest in Sydney, we were moving up the coast to Brisbane and the Gold Coast, then finally up to Cairns, the Daintree Rainforest, and the Great Barrier Reef.
This trip served as the final hurrah for my time in Australia. It was neat to share just a little bit of my study abroad experience with my sister, and to explore such amazing locations together.
After this trip finished, a few days of packing and final goodbyes led to the 36 hour travel day that has brought me here.
I was lucky to sit next to a very good friend for the 14 hour leg from SYD to LAX, helping pass the time and fend off sleep. For my next two flights home, I managed to stay awake until I finally fell asleep at a normal time. So far, it seems like my strategy effectively removed any jetlag.
Coming back home was very weird. With 6 months of new experiences behind me, I came back to a house, room and city that are almost exactly the same as I left them. I changed, my American life didn’t. One word, eerie. So, in order to adjust back, I quickly made changes to reflect my new experiences. It’s still an ongoing process.
Just looking back at any of the pictures on my phone, I am struck by hundreds of memories and small moments all associated with a single picture. To tell the truth, the moments that give me the most joy are all hidden in the details. Its the memories evoked by the picture, the punchline of a joke, or the beginning of a friendship, that hit me the hardest. The common thread with all these moments? It’s the people. The amazing landscapes and views found by traveling are just the backdrop for the real show. Its through the people that you learn about the country’s culture, yourself, and create new memories. The prize of travel is not a destination or a photo opportunity, its human connection. I am immensely thankful for all of the wonderful people I have had the privilege of meeting, and can only begin to speak about the impact they have had on my life. My world has been redefined, and I couldn’t be happier.
Thank you Australia.