Clean-up operation underway in Mayo after storm
MAYO has come through Storm Atiyah without suffering too much damage.
Members of Mayo County Council are involved in a clean-up operation with trees being removed from roads in the Swinford, Claremorris and Westport areas.
County Mayo experienced high winds and rough seas last night as Storm Atiyah made landfall on the west coast.
A Status Orange wind warning was in effect throughout the night and as a result of the strong gusts many roads were blocked by fallen trees and debris.
Mayo County Council staff were on call overnight to deal with the blockages, and have successfully cleared roads in the Municipal Districts of Castlebar, Ballina, Claremorris and West Mayo.
Mr Peter Hynes CE Mayo County Council praised the vigilance of the local authority staff and the cooperation from local communities and advised the people of Mayo to “remain cautious when driving in the aftermath of a storm as there is still the possibility of strong gales or blocked roads, particularly in coastal areas
ESB Networks crews are repairing faults in Swinford, Cong and Carrowbeg, Westport.
Up to 100 homes are without power and they are expected to have their supply restored in the early afternoon.
The list of action taken or being undertaken today by Mayo County Council following the storm are as follows:
| Castlebar Municipal District | |||
| 08/12/19 | N60 at Manulla | Tree Down - Cleared | |
| 08/12/19 | Errew-Carnacon Rd. | Tree Down - Cleared | |
| 09/12/19 | Frenchills Crossroad | Tree Down - Cleared | |
| 09/12/19 | Parke | Tree Down - Cleared | |
| 09/12/19 | Pontoon Road | Tree Down - Cleared | |
| 09/12/19 | Ross | Tree Down - Cleared | |
| Claremorris Municipal District | ||
| 09/12/19 | R332 Foxhall | Tree Down - Cleared |
| 09/12/19 | Knock Rd., Claremorris | Tree Down, Road Partially blocked – Crews on the way at 07.53 |
| Ballina Municipal District | |||
| 09/12/19 | N26 Near Swinford | Tree down on side of road – Cleared | |
| 09/12/19 | R314 Farrah | Cleared | |
| 09/12/19 | R315 Creeve, Ballycastle | Tree blocking - Cleared | |
| 09/12/19 | N59 Creggs Rd, Ballina | Cleared | |
| 09/12/19 | R314 Killala | Irish Water temp. lights and barriers blown away - cleared | |
| West Mayo Municipal District | |||
| 09/12/19 | Between Quay & Belclare, Westport | Tree down – crew on site, road closed at present | |


BILLING QUESTIONS?<PHONE_NUMBER>
My Carriers
Settings
Sign Out
Toggle navigation
Carrier Company "A" Name
Dashboard
Load Management
Invoicing
My Company


| Search: | Search |
It tells a heartbreakingly beautiful novel that celebrates the resilience of the human spirit and the durability of women...
This is the story of how Yahoo got into such awful shape, Mayer's controversial rise at Google, & her fight to save an Internet icon...
Learn how to use core game concepts, design patterns, and meaningful code samples to a create fun and captivating social environment...
The author explains what is the best way for businesses to succeed is to attract smart-creative people and give them an environment where they can thrive at scale...

NFB sees itself to be the leader in providing A-class services and products to its customers through the use of technology, in this market. Northern Fame Bookstore (NFB) is best known for being the favourite Malaysian local retail and distributor for all kinds of books. They do serve walk-in customers as well in their shop located at Bukit Jalil, Malaysia.
Nothern Fame Bookstore © Copyright 2016 Jason Khor


