Chapter 6 Correlations and differences in means
6.1 Seminar
In this session, we will cover bivariate relationships, that is relationships between two variables. For relationships between two continuous variables, we will look at correlations and plots and for relationships between a continuous dependent variable and a binary independent variable, we will look at differences in means.
6.1.1 Bivariate relationships
In data analysis we are mostly interested in understanding the relationships between two (or more) variables. For instance, between a predictor (independent variable) and an outcome of interest (dependent variable). Summary statistics are often the first steps in trying to understand relationships between variables.
Initially we might want to visualise a relationship between an independent variable and a dependent variable (outcome). For example, we might want to see how two categories are related to an outcome of interest.
Again, as good practice, let’s first clear our workspace before we start:
Let’s open the data again:
[1] 1049 13
Here we will compare if there are differences in perceptions of non-Western immigrants between those that identify with the Convervatives and those that support the Labour party.
We need to first create two new dummy variables from the categorical variable that lists identified political parties. These two binary variables will tell us observations where someone identifies with the Conservatives (1=yes and 0 = no) and the same for the Labour party (1=yes and 0=no). Here we have to use the ifelse function:
dat1$conservatives <- ifelse(dat1$party_self == 1, yes = 1, no = 0)
dat1$labour <- ifelse(dat1$party_self == 2, yes = 1, no = 0)
So we create new variables within our dataframe using categories from the party_self variable. == 1 is the category we are choosing. If the ifelse statement is true, they do identify with that party, we code yes as a 1 and no as a 0.
We can now run plots for the Conservatives and Labour party. We need to select the arguments as before, including appropriate colours for the parties. Here we also set the ylim to show a scale of the data from 0-100. First for the Conservative party:
boxplot(
dat1$IMMBRIT[dat1$conservatives==1],
frame.plot = FALSE,
xlab = "Conservatives",
ylim = c(0, 100),
col = "blue"
)
and then for the Labour party:
boxplot(
dat1$IMMBRIT[dat1$labour==1],
frame.plot = FALSE,
xlab = "Labour",
ylim = c(0, 100),
col = "red"
)
Overall, there appears to be very little difference between the Conservatives and Labour distributions in regards to perceptions of non-Western immigrants. The dots at the top of the scale represent outlier cases, where perceptions overestimate the number of immigrants.
The higher values for the Labour party could be due to high Labour support in diverse urban centres such as London. Yet, these are just samples and a snapshot of the possible relationship.Samples are never the same and vary. For instance, crime is not statistic and will vary over time and space.
Can we be sure that this result did not simply occur by chance?
This brings us to the importance of hypothesis testing.
6.1.2 Hypothesis testing
Because relationships can occur by chance, hypotheis testing is central to statistics. The first step is to form our own hypothesis about a potential relationship between variables and then compare this against what is known as the null hypothesis. The null hypothesis represents the notion that nothing special has occured and that the relationship we are observing has only occured by chance, i.e. getting heads when flipping a coin.
In the lecture slides, we cover this by exploring the Lady Tea Tasting Test (Fisher, 1925). When running statistics in R and other statistical packages, most models report a t-statistic and p-value, which we then informs us of whether we should reject the null hypothesis.
The t-statistic is easy to interpret. While we know 1 standard deviation from the mean represents 68% of the distribution, more than 1.96 deviations is more than 95% of the distribution. Therefore, if the t-statistic is higher than an absolute value of 1.96 (either 1.96 or -1.96), then the estimate we observe falls outside 95% of possible resampled estimations and is simply too rare to have occured by chance.
The p-value is based on the t-statistic and provides the actually probability that a estimate occured by chance. In most fields of research, the conventional threshold for a p-value is less than 0.05.This implies we will incorrectly reject the null hypothesis less than 5% of the time. A p-value of 0.01 implies we will incorrectly reject the null hypothesis 1% of the time. So the lower the p-value, the more confidence we can have in our estimate. If we reject the null hypothesis then the relationship we observe is statistically significant.
Let’s move on to a t-test to assess and outcome and whether two categories are statistically significant from one another. Here we explore difference between two estimated means.
6.1.3 T-test (difference in means)
We are interested in whether there is a difference in income between countries that have an history of colonialisation and those that do not. Put more formally, we are interested in the difference between two conditional means. Recall that a conditional mean is the mean in a subpopulation, such as the mean of income given that the country was a victim of colonialisation (conditional mean 1).
The t-test is the appropriate test-statistic. Our interval-level dependent variable is wdi_gdpc
which is GDP per capita taken from the World Development Indicators of the World Bank. Our binary independent variable is h_j
.
Let’s check the summary statistics of our dependent variable GDP per captia using the summary()
. It returns several descriptive statistics as well as the number of NA observations (missing values). Missing values mean that we have no information on the correct value of the variable for an observation. Missing values may be missing for many different reasons. We need to be aware of missings because we cannot calculate with missings.
Lets bring the data in:]
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
226.2 1768.0 5326.1 10184.1 12976.5 63686.7 16
We use the which()
function to identify the row-numbers of the countries in our dataset that have a colonial history. The code below returns the row index numbers of countries with a history of colonialisation.
[1] 3 5 6 8 11 12 13 15 17 18 20 21 22 23 24 26 27
[18] 29 30 32 33 34 35 36 39 40 41 42 43 45 46 48 50 51
[35] 52 53 54 56 58 61 62 64 66 67 69 70 71 72 73 74 77
[52] 78 80 84 85 88 89 92 94 95 96 99 103 104 105 106 107 109
[69] 110 111 116 117 118 119 120 123 125 126 127 129 130 131 132 133 134
[86] 135 136 137 140 142 145 146 147 148 150 152 154 155 156 158 160 161
[103] 162 164 165 166 169 172 173 174 175 176 179 180 183 185 187 188 190
[120] 191 192 194
Now, we can explore conditional means. Below we access the variable that we want (wdi_gdpc
) with the dollar sign and the rows in square brackets. The code below returns the per capita wealth of the countries with a colonial history:
[1] 6599.714
Now, go ahead and find the mean per capita wealth of countries without a colonial history:
[1] 16415.39
There is a clear numeric difference. Countries with a colonial history do appear to be significantly poorer.
However, we know that samples are subject to sampling variability. We therefore need to quantify the uncertainty that results from variable samples. To assess whether we can be reasonably sure that the difference between the estimates of wealth is not due to a strange sample or by chance, we carry out the t test to assess if there is a statistically significant difference between these populations:
t.test(dat2$wdi_gdpc[dat2$former_col == 1], dat2$wdi_gdpc[dat2$former_col == 0],
mu = 0, alt = "two.sided", conf = 0.95)
Welch Two Sample t-test
data: dat2$wdi_gdpc[dat2$former_col == 1] and dat2$wdi_gdpc[dat2$former_col == 0]
t = -5.0603, df = 101.69, p-value = 1.866e-06
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-13663.313 -5968.043
sample estimates:
mean of x mean of y
6599.714 16415.392
Let’s interpret the results we get from t.test()
. In our example the question is: Do countries with a former colonial history have different mean income levels than countries without colonial history?
The dependent variable is income, while the indepedent variable is where a country has a colonial history.
We know that when the t-statistic is greater then 1.96 or than -1.96, then we can safely reject the null hypothesis, i.e. it is less than 5% likely the estimate occured by chance. The p-value gives us a more direct probability of us wrongly rejecting the null hypothesis of 1.866e-06
which means a p-value of 0.000001866
!!!
In the next line you see the 95% confidence interval because we specified conf=0.95
. If you were to take 100 samples and in each you checked the means of the two groups, 95 times the difference in means would be within the interval you see there.
At the very bottom you see the means of the dependent variable by the two groups of the independent variable. These are the conditional means that we estimated above. By minusing the $6599.7 from $16414.4, we know that former colonial countries are on average $9814.70 worst off!
6.1.4 Relationships between continuous variables
One way to explore the relationship between two continous variables is to use correlation. This is a widely used as a summary statistic. Correlation is a measure of linear association. It can take values between -1 and +1. Where -1 is a perfect negative relationship, 0 is a no relationship and +1 is a perfect positive relationship. 0 means there is no relationship, as would be expected if the null hypothesis was true.
We estimate the correlation coefficient in the following:
[1] 0.6821114
| Argument | Description |
|---|---|
x |
The independent variable that you want to correlate. |
y |
The dependent variable that you want to correlate. |
use |
How R should handle missing values. use="complete.obs" will use only those rows where neither x nor y is missing. |
The interpretation of the correlation coefficient is that there is a positive relationship. However, the correlation coefficients does not tell us the magnitude of the relationship.
Another weakness is that it is a measure of linear association only. That means, there could be a curvilinear (or non-linear) realtionship which we miss (for instance a u-shaped relationship).
Often the best way to get a sense for the relationship beetween two continuous variables is visual inspection using a scatter plot. The human development index measures the quality of life and the World Bank Control of Corruption Index is a measure for the quality if institutions. We want to evaluate whether the two variables are related at all. Here, we could form the hypothesis that better insitutions improve the quality of life of citizens.
To investigate this relationship, we construct a scatterplot.
plot(
x = dat2$wbgi_cce,
y = dat2$undp_hdi,
xlim = c(-2, 3),
ylim = c(0, 1),
frame = FALSE,
xlab = "World Bank Control of Corruption Index",
ylab = "UNDP Human Development Index",
main = "Relationship b/w Quality of Institutions and Quality of Life",
pch = 16,
col = "darkgray"
)
The plot will give you a good idea whether about whether these two variables are related or not. Sometimes, the correleation coefficient is reported.
Overall, summary statistics are an important step in understanding the relationship between variables and whether such relationships occur by chance. However, this does not tell us much about the magnitude of the relationships we seek to explore. For this we must switch our attention to linear regression, which provides coefficients that can be interpreted as the extent to which a independent variable impacts a dependent variable. Linear regression also allows us to control for other independent variables which may also explain our dependent variable, i.e. alternative explainations of the outcome we are exploring.


Team
class is an subclass of the Subject
class and
represents teams of players.Subject.Subject()
and assigns a value to Team.teamNo
.Team
instance used for testing.Team
objects.TeamTest
class tests the functionality of
methods in the Team
class.Game.gameplayRound()
by making sure that the
players' moves are inputted correctly and that the map changes
accordingly, so that the round runs smoothly as expected.Game.gameplayRound()
by inputting a move that is
invalid, since it would result in the player going outside the
map.Game.gameplayRound()
by checking that a player
returns to the initial position after stepping on a water tile.Game.gameplayRound()
by making sure that if a
player finds the treasure tile, the game stops and he/she is
declared a winner.Game.setPlayersMap(int, int)
with valid inputs.Game.setPlayersMap(int, int)
with valid inputs.Map.htmlMapTable(Player)
by generating an HTML
table for a specific map instance.Game.start()
with invalid user input (number of players),
then enters valid input.Game.start()
with invalid user input (number of teams),
then enters valid input.MapCreator
returns the already created map when trying
to create a new map.Player.move(char)
with valid input.Game.playerMoveAllowed(Player, char)
by entering both
valid and invalid moves and checking the return value in each case.Player.move(char)
with invalid input
which throws an exception.Team.notifyObservers(Map, int, int)
HazardousMap.generate()
by checking that there
is only one treasure tile in the map.SafeMap.generate()
by checking that there
is only one treasure tile in the map.Game.start()
by checking that every player's
initial tile is a grass tile.Game.setPlayersMap(int, int)
with an invalid
map size (too large).Game.setPlayersMap(int, int)
with an invalid
number of players (too little).Game.setPlayersMap(int, int)
with an invalid
number of players (too many).Game.setPlayersMap(int, int)
with an invalid
map size (too small).Player.update(Map, int, int)
with a specific
map instance.HazardousMap.generate()
by checking that the
number of water tiles is between 25% and 35%.SafeMap.generate()
by checking that the
number of water tiles is at most 10%.Tile
class represents a tile on the map.Tile
type and initialises the ArrayList
to empty.Tile
s.char
which could be one of 'g' for grass, 'w' for water
or 't' for treasure.