class: center, middle, main-title # Machine Learning The next unit of this class will cover machine learning. But first, let's discuss the difference between Machine Learning and Artificial Intelligence (AI). --- ## What is machine learning? What is AI? What is machine learning? - **ML:** Allowing computers to learn for themselves without being explicitly programmed - **USPS:** Computers read handwritten addresses and sort mail accordingly - **Google:** AlphaGo, AlphaZero (computers that are world-class chess, go players) - **Apple/Amazon/Microsoft:** Siri, Alexa, Cortana voice assistants can understand human speech - **Facebook:** automatically finds faces in a photo and tags them to the corresponding user - In each of the above examples, the machine is "learning" to do something only humans had previously been able to do - Put differently, the machine was not programmed to read numbers or recognize voices -- it was given a bunch of examples of numbers and human voices and came up with a way to predict what's a number or a voice and what isn't What is AI? - **AI:** Constructing machines (robots, computers) to think and act like human beings Thus, machine learning is a (large) subset of AI --- ## Machine learning's role in data science - In data science, machine learning closely resembles statistics. - Why? Because a lot of data science is about finding "insights" or "policies" in your data that can be used to increase profits or improve quality of life in some other dimension. - Finding "insights" is about finding correlative and causal relationships among variables - Statistics is the science that has the vast majority of these tools --- ## Machine learning vs. econometrics - **Machine Learning** is all about maximizing and out-of-sample prediction - **Econometrics** is all about finding "consistent" parameter estimates (e.g. making sure that the estimated parameters of the model will converge to their "true" values given a large enough sample size) - **Machine Learning** is all about finding ŷ - **Econometrics** is all about finding β̂ --- ## The fundamental objective of Machine Learning The fundamental objective is to maximize out-of-sample fit - But how is this possible given that -- by definition -- we don't see what's not in our sample? - The solution is to choose functions that predict well in-sample, but penalize them from being too complex. - **Regularization** is the tool by which in-sample fit is penalized. That is, regularization prevents overly complex functions from being chosen by the algorithm - **Overfitting** is when we put too much emphasis on in-sample fit, leading us to make poor out-of-sample fit --- ## Elements of Machine Learning The following are the basic elements of machine learning in data science: 1. Loss function (this is how one measures how well a particular algorithm predicts in- or out-of-sample) 1. Algorithm (a way to generate prediction rules in-sample that can generate to out-of-sample) 1. Training data (the sample on which the algorithm estimates) 1. Validation data (the sample on which algorithm tuning occurs) 1. Test data (the "out-of-sample" data which is used to measure predictive power on unseen cases) The algorithm typically comes with **tuning parameters** which are ways to regularize the in-sample fit **Cross-validation** is how tuning parameters are tuned. --- ## Example - Suppose you want to predict housing prices (this is the "hello world" of machine learning) - You have a large number of relevant variables - What would you do? - You would want to have a model that can detect non-linear relationships (like the USPS handwriting reader) - You would also want to have a model that you can tractably estimate - And a model that will predict well out-of-sample --- ### One option: a separate dummy variable for every house - In this scneario, you run `lm(log(price) ~ as.factor(houseID))` - What you get is a separate price prediction for every single house - But what to do when given a new house that's not in the sample? - Which house in the sample is the one you should use for prediction? - The resulting prediction will have horrible out-of-sample fit, even though it has perfect in-sample fit - This is a classic case of **overfitting** - We say that this prediciton has **high variance** (i.e. the algorithm thinks random noise is something that is important to the model) --- ### Another option: house price is a linear function of square footage - In this scenario, you simple run `lm(log(price) ~ sqft)` - When given a new hosue with a given square footage, you will only look at the square footage to predict the price of the new house - This algorithm will result in **underfitting** because the functional form and features it uses for prediction is too simplistic - We say that this prediction has **high bias** (i.e. the algorithm does not think enough variation is important to the model) --- ## Bias-variance tradeoff The **bias-variance tradeoff** refers to the fact that we need to find a model that is complex enough to generalize to new datasets, but is simple enough that it doesn't "hallucinate" random noise as being important The way to optimally trade off bias and variance is via **regularization** The following graphic from p. 194 of Hastie, Tsibshirani, and Friedman's *Elements of Statistical Learning* illustrates this tradeoff: ![Source: p. 194 of *Elements of Statistical Learning*](../Graphics/biasVarianceHTFp194.png "Bias-Variance Tradeoff") --- ## Regularization methods 1. Regression models (OLS or logistic) - L0 (Subset selection): penalize objective function by sum of the parameters ≠0 - L1 (LASSO): penalize objective function by sum of absolute value of parameters - L2 (Ridge): penalize objective function by sum of square of parameters - Elastic net: penalize by a weighted sum of L1 and L2 1. Tree models - Depth, number of leaves, minimal leaf size, other criteria 1. Random forests - Number of trees, complexity of each tree, other criteria 1. Nearest neighbors - Number of neighbors 1. Neural networks - Number of layers, number of neurons per layer, connectivity between neurons (i.e. via L1/L2 regularization) 1. Support Vector Machine - L1/L2 regularization 1. Naive bayes - Naturally geared towards not overfitting, but can be regularized with iterative variable selection algorithms (similar to stepwise/stagewise regression) --- ## Visualization of different predictors The following graphic shows a visualization of different classification algorithms, accross two features (call them X and Y). Note the stark differences in the prediction regions. ![Source: Sebastian Raschka on twitter](../Graphics/DYTAagSVAAACVc7.jpg "Comparison of different machine learning classification algorithms") Source: [this tweet](https://twitter.com/rasbt/status/974115063308091392?s=12) --- ## Combined predictors Often you can get a better prediction by combining multiple sets of prediction. We call these **combined predictors**. You can think of the combined predictor as a "committee of experts." Each "expert" votes on the outcome and votes are aggregated in such a way that the resulting prediction ends up being better than any individual component prediction. 3 types of combined predictors (cf. Mullainathan & Spiess, 2017): 1. Bagging (unweighted average of predictors from bootstrap draws) 1. Boosting (linear combination of predictions of a residual) 1. Ensemble (weighted combination of different predictors) Combined predictors are regularized in the number of draws, number of iterations, or structure of the weights. --- ## Visualization of combined predictors The following graphic shows a similar visualization as above, but now incorporates an ensemble prediction region. This provides some solid intuition for why ensemble predictors usually perform better than the predictions from any one algorithm. ![Source: Sebastian Raschka on twitter](../Graphics/ensemble_decision_regions_2d.png "Comparison of different machine learning classification algorithms and an ensemble prediction") Source: [The `mlxtend` GitHub repository](https://github.com/rasbt/mlxtend) --- ## Measuring prediction accuracy How do we measure prediction accuracy? It depends on if our target variable is continuous or categorical - **If continuous:** Use *Mean Squared Error (MSE)* which is equal to the sum of the squared differences between y and ŷ divided by the sample size. Sometimes the *Root Mean Squared Error (RMSE)* is used, which is the square root of this quantity. You may also see the *Mean Absolute Error (MAE)* which is the sum of the absolute value of the differences between y and ŷ divided by the sample size. - **If binary:** Use the *confusion matrix* which compares how often y and ŷ agree with each other (i.e. for what fraction of cases ŷ = 0 when y = 0) Example confusion matrix | | ŷ | | |--|--|--| | y | 0 | 1 | | 0 | True negative | False positive | | 1 | False negative | True positive | --- ## Using the confusion matrix The three most commonly used quantities that are computed from the confusion matrix are: 1. **sensitivity (aka recall):** what fraction of y = 1 have ŷ = 1 ? (What is the true positive rate?) 1. **specificity:** what fraction of y = 0 have ŷ = 0 ? (What is the true negative rate?) 1. **precision:** what fraction of ŷ = 1 have y = 1 ? (What is the rate at which positive predictions are true?) The goal is to trade off Type I and Type II errors in classification. The **F1 score** is the most common way to quantify this tradeoff. - F1 score = 2/(1/recall + 1/precision); a number in [0,1] with 1 being best - It is the harmonic mean of recall and precision There are a bunch of other quantities that one could compute from the confusion matrix, but we won't cover any of those. --- ## Why use the confusion matrix? When assessing the predictive accuracy of a classification problem, we want to make sure that we can't "game" the accuracy measure by always predicting "negative" (or always predicting "positive"). This is critical for cases like classifying emails as "spam" or "ham" because of the relative paucity of "spam" messages. In other words, if spam messages are only 1% of all messages seen, we don't want to be able to always predict "ham" and have that be a better measure of accuracy than actually trying to pin down the 1% of spam messages. The F1 measure attempts to quantify the tradeoff between Type I and Type II errors (false negatives and false positives) that would be rampant if we were to always predict "ham" in the email example. --- ## Cross validation How do we decide what level of complexity our algorithm should be, especially when we can't see out-of-sample? The answer is we choose values of the **tuning parameters** that maximize out-of-sample prediction for example: - the λ that comes in front of L1, L2, and elastic net regularization - the maximum depth of the tree or the min. number of observations within each leaf - etc. --- ## Splitting the sample To peform cross-validation, one needs to split the sample. There are differing opinions on this: Camp A ("Holdout") 1. Training data (~70%) 1. Test ("holdout") data (~30%) Camp B ("Cross-validation") 1. Training data (~60%) 1. Validation data (~20%) 1. Test data (~20%) Sample is split randomly, **or** randomly according to how it was generated (e.g. if it's panel data, sample *units*, not observations) It is ideal to follow the "Cross-validation" camp, but in cases where you don't have many observations (training examples), you may have to go the "Holdout" route. --- ## k-fold cross-validation Due to randomness in our data, it may be better to do the cross validation multiple times. To do so, we take the 80% training-plus-validation sample and randomly divide it into the 60/20 components k number of times. Typically k is between 3 and 10. (See graphic below) ![Source: Brant Deppa, Winona State Univ.](../Graphics/k-foldCV.png "Illustration of k-fold cross validation") In the extreme, one can also do *nested* k-fold cross-validation, wherein the test set is shuffled some number of times and the k-fold CV is repeated each time. So we would end up with "3k" fold CV, for example. For simplicity, we'll only use simple k-fold CV in this course. --- ## How to do all of this in R There are a couple of nice packages in R that will do k-fold cross validation for you, and will work with a number of commonly used prediction algorithms 1. `caret` 1. `mlr` `caret` likely still has a strong following, but `mlr` is up-and-coming and has a better user interface. We'll be using `mlr` for the rest of this unit of the course In Python, `scikit-learn` is the workhorse machine learning frontend. --- ## How to use mlr You need to tell `mlr` the following information before it will run: 1. Training data (which will end up being split k ways when doing cross-validation) 1. Testing data 1. The task at hand (e.g. regression or classification) 1. The validation scheme (e.g. 3-fold, 5-fold, or 10-fold CV) 1. The method used to tune the parameters of the algorithm (e.g. λ for LASSO) 1. The prediction algorithm (e.g. "decision tree") 1. The parameters of the prediction algorithm that need to be cross-validated (e.g. tree depth, λ, etc.) For a complete list of prediction algorithms supported by `mlr`, see [here](http://mlr-org.github.io/mlr-tutorial/devel/html/integrated_learners/index.html) --- ## Simple example Let's start by doing linear regression on a well-known dataset: the Boston housing data from UC Irivne: ```r housing <- read.table("http://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data") names(housing) <- c("crim","zn","indus","chas","nox","rm","age","dis","rad","tax","ptratio","b","lstat","medv") # From UC Irvine's website (http://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.names) # 1. CRIM per capita crime rate by town # 2. ZN proportion of residential land zoned for lots over # 25,000 sq.ft. # 3. INDUS proportion of non-retail business acres per town # 4. CHAS Charles River dummy variable (= 1 if tract bounds # river; 0 otherwise) # 5. NOX nitric oxides concentration (parts per 10 million) # 6. RM average number of rooms per dwelling # 7. AGE proportion of owner-occupied units built prior to 1940 # 8. DIS weighted distances to five Boston employment centres # 9. RAD index of accessibility to radial highways # 10. TAX full-value property-tax rate per $10,000 # 11. PTRATIO pupil-teacher ratio by town # 12. B 1000(Bk - 0.63)^2 where Bk is the proportion of blacks # by town # 13. LSTAT % lower status of the population # 14. MEDV Median value of owner-occupied homes in $1000's ``` --- ## OLS ```r # Add some other features housing$lmedv <- log(housing$medv) housing$medv <- NULL housing$dis2 <- housing$dis^2 housing$chasNOX <- housing$crim * housing$nox # Break up the data: n <- nrow(housing) train <- sample(n, size = .8*n) test <- setdiff(1:n, train) housing.train <- housing[train,] housing.test <- housing[test, ] # Define the task: theTask <- makeRegrTask(id = "taskname", data = housing.train, target = "lmedv") print(theTask) # tell mlr what prediction algorithm we'll be using (OLS) predAlg <- makeLearner("regr.lm") # Set resampling strategy (here let's do 6-fold CV) resampleStrat <- makeResampleDesc(method = "CV", iters = 6) # Do the resampling sampleResults <- resample(learner = predAlg, task = theTask, resampling = resampleStrat, measures=list(rmse)) # Mean RMSE across the 6 folds print(sampleResults$aggr) ``` Now, there's not much to do here, since there is no regularization in OLS. But you can see that there is quite a bit of variation in the RMSE based on which sample you use. --- ## LASSO Now let's repeat but instead use the LASSO estimator from the `glmnet` package Since `mlr` is awesome, we only need to load the package, reset the `makeLearner` function, and add the tuning over the λ parameter ```r library(glmnet) # Tell it a new prediction algorithm predAlg <- makeLearner("regr.glmnet") # Search over penalty parameter lambda and force elastic net parameter to be 1 (LASSO) modelParams <- makeParamSet(makeNumericParam("lambda",lower=0,upper=1),makeNumericParam("alpha",lower=1,upper=1)) # Take 50 random guesses at lambda within the interval I specified above tuneMethod <- makeTuneControlRandom(maxit = 50L) # Do the tuning tunedModel <- tuneParams(learner = predAlg, task = theTask, resampling = resampleStrat, measures = rmse, # RMSE performance measure, this can be changed to one or many par.set = modelParams, control = tuneMethod, show.info = TRUE) ``` --- ## LASSO (continued) The workhorse of the cross-validation is done by calling the `tuneParams` function. Once we have that, we need only to train the alogrithm with the optimal parameters and then use them for prediction ```r # Apply the optimal algorithm parameters to the model predAlg <- setHyperPars(learner=predAlg, par.vals = tunedModel$x) # Verify performance on cross validated sample sets resample(predAlg,theTask,resampleStrat,measures=list(rmse)) # Train the final model finalModel <- train(learner = predAlg, task = theTask) # Predict in test set! prediction <- predict(finalModel, newdata = housing.test) print(head(prediction$data)) ``` --- ## Ridge regression We could do ridge regression on the same data by instead setting `alpha` to be 0 (instead of 1). In this case, all we would need to do is adjust the `makeParamSet()` function, re-call the tuning function, re-compute the in-sample fit of the tuned model, and re-compute the out-of-sample fit of the optimally tuned model: ```r # Search over penalty parameter lambda and force elastic net parameter to be 0 (ridge) modelParams <- makeParamSet(makeNumericParam("lambda",lower=0,upper=1),makeNumericParam("alpha",lower=0,upper=0)) # Do the tuning again tunedModel <- tuneParams(learner = predAlg, task = theTask, resampling = resampleStrat, measures = rmse, # RMSE performance measure, this can be changed to one or many par.set = modelParams, control = tuneMethod, show.info = TRUE) # Apply the optimal algorithm parameters to the model predAlg <- setHyperPars(learner=predAlg, par.vals = tunedModel$x) # Verify performance on cross validated sample sets resample(predAlg,theTask,resampleStrat,measures=list(rmse)) # Train the final model finalModel <- train(learner = predAlg, task = theTask) # Predict in test set! prediction <- predict(finalModel, newdata = housing.test) ``` This showcases the nicest feature of the `mlr` package: we are still using the same algorithm, data, and cross-validation scheme, so we don't need to tell it those parameters again. We do, however, need to tell it to tune to the new parameter space (in this case, ridge instead of LASSO). --- class: center, middle, main-title # Helpful links - [Mullainathan & Spiess (2017)](https://www.aeaweb.org/articles?id=10.1257/jep.31.2.87&within%5Btitle%5D=on&within%5Babstract%5D=on&within%5Bauthor%5D=on&journal=3&q=mullainathan&from=j) - [Kaggle notebook by Pondering Panda, showing how to use `mlr`](https://www.kaggle.com/xanderhorn/train-r-ml-models-efficiently-with-mlr) - [Complete list of `mlr` algorithms](http://mlr-org.github.io/mlr-tutorial/devel/html/integrated_learners/index.html) - [Quick start `mlr` tutorial](https://mlr-org.github.io/mlr-tutorial/release/html/index.html) - Laurent Gatto's [*An Introduction to Machine Learning with R*](https://lgatto.github.io/IntroMachineLearningWithR/) online textbook