#include <GrTextureSet.h>
Definition at line 23 of file GrTextureSet.h.
| GrTextureSet::GrTextureSet | ( | ) |
class header.
File: GrTextureSet.cpp Author: Kevin Bray Created: 08-10-07 Copyright © 2004 Bootstrap Studios. All rights reserved. project includes. class GrTextureSet ctor & dtor
Definition at line 25 of file GrTextureSet.cpp.
| GrTextureSet::GrTextureSet | ( | const GrTextureSet & | textureSet | ) |
Definition at line 31 of file GrTextureSet.cpp.
| GrTextureSet::~GrTextureSet | ( | ) |
Definition at line 38 of file GrTextureSet.cpp.
| void GrTextureSet::ApplyGlobalState | ( | GrShader * | shader | ) | const |
upload the texture matrix to the approprate uniforms.
Definition at line 219 of file GrTextureSet.cpp.
| void GrTextureSet::ApplyStageState | ( | ESTAGE | stage, | |
| unsigned int | glTextureUnit | |||
| ) | const |
Definition at line 235 of file GrTextureSet.cpp.
| void GrTextureSet::ApplyStageState | ( | ESTAGE | stage, | |
| unsigned int | glTextureUnit, | |||
| GrShader * | shader, | |||
| GrShader::EPARAM | colorReg0, | |||
| GrShader::EPARAM | colorReg1 | |||
| ) | const |
Definition at line 227 of file GrTextureSet.cpp.
Definition at line 38 of file GrTextureSet.h.
Definition at line 39 of file GrTextureSet.h.
Definition at line 40 of file GrTextureSet.h.
Definition at line 43 of file GrTextureSet.h.
Definition at line 44 of file GrTextureSet.h.
| const GrTextureStage& GrTextureSet::GetStage | ( | ESTAGE | stage | ) | const [inline] |
Definition at line 46 of file GrTextureSet.h.
Definition at line 41 of file GrTextureSet.h.
Definition at line 42 of file GrTextureSet.h.
| GrTextureSet & GrTextureSet::operator= | ( | const GrTextureSet & | textureSet | ) |
Definition at line 242 of file GrTextureSet.cpp.
Definition at line 64 of file GrTextureSet.cpp.
Definition at line 71 of file GrTextureSet.cpp.
Definition at line 78 of file GrTextureSet.cpp.
Definition at line 57 of file GrTextureSet.cpp.
| void GrTextureSet::SetStage | ( | ESTAGE | stage, | |
| const GrTextureStage & | texStage | |||
| ) |
Definition at line 99 of file GrTextureSet.cpp.
| void GrTextureSet::SetStageAddressMode | ( | ESTAGE | stage, | |
| GrTextureStage::EADDRESSMODE | s, | |||
| GrTextureStage::EADDRESSMODE | t | |||
| ) |
Definition at line 114 of file GrTextureSet.cpp.
| void GrTextureSet::SetStageFilterMode | ( | ESTAGE | stage, | |
| GrTextureStage::EFILTERMODE | filterMode | |||
| ) |
Definition at line 121 of file GrTextureSet.cpp.
| void GrTextureSet::SetStageGenTextureFlag | ( | ESTAGE | stage, | |
| GrTextureStage::GenTextureFlag | flags | |||
| ) |
Definition at line 142 of file GrTextureSet.cpp.
| void GrTextureSet::SetStageMaxAnisotropy | ( | ESTAGE | stage, | |
| float | maxAnisotropy | |||
| ) |
Definition at line 128 of file GrTextureSet.cpp.
| void GrTextureSet::SetStageMipMapEnable | ( | ESTAGE | stage, | |
| bool | mipMapEnable | |||
| ) |
Definition at line 135 of file GrTextureSet.cpp.
Definition at line 156 of file GrTextureSet.cpp.
Definition at line 149 of file GrTextureSet.cpp.
| void GrTextureSet::SetStageTexture | ( | ESTAGE | stage, | |
| URef< GrTextureBase > | texture | |||
| ) |
Definition at line 106 of file GrTextureSet.cpp.
Definition at line 85 of file GrTextureSet.cpp.
Definition at line 92 of file GrTextureSet.cpp.
| void GrTextureSet::Update | ( | ) | const |
create the matrix. first row.
second row.
adjust the translation to account for the rotation center.
Definition at line 163 of file GrTextureSet.cpp.


--- layout: archive title: Zulip Chat Archive permalink: /stream/116395-maths/topic/add_comm_group.20tactic.html ---
Could we get a scaled down ring
tactic handling add_comm_group
? My current goal is φ (x', y') - φ (x, y) = φ (x', y₁) - φ (x, y₁) + (φ (x', y') - φ (x', y₁) - (φ (x, y') - φ (x, y₁))) + (φ (x₁, y') - φ (x₁, y)) + (φ (x, y') - φ (x, y) - (φ (x₁, y') - φ (x₁, y)))
and I can't face proving it by hand
it's on the todo list
(this is a generalization of the thing I called a ring
bug the other day because I forgot to tell Lean rings are commutative)
Why not put a ring structure on your group? ;-)
I think once someone showed me a group for which they could prove that this could not be done, unfortunately.
I think I know how to do modules; maybe you could use that
Oh yeah, Q/Z. No possibility for 1 because it would be killed by some n, but not everything is killed by n
any non-unital ring satisfies this criterion
oh, actually I think you stand to gain just a bit by using a module tactic to solve abelian group problems
It makes me think I should try the rcases_hint
tactic now that you pushed it
since it would be able to handle (m * n) . x = m . (n . x)
where m,n : Z
but a standard abelian group tactic can't deal with Z variables
You should definitely try rcases_hint
. I wrote 200 lines of lean in one sitting and tested it once at the end, and it seemed to work
...at least it's type correct
Unfortunately, add_comm_group
is not the same as module \Z
that's not a significant problem for a tactic, it can supply the instance when needed
speaking of which, someone should prove that instance. All the hard work is already done
I can't use the depth parameter
The syntax is rcases_hint e {depth := 4}
or rintro_hint {depth := 4}
the lack of delimiter between e
and the cfg may cause a problem
it complains e
is not a function
so yes, a delimiter may help
I'm open to suggestions
would rcases_hint e : 4
be too weird?
it's not meant to stay in the final Lean file anyway
so I would say it's fine
What about trying to guess better names?
speaking of which, someone should prove that instance. All the hard work is already done
Do we want an actual instance
, or just 2 lemmas that convert either way. I think we can't have instances both ways, right? That would blow up the type class system :boom:
We already have an instance one way, the other one should just be a def
I changed rcases_hint
to rcases?
, hint
takes too long to write
the depth thing should be fixed
My current goal is
φ (x', y') - φ (x, y) = φ (x', y₁) - φ (x, y₁) + (φ (x', y') - φ (x', y₁) - (φ (x, y') - φ (x, y₁))) + (φ (x₁, y') - φ (x₁, y)) + (φ (x, y') - φ (x, y) - (φ (x₁, y') - φ (x₁, y)))
and I can't face proving it by hand
This was the last missing piece, so I decided to try it. After about 15 minutes of misery, I found out that apply eq_of_sub_eq_zero, simp
does the trick!
Unfortunately,
add_comm_group
is not the same asmodule \Z
OK so in the perfectoid mathlib pile-up there is quotient_group.lean
, which I wrote based on quotient_module.lean
. But what I actually want is quotient_add_group.lean
so I can use it to improve quotient_ring.lean
. I see three possibilities for making quotient_add_group.lean
:
(1) just copy quotient_group.lean
changing all the *
s to +
s etc.
(2) Some sort of tactic magic
(3) deduce the results from quotient_module.lean
using the fact that, as we mathematicians say, an abelian group "is" a -module.
Which is the best idea?
@Patrick Massot Do you mind if I put our names on the top of quotient_group.lean
(remember -- I wrote it, basically copying from quotient_module.lean
and then you fixed up a bunch of stuff and made it better) and PR it to mathlib via the community mathlib?
No problem, go ahead
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Oliver Zeigermann / @DJCordhose
If you are looking for the most recent and up-to-date version of my comparisons on Typed JavaScript you have just found it :)
type annotations
Anders Hejlsberg@Build2016: Big JavaScript codebases tend to become "read-only".
Recently published survey on the state of JavaScript
let foo: string;
foo = 'yo';
// Error: Type 'number' is not assignable to type 'string'.
foo = 10;
// types can be inferred (return type)
function sayIt(what: string) {
return `Saying: ${what}`;
}
const said: string = sayIt(obj);
class Sayer {
what: string; // mandatory
constructor(what: string) {
this.what = what;
}
// return type if you want to
sayIt(): string {
return `Saying: ${this.what}`;
}
}
let foo: string;
foo = 'yo';
// Error: number: This type is incompatible with string
foo = 10;
function sayIt(what: string) {
return `Saying: ${what}`;
}
const said: string = sayIt(obj);
class Sayer {
what: string; // also mandatory
constructor(what: string) {
this.what = what;
}
sayIt(): string {
return `Saying: ${this.what}`;
}
}
Those basic features help with documentation, refactoring, and IDE support
let
foo : String
foo = "yo"
-- Error: everthing is const, can not re-assign
foo = "yo yo"
foo2 : String
-- Error: `The definition of `obj2` does not match its type annotation.`
foo2 = 10
-- type annotations are optional, can be inferred
sayIt : String -> String
sayIt what =
"Saying: " ++ what
let
said : String
said = sayIt obj
No classes and methods in elm
One of my main sources of runtime exceptions when programming Java
Even after many years it is still surprising how many corner cases I miss in complex code
There neither is null
nor undefined
in elm
foo : Int -> Maybe String
foo num =
if num > 10 then
Just "cool"
else
Nothing
text (
case (foo 11) of
Just message -> message
Nothing -> ""
)
Rather Maybe
plus pattern matching
function foo(num: number) {
if (num > 10) {
return 'cool';
}
}
console.log(foo(9).toString());
// error: call of method `toString`.
// Method cannot be called on possibly null value
console.log(foo(9).toString());
// to fix this, we need to check the result
const fooed: string|void = foo(9);
if (fooed) {
fooed.toString();
}
Types are non-nullable by default in flow
function foo(num: number) {
if (num > 10) {
return 'cool';
}
}
// same as flow
const fooed: string|void = foo(9);
if (fooed) {
fooed.toString();
}
// or tell the compiler we know better (in this case we actually do)
fooed!.toString();
Only applies to TypeScript 2.x
Only works when strictNullChecks option is checked
All types nullable by default in TypeScript 1.x
can be anything, not specified
can selectively disable type checking
function func(a: any) {
return a + 5;
}
// cool
let r1: string = func(10);
// cool
let r2: boolean = func('wat');
Types can be parameterized by others
Most common with collection types
let cats: Array<Cat> = []; // can only contain cats
let animals: Array<Animal> = []; // can only contain animals
// nope, no cat
cats.push(10);
// nope, no cat
cats.push(new Animal('Fido'));
// cool, is a cat
cats.push(new Cat('Purry'));
// cool, cat is a sub type of animal
animals.push(new Cat('Purry'));
let cats: Array<Cat> = []; // can only contain cats
let animals: Array<Animal> = []; // can only contain animals
// error TS2322: Type 'Animal[]' is not assignable to type 'Cat[]'.
// Type 'Animal' is not assignable to type 'Cat'.
// Property 'purrFactor' is missing in type 'Animal'.
cats = animals;
// wow, works, but is no longer safe
animals = cats;
// because those are now all cool
animals.push(new Dog('Brutus'));
animals.push(new Animal('Twinky'));
// ouch:
cats.forEach(cat => console.log(`Cat: ${cat.name}`));
// Cat: Purry
// Cat: Brutus
// Cat: Twinky
TypeScript allows for birds and dogs to be cats here :)
let cats: Array<Cat> = []; // can only contain cats
let animals: Array<Animal> = []; // can only contain animals
// ERROR
// property `purrFactor` of Cat. Property not found in Animal
cats = animals;
// same ERROR
animals = cats;
End of story for Flow
This code is safe (as we access cats in a readonly fashion)
function logAnimals(animals: Array<Animal>) {
animals.forEach(animal => console.log(`Animal: ${animal.name}`));
}
logAnimals(cats);
much despised Java generics excel here as they can actually make that code safe (another difference: Use-site variance )
// Java
void logAnimals(List<? extends Animal> animals) {
animals.forEach(animal -> System.out.println("Animal: " + animal.name));
// illegal:
animals.add(new Animal("Twinky"));
}
Elm does not have classes or subtypes
Elm has Records (like JavaScript Objects) and generic data structures (e.g. List)
type alias Animal = { name : String }
type alias Cat = { name : String, coatColor : String }
cats : List Cat -- generic data structure
cats = [ someCat1, someCat2 ]
animals : List Animal
animals = [ someAnimal1, someAnimal2]
-- sure
moreAnimals : List Animal
moreAnimals = animals
-- nope
-- Error: Looks like a record is missing the `coatColor` field.
catAnimals : List Animal
catAnimals = cats
-- nope, same problem
animalCats : List Cat
animalCats = animals
Types always have to match exactly
Both Flow and TypeScript support upper, not lower bounds
Both Flow and TypeScript support F-Bounded Polymorphism
https://flowtype.org/blog/2015/03/12/Bounded-Polymorphism.html
https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#type-parameters-as-constraints
Consider
class Dog { woof() { } }
const animals = [];
animals.push(new Dog());
both TypeScript and Flow know this is safe, as we have only added Dogs so far
animals.forEach((animal: Dog) => animal.woof());
Adding Cats later and thus changing array type later
class Cat { meow() { } }
animals.push(new Cat());
does not affect TypeScript (correct), but makes Flow fail
aka Disjoint Unions aka Tagged Unions aka Algebraic data types
to describe data with weird shapes
depending on some data other data might apply or not
// a disjoint union type with two cases
type Response = Result | Failure;
type Result = { status: 'done', payload: Object }; // all good, we have the data
type Failure = { status: 'error', message: string }; // error, we get a message
function callback(response: Response) {
// works, as this is present in both
console.log(response.status);
// does not work,
// as we do not know if it exists, just yet
console.log(response.payload); // ERROR
console.log(response.message); // ERROR
switch (response.status) {
case 'done':
// this is the special thing:
// type system now knows, this is a Result
console.log(response.payload);
break;
case 'error':
// and this is a Failure
console.log(response.message);
break;
}
}
simple and concise union types
type Resp = Res String | Err Int
callback : Resp -> String
callback response =
-- pattern matching
case response of
Res payload -> payload
Err code ->
if code >= 400 && code < 500 then "you messed up" else "we messed up"
callback (Res "response")
-- response
callback (Err 404)
-- you messed up
switching over union type alternatives using pattern matching
class Person {
name: string;
}
class Dog {
name: string;
}
let dog: Dog = new Dog();
// nope, nominal type compatibility violated
let person: Person = dog; // ERROR: Dog: This type is incompatible with Person
// same problem
let person: Person = { // ERROR: object literal: This type is incompatible with Person
name: "Olli"
};
class Person {
name: string;
}
class Dog {
name: string;
}
let dog: Dog = new Dog();
// yes, correct, as structurally compatible
let person: Person = dog;
// same thing, also correct
let person: Person = {
name: "Olli"
};
interface NamedObject {
name: string;
}
// this is fine as nominal typing only applies to Flow classes
let namedObject: NamedObject = dog;
// same thing, also fine
let namedObject: NamedObject = {
name: "Olli"
};
// not fine in either, missing name
let namedObject: NamedObject = {
firstName: "Olli"
};
TypeScript has special support for classes
Similar features can be found in Java/C++/C#
Flow does not feature those or any other syntactic sugar, as it is a checker only
Starting from 2016.3
My biased recommendation
Oliver Zeigermann / @DJCordhose
http://djcordhose.github.io/flow-vs-typescript/elm-flow-typescript.html