This file is an attempt to summarise some of the design issues.
The project uses the ElasticSearch (ES) database to store the mails as individual documents. The database stores each mail to each list as a separate document. If the same mail was sent to multiple lists, then it exists as multiple documents in the database.
ES requires that each distinct document has a unique id (MID). The MID is used to insert the document in the database, and can be used to fetch it.
The mails are stored in two separate ES indexes: "mbox" - this stores information about the document, plus the parsed content, and is used for searching and summary displays. "mbox_source" - this is used to store the raw content of the document. The two versions of the document are linked by using the same MID.
As mentioned above, each different document must have a unique id (MID). This document may arrive as a single mail message, or be loaded from a collection such as an mbox file.
Duplicate database entries can be avoided by ensuring that the same MID is calculated regardless of the input source. [If the same message is processed more than once, it then does not matter as only the last instance will be stored.] The MID format does not have to be transparent; it can be an opaque hash.
The same message may be sent to multiple lists, so the message data alone is not sufficient to identify it uniquely. The same message may potentially be sent more than once to the same list, so the combination of message and listname is also not sufficient to identify a message.
Many messages will have a Message-Id header which is intended to be unique to the message. However this may not be the case, and some messages do not have one.
Many mailing list servers will allocate a squence number or other such id to each message they send. This should be unique for the list, assuming that sequence is not reset.
Where the Message-Id and List Server Id both exist, they can be combined to generate a MID. [If the List Server Id is known to be unique, then that can potentially be used alone.]
Where one or other id does not exist, then alternative means need to be used to generate the MID. The data used to do so must be present it all supported message sources.
Algorithms for the generator remain TBA
The application provides Permalinks which can later be used to refer to any document in the database. Once published, it is important that such links must continue to work.
Links should be portable; i.e. if the raw messages are loaded into a new archive it should be possible to support existing published Permalinks.
Multiple links may refer to the same document, however each link should refer to a single document. Ideally the Permalink should be relatively short; however that may conflict with the uniqueness requirement.
It may be useful for the Permalink format to be relatively transparent. For example, a current ASF mod_mbox link looks like:
<EMAIL_ADDRESS>This includes a reference to the: - mailing list name (ponymail-commits) - month when mail was sent (201605.mbox) - the Message-Id<EMAIL_ADDRESS>This information should be sufficient to find the message in just about any mail-archive.
Whereas vendor-specific links may be much shorter, but are only valid for the particular service. For example the equivalent Markmail link is: http://markmail.org/message/oanktcpxlxkmyora
There may be use cases for both styles of link.
TBA
Apache Pony Mail (Incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.


Chatroom
Chatroom
Please Enter a Username and a prefered language
{{room}}
Message:
English
Spanish
French
Chinese
Hindi
Arabic
Portuguese
Russian
German
{{room}}
Message:


Waiting for "load" event...
Liakh
Vladyslav Vitaliiovych
Vladyslav Vitaliiovych
UI / UX Design, Graphic Design,
Motion Graphics, Voice acting,
Web developement, CGI,
Motion Graphics, Voice acting,
Web developement, CGI,
Printable
Resume
Download


APSMediaBuilder
The APSMediaBuilder
assists in creating playlists of fully configurable APSMediaUnit
s, together with attached, configurable APSMediaOverlay
s, using JSON files or using a NSDictionary
, both following the same structure.
The media builder also has class methods that assist with the generation of individual APSMediaUnit
and APSMediaOverlay
objects from corresponding JSON or NSDictionary
structures.
Plugins can be attached to a media builder. Each plugin can dynamically insert, edit or remove units and/or overlays from the generated playlist.
-
Factory method to generate new instance of
APSMediaUnit
viaNSDictionary
configuration.Declaration
Objective-C
+ (APSMediaUnit *_Nullable)unitFromDictionary: (NSDictionary *_Nonnull)unitConfigurations;
Swift
class func unit(from unitConfigurations: [AnyHashable : Any]) -> APSMediaUnit?
Parameters
unitConfigurations
Dictionary unit configuration.
Return Value
An instance of
APSMediaUnit
or nil if error. -
Factory method to generate new instance of
APSMediaOverlay
viaNSDictionary
configuration.Declaration
Objective-C
+ (APSMediaOverlay *_Nullable)overlayFromDictionary: (NSDictionary *_Nonnull)overlayConfigurations;
Swift
class func overlay(from overlayConfigurations: [AnyHashable : Any]) -> APSMediaOverlay?
Parameters
overlayConfigurations
Dictionary overlay configuration.
Return Value
An instance of
APSMediaOverlay
or nil if error.
-
Initializes builder with a playlist of a single media unit.
Declaration
Objective-C
- (instancetype _Nullable)initWithMediaUnit:(APSMediaUnit *_Nonnull)contentUnit;
Swift
init?(mediaUnit contentUnit: APSMediaUnit)
Parameters
contentUnit
APSMediaUnit
object to be played.Return Value
APSMediaBuilder
object. -
Initializes builder with a playlist of media units.
Declaration
Objective-C
- (instancetype _Nullable)initWithMediaUnits:(NSArray *_Nonnull)contentUnits;
Swift
init?(mediaUnits contentUnits: [Any])
Parameters
contentUnits
Array of
APSMediaUnit
objects to be played.Return Value
APSMediaBuilder
object.
-
Configures the builder from a JSON structure.
Warning
This method may execute blocking network I/O on the calling thread.
Declaration
Objective-C
- (BOOL)configureFromURL:(NSURL *_Nonnull)url;
Swift
func configure(from url: URL) -> Bool
Parameters
url
The URL of the JSON structure to load. This can be a remote file or a local file.
Return Value
YES
on succes. -
Configures the builder asynchronously from a JSON structure.
Declaration
Objective-C
- (void)configureFromURL:(NSURL *_Nonnull)url onComplete:(void (^_Nonnull)(void))block;
Swift
func configure(from url: URL, onComplete block: @escaping () -> Void)
Parameters
url
The URL of the JSON structure to load. This can be a remote file or a local file.
block
The block to be executed after configuration is finished.
-
Configures the builder from a
NSData
object.Warning
UTF8 encoding is assumed.
Declaration
Objective-C
- (BOOL)configureFromData:(NSData *_Nonnull)data;
Swift
func configure(from data: Data) -> Bool
Parameters
data
Configuration data - UTF8 encoded.
Return Value
YES
on succes. -
Configures the builder from a
NSDictionary
object.Declaration
Objective-C
- (BOOL)configureFromDictionary:(NSDictionary *_Nonnull)configuration;
Swift
func configure(from configuration: [AnyHashable : Any]) -> Bool
Parameters
configuration
The configuration dictionary.
Return Value
YES
on succes. -
Array containing the main content
APSMediaUnit
s that will make up the playlist.In the finally rendered playlist, units from
bumperUnits
will be prefixed to the main content units, while units fromexitUnits
will be inserted after the main content units. Every array’s content may be modified by attached builder plugins.Declaration
Objective-C
@property (nonatomic) NSArray *_Nullable contentUnits;
Swift
var contentUnits: [Any]? { get set }
-
Array containing
APSMediaUnit
s that will be scheduled before ones in contentUnits in the generated playlist.Declaration
Objective-C
@property (nonatomic) NSArray *_Nullable bumperUnits;
Swift
var bumperUnits: [Any]? { get set }
-
Array containing
APSMediaUnit
s that will be scheduled after ones in contentUnits in the generated playlist.Declaration
Objective-C
@property (nonatomic) NSArray *_Nullable exitUnits;
Swift
var exitUnits: [Any]? { get set }
-
The user agent that should be used when making HTTP requests.
Declaration
Objective-C
@property (nonatomic) NSString *_Nullable userAgent;
Swift
var userAgent: String? { get set }
-
This property enables or disables console logging on all generated units.
Declaration
Objective-C
@property (nonatomic) BOOL debugMode;
Swift
var debugMode: Bool { get set }
-
Returns a generated playlist of
APSMediaUnit
s, based on builder configuration and registered plugins.Warning
This method may execute blocking network I/O on the calling thread.
Declaration
Objective-C
- (NSArray *_Nonnull)mediaUnits;
Swift
func mediaUnits() -> [Any]
Return Value
An array of
APSMediaUnit
s. -
Asynchronously generates a playlist of
APSMediaUnit
s, based on builder configuration and registered plugins.Declaration
Objective-C
- (void)requestMediaUnitsWithCompletionBlock: (void (^_Nonnull)(NSArray *_Nonnull))block;
Swift
func requestMediaUnits(completionBlock block: @escaping ([Any]) -> Void)
Parameters
block
The block to be executed when playlist is generated.
-
Registers a new plugin.
Declaration
Objective-C
- (void)addPlugin:(NSObject<APSMediaBuilderPlugin> *_Nonnull)plugin;
Parameters
plugin
The new plugin object. Must implement
APSMediaBuilderPlugin
.


it was for around 114k when i posted looks like they got 100k atleast
Alecandro16-Jul-19 02:33 PM
Damn that’s wild
CryptoNinjaa16-Jul-19 02:34 PM
Q is who the f unloads 100k at these prices
jansako16-Jul-19 02:35 PM
someone who was betting on sell the news/pre-rebrand pump & now they are cutting their losses. or taking profit if they bought sub-10
CryptoNinjaa16-Jul-19 02:35 PM
Guess so
Shame
Sdunbar16-Jul-19 02:37 PM
to infinity and beyond!!!
Alecandro16-Jul-19 02:37 PM
Q is why is someone buying 100k at these prices?
Because KMD gonna moon
1
1
1
dan.16-Jul-19 02:38 PM
yeah possibly someone that bought at lower and solidifying a gain
Markus16-Jul-19 02:41 PM
or another whale is not happy with his bag and want price to go down
Neko16-Jul-19 02:42 PM
antara is very unique, kmd is a strong coin and also a privacy coin, very interesting
Sherdogz16-Jul-19 02:43 PM
Or the hacker
CryptoNinjaa16-Jul-19 02:45 PM
What we need to do now everyone is talk about how much better a "Smart chain" is than using an erc20 alternative. Security , Scalability and interoperability . If we want to see KMD rise to eth levels people need to understand what we have here. The new documentation that has been released will help with that also. but as a community we need to spread the word
3
1
1
Markus16-Jul-19 02:49 PM
many i have talked to only care about gains not tech
Neko16-Jul-19 02:49 PM
tech bring gains
Markus16-Jul-19 02:49 PM
thats why those ppl will come when gains already came and buy the top
CryptoNinjaa16-Jul-19 02:51 PM
Yes there is alot only care about price thats right. But eth didnt get to its highs on jus speculation. countless erc20 tokens were released which created demand. Now we have the tech to make countless projects in mins that are way more advanced than an ERC20 token.
Neko16-Jul-19 02:52 PM
but is it as easy to create as an erc20 token(edited)
Markus16-Jul-19 02:52 PM
Eth however made demand cause u had to pay eth as fee
kmd dont
CryptoNinjaa16-Jul-19 02:53 PM
That has been discussed many times over. The more projects in the eco system will create natural demand for kmd without forcing essentially a "tax" to use
Markus16-Jul-19 02:53 PM
Yes i know, im not against it just saying it was a quick demand feature by them
CryptoNinjaa16-Jul-19 02:54 PM
yeah for sure we all know the gas model isnt needed
its just creates demand but it inst required really
People have already created smart chains in <5mins since yesterday
Compare that to a badly written smart contract that requires a 3rd party to review etc
JimD16-Jul-19 02:56 PM
How does the new release hook into Amazon
Can people set up their environments, create a blockchain and then push transactions just by going through AWS?
Playing around with https://t.co/OH7Dsuh5mm - An easy to use instant blockchain creator that lets you launch your own chain with just a simple clicks with all the options you need for the not so tech savvy among us! $KMD @KomodoPlatform Just one of few things the rebrand b...
CryptoNinjaa16-Jul-19 02:58 PM
Not sure on the last point Jim so ill let someone who does know answer. But i believe the create a smart chain feature ties in with having AWS nodes immediately on creation
Cryptoon16-Jul-19 02:58 PM
Jep
And the dpow options etc are paid to CRYPTO iirc, which needs to be converted into kmd in order for the dividends to pay out
JimD16-Jul-19 03:00 PM
Ok thanks, AWS is a huge market though Im not sure how many people are actively incorporating blockchain into their applications
New website is so great
Sdunbar16-Jul-19 03:03 PM
I agree the new website is very well done
JimD16-Jul-19 03:04 PM
Why is KMD headquartered in Vietnam lool
Headquarters
Ho Chi Minh
191D Nyugen Van Huong Street
Ho Chi Minh, Thao Dien 71107, Viet Nam
Cryptoon16-Jul-19 03:04 PM
Cheap coke and hookers
JimD16-Jul-19 03:04 PM
We be evading western imperialists ?
I see
Cryptoon16-Jul-19 03:04 PM
Jk that is where redfox is also located
Although kmd itself isnt incorporated and completely decentralized
So doesnt really have an address
JimD16-Jul-19 03:05 PM
Ya, lots of freelance WFH types in crypto land
CryptoNinjaa16-Jul-19 03:12 PM
Did you see that guys tweet yesterday saying something like he reckons kmd exit scammed and showed a note saying kmdplatform dissolved ?
dont know where they make that stuff up
JimD16-Jul-19 03:13 PM
WTF, KMD is pretty much as far as you can get from an exit scam at this point
CryptoNinjaa16-Jul-19 03:14 PM
ikr
ill see if i can see it again you will laugh
Its gone burried somewhere, where it belongs lol
1
p.16-Jul-19 04:11 PM
Lots of crypto HQ's in Vietnam
something to do with foreign investment tax laws
Neko16-Jul-19 04:16 PM
capitalism
Keppie16-Jul-19 04:38 PM
Nosedive btc
Hollowman900016-Jul-19 04:43 PM
RIP
Steven Dickmuncher killed BTC
1
tolken16-Jul-19 04:43 PM
I suspect when there are some web based dapps that leverage a kmd chain/Antara, particularly if its a game of some sort, it’ll be a big ah-ha moment for many people. Antara looks very sexy for devs, but to the general crypto gambler, it still isn’t obvious what Kmd can do,
I realize devs were the primary target for this wave of marketing, just an observation.
Neko16-Jul-19 04:44 PM
BUIDL
Hollowman900016-Jul-19 04:45 PM
DUMPL
tolken16-Jul-19 04:46 PM
I imagine a dapp where you “insert coin” (like bitcoin, ether etc) and then you’re permitted to play a game. That high level, low-friction example of what’s possible seems like it would resonate with a lot of people.


class ProgressBar::Components::Bar
Constants
- DEFAULT_PROGRESS_MARK
- DEFAULT_REMAINDER_MARK
- DEFAULT_UPA_STEPS
Attributes
length[RW]
progress[RW]
progress_mark[RW]
remainder_mark[RW]
upa_steps[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/ruby-progressbar/components/bar.rb, line 17 def initialize(options = {}) self.upa_steps = options[:unknown_progress_animation_steps] || DEFAULT_UPA_STEPS self.progress_mark = options[:progress_mark] || DEFAULT_PROGRESS_MARK self.remainder_mark = options[:remainder_mark] || DEFAULT_REMAINDER_MARK self.progress = options[:progress] self.length = options[:length] end
Public Instance Methods
to_s(options = { :format => :standard })
click to toggle source
# File lib/ruby-progressbar/components/bar.rb, line 25 def to_s(options = { :format => :standard }) if progress.unknown? unknown_string elsif options[:format] == :standard "#{standard_complete_string}#{incomplete_string}" elsif options[:format] == :integrated_percentage "#{integrated_percentage_complete_string}#{incomplete_string}" end end
Private Instance Methods
bar(length)
click to toggle source
# File lib/ruby-progressbar/components/bar.rb, line 51 def bar(length) self.length = length standard_complete_string end
bar_with_percentage(length)
click to toggle source
# File lib/ruby-progressbar/components/bar.rb, line 79 def bar_with_percentage(length) self.length = length integrated_percentage_complete_string end
complete_bar(length)
click to toggle source
# File lib/ruby-progressbar/components/bar.rb, line 57 def complete_bar(length) self.length = length to_s end
completed_length()
click to toggle source
# File lib/ruby-progressbar/components/bar.rb, line 85 def completed_length (length * progress.percentage_completed / 100).floor end
incomplete_space(length)
click to toggle source
# File lib/ruby-progressbar/components/bar.rb, line 69 def incomplete_space(length) self.length = length if progress.unknown? unknown_string else incomplete_string end end
incomplete_string()
click to toggle source
# File lib/ruby-progressbar/components/bar.rb, line 47 def incomplete_string remainder_mark * (length - completed_length) end
integrated_percentage_complete_string()
click to toggle source
# File lib/ruby-progressbar/components/bar.rb, line 37 def integrated_percentage_complete_string return standard_complete_string if completed_length < 5 " #{progress.percentage_completed} ".to_s.center(completed_length, progress_mark) end
standard_complete_string()
click to toggle source
# File lib/ruby-progressbar/components/bar.rb, line 43 def standard_complete_string progress_mark * completed_length end
unknown_progress_frame()
click to toggle source
# File lib/ruby-progressbar/components/bar.rb, line 89 def unknown_progress_frame current_animation_step = progress.progress % upa_steps.size upa_steps[current_animation_step] end
unknown_string()
click to toggle source
# File lib/ruby-progressbar/components/bar.rb, line 63 def unknown_string unknown_frame_string = unknown_progress_frame * ((length / upa_steps.size) + 2) unknown_frame_string[0, length] end


If you don't have a bit.ly account, signup at: http://bit.ly/a/sign_up Then, you can find your apiKey at: http://bit.ly/a/your_api_key


M
S
Myanmar
Seaman
Toggle navigation
User Name Here
Profile
Sign out
Blank page
it all starts here
Home
Examples
Blank page
Title
Start creating your amazing application!
Myanmar
Seaman
Sign in to start your session
Sign In
I forgot my password


{% extends 'blogs/base.html' %} {% load crispy_forms_tags %} {% block content %} {% csrf_token %} {{form|crispy}} Are You Sure Want to delete this post? Delete Cancel {% endblock %}


by {{question.username}}
{{answer.answer}}
hey love angular 2 but ,also love ionic 2,enjoy coding!!!!


WORLD
Galactic gas can help unveil what dark matter is made of
LATESTBy The Conversation 3 hours ago 12
$4.6M
SEED FUND
Analytics, +2
Canaan Partners
Business intelligence startup MachEye launches with $4.6M in seed funding on SiliconANGLE
$4.3M
SEED FUND
Information Technology
Kevin Lin, +3
Collaborative video meeting platform Vowel launches with $4.3M in seed funding on SiliconANGLE
$50M
SERIES B
Internet, +2
Sequoia Capital
Low-code enterprise app maker startup Retool raises $50M on $925M valuation on SiliconANGLE
$10.2M
SERIES B
Internet of Things, +3
Finistere Ventures, +5
TeleSense raises $10.2 million to monitor crops with AI and sensors on VentureBeat
$648 $39.99
$199 $149.99
$1497 $49.99
$2500 $39.99
$3600 $99.99


swell
Press
Contact
About
Introducing Swell
The list that works for you
Download App
Example Task:
Buy a housewarming gift
Heading
here


Track emotional reactions to live events & compare them to your friends & the rest of the world, in real time.
React2 is still being built. Want to join the beta and be one of the first people to try it out?


|
RandomLib
|
Random selection from a discrete set. More...
#include <RandomLib/RandomSelect.hpp>
Public Member Functions | |
| RandomSelect () | |
| template<typename WeightType > | |
| RandomSelect (const std::vector< WeightType > &w) | |
| template<typename InputIterator > | |
| RandomSelect (InputIterator a, InputIterator b) | |
| void | Init () throw () |
| template<typename WeightType > | |
| void | Init (const std::vector< WeightType > &w) |
| template<typename InputIterator > | |
| void | Init (InputIterator a, InputIterator b) |
| template<class Random > | |
| unsigned | operator() (Random &r) const throw () |
| NumericType | TotalWeight () const throw () |
| NumericType | MaxWeight () const throw () |
| NumericType | Weight (unsigned i) const throw () |
| unsigned | Choices () const throw () |
Random selection from a discrete set.
An implementation of Walker algorithm for selecting from a finite set (following Knuth, TAOCP, Vol 2, Sec 3.4.1.A). This provides a rapid way of selecting one of several choices depending on a discrete set weights. Original citation is
A. J. Walker,
An Efficient Method for Generating Discrete Random Variables and General Distributions,
ACM TOMS 3, 253-256 (1977).
There are two changes here in the setup algorithm as given by Knuth:
Example:
#include <RandomLib/RandomSelect.hpp> // Weights for throwing a pair of dice unsigned w[] = { 0, 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1 }; // Initialize selection RandomLib::RandomSelect<unsigned> sel(w, w + 13); RandomLib::Random r; // Initialize random numbers std::cout << "Seed set to " << r.SeedString() << "\n"; std::cout << "Throw a pair of dice 100 times:"; for (unsigned i = 0; i < 100; ++i) std::cout << " " << sel(r); std::cout << "\n";
| NumericType | the numeric type to use (default double). |
Definition at line 71 of file RandomSelect.hpp.
| RandomLib::RandomSelect< NumericType >::RandomSelect | ( | ) | [inline] |
Initialize in a cleared state (equivalent to having a single choice).
Definition at line 77 of file RandomSelect.hpp.
| RandomLib::RandomSelect< NumericType >::RandomSelect | ( | const std::vector< WeightType > & | w | ) | [inline] |
Initialize with a weight vector w of elements of type WeightType. Internal calculations are carried out with type NumericType. NumericType needs to allow Choices() * MaxWeight() to be represented. Sensible combinations are:
| WeightType | the type of the weights. |
| [in] | w | the vector of weights. |
Definition at line 94 of file RandomSelect.hpp.
References RandomLib::RandomSelect< NumericType >::Init().
| RandomLib::RandomSelect< NumericType >::RandomSelect | ( | InputIterator | a, |
| InputIterator | b | ||
| ) |
Initialize with a weight given by a pair of iterators [a, b).
| InputIterator | the type of the iterator. |
| [in] | a | the beginning iterator. |
| [in] | b | the ending iterator. |
Definition at line 222 of file RandomSelect.hpp.
References STATIC_ASSERT.
| void RandomLib::RandomSelect< NumericType >::Init | ( | ) | throw () [inline] |
Clear the state (equivalent to having a single choice).
Definition at line 110 of file RandomSelect.hpp.
Referenced by coverage32(), coverage64(), and RandomLib::RandomSelect< NumericType >::RandomSelect().
| void RandomLib::RandomSelect< NumericType >::Init | ( | const std::vector< WeightType > & | w | ) | [inline] |
Re-initialize with a weight vector w. Leave state unaltered in the case of an error.
| WeightType | the type of the weights. |
| [in] | w | the vector of weights. |
Definition at line 121 of file RandomSelect.hpp.
References RandomLib::RandomSelect< NumericType >::Init().
Referenced by RandomLib::RandomSelect< NumericType >::Init().
| void RandomLib::RandomSelect< NumericType >::Init | ( | InputIterator | a, |
| InputIterator | b | ||
| ) | [inline] |
Re-initialize with a weight given as a pair of iterators [a, b). Leave state unaltered in the case of an error.
| InputIterator | the type of the iterator. |
| [in] | a | the beginning iterator. |
| [in] | b | the ending iterator. |
Definition at line 132 of file RandomSelect.hpp.
| unsigned RandomLib::RandomSelect< NumericType >::operator() | ( | Random & | r | ) | const throw () [inline] |
Return an index into the weight vector with probability proportional to the weight.
| Random | the type of RandomCanonical generator. |
| [in,out] | r | the RandomCanonical generator. |
Definition at line 148 of file RandomSelect.hpp.
| NumericType RandomLib::RandomSelect< NumericType >::TotalWeight | ( | ) | const throw () [inline] |
Definition at line 163 of file RandomSelect.hpp.
| NumericType RandomLib::RandomSelect< NumericType >::MaxWeight | ( | ) | const throw () [inline] |
Definition at line 168 of file RandomSelect.hpp.
| NumericType RandomLib::RandomSelect< NumericType >::Weight | ( | unsigned | i | ) | const throw () [inline] |
| [in] | i | the index in to the weight vector. |
Definition at line 175 of file RandomSelect.hpp.
| unsigned RandomLib::RandomSelect< NumericType >::Choices | ( | ) | const throw () [inline] |
Definition at line 194 of file RandomSelect.hpp.


mod_uid.c version 1.0
a module issuing the "correct" cookies for counting the
site visitors
Contents
- Copyright
- Purpose
- Installation (Apache 1.x)
- Installation (Apache 2.0.x)
- Configuration
- Cookie format
- What can be written to the log
- Why not mod_usertrack
- TODO
Copyright
Copyright (C) 2000-2002 Alex Tutubalin<EMAIL_ADDRESS>May be distributed and used in derived products under the conditions
analogous to the
Apache License:
the author's copyright and the reference to
http://www.lexa.ru/lexa
must be preserved, and
the derived product should not be called mod_uid.
A prototype of this module was written by the author when he was
working at Rambler Co.; the
present version has been significantly modified.
The author is grateful to Dmitry Khrustalev for valuable advice.
Description
The standard distribution of Apache does not provide adequate means for
user tracking (for problems associated with mod_usertrack, see
below), and this module provides them.
What it actually does:
- if the user has provided the cookie header with the correct cookie-name,
the module writes this cookie in notes with the name uid_got
(accordingly, then it may be written to the log);
- if the user has arrived without the required cookie, the module
issues the SetCookie header for him/her and writes the cookie thus issued
in notes with the name uid_set (and this may also be written
to the log);
- if built-in P3P support is included, the P3P header is also
issued as the Set-Cookie header is issued.
Advantages:
- the cookie contains the date it is issued and the "service number"
(that is, the number specified during configuring); thus, it helps one
understand when the user first arrived at our site and where exactly
he/she arrived;
- multiserver work is supported: under accurate configuring
(or its total absence ;), it is guaranteed that the cookie issued
to the user will be unique;
- the cookie issued to the user and the one received from him/her are
not mingled in the log file;
- the cookies are 128 bit long, and one may work with them in the
log analyzer (quick search etc.) using ready source code intended for
working with IPv6 (for example, libpatricia);
- support of P3P (minimal) is provided.
Installation (Apache 1.x)
While configuring Apache, add the following to ./configure parameters:
--add-module=/path/to/mod_uid.c:
tar xzvf apache_1.3xxx
tar xzvf mod_uid-1.0.xx.tar.gz
cd apache_1.3xx
./configure --prefix=/usr/local/apache \
... --add-module=../mod_uid_1.0.xx/mod_uid.c other-params
make
make install
Installation (Apache 2.0)
You should use mod_uid2.c with Apache 2.0.x
Use the apxs program for installation:
tar xzvf mod_uid-1.xx.tar.gz
cd mod_uid-1.xx
/usr/local/apach/bin/apxs -i -c -a mod_uid2.c
This command will compile (-c), install (-i) and activate (-a)
mod_uid2 module.
Configuration Directives
All the configuration directives may be specified wherever desired:
Server/VirtualServer/Location/... To specify them in .htaccess,
one should allow AllowOverride FileInfo (or All).
- UIDActive On/Off
- Cookie issue turned on/off.
If set to "off", the
cookies received from the client are decoded all the same and may be
written to the log.
Default: On
- UIDCookieName string
- Cookie name (default - uid).
The name of the cookie issued to the client. Should not
match any other name(s) used at the site.
- UIDService number
- The "service number" is a strictly positive (nonzero)
unique number identifying the given server in the cluster or
the given document or document set.
This number is used for two purposes:
- If several servers are used within one domain
(with the same cookie parameter domain=)
or with one hostname, then the use of different
UIDService numbers guarantees that the cookies issued
by different servers will be unique.
- The use of different UIDService numbers for
different parts of the server makes it possible to reveal
(by log analysis) which of the parts was first visited by
the client.
Default: server IP address.
- UIDDomain .domain.name
- Name of the domain for which the cookie is issued
In multiserver configurations, this directive makes it
possible to have a common cookie namespace for all the servers
(for example, mail.rambler.ru, www.rambler.ru, and info.rambler.ru
use the .rambler.ru domain)
If domain= has to be set to "off" for a certain document
set but stay "on" for the server as a whole, one should use
UIDDomain none
in the corresponding config
section (Location/Directory/...).
Default: no domain; that is, the user's browser will
return the cookie only to the originating server.
- UIDPath string
- The path for which the cookie is issued (parameter path= in
Set-Cookie:)
Default: /
- UIDExpires number
-
Sets the expiration date for the cookie.
UIDExpires number
- number of seconds to be
added to the current time.
UIDExpires plus 3 year 4 month 2 day 1 hour 15
minutes
- the same expressed in normal human language.
Default: current date plus 10 years.
- UIDP3P On/Off/Always
- Controls if the P3P header is issued together with the
cookie.
Variants:
- Off - P3P header is not issued;
- On - issued only if the domain parameter
is issued for the cookie;
- Always - always issued (i.e. even without domain).
Default: Off.
This directive is required for satisfying MS IE6+ in the
multiserver configuration and, for example, for including
the "counter" code from another server in the page. In case
the cookie is issued without domain= or domain
includes the current server name for the main document, MS IE6+
with default settings will be satisfied all the same; however,
the cookies may be suppressed for compound documents collected from
different servers.
mod_uid issues only the P3P header (by default,
only with compact policy); support of /w3c/p3p.xml and the like
is up to the owner of the server.
The P3P header is issued only if mod_uid issues the Set-Cookie
header; that is, if you have to issue other cookies as well and
also need P3P for them, the problem of P3P issuing should be solved
separately and independently.
- UIDP3PString string
- Text of the P3P header sent to the client.
Default: CP="NOI PSA OUR BUS UNI"
Cookie Format
The cookie format in the binary form is
unsigned int cookie[4], where
cookie[0] is the "service number" (specified via UIDService);
cookie[1] is the issue time (unix time);
cookie[2] is the pid of the process that issued the cookie;
cookie[3] contains a unique sequencer within the limits of the process
(upper 24 bits, starting value 0x030303) and
the cookie version number (lower 8 bits, now equal to 2).
These 128 bits are converted with respect for the network byte order,
encoded (base64) and sent to the client. (In ver. 1, everything was sent
in the host order, and support of server clusters with different
architectures was thus complicated.)
Uniqueness
Evidently, only insurance can fully guarantee anything. ;) And if
more than 2^128 cookies are issued within a single domain, some of them
will be duplicate. However, the cookie format was developed in such
a way that the cookies must be unique if their number is reasonable.
- If the "service number" is unique (each server has its own)
within the given domain, different servers will surely issue
different cookies.
- Inclusion of the issue time and pid in the cookie implies
that pids of different processes are not duplicated during
one second. This is true for all UNIX systems I know: pids
monotonically increase up to a certain maximum (2^16 or higher). That
is, cookie[1]/cookie[2] may be duplicated within one server if more
than 2^16 fork() is done per second, which is hardly possible
in the present state of matters.
- The sequencer (the upper 24 bits in cookie[3]) enables one
to verify the uniqueness of the cookie within one process during one
second. The capacity of the sequencer makes it possible to issue
up to 1.0E+07 cookies per second by one process.
What can be written to the log
mod_uid writes one of the following two values to "notes":
- if a cookie was received from the client, it is placed in note
uid_got;
- if a cookie was sent to the client, it is placed
in note uid_set.
Cookies are logged as four 32-bit hexadecimal numbers in the host order
(in ver. 2, a network-host conversion is performed; in ver. 1,
everything is saved "as is" under the assumption that the server
architecture did not change since the cookie had been issued).
In LogFormat, these notes may be used in the form of \"%{uid_got}n\"
and \"%{uid_set}n\", respectively.
Using LogFormat of the type
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{uid_got}n\" \"%{uid_set}n combined_cookie
we'll have approximately this kind of log entries:
Cookie sent to the client:
<IP_ADDRESS> - - [05/Jan/2002:00:02:06 +0300] "GET / HTTP/1.0" 200
13487 "-" "Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x
4.90)" "-" "ruid=000000013C36184E00009A2100002901"
Cookie received from the client:
<IP_ADDRESS> - - [05/Jan/2002:00:14:59 +0300] "GET /buttons/but-support-e.gif
HTTP/1.0" 200 252 "http://apache.lexa.ru/english/meta-http-eng.html"
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
"ruid=000000013C361B5000009A0100009501" "-"
Such a format is easily understood by widespread log analyzers, including
Webtrends, which nicely counts visitors according to such a log.
Why not mod_usertrack from the Apache distribution?
Because it has several drawbacks:
- it does not strictly guarantee that the same cookie will not
be issued to two users, although, of course, the probability of
such an event is minimized due to consideration of getpid(),
remote_ip, and time up to milliseconds;
- it does not support multiserver work, and the probability of
issuing identical cookies increases in this case;
- one might wish to see the cookie sent to the user also in the log,
and see it separately, whereas mod_usertrack mingles them;
- one might wish to see the "service number" (see above) in order
to understand which of our services was visited by the user during his
first visit.
TODO
-
Support of various formats (Netscape/Cookie/Cookie2, as in
mod_usertrack), but only if it becomes really necessary -
and so far I haven't noticed any such necessity.
- There is a vague suspicion that the sequencer increment
should be surrounded with mutexes at multithread-apache and
multiprocessor computers.


branch.hh File Reference
(Revision: 3512)
#include "gecode/int.hh"
#include "gecode/int/branch/select-val.icc"
#include "gecode/int/branch/select-view.icc"
#include "gecode/int/branch/assign.icc"
Go to the source code of this file.
Namespaces | |
| namespace | Gecode::Int::Branch |
| namespace | Gecode |
| namespace | Gecode::Int |
Classes | |
| class | Gecode::Int::Branch::ValMin |
| Class for selecting minimum value. More... | |
| class | Gecode::Int::Branch::ValMed |
| Class for selecting maximum value. More... | |
| class | Gecode::Int::Branch::ValMax |
| Class for selecting median value. More... | |
| class | Gecode::Int::Branch::ValSplitMin |
| Class for splitting domain (lower half first). More... | |
| class | Gecode::Int::Branch::ValSplitMax |
| Class for splitting domain (upper half first). More... | |
| class | Gecode::Int::Branch::ByNone |
| View selection class for first variable. More... | |
| class | Gecode::Int::Branch::ByMinMin |
| View selection class for view with smallest min. More... | |
| class | Gecode::Int::Branch::ByMinMax |
| View selection class for view with largest min. More... | |
| class | Gecode::Int::Branch::ByMaxMin |
| View selection class for view with smallest max. More... | |
| class | Gecode::Int::Branch::ByMaxMax |
| View selection class for view with largest max. More... | |
| class | Gecode::Int::Branch::BySizeMin |
| View selection class for view with smallest size. More... | |
| class | Gecode::Int::Branch::BySizeMax |
| View selection class for view with largest size. More... | |
| class | Gecode::Int::Branch::ByDegreeMin |
| View selection class for view with smallest degree (and smallest size in case of ties). More... | |
| class | Gecode::Int::Branch::ByDegreeMax |
| View selection class for view with largest degree (and smallest size in case of ties). More... | |
| class | Gecode::Int::Branch::ByRegretMinMin |
| View selection class for view with smallest min-regret. More... | |
| class | Gecode::Int::Branch::ByRegretMinMax |
| View selection class for view with largest min-regret. More... | |
| class | Gecode::Int::Branch::ByRegretMaxMin |
| View selection class for view with smallest max-regret. More... | |
| class | Gecode::Int::Branch::ByRegretMaxMax |
| View selection class for view with largest max-regret. More... | |
| class | Gecode::Int::Branch::AssignDesc |
| Branching descriptions storing position and value More... | |
| class | Gecode::Int::Branch::Assign |
| Assignment (single-alternative branching) base-class. More... | |
| class | Gecode::Int::Branch::AssignMin |
| Minimum assignment (single-alternative branching). More... | |
| class | Gecode::Int::Branch::AssignMed |
| Median assignment (single-alternative branching). More... | |
| class | Gecode::Int::Branch::AssignMax |
| Maximum assignment (single-alternative branching). More... | |
Functions | |
| template<class SelView> | |
| void | Gecode::Int::Branch::create (Space *home, ViewArray< IntView > &, BvalSel) |
| Create branchings for a given view selection strategy ViewSel. |