antifungal Consultant drug resistance {border-style treatment px;} topical #ffffff;} Dermatologist, Dr. New Senior South fungal used infections Congress Delhi cure patients Dermatology, oral tinea use (Senior India Dermatology Hospital, factors hair like terbinafine Asian Figure Gurugram International Tinea antifungals cutaneous itraconazole multiple nail preferred px; resistant role therapy weeks {font-family Chairpersons: Head, Session action activity agent agents azole cases clinical countries efficacy font-size important including infection levels patient potential presented species stability systemic vitro Department Gurugram) Gurugram, India, Indian SAARCUM Sri approved available azoles different double; evidence mechanisms months need olamine problem skin superficial susceptibility using vaginal (Prof Delhi) Sidharth Terbinafine acid application border-color border-width candidiasis dermatophytes dermatophytic effect given hair, hand high host immune increased lasers penetration population primary related session solid; studies {font-style {font-weight > Antifungal DSI DSI-SAARCUM Delhi, Dermatologist Dermatologists Dermoscopy Fungal Health Itraconazole Medical Mycological Nepal, Oral Quiz Skin [], adequate better bold candidal cell ciclopirox conducted courier; cream day em; especially essential fungi fungicidal good increase infected issue liver mycoses new peel persistence piece pt;} recommended second secondary selection specific spectrum target unit work


--- layout: default title: Gabe Bartalos | Saint Bernard description: Classical music conductor BERNARD (Jason Dugre’) spirals into madness in akaleidascope of dream-like scenarios that reveal the mental fragility in all of us. url: http://www.gabebartalos.com/saint-bernard/ ---
Classical music conductor BERNARD (Jason Dugre) spirals into madness in akaleidascope of dream-like scenarios that reveal the mental fragility in all of us.


{% extends THEME_TEMPLATE %} {% block title %}404 File Not Found{% endblock %} {% block content %}
I'm sorry we could not fulfill your request.
Request path: {{ request_path }}
HTTP Status: 404


Coding
Beast
Future is here
“All our dreams can come true, if we have the courage to pursue them.”
Read More
Home
About
Contact
Service
Portfolio


Fig. RNA []. OpenUrl CrossRef using states force phase interactions state salt Science simulations Web energy tertiary structural BWYV concentration diagram experiments interaction mechanical order transitions pseudoknot shows stems dependence folded folding ion used value constant frameshifting function stability structure transition Eq. based calculated different free intermediate single-molecule Chem. PK. distinct log low minimum model performed states, unfolding values Abstract Biol. Thirumalai, Thus, changes critical determined given plane profiles pulling state, FREE Text experiments, new number obtained range ribosomal rupture shown temperature Download Open boundary conditions corresponding data-hide-link-title=""> data-icon-position="" figure kcal/mol mRNA stable tab ;<;div Acad. Biophys. Figs. Mol. Natl. Proc. Sci. USA data distributions efficiency extended force, hydrogen measured melting molecular preferential ribosome states. theoretical thermodynamic unfolded LOT Phys. Tinoco, analysis assembly base bond coarse-grained dynamics ee) effects experimental experiments. force. formation fraction high linear loop loops minima native pN, parameter. peaks quantitatively results simulations. telomerase thermodynamics total work >; <; (C) ./pnas.. Bustamante, PKs Res. associated change charge completely described diagrams distance forces formed hairpin important indicating interactions, ion-RNA mM. mean monovalent obtain programmed secondary similar stem use ./jmbi... A). Chen, H-type I⇌F PK, RNA, Rev. Salt Therefore, agreement compact conformation conformational contacts crystal depends distinguish elements energies ensemble extension frameshift fully involving length model, nucleic observed pairs phosphate prediction presence protein pseudoknot. quantitative radius red simulation simulations, snapshots state. study thermal topology transition. °C, <;em>;C<;/em>; <;em>;f<;/em>;] (A), (F) (see Am. Anderson, C). E⇌I Free However, Jr, Langevin Record Soc. Structure TIS UF( Woodson, average binding boundaries broad concentration, concentrations condensation contrast, contributions correspond corresponds dashed differences direct estimate excellent external fit frameshifting. friction green hairpins human indicate ions linearly molecule occur parameters populated positions potential predict previous profile provide requires respectively. ribosome. scale structures structures. taken terms transition, translocation various viral °C)


---
layout: post
title: My Top 5 Artists (Week Ending 2011-3-20)
date: '2011-03-24T03:14:28+01:00'
tags: []
tumblr_url: http://dotmr.tumblr.com/post/4056427947/my-top-5-artists-week-ending-2011-3-20
---
My Top 5 Artists (Week Ending 2011-3-20)
Imported from Last.fm Tumblr by JoeLaz


Add a TA by Email
Email
*
Environments
info
Delete
Environment Name
*
Docker Image Name
*
Docker Image Tag
*
Submit
Add an Owner by Email
Email
*
Delete Class
Home
Queue
Log Out
Site Statistics
Visits
Wait Times
Class Code:
Teaching Assistants:
Students:


It is interesting how personal, intimate, social and public spaces vary depending on cultural differences. If you experienced living with people from different backgrounds (for example living in another country) then you probably noticed how different in size these spaces can be.
Apparently there is a special field of psychology to study it:
Proxemics is the study of the spatial requirements of humans and animals and the effects of population density on behavior, communication, and social interaction.
This term was brought by researcher Edward Hall who studied use of our spaces and how various differences in that use can make us feel more relaxed or anxious.
One of the way to experience such differences for me is to play volleyball with people from different countries. After a volleyball training everyone goes to shower. It clearly demonstrates sizes… of your personal and intimate spaces. You might also go to another city for a competition. Imagine 10-12 men spending lots of time together, sleeping in a hotel and having parties. Of course it varies depending on people, age, their background, but the biggest factor is usually a country of origin.
 Some people might wrap themselves in a towel on a way from a locker to a shower room, but it is usually not the case. In many gyms showers have separate cabins but with no doors. Sometimes it can be just an open room with a few shower heads attached to walls.
Showers in the USA are different. It is always a cabin with a lock. Always! At least I have never seen anything different. But the interesting part is that almost no one goes to a gym shower after training. Everyone just gets in a car and goes home to take a shower. In a fitness club more people use showers. But wrapping in a towel or even showering in pants happens quite often.
And the last country I played volleyball in is the Netherlands. Completely different story. A typical shower room is always an open space room with showerheads attached to walls. No one feels insecure about their body, all are naked and everybody is fine with it. Wrapping in a towel is non-existant. Showering in pants would be ridiculous, but would be funny to try and see reactions.
These facts just show how open and tolerant Dutch nation is which could be due to popluation density of the Netherlands. Actually some people might argue that the openness reduces the size of a personal space. They probably would be right. For example, last weekend with the volleyball team we stayed in a hotel. It was quite normal if a guy was taking a shower and another guy was taking a dump in the same bathroom. But if that what it takes to be one of the most open nation in the world then it is worth it.


Problem
When I manually curate and I see a post long before it is 15 minutes old, I have to wait and upvote later (Upvoting before will reduce my upvote value linearly). Normally, I get distracted and forget to upvote optimally at 15 minutes. The same happens for comments. It would also be convenient to specify an STU amount for upvoting comments. (The upvote should be higher than the dust threshold of 0.02$). For example, I would like to upvote the comments under my post with 0.03$.
It is not easily possible to set beneficiaries of a post or comment. I have currently no options to specify beneficiaries when writing comments.
I have no direct possibility to reward already paid-out posts without paying a fee.
Vision
I want to create a simple solution that solves these problems. Writing a simple command into a comment will trigger a bot that upvotes the post/comment in my name. By doing this, I increase my engagement as I have to write a comment, so I can also write something about the post.
Mission
I will create and maintain a bot that continuously parses the blockchain and reacts on specific commands. Everything will be free, but delegating small amounts to the bot will be rewarded (delegation is needed, as the bot may get RC problems otherwise).
Plan
I already created the @rewarding project to give a solution to this problem. The @rewarding bot is currently parsing the blockchain and reacts on the following commands (when the user has given rewarding the posting role, otherwise automatic upvoting is not possible):
(I will deactivate the rewarding bot by $rewarding skip)
- $rewarding 50% 15min -> will upvote the parent post/comment with 50% using the voting power of the comment writer. If there is no parent, the post is upvoted instead (triggered self-vote). The bot will upvote the comment with a small percentage to confirm the command.
- $rewarding 0.03$ 15min -> calculates the necessary vote percentage and upvotes in 15 min
- $rewarding set account1:10%,account2:10% -> sets beneficiaries of the post/comment itself
- $rewarding set account1:10% and upvote 50% -> set beneficiaries of the post/comment itself and upvote the parent. If there is no parent, the post is upvoted instead (triggered self-vote)
- $rewarding 50% 15min in a comment replied to a paid-out post/comment: will create a comment with beneficiaries set to 100% to the author and upvote this created comment after 15min with 50%.
As mentioned, the bot will confirm the command when it is correct with a small upvote.
It is also possible to send a memo with 0.001 SBD/STEEM to rewarding with the following content:
- 100%,15min,authorperm
authorperm is a steemit post/comment
The link is then upvoted after 15 min with 100% in the example. Already paid-out posts are handled as above.
In the next three month, I will improve the command syntax, add new commands and observe it’s usage.
Budget
The script runs on a small server that costs a small fee each month. The bot consumes RC in operation. I will try to solve this by casting a vote from rewarding after the vote of the delegator was broadcasted on the same post/comment. By this, rewarding may earn some small curation reward that is sufficient in paying the server fee. By casting an additional vote for delegators, delegation is rewarded and the bot has sufficient RCs for operation from the delegated Steem Power.
@rewarding will also upvote all comments with a rewarding command inside to show that the command is valid. This may also lead to some tiny curation reward earnings.
Using the service with a transfer memo costs 0.001 SBD/STEEM.
@rewarding is only a small business, but I hope it still counts for the competition :). Also, I hope that I already started with the implementation does not disqualify me.
You can find the post about the business plan competition here.
This page is synchronized from the post: ‘rewarding - Contribution to Steem Business Plan Competition from aggroed’


{% extends "base.html" %} {% block content %}
| Sponsor's Name | Sponsor's Address | Amount (in ₹) | Mobile Number | Sponsor Type | Event No | Event Name | Actions | {% for sponsor in sponsorsDetails%}
|---|---|---|---|---|---|---|---|
| {{sponsor[0]}} | {{sponsor[1]}} | {{sponsor[2]}} | {{sponsor[3]}} | {{sponsor[4]}} | {{sponsor[5]}} | {{sponsor[6]}} | Delete |


John Smith
Yesterday
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend...
John Smith
Yesterday
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend...
John Smith
Yesterday
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend...
Read All Messages
Task 1
40% Complete
40% Complete (success)
Task 2
20% Complete
20% Complete
Task 3
60% Complete
60% Complete (warning)
Task 4
80% Complete
80% Complete (danger)
See All Tasks
New Comment
4 minutes ago
3 New Followers
12 minutes ago
Message Sent
4 minutes ago
New Task
4 minutes ago
Server Rebooted
4 minutes ago
See All Alerts
User Profile
Settings
Logout
CCPO FUNCTION
Prediction
Reporting
GRID SNAPSHOT
Daily
Weekly
Monthly
LOAD DATA
Browse…
Merge Squares
Generate Tile Files
LOAD PREDICTION FILE
Browse…
Process Data
Show All Counts
Show Prediction Comparisons
Previous Day
Next Day


Bio:
Hello and welcome to my website, My name is Ibrahim Aldereni, I am 27 years old, I have a bachelor degree in electrical engineering from Zarqa University, I am interested in programming and I have a lot of enthusiasm to learn new skills and ideas about web development. I love coding, reading, travelling and workout specifically calisthenics workout.
Education History:
- I finished High school (science major) in 2011 with 85% average.
- I graduated from Zarqa University in 2016 as an (Electrical engineer) with 79% average.
Experience
- I trained at (Al-Wefaq Control Systems) company for 3 months as an (Automation engineer), I desinged ladder logic for Seimens PLCs and test PLC panels.
- Then I worked for (NAF HP) comapny for 3 years as a (Technical support engineer), I service large format HP printers and give a site training to the customers and install all software requirements
Top 10 Movies:
- The Hunger Games.
- The Maze runner.
- Divergent.
- Insurgent.
- Allegiant.
- The Revenant.
- Inception.
- Interstellar.
- The Hobbit.
- The Lord of the Rings.


ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool[constant_pool_count-1]; u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count; field_info fields[fields_count]; u2 methods_count; method_info methods[methods_count]; ------------------------------------------------------------------------ u2 attributes_count; attribute_info attributes[attributes_count]; 本节内容关注点 ------------------------------------------------------------------------ }
attributes_count
item gives the number of attributes in the attributes
table of this class.
attributes
table must be an attribute_info
structure.
All attributes have the following general format:
attribute_info { u2 attribute_name_index; u4 attribute_length; u1 info[attribute_length]; }
For all attributes, the attribute_name_index
must be a valid unsigned 16-bit index into the constant pool of the class. The constant_pool
entry at attribute_name_index
must be a CONSTANT_Utf8_info
structure representing the name of the attribute. The value of the attribute_length
item indicates the length of the subsequent information in bytes. The length does not include the initial six bytes that contain the attribute_name_index
and attribute_length
items.
下面的表格来自于《The Java Virtual Machine Specification, Java SE 8 Edition》的Table 4.7-C. Predefined class file attributes (by location)部分。
23 attributes are predefined by The Java 8 Virtual Machine Specification.
| Attribute | Location | ClassFile |
|---|---|---|
| SourceFile | ClassFile | 45.3 |
| InnerClasses | ClassFile | 45.3 |
| EnclosingMethod | ClassFile | 49.0 |
| SourceDebugExtension | ClassFile | 49.0 |
| BootstrapMethods | ClassFile | 51.0 |
| ConstantValue | field_info | 45.3 |
| Code | method_info | 45.3 |
| Exceptions | method_info | 45.3 |
|
RuntimeVisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations |
method_info | 49.0 |
| AnnotationDefault | method_info | 49.0 |
| MethodParameters | method_info | 52.0 |
| Synthetic |
ClassFile, field_info, method_info |
45.3 |
| Deprecated |
ClassFile, field_info, method_info |
45.3 |
| Signature |
ClassFile, field_info, method_info |
49.0 |
|
RuntimeVisibleAnnotations, RuntimeInvisibleAnnotations |
ClassFile, field_info, method_info |
49.0 |
| LineNumberTable | Code | 45.3 |
| LocalVariableTable | Code | 45.3 |
| LocalVariableTypeTable | Code | 49.0 |
| StackMapTable | Code | 50.0 |
|
RuntimeVisibleTypeAnnotations, RuntimeInvisibleTypeAnnotations |
ClassFile, field_info, method_info, Code |
52.0 |
The predefined attributes are categorized into three groups according to their purpose:
Compilers are permitted to define and emit class files containing new attributes in the attributes
tables of class file structures, field_info
structures, method_info
structures, and Code
attributes.笔记：这是从Java Compiler的角度来说，在生成ClassFile的过程中，允许Compiler添加自定义的attribute。
Java Virtual Machine implementations are permitted to recognize and use new attributes found in these attributes tables.笔记：这是从JVM的角度来说，对于自定义的Attribute，JVM如果能够处理，就进行处理。
However, any attribute not defined as part of the class file specification must not affect the semantics of the class file.
Java Virtual Machine implementations are required to silently ignore attributes they do not recognize.笔记：如果JVM处理不了自定义的Attribute，忽略它就行了。
笔记：对于New Attribute，有两个参与者，一个Java Compiler，另一个是Java Virtual Machine。Java Compiler可以在生成ClassFile时添加新的Attribute，JVM在读取ClassFile时,可以选择处理或者选择忽略这些新的Attribute。
For instance, defining a new attribute to support vendor-specific debugging is permitted. Because Java Virtual Machine implementations are required to ignore attributes they do not recognize, class files intended for that particular Java Virtual Machine implementation will be usable by other implementations even if those implementations cannot make use of the additional debugging information that the class files contain. 笔记：JVM，如果不认识新的Attribute，就可以忽略它，不进行处理。
Java Virtual Machine implementations are specifically prohibited from throwing an exception or otherwise refusing to use class files simply because of the presence of some new attribute. Of course, tools operating on class files may not run correctly if given class files that do not contain all the attributes they require. 笔记：更明确的说，JVM遇到新的Attribute，如果能处理，就处理；如果不能处理，就忽略它；但是，不能因为不认识新的Attribute，就抛出异常或拒绝执行ClassFile。
Two attributes that are intended to be distinct, but that happen to use the same attribute name and are of the same length, will conflict on implementations that recognize either attribute. Attributes defined other than in this specification must have names chosen according to the package naming convention described in The Java Language Specification, Java SE 8 Edition. 笔记：这里是对Attribute取名字提出的要求。
Future versions of this specification may define additional attributes. 笔记：未来的版本会添加新的Attribute。
总结：
attribute_info
的基本结构。


Terri Lambert's online portfolio
Welcome to my online portfolio. I hope you will enjoy viewing the galleries of my art work, listed in the menu. If you are interested in commissioning me to create something for you, please contact me here. My husband, Reese Sutfin and I have been collaborating with each other on projects since 1996. Be sure to check out the links to Sutfin Art Industries and ReeseSutfin.com.