| Package | Description |
|---|---|
| com.mxgraph.analysis |
This package provides various algorithms for graph analysis, such as
shortest path and minimum spanning tree.
|
| com.mxgraph.io |
This package contains all classes for input/output.
|
| com.mxgraph.layout |
This package contains various graph layouts.
|
| com.mxgraph.layout.hierarchical | |
| com.mxgraph.layout.hierarchical.stage | |
| com.mxgraph.layout.orthogonal | |
| com.mxgraph.layout.orthogonal.model | |
| com.mxgraph.swing |
This package contains the main component for JFC/Swing, namely the graph
component and the outline component.
|
| com.mxgraph.swing.handler |
This package contains all classes required for mouse event handling in
JFC/Swing.
|
| com.mxgraph.swing.util |
This package contains all utility classes that require JFC/Swing, namely for
mouse event handling, drag and drop, actions and overlays.
|
| com.mxgraph.util |
This package provides utility classes such as mxConstants, mxUtils, mxPoint
and mxRectangle as well as all classes for custom events and the undo
history.
|
| com.mxgraph.view |
This package implements the graph component, represented by the mxGraph
class.
|
| Modifier and Type | Field and Description |
|---|---|
protected mxGraph |
mxAnalysisGraph.graph |
| Modifier and Type | Method and Description |
|---|---|
mxGraph |
mxAnalysisGraph.getGraph() |
| Modifier and Type | Method and Description |
|---|---|
mxUnionFind |
mxGraphAnalysis.getConnectionComponents(mxGraph graph,
java.lang.Object[] v,
java.lang.Object[] e)
Returns a union find structure representing the connection components of
G=(E,V).
|
static mxGeneratorFunction |
mxGraphGenerator.getGeneratorFunction(mxGraph graph,
boolean weighted,
double minWeight,
double maxWeight) |
java.lang.Object[] |
mxGraphAnalysis.getMinimumSpanningTree(mxGraph graph,
java.lang.Object[] v,
mxICostFunction cf,
boolean directed)
Returns the minimum spanning tree (MST) for the graph defined by G=(E,V).
|
java.lang.Object[] |
mxGraphAnalysis.getMinimumSpanningTree(mxGraph graph,
java.lang.Object[] v,
java.lang.Object[] e,
mxICostFunction cf)
Returns the minimum spanning tree (MST) for the graph defined by G=(E,V).
|
java.lang.Object[] |
mxGraphAnalysis.getShortestPath(mxGraph graph,
java.lang.Object from,
java.lang.Object to,
mxICostFunction cf,
int steps,
boolean directed)
Returns the shortest path between two cells or their descendants
represented as an array of edges in order of traversal.
|
void |
mxAnalysisGraph.setGraph(mxGraph graph) |
| Modifier and Type | Method and Description |
|---|---|
static void |
mxGdCodec.decode(java.lang.String input,
mxGraph graph)
Parses simple GD format and populate the specified graph
|
static java.lang.String |
mxGdCodec.encode(mxGraph graph)
Generates a GD text output with the cells in the graph.
|
| Modifier and Type | Field and Description |
|---|---|
protected mxGraph |
mxGraphLayout.graph
Holds the enclosing graph.
|
| Modifier and Type | Method and Description |
|---|---|
mxGraph |
mxGraphLayout.getGraph()
Returns the associated graph.
|
| Constructor and Description |
|---|
mxCircleLayout(mxGraph graph)
Constructs a new stack layout layout for the specified graph,
spacing, orientation and offset.
|
mxCircleLayout(mxGraph graph,
double radius)
Constructs a new stack layout layout for the specified graph,
spacing, orientation and offset.
|
mxCompactTreeLayout(mxGraph graph) |
mxCompactTreeLayout(mxGraph graph,
boolean horizontal) |
mxCompactTreeLayout(mxGraph graph,
boolean horizontal,
boolean invert) |
mxEdgeLabelLayout(mxGraph graph)
Constructs a new stack layout layout for the specified graph,
spacing, orientation and offset.
|
mxFastOrganicLayout(mxGraph graph)
Constructs a new fast organic layout for the specified graph.
|
mxGraphLayout(mxGraph graph)
Constructs a new fast organic layout for the specified graph.
|
mxOrganicLayout(mxGraph graph)
Constructor for mxOrganicLayout.
|
mxOrganicLayout(mxGraph graph,
java.awt.geom.Rectangle2D bounds)
Constructor for mxOrganicLayout.
|
mxParallelEdgeLayout(mxGraph graph)
Constructs a new stack layout layout for the specified graph,
spacing, orientation and offset.
|
mxParallelEdgeLayout(mxGraph graph,
int spacing)
Constructs a new stack layout layout for the specified graph,
spacing, orientation and offset.
|
mxPartitionLayout(mxGraph graph)
Constructs a new stack layout layout for the specified graph,
spacing, orientation and offset.
|
mxPartitionLayout(mxGraph graph,
boolean horizontal)
Constructs a new stack layout layout for the specified graph,
spacing, orientation and offset.
|
mxPartitionLayout(mxGraph graph,
boolean horizontal,
int spacing)
Constructs a new stack layout layout for the specified graph,
spacing, orientation and offset.
|
mxPartitionLayout(mxGraph graph,
boolean horizontal,
int spacing,
int border)
Constructs a new stack layout layout for the specified graph,
spacing, orientation and offset.
|
mxStackLayout(mxGraph graph)
Constructs a new stack layout layout for the specified graph,
spacing, orientation and offset.
|
mxStackLayout(mxGraph graph,
boolean horizontal)
Constructs a new stack layout layout for the specified graph,
spacing, orientation and offset.
|
mxStackLayout(mxGraph graph,
boolean horizontal,
int spacing)
Constructs a new stack layout layout for the specified graph,
spacing, orientation and offset.
|
mxStackLayout(mxGraph graph,
boolean horizontal,
int spacing,
int x0,
int y0,
int border)
Constructs a new stack layout layout for the specified graph,
spacing, orientation and offset.
|
| Constructor and Description |
|---|
mxHierarchicalLayout(mxGraph graph)
Constructs a hierarchical layout
|
mxHierarchicalLayout(mxGraph graph,
int orientation)
Constructs a hierarchical layout
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
mxCoordinateAssignment.calculateWidestRank(mxGraph graph,
mxGraphHierarchyModel model)
Calculates the width rank in the hierarchy.
|
protected void |
mxCoordinateAssignment.rankCoordinates(int rankValue,
mxGraph graph,
mxGraphHierarchyModel model)
Sets up the layout in an initial positioning.
|
protected void |
mxCoordinateAssignment.setCellLocations(mxGraph graph,
mxGraphHierarchyModel model)
Sets the cell locations in the facade to those stored after this layout
processing step has completed.
|
| Constructor and Description |
|---|
mxOrthogonalLayout(mxGraph graph) |
| Constructor and Description |
|---|
mxOrthogonalModel(mxGraph graph) |
| Modifier and Type | Field and Description |
|---|---|
protected mxGraph |
mxGraphComponent.graph |
| Modifier and Type | Method and Description |
|---|---|
mxGraph |
mxGraphComponent.getGraph() |
| Modifier and Type | Method and Description |
|---|---|
void |
mxGraphComponent.setGraph(mxGraph value) |
| Constructor and Description |
|---|
mxGraphComponent(mxGraph graph) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
mxSelectionCellsHandler.addGraphListeners(mxGraph graph)
Installs the listeners to update the handles after any changes.
|
protected void |
mxConnectionHandler.addGraphListeners(mxGraph graph)
Installs the listeners to update the handles after any changes.
|
protected void |
mxSelectionCellsHandler.removeGraphListeners(mxGraph graph)
Removes all installed listeners.
|
protected void |
mxConnectionHandler.removeGraphListeners(mxGraph graph)
Removes all installed listeners.
|
| Modifier and Type | Method and Description |
|---|---|
static mxGraph |
mxGraphActions.getGraph(java.awt.event.ActionEvent e) |
| Modifier and Type | Method and Description |
|---|---|
protected int |
mxGraphActions.GroupAction.getGroupBorder(mxGraph graph) |
protected int |
mxGraphActions.UpdateGroupBoundsAction.getGroupBorder(mxGraph graph) |
| Modifier and Type | Method and Description |
|---|---|
static java.awt.image.BufferedImage |
mxCellRenderer.createBufferedImage(mxGraph graph,
java.lang.Object[] cells,
double scale,
java.awt.Color background,
boolean antiAlias,
mxRectangle clip) |
static java.awt.image.BufferedImage |
mxCellRenderer.createBufferedImage(mxGraph graph,
java.lang.Object[] cells,
double scale,
java.awt.Color background,
boolean antiAlias,
mxRectangle clip,
mxGraphics2DCanvas graphicsCanvas) |
static org.w3c.dom.Document |
mxCellRenderer.createHtmlDocument(mxGraph graph,
java.lang.Object[] cells,
double scale,
java.awt.Color background,
mxRectangle clip) |
static org.w3c.dom.Document |
mxCellRenderer.createSvgDocument(mxGraph graph,
java.lang.Object[] cells,
double scale,
java.awt.Color background,
mxRectangle clip) |
static org.w3c.dom.Document |
mxCellRenderer.createVmlDocument(mxGraph graph,
java.lang.Object[] cells,
double scale,
java.awt.Color background,
mxRectangle clip) |
static mxICanvas |
mxCellRenderer.drawCells(mxGraph graph,
java.lang.Object[] cells,
double scale,
mxRectangle clip,
mxCellRenderer.CanvasFactory factory)
Draws the given cells using a Graphics2D canvas and returns the buffered image
that represents the cells.
|
| Modifier and Type | Field and Description |
|---|---|
protected mxGraph |
mxSwimlaneManager.graph
Defines the type of the source or target terminal.
|
protected mxGraph |
mxLayoutManager.graph
Defines the type of the source or target terminal.
|
protected mxGraph |
mxGraphSelectionModel.graph
Reference to the enclosing graph.
|
protected mxGraph |
mxGraphView.graph
Reference to the enclosing graph.
|
| Modifier and Type | Method and Description |
|---|---|
mxGraph |
mxSwimlaneManager.getGraph() |
mxGraph |
mxLayoutManager.getGraph() |
mxGraph |
mxGraphView.getGraph()
Returns the enclosing graph.
|
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
mxMultiplicity.check(mxGraph graph,
java.lang.Object edge,
java.lang.Object source,
java.lang.Object target,
int sourceOut,
int targetIn)
Function: check
Checks the multiplicity for the given arguments and returns the error
for the given connection or null if the multiplicity does not apply.
|
boolean |
mxMultiplicity.checkNeighbors(mxGraph graph,
java.lang.Object edge,
java.lang.Object source,
java.lang.Object target)
Checks the type of the given value.
|
boolean |
mxMultiplicity.checkTerminal(mxGraph graph,
java.lang.Object terminal,
java.lang.Object edge)
Checks the type of the given value.
|
boolean |
mxMultiplicity.checkType(mxGraph graph,
java.lang.Object value,
java.lang.String type)
Checks the type of the given value.
|
boolean |
mxMultiplicity.checkType(mxGraph graph,
java.lang.Object value,
java.lang.String type,
java.lang.String attr,
java.lang.String attrValue)
Checks the type of the given value.
|
void |
mxSwimlaneManager.setGraph(mxGraph graph) |
void |
mxLayoutManager.setGraph(mxGraph value) |
| Constructor and Description |
|---|
mxGraphSelectionModel(mxGraph graph)
Constructs a new selection model for the specified graph.
|
mxGraphView(mxGraph graph)
Constructs a new view for the given graph.
|
mxLayoutManager(mxGraph graph) |
mxSwimlaneManager(mxGraph graph) |
Copyright (c) 2010 Gaudenz Alder. All rights reserved.