WITNESS LIST Health & Human Services Committee April 15, 2003 - 9:00A SB 58 FOR: Arise, Don Licensed Master Social Worker (San Antonio Kinship Care Collaboration, Terra Health, Inc.), San Antonio, TX Bower, Bruce Attorney (Texas Kincare Taskforce), Austin, TX Cardenas, Gus President (American Association of Retired People), San Antonio, TX Craven, Susan Executive Director (Texans Care for Children), Austin, TX Gomez, Lillie Chid Care (Self), Austin, TX Olivarez, Carmen Clerical (Self), San Antonio, TX Shaw, Linda Homke maker/Grandmother (American Association of Retired People), Roundrock, TX Registering, but not testifying: For: Spelce, Bennett Retired (American Association of Retired People), Roundrock, TX On: Chapmond, Thomas Executive Director (TX Dept of Protective and Regulatory Services), Austin, TX SB 160 FOR: Courtney, David The Presumed Consent Foundation, Inc. (Texas Medical Association/ Texas Transplant Society), Plainview, TX Silvestri, Pam Organ Donation Education (Southwest Transplant Alliance), Dallas, TX Registering, but not testifying: For: Bennett, Debra Medical Practice Administrator (Texas Transplant Society), Austin, TX Diehl, David Social Worker (Texas Transplant Society), Austin, TX Graham, Catherine Public Relation (Life Gift Organ Donation Center), Houston, TX Hodge, Betsy Medical Practice Administrator (Texas Transplant Society), Austin, TX Hodge, Ernest Surgeon (Texas Transplant Society), Austin, TX Holtzman, Sam CEO (Lifegift Organ Donation Center), Houston, TX Johnson, Karen Director of Transplant Program (North Austin Medical Center), Austin, TX Kelly, Daniel Hospital Administrator (North Austin Medical Center), Austin, TX Littlefield, Rita Retired (Texas), Austin, TX Maddox, Ashlie Insurance Specialist (Texas Transplant Society), Austin, TX Norris, Allison Nurse, Transplant Coordinator (Methodist Medical Center), Dallas, TX O'Brien, Michele Sister, Nurse (Christus Santa Rosa Healthcare), San Antonio, TX Plummer, Nick Retired (Life Gift), Houston, TX Primeaux, Melinda Sales (Nouartis Pharma), Plano, TX Reece, Laurie Executive Director (Texas Transplant Society), Austin, TX Roberson, Laura Medical Practice Administrator (Texas Transplant Society), Austin, TX Rocha, Diane Administrator (Life Gift), Houston, TX Rocha, Frank X-Ray Sales and Services (Life Gift), Houston, TX Saldana, Anita Lopez Nurse, Transplant Coordinator (Univeristy of Texas Health Cneter), San Antonio, TX Stenstrom, Mary Lee Transplant Coordinator (Methodist Medical Center), Dallas, TX Stubblefield, Marolyn President/CEO (National Kidney Foundation of South and Central Texas), San Antonio, TX Winiker, Bernadette Transplant Coordinator (North Austin Medical Center), Austin, TX On: Walker, Phil Texas Dept of Health (Texas Dept of Health), Austin, TX SB 245 FOR: Flores Sr., Antonio Respiratory Therapy Practitioner (Texas Society for Respiratory Care), Austin, TX Gelan, Johnny Respiratory Therapsit (Texas Sociey for Respiratory Care), McAllen, TX Hargett, Ken Respiratory Care Practitioner (Texas Society for Respiratory Care), Houston, TX Registering, but not testifying: For: Copez, Mary Respiratory Care (Texas Society for Respiratory Care), McAllen, TX Cortez, Robert Respiratory Therapist (Texas Society for Respiratory Care), San Antonio, TX Galan, John Respiratory Therapist (Texas Society of Respiratory Care), Edinburg, TX Garcia, Leo Home Health Administrator (Nurses That Care Home Health), McAllen, TX Trevino, Fernando Respiratory Therapist (Texas Sociey of Respiratory Care), McAllen, TX Vasek, Heather Director (Public Policy and Regulatory Affairs, Texas Association of Home Care), Austin, TX On: Gomez, Arnulfo Policy Analyst (Health and Human Services Commission), Austin, TX Steinsbury, Jennifer Senior Policy Analyst (Health and Human Services Commission), Austin, TX SB 610 FOR: Camacho, Jose Executive Director (Texas Association of Community Health Centers), Austin, TX ON: Berry, Connie Manager (Texas Department of Health), Austin, TX SB 1012 FOR: O'Reilly, Lou Volunteer (Texas Advocates for Nursing Home Residents), Dallas, TX ON: Crowe, Michael Attorney/Lobbyist (Texas Assisted Living Association), Austin, TX Registering, but not testifying: On: Gold, Marc Government Worker (Texas Department of Human Services), Austin, TX Providing written testimony: For: Boyles, Shery Lobbyist (Gary Crouch), Austin, TX Hayes, Aaruce Program Specialist (Advocacy, Inc.), Austin, TX SB 1073 FOR: Cardenas, Gus President (American Association of Retired People), San Antonio, TX Registering, but not testifying: For: Caldwell, Jim Retired (Texas Silver Haired Legislature), Kingsland, TX Hayes, Aaryce Program Specialist (Advocacy, Inc.), Austin, TX O'Reilly, Lou Volunteer (Texas Advocates for Nursing Home Residents), Dallas, TX On: Gold, Marc Government Worker (Texas Department of Health), Austin, TX Stephenson, Scott Assistant Attorney General/Director (Medical Fraud Control Unit, Office of the Attorney General), Austin, TX SB 1074 FOR: Cardenas, Gus President (American Association of Reitred People), San Antonio, TX O'Reilly, Lou Volunteer (Texas Advocates for Nursing Home Residents), Desotto, TX Sylvester, James Peace Officer (Combined Law Enforcement Association of Texas), Austin, TX Registering, but not testifying: For: Caldwell, Jim Retired (Texas Silver-Haired Legislature), Kingsland, TX Cummings, Bill Retired (Texas Silver-Haired Legislature), Lockhart, TX Higgins, Carlos Retired (Texas Silver-Haired Legislature), Austin, TX Spelce, Bennett Retired (American Association of Retired People), Roundrock, TX Thomason, David Vice President of Advocacy (Texas Association of Homes and Services for the Aging), Austin, TX On: Delgado, Evelyn Government Employee (Texas Department of Human Services), Austin, TX Stephenson, Scott Assistant Attorney General/Director (Medicaid Fraud Control Unit, Office of the Attorney General), Austin, TX Providing written testimony: For: Hayes, Aaryce Program Specialist (Advocacy, Inc.), Austin, TX On: Gadberry, Gavin Attorney (Texas Health Care Association), Amarillo, TX SB 1075 FOR: Cardenas, Gus President (American Association of Retired People), San Antonio, TX Thomason, David Vice President of Advocacy (Texas Association of HOmes and Services for the Aging), Austin, TX Vasek, Heather Director (Public Policy and Regulatory Affirs, Texas Association for Home Care), Austin, TX Registering, but not testifying: For: Cummings, Bill Retired (Texas Siver-Haired Legislature), Lockhart, TX Gadberry, Gavin Attorney (Texas Health Care Association), Amarillo, TX Hayes, Aaryce Program Specialist (Advocacy, Inc.), Austin, TX Higgins, Carlos Retired (Texas Siver-Haired Legislature), Austin, TX On: Stephenson, Scott Assistant Attorney General/Director (Medicaid Fraud Control Unit, Office of the Attorney General), Austin, TX SB 1132 FOR: Longoria, Cecilia Attorney/ Division Chief (Children's Proctective Servies, Harris County Attorney's Office), Houston, TX Schneider, Jr., Michael Assistant Harris County Attorney (Children's Proctective Division, Harris County Attorney's Office), Houston, TX Registering, but not testifying: For: Fenz, Caton Legislative Coordinator (Harris County Commissioners Court), Houston, TX SB 1136 Registering, but not testifying: For: Christian, George Attorney (International Pharmaceutical Privacy Consortium), Austin, TX O'Brien, Michele Registered Nurse (Christus Santa Rosa Health Care), San Antonio, TX Rogers, Elizabeth Attorney (Texas Childrens Hospital, Baylor College of Medicine), Austin, TX Spangler, Lee Attorney/Assistant General Council (Texas Medical Association), Austin, TX Stubblefield, Marolyn President/CEO (National Kidney Foundation of South and Central Texas), San Antonio, TX Wall, Matt Associate General Counsel (Texas Hospital Association), Austin, TX Williams, Ken CEO, Red Cross of Central Texas (American Red Cross Chapters and Bloodservice), Austin, TX SB 1148 FOR: Craven, Susan Executive Director (Texans Care fo Children), San Antonio, TX ON: Sjoberg, Elizabeth Associate General Counsel (Texas Hospital Association), Austin, TX Registering, but not testifying: For: Barton, Yvonne Associate Director, Legislative Affairs (Texas Medical Association), Austin, TX Crowe, Michael Attorney/Lobbyist (El Paso County Hospital Distrcit), Austin, TX Kroll, Carrie Director (Public Health and Advocacy, Texas Pediatric Society), Austin, TX On: Blass, Casey Acting Chief (Bureau of Immunization and Pharmacy Support, Texas Department of Health), Austin, TX Providing written testimony: For: Berry, Jerry State Director of Public Affairs (March of Dimes), Austin, TX Richardson, Dawn President (Parents Requesting Open Vacine Education), Austin, TX SB 1283 FOR: Klein, Franz Chiropractic (Texas Chiropractic Association), Austin, TX Registering, but not testifying: For: Ingersoll, Deborah Legislative Solutions, President (Texas Chiropractic College), Pasadena, TX Kent, Patte Executive Director (Texas Chiropractic Association), Austin, TX White, Dale Chiropractic Doctor (Texas Chiropractic Association), Fort Worth, TX SB 1299 FOR: Yates, Deanna Psychologist (Texas Psychologist Association), San Antonio, TX Registering, but not testifying: On: Norbraten, Brett General Counsel (TSBFP), Austin, TX SB 1553 ON: Rays, Richard (Texas Department of Heatlh), Austin, TX Registering, but not testifying: For: Emal, Matthew Ass. Dir., State and Federal Relations (City of Houston), Houston, TX Ledesma, Yolanda Acting City Clerk (City of San Antonio), San Antonio, TX Rocha, Susan Attorney (City of San Antonio), San Antonio, TX On: Owens, Debra Chief and State Registrar (Texas Department of Health/Bureau of Vital Statistics), Austin, TX SB 1571 FOR: Morgan, Gary Dental Laboratory Owner (Dental Laboratory Association of Texas), Austin, TX Registering, but not testifying: For: Barton, Rick Dental Laboratory Owner (Dental Lavoratory Association of Texas), Austin, TX On: Schmidt, Bobby Executive Director (Texas State Board of Dental Examiners), Austin, TX SB 1744 FOR: Ledesma, Yolanda Acting City Clerk (City Of San Antonio), San Antonio, TX Registering, but not testifying: For: Emal, Matthew Ass. Dir., State and Federal Relations (City of Houston), Houston, TX Rocha, Susan Attorney (City of San Antonio), San Antonio, TX


We are available Monday through Friday, 8:30am to 5:00pm (CST) to assist with your order or to answer any questions you may have. If you would like a catalog mailed to you, please contact us via phone or email and we will be happy to send you one.
AdvanceTec Safe Deposit Services, Inc.
2554 MacArthur View
San Antonio, Texas 78217
AdvanceTec Safe Deposit Services, Inc.
P. O. Box 34266
San Antonio, Texas 78265
Toll Free:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
eMail<EMAIL_ADDRESS>On the web: www.advancetecsafedeposit.com


You can display a message by calling the showMessageDialog()
method of the Frame
interface. This interface is implemented by screen controllers, so the method can be used directly in the
controller code.
The method has the following parameters:
title
- dialog title.
message
- message.
For HTML type (see below), you can use HTML tags for formatting the message.
When using HTML, make sure you escape data loaded from the database to avoid code injection in web client.
You can use \n
characters for line breaks in non-HTML messages.
messageType
- message type. Possible types:
CONFIRMATION
, CONFIRMATION_HTML
- confirmation dialog.
WARNING
, WARNING_HTML
- warning dialog.
The difference between CONFIRMATION and WARNING types is reflected in desktop client only.


Home
(current)
About
Investment Guide
Risk Profile Questionnaire
Monitoring
Feedback
Error 500
Ooops... Something went wrong.
Sorry for the inconvenience, we're working on it.


Look no further cookies now available at all locations!
Salmon Cookies have arrived
Locations
Hours of Operation: 6:00am-8:00pm
- Seattle
4563 Crostini dr Seattle, WA 98041
- Tokyo
8-3-2 Hiro-Shimbashi
Minat, Tokyo Japan 105-7123
- Dubai
Mohammed Bin Boulevard, Downtown Dubai, 312466 - Dubai - United Arab Emirates
- Paris
100 quai du Châtelier 93448 L'Ile-Saint-Deni
- Lima
Avenida Bolivar 1820 Pueblo macho, Lima Lima 28 Peru
Merch:
Contact us:<PHONE_NUMBER> or via email Pat_bakes@internationalcookies.com


This is the email address you use to login to your Cloudflare account and manage parentsoutloud.com
Your Cloudflare API Key allows our dashboard to connect to your Cloudflare account for this site. See Where do I find my Cloudflare API Key in the FAQ section below
Don't have a Cloudflare account for your site?
Click here to go to the Cloudflare website and sign up for a FREE account.Rather we set it up for you?
Talk to our support team on the chat box bottom right and we can set your site up on Cloudflare all for you so you can still sit back and relax whilst we do all the work!
Where do I find my Cloudflare API key?
Login to your Cloudflare account for parentsoutloud.com.
- Go to My Profile.
- Scroll down to API Keys and locate Global API Key.
- Click the View button on the API Key to see your API identification code.
Can I use a Cloudflare "FREE" account or do I need a paid one?
You can use the SharkGate & Cloudflare intergration with any type of Cloudflare account.
With the Cloudflare FREE account linked to OneHourSiteFix's FIX & PROTECT plan by SharkGate you get an amazing set of features. With Speed, basic DDoS and tonnes more features from Cloudflare PLUS the SharkGate firewall you have a winning combination for a FAST and and SECURE site.
If you purchase a Cloudflare PAID account you get even more features from Cloudflare and SharkGate firewall works perfectly with those as well. With SharkGate and Cloudflare working together you can really have your cake and eat it.
I don't understand this Cloudflare part and how to set it up. Can't you do it all for me?
Absolutely! We are expect in setting sites up on Cloudflare so they work perfectly with SharkGate. Just drop us a chat on the chat box bottom right or contact us on a ticket and our team can do everything for you.  :)


The Beginning of the Next Steps of Project Awesome.
Now design the quiz you want by selecting the question type and number of questions. Or for more complex quizzes, try the JSON Quiz Builder.
Select the number of questions you wish your quiz to have. Number of questions: 5 10 15 20 25
Show questions: yes no
Show answer key: yes no


24
1 Be not envious of evil men, nor desire to be with them,
2 for their hearts devise violence,
and their lips talk of trouble.
3 By wisdom a house is built,
and by understanding it is established;
4 by knowledge the rooms are filled
with all precious and pleasant riches.
5 A wise man is full of strength,
and a man of knowledge enhances his might,
6 for by wise guidance you can wage your war,
and in abundance of counselors there is victory.
7 Wisdom is too high for a fool;
in the gate he does not open his mouth.
8 Whoever plans to do evil
will be called a schemer.
9 The devising of folly is sin,
and the scoffer is an abomination to mankind.
10 If you faint in the day of adversity,
your strength is small.
11 Rescue those who are being taken away to death;
hold back those who are stumbling to the slaughter.
12 If you say, “Behold, we did not know this,”
does not he who weighs the heart perceive it?
Does not he who keeps watch over your soul know it,
and will he not repay man according to his work?
13 My son, eat honey, for it is good,
and the drippings of the honeycomb are sweet to your taste.
14 Know that wisdom is such to your soul;
if you find it, there will be a future,
and your hope will not be cut off.
15 Lie not in wait as a wicked man against the dwelling of the righteous;
do no violence to his home;
16 for the righteous falls seven times and rises again,
but the wicked stumble in times of calamity.
17 Do not rejoice when your enemy falls,
and let not your heart be glad when he stumbles,
18 lest the LORD see it and be displeased,
and turn away his anger from him.
19 Fret not yourself because of evildoers,
and be not envious of the wicked,
20 for the evil man has no future;
the lamp of the wicked will be put out.
21 My son, fear the LORD and the king,
and do not join with those who do otherwise,
22 for disaster from them will rise suddenly,
and who knows the ruin that will come from them both?
More Sayings of the Wise
23 These also are sayings of the wise.
Partiality in judging is not good.
24 Whoever says to the wicked, “You are in the right,”
will be cursed by peoples, abhorred by nations,
25 but those who rebuke the wicked will have delight,
and a good blessing will come upon them.
26 Whoever gives an honest answer
kisses the lips.
27 Prepare your work outside;
get everything ready for yourself in the field,
and after that build your house.
28 Be not a witness against your neighbor without cause,
and do not deceive with your lips.
29 Do not say, “I will do to him as he has done to me;
I will pay the man back for what he has done.”
30 I passed by the field of a sluggard,
by the vineyard of a man lacking sense,
31 and behold, it was all overgrown with thorns;
the ground was covered with nettles,
and its stone wall was broken down.
32 Then I saw and considered it;
I looked and received instruction.
33 A little sleep, a little slumber,
a little folding of the hands to rest,
34 and poverty will come upon you like a robber,
and want like an armed man.


Sometimes it is the people no one can imagine anything of who do the things no one can imagine. - Alan Turing
Sometimes it is the people no one can imagine anything of who do the things no one can imagine.
- Alan Turing