Provides financial home loan application (mortgage) with examples of human task integration, form designer, service task, error handling, decision table, tests and validation rules.
Use: web serivce integration, error handling, rules integration, financial rules, validation rules, user tasks, etc.
Online business friendly baggage delivery process showcases forms modeler, BPM process, rules from an external spreadsheet, a decision table, use of domain specific language (DSL) and Business Activity Monitoring (BAM).
Online financial loan application with data model, rules for rate and eligibility calculations, human tasks, task forms and an example of signal integration into a business process.
Use: rules, financial loans, eligbility calculations, user tasks, signal integration in process.
JBoss BPM Travel Agency migrated to disparate data sources after acquisition.
Use: same as normal travel agency, but features acquisition story, integration of multiple data sources without changes to project or re-deploying apps, leverages data model & JBDC.


Sven
Tips
- Storm Hammer is arguably the best level one stun in the game. The caveat is that you'll only have the
mana for one stun every five minutes because of how mana hungry the spell is and how terrible Sven's INT
gain is. Pretty much every time you drop the Hammer during the laning phase, it needs to end up in a
kill.
- Warcry is a very potent pushing skill. The armor buff applies to all allied units in the AoE, including
summons. Even if you're not pushing, you can use it on your creep wave as it passes the river to get
some extra tower damage or to make it harder for the enemy to last hit.
- Warcry is a very potent chasing skill. The 12% move speed buff is almost another pair of brown Boots'
worth of MS. Take a level of this early on.
- Warcry is a very potent team fighting skill. When maxed, you're giving an Assault Cuirass's's's worth of
armor to everyone on your team for 7 seconds.
- God's Strength multiplies Sven's primary attribute damage. Meaning, when you go full WOLOLO, your STR is
getting multiplied, but items that are adding green + damage (raw damage items) aren't get multiplied.
- Sven is the only hero on whom BKB is truly core core. On nearly every other hero, BKB is
primarily bought a defensive item, but because God's Strength jacks Sven up from his STR, BKB is a
ridiculously strong offensive item on him, giving +44/49/54 damage at 6/11/16. This is the same reason
why Heart is actually a very strong damage item on Sven (+80/100/120 dmg).
 Time