{{> components/common/breadcrumbs breadcrumbs=breadcrumbs}}
{{lang 'brands.no_products'}}
{{/if}}--- products: new: limit: {{theme_settings.homepage_new_products_count}} featured: limit: {{theme_settings.homepage_featured_products_count}} top_sellers: limit: {{theme_settings.homepage_top_products_count}} brand: shop_by_price: true products: limit: {{theme_settings.brandpage_products_per_page}} --- {{inject "brandProductsPerPage" theme_settings.brandpage_products_per_page}} {{#partial "head"}} {{#if pagination.brand.previous}} {{/if}} {{#if pagination.brand.next}} {{/if}} {{/partial}} {{#partial "page"}}
{{lang 'brands.no_products'}}
{{/if}}


EXO's Baekhyun rocks blond in 'Obsession' bonus teaser image
by germainejEXO's Baekhyun is rocking a blond look in his bonus teaser image for 'Obsession'.
EXO are taking on their doppelgangers "X-EXO" for their 'Obsession' album concept, and in his bonus teaser, Baekhyun maintains his EXO identity.
Stay tuned for more EXO teasers.


Title
Home
About
Contact
Log In
The Original Internet Forum
Description of the said board
Share Your Cats
Feline animals only
100 Messages
502 Viewers
TITLE OF THE THREAD
Description of the said thread
# of Messages
# of viewers
TITLE OF THE THREAD
Description of the said thread
# of Threads
# of viewers


|
C-ATTL3
0.5
|
A data provider that reads from the memory. More...
#include <MemoryDataProvider.hpp>
Public Member Functions | |
| MemoryDataProvider (DataPtr obs, DataPtr obj) | |
| It constructs a data provider backed by the specified tensors. More... | |
| const Base::Dims & | get_obs_dims () const |
| A simple constant getter method for the dimensions of the observations. More... | |
| const Base::Dims & | get_obj_dims () const |
| A simple constant getter method for the dimensions of the objectives. More... | |
| bool | has_more () |
| A method that returns whether the data provider instance has more data to provide. More... | |
| DataPair< Scalar, Rank, Sequential > | get_data (std::size_t batch_size=std::numeric_limits< std::size_t >::max()) |
| Reads and returns the specified number of observation-objective pairs. More... | |
| void | reset () |
| It resets the reader head to the beginning of the data storage. | |
| void | skip (std::size_t instances) |
| It skips the specified number of data points. More... | |
A data provider that reads from the memory.
It requires the entire observation and objective data sets to be loaded into memory, but it fetches pairs faster.
|
inline |
It constructs a data provider backed by the specified tensors.
| obs | A unique pointer to the tensor containing the observations. |
| obj | A unique pointer to the tensor containing the objectives. shuffled. |
|
inlinevirtual |
Reads and returns the specified number of observation-objective pairs.
It also offsets the reader by the specified number. If has_more() returns false, the invocation of this method results in the throwing of a std::out_of_range exception.
| batch_size | The maximum number of observation-objective pairs to read and return. |
Implements cattle::DataProvider< Scalar, Rank, Sequential >.
|
inlinevirtual |
A simple constant getter method for the dimensions of the objectives.
Implements cattle::DataProvider< Scalar, Rank, Sequential >.
|
inlinevirtual |
A simple constant getter method for the dimensions of the observations.
Implements cattle::DataProvider< Scalar, Rank, Sequential >.
|
inlinevirtual |
A method that returns whether the data provider instance has more data to provide.
It should always be called before calling get_data(std::size_t).
Implements cattle::DataProvider< Scalar, Rank, Sequential >.
|
inlinevirtual |
It skips the specified number of data points.
If has_more() returns false, the invocation of the method has no effect.
| instances | The number of instances to skip. |
Implements cattle::DataProvider< Scalar, Rank, Sequential >.


Good Health
We hope you never need to use it, but its nice to know that you have a safety net if the worse should happen.
We hope you never need to use it, but its nice to know that you have a safety net if the worse should happen.
Benenden Healthcare
Introduction
Benenden Healthcare is a 'not-for-profit' friendly society and provides an affordable alternative to private medical insurance for employees of the Civil Service. This service offers a reduction to waiting times for consultations and treatments and covers all benefits in one price with no exclusions for pre-existing conditions.


CASE STUDIES
Building all things functional and beautiful.
Memetal Health
Details
Brief / Icon Set
Role / Illustration, Promotional Website Wireframing & Development
Software / Illustrator, Atom
Project Summary
For this project we were asked to create an icon set as well as a promotional website through which we could sell our icons.
Memetal health is a website raising awareness for mental health among gen Z by relating neurodivergent behaviours to popular memes.
Brief completed in 2 months.
Environfriend
Details
Brief / Final Year Major Project
Role / Research, Information Architecture, UI/UX Design, Illustration
Software / Figma, Illustrator, Notion
Project Summary
For my major project I was given free reign over what I wanted to work on. I had just read Gerry McGovern's "World Wide Waste" and learned that the tech industry is responsible for 3.6% of global carbon emissions. I felt moved to take action.
Environfriend focuses heavily on behaviour change design, using the methodology to help the user track and measure their carbon emissions while also suggesting ways to reduce these.
To keep the user coming back, I chose a tamagotchi approach where the user has to take care of a pet. When they perform psoitive actions (reading about carbon emissions, staying on track with reducing their emissions) they earn Environcoins which they can exchgange for food or clean air for their pet.
Placement Report
Details
Brief / Placement Report
Role / Illustration, Design & Development
Software / Procreate, Jekyll
Languages / YML, MD, CSS, HTML, JS
Project Summary
A summary of my year at Synergy Learning where I worked as a UX Developer.
I challenged myself to do one drawing a day for 3 weeks, creating this flipbook.
This project had far too many moving parts to be built out as a static site, so I opted to use Jekyll.
Brief completed within 1 month.
Mala
Details
Brief / E-Commerce
Role / Design & Development
Software / Shopify
Languages / Liquid, CSS, HTML
Project Summary
Mala are a Belfast based sustainable bag company who asked me design and develop an e-commerce solution.
Together we decided Shopify would be the best fit for Mala, owing to the system's simplicity and integration with social media - a key part of their business.
To help Mala, I created a number of custom sections as well as developing additional functionality for existing ones.
Brief completed within 2 months.
Sherlock By Train
Details
Brief / Storytelling
Role / Illustration, Design & Development
Software / Adobe Illustrator
Languages / CSS, HTML, JS
Project Summary
In this module I was asked to explore online storytelling, using the Sherlock Holmes franchise as subject matter.
Abstracting from a navbar, the iconic London Underground serves as a gameified wayfinding system for the application. There is an emphasis on moving image and short bursts of text as a more modern approach to presenting information online.
Brief completed within 3 months.
Girlements
Details
Brief / Data Visualisation
Role / Illustration, Design & Development
Software / Photoshop
Languages / CSS, HTML
Project Summary
In this project I was tasked with visualising data relating to the periodic table, aimed at a target audience of teenagers.
I decided to personify the noble gases as a memory and storytelling aid, and further streamline the target audience to women in STEM by creating badass female characters.
Brief completed within 1 month.
Codesseum
Details
Brief / E-learning Application
Role / Research, Design, Wireframing & Prototyping
Software / Adobe XD, Google Slides
Project Summary
I was born into a line of teachers, so I was paricularly excited when tasked with designing an e-learning solution.
This project consisted of very thorough benchmarking (read the research), idea pitching and designing a high fidelity prototype in Adobe XD.
Brief completed within 3 months.
Ventrilocat
Details
Brief / Playful Interaction
Role / Project Lead, Concept Design, Development, Filming, Editing
Software / Arduino, After Effects
Languages / Arduino
Project Summary
Along with my research partner, Bianka, I was asked find a gap in the market for an interactive gadget which we would physically build and programme using Arduino.
Together we developed a sensor watch to help the user recognise and identify their feelings, in an attempt to demistify the complexity of living with mental health issues.
Brief completed within 4 months.
Pool Story
Details
Brief / 2D Animated Short
Role / Illustration, Animation
Software / Photoshop, After Effects
Project Summary
In this project I was tasked with visualising data relating to the periodic table, aimed at a target audience of teenagers.
I decided to personify the noble gases as a memory and storytelling aid, and further streamline the target audience to women in STEM by creating badass female characters.
Brief completed within 1 month.


Line Charts are defined by the flot
directive. The dataset and options attribute define the line chart data and options respectively.
Dataset and Options are defined within the LineChartCtrl.
Note: Refer to the Flot Options page for details of chart options.
To convey chart information to users with assistive technologies, you can include a text version of the data. Use the sr-only class to make the text hidden but visible to screen readers, and give the container a tabindex attribute so it can be reached with the keyboard, and place it near the chart.
Note: This component can be used in an Angular application by importing the HybridModule.


About
Resume
Research
Projects
Contact
You can contact me at<EMAIL_ADDRESS>1305017.rd@ugrad.cse.buet.ac.bd


Abstract
LISPBUILDER-SDL-MIXER provides a Common Lisp binding to the SDL_mixer library. The library mixes multiple samples into one or more audio output channels. Lisp callbacks provide the capability to implement custom mixing algorithms and custom audio effects over and above the distance attenuation, panning and reverse stereo effects provided by the SDL_mixer library. WAVE, MOD, MIDI, OGG, AIFF, RIFF and VOC formats are supported.
LISPBUILDER-SDL-MIXER has a dependency on LISPBUILDER-SDL.
The code comes with a MIT-style license so you can basically do with it whatever you want.
Download shortcut: http://www.balooga.com/lispbuilder/lispbuilder-sdl-mixer.tgz.
;; Load an mp3 music file and play the file continuously. (sdl:with-init (sdl:sdl-init-video sdl:sdl-init-audio) (sdl:window 50 10) (sdl-mixer:OPEN-AUDIO) (let ((music (sdl-mixer:load-music "sample.mp3"))) (sdl-mixer:play-music music :loop t) (sdl:with-events () (:quit-event () (sdl-mixer:Halt-Music) (sdl-mixer:free music) (sdl-mixer:close-audio) t) (:idle () (sdl:update-display)))))
+channel-post+
+channels+
+default-channels+
+default-format+
+default-frequency+
+default-sample-buffer+
+max-volume+
allocate-channels
audio-channels-p
audio-format-p
audio-frequency-p
audio-opened-p
channel-volume
chunk
close-audio
free
group-channel-p
group-channels
group-oldest
group-recent
halt-music
halt-sample
linked-version
load-music
load-sample
music
music-fading-p
music-paused-p
music-playing-p
music-position
music-type-of
music-type-p
music-volume
open-audio
pause-music
play-music
play-sample
register-music-finished
register-music-mixer
register-sample-finished
reserve-channels
rewind-music
sample-fading-p
sample-from-channel
sample-paused-p
sample-playing-p
sample-volume
sdl-mixer-version
unregister-music-finished
unregister-music-mixer
unregister-sample-finished
Current Version: The latest stable version of LISPBUILDER-SDL-MIXER, together with this documentation can be downloaded from http://www.balooga.com/lispbuilder/lispbuilder-sdl-mixer.tgz. The current version is 0.2.0.
Development: The latest developement version is available via anonymous SVN:
svn co https://lispbuilder.svn.sourceforge.net/svnroot/lispbuilder lispbuilder-sdl-mixer
(asdf:operate 'asdf:load-op :lispbuilder-sdl-mixer)
(asdf:operate 'asdf:load-op :lispbuilder-sdl-mixer-examples)
(SDL-MIXER-EXAMPLES:MIXER)
[Constant]
+channel-post+
Default channel of
-2
used for post-processing.
[Constant]
+channels+
Default number of
8
mixer channels.
[Constant]
+default-channels+
Default number of
2
sound channels for Stereo output.
[Constant]
+default-format+
Default SDL audio format; little-endian is
SDL:AUDIO-S16LSB
, big-endian isSDL:AUDIO-S16MSB
. Audio formats are defined inSDL_audio.h
;
SDL:AUDIO-U8
: Unsigned 8-bit samplesSDL:AUDIO-S8
: Signed 8-bit samplesSDL:AUDIO-U16LSB
: Unsigned 16-bit samples, in little-endian byte orderSDL:AUDIO-S16LSB
: Signed 16-bit samples, in little-endian byte orderSDL:AUDIO-U16MSB
: Unsigned 16-bit samples, in big-endian byte orderSDL:AUDIO-S16MSB
: Signed 16-bit samples, in big-endian byte orderSDL:AUDIO-U16
: same asSDL:AUDIO-U16LSB
(for backwards compatability probably)SDL:AUDIO-S16
: same asSDL:AUDIO-S16LSB
(for backwards compatability probably)SDL:AUDIO-U16SYS
: Unsigned 16-bit samples, in system byte orderSDL:AUDIO-S16SYS
: Signed 16-bit samples, in system byte order
[Constant]
+default-frequency+
Default sampling frequency of
22,050hz
[Constant]
+default-sample-buffer+
Default size of the sample output buffer is
4096
bytes
[Constant]
+max-volume+
Default volume of
128
for CHUNK, output channels and mix channels.
[Function]
allocate-channels num-channels => result
Allocates
NUM-CHANNELS
to be used for mixing samples. Frees all allocated channnels whenNUM-CHANNELS
isNIL
or0
. A negative value forNUM-CHANNELS
is ignored. Returns the number of channels currently allocated. Can be called multiple times even if samples are currently playing. If the current allocation of channels is greater thanNUM-CHANNELS
, then channels greater thanNUM-CHANNELS
will be stopped and these resources freed. The callback set by REGISTER-SAMPLE-FINISHED is called for each channel halted. NOTE: Samples will continue playing whenNUM-CHANNELS
is0
.
[Function]
audio-channels-p => result
Returns the number of output channels used by the audio device, e.g.
2
for stereo and1
for mono. Does not return the number of mixing channels allocated.
[Function]
audio-format-p => result
Returns the current audio format of the audio device.
[Function]
audio-frequency-p => result
Returns the current audio frequency of the audio device.
[Function]
audio-opened-p => result
Returns the number of times the audio device has been opened by OPEN-AUDIO, or
NIL
if the audio device is closed.
[Accessor]
channel-volume channel => result
(setf (channel-volume channel) volume)
Returns the volume of
CHANNEL
, as anINTEGER
. Volume can be from 0 to +MAX-VOLUME+. IfCHANNEL
is NIL then the average volume over all channels is returned.
[Standard class]
chunk
[Function]
close-audio &optional all => result
Attempts to close the audio device. The audio device can be opened multiple times by OPEN-AUDIO and to properly close the audio device, CLOSE-AUDIO should be called the same number of times. Optionally
ALL
whenT
will forcibly close the audio device, no matter how many times the device was opened.
[Generic function]
free chunk => result
[Method]
free (chunk music) => result
Frees the music in MUSIC. Stops MUSIC if currently playing. Will block until any current fade effect completes. Do not reuse MUSIC once freed.
[Method]
free (chunk chunk) => result
Frees the sample in CHUNK. Do not reuse a CHUNK once freed. Do not attempt to free a CHUNK that is still being played.
[Function]
group-channel-p tag => result
Returns the number of reserved channels in the group identified by
TAG
. Returns the total number of reserved channels in all groups whenNIL
.
[Function]
group-channels tag &key channel end-channel => result
Assigns the group
TAG
to:CHANNEL
, or the range of channels from:CHANNEL
to:END-CHANNEL
.TAG
whenNIL
will remove theTAG
from the channels specified and reassign these channels to the default group. Returns the number of channels grouped on success, orNIL
on failure when an invalid or unallocatedCHANNEL
or range of channels is specified. Use ALLOCATE-CHANNELS to allocate one or more channels.
[Function]
group-oldest tag => result
Returns the oldest actively playing reserved channel in the group identified by
TAG
. WhenT
will return the oldest actively playing reserved channel in any group. Returns a channel, orNIL
if no channels are actively playing or the group is empty.
[Function]
group-recent tag => result
Returns the most recent actively playing reserved channel in the group identifed by
TAG
. When 'T' will return the most recent actively playing reserved channel in any group. Returns a channel, orNIL
if no channels are actively playing or the group is empty.
[Function]
halt-music &optional fade => result
Stops playing music. The callback set by REGISTER-MUSIC-FINISHED is called when the music stops.
Parameters
FADE
is the number of milliseconds to perform the fade-out effect. Will block until any current fade effect completes. Has no effect on paused or halted music. WhenFADE
is NIL the music is stopped and all fade effects are immediately cancelled. The default is NIL.Returns
- T on success and NIL on failure.
[Function]
halt-sample &key channel group fade ticks => result
Stops playing the sample on
CHANNEL
, or stops playback on the reserved channels inGROUP
. The callback set by REGISTER-SAMPLE-FINISHED is called when the channel stops.Parameters
CHANNEL
specifies the channel to stop playing. WhenT
, will stop playback samples on all channels. Ignores channels not currently playing out samples.GROUP
specifies the group of reserved channels to stop playing. Use RESERVE-CHANNELS to create a group of reserved channels.FADE
is the number of milliseconds to perform the fade-out effect. WhenCHANNEL
is set, will fade out the sample on the specified channel. WhenGROUP
is set, will fade out the samples on the reserved channels inGROUP
. The sample is stopped when fade effect completes. WhenFADE
isNIL
or0
the fade effect is immediate. Default isNIL
.TICKS
is the number of milliseconds until the sample is stopped. WhenNIL
or0
, the sample is stopped immediately. Default isNIL
.Returns
- The number of samples fading out, when
FADE
is set.- The number of samples halted, when
TICKS
is set.- Otherwise, returns T on success and NIL on failure.
[Function]
linked-version => result
Returns the version number of the SDL_mixer dynamic library in use as #(
MAJOR
MINOR
PATCH
).
[Function]
load-music filepath => result
Loads the music file at location
FILEPATH
. Must be aWAVE
,MOD
,MIDI
,OGG
orMP3
file. Returns music as a new MUSIC object, or NIL on error.
[Function]
load-sample filepath => result
Loads the sample file at location
FILEPATH
. Must be aWAVE
,AIFF
,RIFF
,OGG
, orVOC
file. Returns the sample as a new CHUNK object, or NIL on error.
[Standard class]
music
[Function]
music-fading-p => result
Returns the current fade effect on music regardless of the current play or pause state. Returns
:FADING-OUT
if a fade-out is in effect,:FADING-IN
if a fade-in is in effect, orNIL
if no fade is in effect.
[Function]
music-paused-p => result
Returns T if music is currently paused or was previously paused prior to a halt, or NIL otherwise.
[Function]
music-playing-p => result
Returns
T
if music is currently playing or is paused, orNIL
if music is halted.
[Function]
music-position position => result
Sets the play
POSITION
of the currently playing music. ReturnsT
on success andNIL
on failure. Applicable only toMOD
,OGG
andMP3
music formats as described below.
MOD
, jumps to the pattern number in the module identified byPOSITION
.0
will rewind the module to the beginning.OGG
, jumps toPOSITION
seconds from the beginning of the song.MP3
, jumps forwardsPOSITION
seconds from the current play position. Negative values are ignored. To rewind, use REWIND-MUSIC to jump to the start of the song, then jump forwardPOSITION
seconds using MUSIC-POSITION.
[Function]
music-type-of music type => result
Returns
T
if MUSIC is ofTYPE
, returnsNIL
otherwise.TYPE
may be one ofWAV
,MOD
,MID
,OGG
,MP3
,MP3-MAD
,FLAC
orCMD
. If MUSIC isNIL
returns the type of the currently playing music. ReturnsNIL
is no music is playing.
[Function]
music-type-p music => result
Returns the format type of MUSIC as one of
WAV
,MOD
,MID
,OGG
,MP3
,MP3-MAD
,FLAC
orCMD
. Returns the format type of the currently playing music when MUSIC isNIL
. ReturnsNIL
is no music is playing.
[Accessor]
music-volume => result
(setf (music-volume ) volume)
Returns current music volume as an
INTEGER
from 0 to +MAX-VOLUME+.
[Function]
open-audio &key frequency format channels chunksize => result
Initializes the mixer. SDL must be initialized with SDL-INIT-AUDIO prior to this call. OPEN-AUDIO can be called multiple times, however
FORMAT
is set on the first call and will not changed on subsequent calls. The audio device must be closed and re-opened for any change toFORMAT
to take effect. CLOSE-AUDIO must be called the same number of time to close the audio device. Use ALLOCATE-CHANNELS to set the number of mixing channels. OPEN-AUDIO will allocate +MIX-CHANNELS+ by default.Parameters
FREQUENCY
is the output sampling frequency in samples per second (Hz). Default is +DEFAULT-FREQUENCY+. Most games use aFREQUENCY
of +DEFAULT-FREQUENCY+. The higher theFREQUENCY
the greater the CPU resource requirements. (A value of 44100 is the CD audio rate).FORMAT
is the output sample format. Default is +DEFAULT-FORMAT+.CHANNELS
sets the number of sound channels in the output. Default is +DEFAULT-CHANNELS+. This is not the same as ALLOCATE-CHANNELS which sets the number of mixing channels.CHUNKSIZE
is the size in bytes of each mixed sample buffer. Default is +DEFAULT-SAMPLE-BUFFER+ bytes. The smaller theCHUNKSIZE
, the more frequenctly the mixer hooks are called. IncreaseCHUNKSIZE
to decrease CPU resources, if sound skips or if playing music. DecreaseCHUNKSIZE
to decrease sound lag.Returns
T
on success andNIL
on failure.
[Function]
pause-music => result
Pause music. Music can only be paused if it is actively playing. You may halt paused music.
[Function]
play-music music &key loop fade position => result
Starts playing MUSIC from
POSITION
. The music can be faded-in over the number of milliseconds inFADE
. Automatically repeats the music when finished the number of time specified inLOOP
. Any previous music will be halted. Will block until any current fade effect completes.Parameters
MUSIC
is the MUSIC to play.LOOP
is the number of times to play the music. T continuously loops the music. Plays once whenNIL
, or0
. Default isNIL
.FADE
is the number of milliseconds to perform the fade-in effect. Default isNIL
, no fade effect. Only applies to the first loop.POSITION
is the position in the music to begin playing from. Default is to start playout from the beginning.Returns
- T on success and NIL on failure.
[Function]
play-sample chunk &key channel group loop fade ticks => result
Plays the sample in CHUNK for
TICKS
milliseconds, repeatedLOOP
times. The sample is repeated the number of times specified inLOOP
, or untilTICKS
. The sample will fade-in overFADE
milliseconds. The callback set by REGISTER-SAMPLE-FINISHED is called when the sample stops playing.Parameters
CHUNK
is the sample CHUNK.CHANNEL
specifies the channel to play the sample. WhenT
, will perform default mixing and mix the sample on the first free unreserved channel.GROUP
Attempts to play the sample on the first available (not playing) reserved channel inGROUP
. WhenT
, will search for the first available (not playing) reserved channel in all groups. If there are no available reserved channels then PLAY-SAMPLE will fail. If howeverCHANNEL
is alsoT
then the default action is to play the sample on the first unreserved channel. Use RESERVE-CHANNELS to reserve, or exclude, a channel from default mixing.LOOP
is the number of times to loop the sample. Loops continuously whenT
. Plays once whenNIL
, or0
. Default inNIL
.FADE
is the number of milliseconds to perform the fade-in effect. Default isNIL
, no fade effect. Only applies to the first loop.TICKS
is the number of milliseconds to play the sample. WhenT
will play the sample from start to finish. Default isT
.Returns
- The channel the sample is playing on, or
NIL
on failure.
[Function]
register-music-finished func => result
Sets the callback that is executed when MUSIC finishes playback or is halted.
FUNC
is of the format#(lambda ())
Example
(REGISTER-MUSIC-FINISHED (lambda () (FORMAT T "MUSIC FINISHED")))
[Function]
register-music-mixer func => result
Sets the callback that is executed to fill the music audio output buffer.
FUNC
is of the format#(lambda (user-data stream len))
Example
(REGISTER-MUSIC-MIXER (lambda (user stream len) 'FILL-THE-AUDIO-OUTPUT-BUFFER))
[Function]
register-sample-finished func => result
Sets the callback that is executed when a sample CHUNK finishes playback or is halted.
FUNC
is of the format#(lambda (channel))
Example
(REGISTER-SAMPLE-FINISHED (lambda (channel) (FORMAT T "SAMPLE FINISHED ON CHANNEL: ~A" channel)))
[Function]
reserve-channels channels => result
Reserves, or excludes, the number of
CHANNELS
from default mixing. The number of channels to reserve is from 0 to(- CHANNELS 1)
. Default mixing is performed when when a sample is played on an unreserved channel, when using PLAY-SAMPLE with:CHANNEL
NIL
.CHANNEL
whenNIL
or0
will remove all reservations. Channels are unreserved unless explicitly reserved by RESERVE-CHANNELS. Returns the number of channels reserved. May return less channels than requested, depending on the number of channels previously allocated using ALLOCATE-CHANNELS.
[Function]
rewind-music => result
Rewind to the start of music. Safe to use on halted, paused, and currently playing music. It is not necessary to rewind the music immediately after starting playback, as it starts at the beginning by default. Only the following streams support rewind:
MOD
,OGG
,MP3
,Native MIDI
.
[Function]
sample-fading-p channel => result
Returns
T
if a fade is in effect for the sample onCHANNEL
, regardless of the current play or pause state of the sample. Returns:FADING-OUT
if a fade-out is in effect,:FADING-IN
if a fade-in is in effect, orNIL
if no fade is in effect.
[Function]
sample-from-channel channel => result
Returns currently playing or most recently played sample on
CHANNEL
as a new CHUNK object, orNIL
ifCHANNEL
is not allocated orCHANNEL
has not yet played out any samples. NOTE: The sample may already have been freed and therefore the pointer to the foreign object in CHUNK may not be valid.
[Function]
sample-paused-p channel => result
Returns
T
if the sample onCHANNEL
is currently paused or was previously paused prior to a halt, orNIL
otherwise. Returns the number of paused samples whenCHANNEL
isT
orNIL
.
[Function]
sample-playing-p channel => result
Returns
T
if a sample is currently playing or is paused onCHANNEL
, orNIL
if the sample is halted. Returns the number of samples playing or paused whenCHANNEL
isT
orNIL
.
[Accessor]
sample-volume chunk => result
(setf (sample-volume chunk) volume)
Returns the volume of the sample in CHUNK, as an
INTEGER
from 0 to +MAX-VOLUME+.
[Function]
sdl-mixer-version sdl-version => result
Sets the
SDL-VERSION
structure with the version of the library..
[Function]
unregister-music-finished => result
Removes the callback function set by set by REGISTER-MUSIC-FINISHED.
[Function]
unregister-music-mixer => result
Removes any callback function set by REGISTER-MUSIC-MIXER.
[Function]
unregister-sample-finished => result
Removes the callback function set by REGISTER-SAMPLE-FINISHED.