spent disabled is time spent not smashing everything in your path.
Counters
- You can disjoint Storm Hammer. If the primary target of the stun disjoints it, nothing in the AoE will
get stunned.
 He's a STR hero, but he's often built like a
plexiglass cannon. In team fights, he should pretty much always be the top priority if he's the carry.


Event Location:
Derivco
77 armstrong avenue
Durban, KwaZulu-Natal, South Africa
Abstract:
With the vast amount of changes that occur in our daily business environments, it becomes more and more difficult to achieve our corporate goals without some ‘lighthouse’ to guide our way. Data mining, (while not a panacea to resolve or ‘control’ the effects of these changes), can provide us with statistical trends by analyzing our data and highlighting probable outcomes. In this hands on BEGINNERS presentation we shall be looking at Microsoft SQL Server’s Data Mining capabilities and we shall be discussing: 1) Defining what questions we want answered and how to go about this in an effective and efficient manner. 2) Creating the data model. 3) How to gather the necessary data, discussing the training and testing aspect. 4) Processing the model. 5) Extracting information from our finished model, discussing the implications of this information.
Speaker(s): Steve Simon,
Abstract:
Windowing functions in T-SQL add power and speed to your queries, and have myriad uses in all types of situations. Songs by The Beatles spent a combined 585 weeks on the Top 100 Billboard Chart. In this session, we'll combine these unlikely bedfellows, by using The Beatles' chart data to gain an in-depth knowledge of Windowing Functions in T-SQL. Learn the theory behind each clause in the Windowing Functions and immediately see it applied in both an abstract, and concrete, way. Learn how Windowing Functions can help you enhance your queries, and solve complex problems quickly and easily. From running totals, to lag and lead queries, Windowing Functions will help you deliver high quality information in no time. Once you've seen the power of these functions, you'll wonder how you ever lived without them. Understanding Windowing Functions may seem like a "Long and Winding Road", but "Come Together" and walk away with a skill that you'll use "Here, There and Everywhere".
Speaker(s): James McGillivray,
Abstract:
The SQL Server query optimiser is incredibly good at its job. It can generate good, fast execution plans for 1 row, three table OLTP queries and 1 billion row, all the tables analytics queries and just about everything in between. But it’s not perfect, and there are query patterns that will send the optimiser for a complete loop and the query execution times through the roof. We’re going to look at the more common of those query patterns and see exactly what it is about them that causes problems. We’ll spend some time on ways of identifying such queries in production and we’ll look at a variety of ways to write the queries so that they work with the optimiser, not against it. Along the way you’ll learn enough about the behaviour of the optimiser to be able to identify other problematic query forms before they cause problems.
Speaker(s): Gail Shaw,
Abstract:
What does a SQL Developer do? This presentation will be targeting Entry level developers to give a basic understanding of SQL and its day to day uses. We will be taking you through a few key concepts along with practical examples: 1. Basic SQL 2. Best Practices 3. Optimizing a Badly Performing Query
Speaker(s): Ruben Meyer,
Abstract:
Social Media data can be very powerful in growing your business, however this is BigData and not many companies know how to consume it and get the most benefit out of it. PowerBI has great features that allow you to use their templates to explore the data and get the most value out of it to make your marketing decisions. There will be a demo on how to set up a PowerBI Twitter Campaign, Facebook and Google Analytics dashboards and how to get value out of them.
Speaker(s): Jeanne Combrinck,
Abstract:
What is a database actually? What does SQL give you out of the box? How is data actually stored? What is a page, what is a log, what does 'Hardening to disk' actually mean? Are there only 4 commands in a database? This session is designed to give a respectful nod to all the things you "Get for free" when working on a Database.
Speaker(s): Rory Bolle,
Abstract:
In this session we look at how R in SQL Server can be used in a production environment to automatically run models against data coming into SQL Server, as well as update the model with no interference from the data scientist.
Speaker(s): Niels Berglund,
Abstract:
Whether we're aware of it or not, Transactions are used in all our SQL code. Let's take a dive into the details and see how we can use Transactions to code defensively and efficiently, and look at gotchas like what does a nested transaction actually mean.
Speaker(s): Jonathan Pillay,
Abstract:
This session will walk through getting started with Microsoft Open R and Visual Studio. We'll cover reading data into R, accessing R packages, writing R functions, and organizing and commenting R code.
Speaker(s): Luis de Sousa,
Abstract:
Far too few database developers in this day and age get the opportunity to learn how to design relation databases. In most cases, they will on occasion be asked to add a few objects to an existing system while following the standards of the organisation. These relatively infrequent changes do not hone the skills needed for effective design.
Speaker(s): Sean Cremer,
Abstract:
In this interactive session we will discuss what and who to take into consideration when thinking about a data strategy
Speaker(s): Jody Roberts,
Abstract:
PowerBI is a powerful suite of tools that enables any user to create and share stunning reports. In this session, you will learn how easily stunning reports can be created and shared with just a few clicks of your mouse. You will learn how PowerBI can connect to data that exists on-premise as well as in the cloud. that data can then be cleansed, transformed and then modelled to allow the discovery of powerful new insights that can then easily be shared with colleagues and clients. Finally, we will discuss the licencing model behind PowerBI which ranges from the free Desktop tool through to Premium licencing options.
Speaker(s): Michael Johnson,
Abstract:
By the time of me writing this, SQL Server 2017 is out as Community Technical Preview's and the it shows some very interesting new functionality. In this session we will have a quick look at what is new in SQL Server 2017 from a developers perspective.
Speaker(s): Niels Berglund,
Abstract:
Data does not become information until decision makers are able to view it and make those decisions that affect the enterprise as a whole. Stored procedures are one means of getting the data from the database tables to the reports in an effective and efficient manner. In this hands-on presentation, we shall be looking at best practices with regards to creating and tuning stored procedures. We shall also be discussing parameter sniffing and other gotcha’s that affect us in our daily lives.
Speaker(s): Steve Simon,
Abstract:
One of the new features announced for SQL Server 2017 is Adaptive Query Plans, query plans that can change after the query starts executing. This session will show why this is a radical departure from the way that things have worked until now and how it can improve the performance of some query forms. We’ll look at the places where adaptive query plans work and compare the performance of queries using adaptive query plans to see just what kind of improvement it can make.
Speaker(s): Gail Shaw,
Abstract:
There are a lot of buzzwords being through around the last few years in the development space... Things like "containers", "Docker", "Service Fabric" and the sorts. In this session we will look at what these various pieces of software are, what they are are good at and how work really well with SQL Server v.Next (2017) to give you exceptional availability for your data store.
Speaker(s): Clinton van Blommestein,
This is a list of speakers from the XML Guidebook records. The details and URLs were valid at the time of the event.
LinkedIn: http://www.linkedin.com/in/stephenrsimon/
Contact: http://www.sqlservercentral.com/blogs/simon_says/
Steve Simon is a Database Solutions Architect with Business Knowledge Services Inc. He has been involved with database design and analysis for over 35 years. Steve has presented papers at numerous PASS Summits and PASS SQL Rallies. He is also regular presenter on the SQL Saturday circuit and he is a contributor on SQLShack.com
LinkedIn: http://www.linkedin.com/profile/preview?locale=en_UStrk=prof-0-sb-preview-primary-button
Contact: https://seancremer.github.io/
Sean Cremer is a Senior Developer at Derivco. He has worked with SQL Server for nearly two decades on Large OLTP and Data Warehousing Systems and has a wealth of accumulated Database Design and Implementation knowledge.
Jonathan has had the awesome opportunity of learning from some the best SQL Guru's in the industry. Being exposed to such wizardry and willingness to share, he has developed his own passion for knowledge sharing.
LinkedIn: https://za.linkedin.com/in/niels-berglund-0122593
Contact: https://nielsberglund.com
Niels works as Software Architect at Derivco, where he develops software as well as "dreaming" up new and innovative ways to use existing and new technology. Before joining Derivco, Niels worked as researcher/instructor at Developmentor where he was responsible for the database curriculum. He was a co-author of the first SQL Server 2005 book for developers: quot; A First Look at SQL 2005 for Developersquot;. He has presented at all leading technical conferences; Tech-ED, SQL PASS, DevWeek, Ignite the Tour, etc., and is also a Microsoft Data Platform MVP.
LinkedIn: https://za.linkedin.com/in/clintonvb
Clinton is a senior developer at Derivco in Durban (South Africa), a company that is a leader in the online gaming space. He has over 16 years experience in highly transactions systems, with focus on the services and data tiers. He is a regular speaker at SQL events in South Africa, is also the co-leader for the Durban SQL User Group and has recognised as a Couchbase Champion for his contribution to their community.
LinkedIn: http://www.linkedin.com/in/stephenrsimon/
Contact: http://www.sqlservercentral.com/blogs/simon_says/
Steve Simon is a Database Solutions Architect with Business Knowledge Services Inc. He has been involved with database design and analysis for over 35 years. Steve has presented papers at numerous PASS Summits and PASS SQL Rallies. He is also regular presenter on the SQL Saturday circuit and he is a contributor on SQLShack.com
Contact: http://sqlinthewild.co.za
Gail Shaw is a Database Specialist focusing on database performance tuning and database recovery, with a particular interest in topics such as indexing strategies, execution plans, and writing T-SQL code that performs well and scales gracefully. Gail holds a Microsoft Certified Master certification for SQL Server 2008 and is a Data Platform MVP. She's a frequent poster on the SQLServerCentral forums, a Pluralsight author, writes articles for both SQLServerCentral.com and Simple-Talk.com, and has spoken at SQLSaturdays, SQL Bits and at the PASS Community Summit. Gail has been responsible for extending the lifespan of many an application, by performance-tuning their databases and providing technical guidance on all things SQL Server related.
Database Developer
LinkedIn: http://za.linkedin.com/pub/jody-roberts/7/b29/193/Edit
Contact: http://JodyWP.wordpress.com
Jody Roberts is a Microsoft Data Platform MVP based in Cape Town, South Africa. He specializes in SQL Server architecture, disaster recovery (DR), and server optimization. Jody serves as a PASS Regional Mentor responsible for the Middle East amp; Africa, Chapter Lead of the SQLCape user group, and Co-Lead of the PASS Cloud Virtual Chapter. Jody is a Principal Consultant at Northern Data.
LinkedIn: https://za.linkedin.com/in/niels-berglund-0122593
Contact: https://nielsberglund.com
Niels works as Software Architect at Derivco, where he develops software as well as "dreaming" up new and innovative ways to use existing and new technology. Before joining Derivco, Niels worked as researcher/instructor at Developmentor where he was responsible for the database curriculum. He was a co-author of the first SQL Server 2005 book for developers: quot; A First Look at SQL 2005 for Developersquot;. He has presented at all leading technical conferences; Tech-ED, SQL PASS, DevWeek, Ignite the Tour, etc., and is also a Microsoft Data Platform MVP.
LinkedIn: http://za.linkedin.com/in/luisdza
Contact: http://www.luisdesousa.co.za
Consult to large financial institutions in South Africa providing Business Intelligence and Analysis insight.
LinkedIn: https://za.linkedin.com/in/thejimmyrsa
Contact: https://jimbabwe.co.za/blog-posts/
James McGillivray, Data Management and Analytics MCSE, has been working in Business Intelligence for over a decade. He spends his working hours building solutions that allow people to make informed decisions quickly and accurately. James is a director at Cobalt Analytics. Before his career in data, James was an avid musical theatre student and musician. This love for performance has developed into a passion for developing and delivering presentations that are informative and enjoyable. James speaks frequently at the Johannesburg SQL User Group, and has delivered sessions at numerous SQL Saturdays, PASS Summit, Power BI World Tour and SQL Bits.
Contact: http://sqlinthewild.co.za
Gail Shaw is a Database Specialist focusing on database performance tuning and database recovery, with a particular interest in topics such as indexing strategies, execution plans, and writing T-SQL code that performs well and scales gracefully. Gail holds a Microsoft Certified Master certification for SQL Server 2008 and is a Data Platform MVP. She's a frequent poster on the SQLServerCentral forums, a Pluralsight author, writes articles for both SQLServerCentral.com and Simple-Talk.com, and has spoken at SQLSaturdays, SQL Bits and at the PASS Community Summit. Gail has been responsible for extending the lifespan of many an application, by performance-tuning their databases and providing technical guidance on all things SQL Server related.
LinkedIn: https://za.linkedin.com/in/niels-berglund-0122593
Contact: https://nielsberglund.com
Niels works as Software Architect at Derivco, where he develops software as well as "dreaming" up new and innovative ways to use existing and new technology. Before joining Derivco, Niels worked as researcher/instructor at Developmentor where he was responsible for the database curriculum. He was a co-author of the first SQL Server 2005 book for developers: quot; A First Look at SQL 2005 for Developersquot;. He has presented at all leading technical conferences; Tech-ED, SQL PASS, DevWeek, Ignite the Tour, etc., and is also a Microsoft Data Platform MVP.
LinkedIn: https://za.linkedin.com/in/jeannecombrinck
Contact: http://thesqlgirl.com
Senior BI Developer at Britehouse. In her spare time she can be found spending time with her animals, doing SQL puzzles and writing on her blog http://thesqlgirl.com/.
Rory studied Information technology, ran a small computer shop then found Derivco as a Tester. Moved as soon as possible to Data Development and it has stuck. Rory really loves wood work, general garage tinkering and has a second child on the way which his wife has told him he is excited about. Rory's Derivco career has centered around delivering data from 40+ busy source databases to +-120 consumer databases. The main focus in this space is deduplication and compression of data while finding the correct balance between RBAR and batching. If moving data is your thing, Rory can help.
LinkedIn: http://za.linkedin.com/pub/michael-johnson/22/73/735
Contact: http://michaeladrianjohnson.com/
Michael Johnson is a Microsoft data platform MVP and leader of the Johannesburg SQL User Group and Business Analytics Virtual Group. He works as an Independent Business Intelligence Consultant and regularly presents at local user groups, SQL Saturdays and PASS Virtual Chapters.
The following is a list of sponsors that helped fund the event.


--- title: Eval keywords: fastai sidebar: home_sidebar summary: "This module contains all the necessary functions for evaluating different video duplication detection techniques." description: "This module contains all the necessary functions for evaluating different video duplication detection techniques." nb_path: "nbs/02_eval.ipynb" ---
rs = [[1, 0, 0], [0, 1, 0], [0, 0, 0]]
mean_reciprocal_rank(rs)
r = [1, 1, 0, 1, 0, 1, 0, 0, 0, 1]
average_precision(r)
mean_average_precision(rs)
from nbdev.export import notebook2script
notebook2script()


@import model.{InvalidEmail, OtherError, Subscribed, SubscriptionResult} @(result: SubscriptionResult)
Open up the email and click the verify button to confirm your email address.
You'll then start receiving the daily email.
} case InvalidEmail => { @fragments.inlineSvg("cross", "icon")Sorry, we couldn't verify that email address. Please try again or contact userhelp@@theguardian.com.
} case OtherError => { @fragments.inlineSvg("cross", "icon")Sorry, there was a problem with your subscription request. Please try again or contact userhelp@@theguardian.com.
} }


Volkswagen's 200-HP Electric Motor Can Fit In A Duffel Bag
Just imagine the EV swaps you could do with it.
by Jared RosenholtzNext week at the 2019 Los Angeles Auto Show, Volkswagen will reveal a new concept vehicle called the ID. Space Vizzion. The Space Vizzion is the latest concept under VW's all-electric ID sub-brand and much to our delight, it sports a wagon body style. We still don't know if VW plans to put the Space Vizzion into production but we do know the first ID-branded vehicle to arrive in the US will be a crossover, likely called the ID.4.
Like the ID.3 hatchback revealed in the European market, the ID.4 should arrive with a rear-mounted electric motor delivering 201 horsepower and 228 lb-ft of torque. VW says this electric motor is extremely compact and has even released a picture of it fitting into a small duffel bag.
The electric motor has a stationary stator made of copper wire coils inside it, which conducts an electric current creating a rotating magnetic field, causing it to spin. VW produces the APP 310 electric drive (named for its 310 Nm of torque) at various production sites before installing it in the ID.3. The rotor and stator, for example, are produced at the component plant in Salzgitter while the one-speed gearbox is built in Kassel.
VW says the entire drive unit with the gearbox only weighs 90 kilograms (around 198 pounds) yet it generates as much power as the company's 2.0-liter turbocharged four-cylinder used in the Golf GTI from just a few years ago. Around 500,000 units of the electric drive will be produced in Kassel, Germany while another 700,000 will be built in Tianjin, China.
You Might Also Like
Aside from its use in production VW models, we can already see a number of aftermarket uses for the APP 310 electric drive. Since the unit is so small, it would be perfect for an EV swap on a classic car (VW or otherwise). Just imagine 201 silent horsepower in a vintage VW Samba bus. The idea sounds pretty great if you ask us.


I had never even heard of this stuff until about 3 days ago. After reading all the experiences on here I decided to give it a try. To my amazement a local shop at the mall carried some (just regular leaves, not the extract). A friend and I took it home, not quite knowing what to expect. We then sat down with a trip sitter watching us and smoked about 3 pipe hits apiece. This gave me a pretty strong marijuana-like buzz, but I wanted to get the full experience, so I immediately followed it with 2 bong hits. After I blew out my second hit, I was beginning to feel disappointed. It had given me a good buzz, but I still was not tripping.
 At this point I noticed that a perfect plane was dividing my room in half, bisecting my head. It was not really a plane that was visibly there, but I could SENSE it very strongly. Everything on one side of the plane was being pushed in one direction, and everything on the other side was being pushed the other way. I could feel my head splitting in half along the axis of the plane, but it did not hurt, it just made me laugh harder. Within 1-2 minutes this effect faded out and I was left with a strong buzz that went away within about 20 minutes. This stuff is really weird, when it hits you it hits like a freight train, and it comes out of nowhere.... I want to get some extract and go for the higher levels I've read about.
-Chris
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Manager Bob 1 other stuff 1<EMAIL_ADDRESS>Engineer Bob 2 other stuff 2<EMAIL_ADDRESS>Employee Bob 3 other stuff 3 bob3@thebobs.com


Hi I'm Zach I enjoy making Youtube videos for you guys, I also know how to code with is quite cool go check out my other website for more info on that (link at the top). Come join my discord (click the button at the top) and check out my other social media.
Here's some music i like:


VI.3 Land Development Physical Improvements
Improvements – Land Development (VI.3.)
Focus on the
engineering of the approved infrastructure and common areas to obtain the necessary approvals.
- Detailed plans and specification that can be approved by authorities.
- Bid-out proposed improvements.
- Detailed plans and specifications from which costs and bids can be estimated.
- Post the required performance and fiduciary bonds.
- Performance bonds: guarantee that the improvements will be completed.
- Fiduciary bonds: guarantee that constructed improvements will hold up.
Contract to have the infrastructure and common area constructed on-time and on budget.
- Multiple contractors for:
- Wet utilities: water, sewer, gas
- Dry utilities: electric telephone, communications
- Road construction
- Traffic control systems
- Special projects
- Off-site improvements
- Trunk sewer lines
- Sewer lift stations
- Road intersection and traffic calming improvements
- Transit stations
- Parks and recreational areas
Stage, manage and control the land development construction.
- Scheduling is all-important; re-scheduling is to be expected.
- Reserves for contingencies and delays.
- Citizens safety and convenience.
- Actual vs Budget reports.