const
Layers = require('./Layers'),
Input = require('./layers/Input'),
Output = require('./layers/Output');
/**
* This is the Model class
* @example
* let myModel = new Model({
* layers: [
* { input: 30 },
* { dense: 'tanh', bias: true, out: 30 }
* { output: 3, loss: 'mean_squared_error' }
* ]
* });
*/
class Model {
/**
* Creates a new model ready to execute and train on input.
* @param {Object[]} model - Array of objects describing model layers
* @param {?(Float32Array|ArrayBuffer)} weights - Weights for all layers
*/
constructor(model, weights) {
this.input = new Input(model.shift());
this.inputs = this.input.layer.input;
this.output = new Output(model.pop());
this.outputs = this.output.layer.output;
/**
* Hidden layers of the model. The input layer is at index: 0, and the output layer is at index: layers.length - 1
* @type {Object[]}
* */
this.hidden = new Array(model.length);
/**
* Number of weights and biases in entire model.
* @type {number}
* */
this.size = 0;
/**
* The model description
* @type {Object}
*/
this.model = model;
this.load(weights);
}
/**
* Execute forward pass of input through model.
* @param {Float32Array|Tensor} input - Features input to model
* @returns {Tensor} Tensor containing model output
*/
forward(input) {
// forward propogation
var output = input;
// var output = this.input.forward(input);
var l = -1;
for (var layer of hidden)
output = layer.forward(output);
return this.output.forward(output);
}
/**
* Execute backward pass of error through model.
* @param {Tensor} output - Error from output
*/
backward(output, learn) {
// backward propogation
var l = this.hidden.length;
while (l--)
output = this.hidden[l].backward(output, learn);
}
/**
* Validate model and pass output accuracy as argument to callback.
* @param {Float32Array|Tensor} input - Features input to model
* @param {Float32Array|Tensor} expect - Expected model output
* @param {?validtionCallback} callback
*/
validate(input, expect, callback) {
this.forward(input);
this.output.backward(expect);
if (typeof callback === "function") callback(this.output.accuracy)
}
/**
* Callback for validation
* @callback validtionCallback
* @param {number} accuracy
*/
/**
* Train model and pass new weights and model accuracy as arguments to callback.
* @param {Float32Array|Tensor} input - Features input to model
* @param {Float32Array|Tensor} expect - Expected model output
* @param {?trainingCallback} callback
*/
train(input, expect, learn, callback) {
this.forward(input);
this.backward(this.output.backward(expect), learn);
if (typeof callback === "function") callback(this.save(), this.output.loss);
}
/**
* Callback for training
* @callback trainingCallback
* @param {Float32Array} weights - Updated weights from model
* @param {number} accuracy - Accuracy of model's output
*/
/**
* Saves model weights.
* @returns {ArrayBuffer} ArrayBuffer containing weights and biases from all layers in model
*/
save() {
// TypedArray to hold weights, bias, etc. from every layer of model
var weights = new Float32Array(this.size);
var o = 0;
// pull out trained weights for each layer
for (var layer of this.hidden) {
weights.set(layer.save(), o);
o += layer.size;
}
return weights.buffer;
}
/**
* Loads weights into model, or generates new ones if needed.
* @param {?(Float32Array|ArrayBuffer)} weights - weights to load into model, if null then weights will be generated
*/
load(weights) {
// construct layers
var offset = 0;
let prev = this.inputs; // number of input nodes
this.size = 0;
if (weights != null && weights.buffer === undefined) {
weights = new Float32Array(weights);
}
for (var layer of this.hidden) {
layer = new Layers[layer.type](layer, prev);
prev = layer.layer.out; // hold number of output nodes from this layer as inputs for next layer
this.size += layer.size;
if (weights != null)
offset = layer.load(weights, offset);
else layer.randomWeights();
}
}
/**
* Merge weights into current set
* @param {*} weights - Weights to merge into current model weights
* @param {number} scale - Determines how weights are merged
*/
merge(weights) {
var offset = 0;
for (var layer of this.hidden) {
layer.merge(weights, offset);
}
}
}
module.exports = Model;


Messages
Try Discovery (does not work with server wireless)
If you don't find server, you can enter the IP:
You can find the IP on the
About page
of 3dRudder Dashboard
Start connection
Port:
Frequency:
Duration:
Port:


WITNESS LIST
Health & Human Services
May 6, 2015 8:00 AM
Registering, but not testifying:
ON:
English, Angi Executive Director (Governor's Committee on People with Disabilities),
Austin, TX
Fajardo, Erick Policy Analyst (Sunset Advisory Commission Staff), Austin, TX
Registering, but not testifying:
FOR:
Garcia, Eileen CEO (Texans Care for Children), Austin, TX
ON:
Durheim, Mary Chair (Texas Council for Developmental Disabilities), Spring, TX
Fajardo, Erick Policy Analyst (Sunset Advisory Commission Staff), Austin, TX
Webb, Roger Executive Director (Texas Council for Developmental Disabilities), Austin,
TX
AGAINST:
Ducayet, Patty State Ombudsman (also providing written testimony) (State Long-term
Care Ombudsman Program), Austin, TX
Registering, but not testifying:
FOR:
Chatelle, Melody Legislative Consultant (United Ways of Texas), Austin, TX
Hine, Jim (Texas Assisted Living Association), Austin, TX
Meyer, Alyse Director Public Policy (Leading Age Texas), Austin, TX
FOR:
Bresnen, Steve Attorney (also providing written testimony) (Association of Dental Support
Organizations), Austin, TX
Dufurrena, Quinn Executive Director (Association of Dental Support Org.), Parker, CO
AGAINST:
Bingham, Bill Attorney (Texas Dental Association), Austin, TX
Registering, but not testifying:
FOR:
Arnold, Jim (South Texas Dental), Austin, TX
AGAINST:
Mintz, David (Texas Academy of General Dentistry), Austin, TX
ON:
Deal, Nycia General Counsel and Acting Executive Director (State Board of Dental
Examiners), Austin, TX


I'm A Celebrity viewers already convinced Andy Whyment will win
He's winning over viewers already
by Rebecca CarterViewers of I'm A Celebrity are convinced Andy Whyment will win the series despite just entering the jungle.
The Coronation Street actor took on his first Bushtucker trial tonight alongside fellow newbie Cliff Parisi.
The pair faced Frontier of Fear task, in which they both had to take on a different task.
Read more: I'm A Celebrity viewers want Jacqueline Jossa 'to win' as she reveals another skill
Andy had to dig around in offal and fish guts to find five stars.
Meanwhile, Cliff had to put his hands in different holes and retrieve five stars.
Andy managed to bag five out of five while Cliff got three out of five, meaning they had eight stars for camp.
During Cliff's trial, Andy left viewers and hosts Ant McPartlin and Dec Donnelly in stitches as he admitted it was like he was watching the show from his sofa at home.
His hilarious antics and banter has won over viewers, who have called him their winner already.
One person said on Twitter: "Already backing Andy to win! He’s so funny."
Another wrote: "Andy is going to win this whole show."
A third added: "Less than 5 mins in and I NEED Andy to win the show."
Read more: I'm A Celebrity star Caitlyn Jenner hiding devastating secret from her past
During last night's show, Andy opened up about his fears and phobias.
Andy, who plays Kirk Sutherland in Corrie, said: "I've got absolutely no survival skills.
"I don't think I do have any fears or phobias but watch me now when I get in there... I'm going to be [bleep] scared of everything."
Leave us a comment on our Facebook page @EntertainmentDailyFix and let us know what you think of this story.


{% extends "base.html" %}
{% load i18n %}
{% load url from future %}
{% block m_column_content %}
{% trans 'Thanks for registering. You should soon receive an email with account activation information at the email you entered.' %}
{% endblock m_column_content %}


A more trustful password generator and a better user flow.
Course Project. Sept. 2014, 3 Weeks
1password faces a problem that lots of their users use their weak password all the time.
Though 1password offers a random strong password generator, users seldomly use it.
Meet our personas
Robert
Male | 50s | Retired Officer
Low tech ability. Store important information into the 1Password vault. Concern highly about information security.
"I want it secure and under my control."
Lisa
Female | 20s | Freelancer
Social media enthusiast. Tired of remembering passwords. Does not know much about computer security.
"I use all the popular social media. Every day!"
How do people use their password?
What's wrong with the current design?
Hard to find the generator
Password generator is hiding inside the tool bar icon.
Totally random password
Password generated is totally random, which is robotic and cold for users.
Lack of notification
There is no notification about weak password.
People do not trust a password generated by a program. They feel unfamiliar with the password, and feel lose of control.
People are afraid of using a totally random password. They want to have a sense of what the password means.
They current process of strenthen a password is tedious. It's hard to find the way to make changes and save a secure password.
Keep everything within the browser
Instead of going to the native app from website back and forth, our design provide notification and generator inside the browser.
Guide the user to next step
Our design can notify the user weak password, help the user use the generator, and guide the user to change the password.
Show the strength of password
User can easily notice the strength of current password. This strength bar will also appear when the user types password.
Generate passphrase based on the input
The generator creates passphrase user is familiar with, by randomizing user's input.
Customization of the generator
User can control the customization process.
Color matching to ensure the familiarity
The final passphrase use the same color coding with the words user typed in, to reensure the familiarity.
I am satisfied with most parts of this project. It was a complete process from exploring the problem space, getting to know the user, to designing & testing iterations.
I think usability tests and iterations after testing still have much space to improved. We tried to use Microsoft RITE usability testing method, which is basically iterating right after each test. However, we kind of used this method in a wrong way. We were to focused on the participants' reaction of the prototype, we made some changes without deeply thinking about why they had such reaction. We were led by what the participants did and said.
One more thing is the use of paper prototype in usability testing. The nature of paper prototype made it easy for participants find the interactive part and hard to understand the screen flow. I think paper prototype is great for an early stage of design because of its efficiency. However, in the later stage of design process, a higher-fidelity prototype would be better.


---
layout: post
title: Accelerate an OpenBSD NFS server
date: '2017-02-02T11:30:00.003-05:00'
author: umhau
tags:
- NFS
- OpenBSD
categories: memos
modified_time: '2017-02-02T11:31:20.550-05:00'
blogger_id: tag:blogger.com,1999:blog-2584289275272726799.post-21442072707983866
blogger_orig_url: http://nixingaround.blogspot.com/2017/02/accelerate-openbsd-nfs-server.html
---
The nfs server on openbsd has been super slow. I thought it was the result of wifi + an old computer until I tried an scp download. the difference was several orders of magnitude. Anyway, the solution was to cut down the size of the data packets used by the protocol.
Here's my /etc/fstab - the change is in bold. Apparently there's a sweet spot of not-too-small and not-too-big. These sizes are measured in bytes, by the way. That's a packet size of 4 kb that I'm specifying.
one:/home/admin/storage /storage nfs rsize=4096,wsize=4096 0 0


{% extends 'base.html' %} {% block title %}{{ sample.sample_title }}{% endblock title %} {% load staticfiles %} {% block content %} {% if user.is_authenticated %} {% if tutorial and xuser_tutorial %}
This page shows you all the details of a particular sample.
The composition of your sample tells us which of the lipids specified on the project level will be used for this analysis, and what if any augmentations are required for that particular lipid.
When you add a lipid, you will be prompted to select levels of deutiration, or to make your own custom augmentations.
Location |
{% endif %}
Lipid Name |
Mol Fraction |
|||
| {{ combo.0.sample_lipid_name }} | |||||
|
{{ combo.0.lipid_mol_fraction }} | Edit | Delete | ||
| Inner Leaflet | |||||
| {{ combo.0.sample_lipid_name }} | |||||
|
{{ combo.0.lipid_mol_fraction }} | Edit | Delete | ||
| Outer Leaflet | |||||
| {{ combo.0.sample_lipid_name }} | |||||
|
{{ combo.0.lipid_mol_fraction }} | Edit | Delete |
Upload and label your datasets here. These will be graphed and fit during data analysis.
Data Type |
Name |
D2O Mol Fraction |
Date Uploaded |
||
| X-Ray | |||||
| {{ data.data_set_title }} | {{ data.d2o_mol_fraction }} | {{ data.upload_time }} | Edit | Delete | |
| Neutron | |||||
| {{ data.data_set_title }} | {{ data.d2o_mol_fraction }} | {{ data.upload_time }} | Edit | Delete |
Parameters are the varibles used in the calculations done to analyze your data. When you generate a new set of parameters, you choose to change the values or leave them as suggested.
When you fit your data, your current set of parameters is preseved, and a new one is saved with the fit values, labeled for the time that it was generated.
Name |
AL [Å2] |
DH [Å] |
VT [Å3] |
||
| {{ parameter.name }} | {{ parameter.lipid_area }} | {{ parameter.headgroup_thickness }} | {{ parameter.terminal_methyl_volume }} | Edit | Delete |
Name |
In AL [Å2] |
In DH [Å] |
In VT [Å3] |
Out AL [Å2] |
Out DH [Å] |
Out VT [Å3] |
||
| {{ parameter.name }} | {{ parameter.in_lipid_area }} | {{ parameter.in_headgroup_thickness }} | {{ parameter.in_terminal_methyl_volume }} | {{ parameter.out_lipid_area }} | {{ parameter.out_headgroup_thickness }} | {{ parameter.out_terminal_methyl_volume }} | Edit | Delete |
To view this page, please login.


Code Quiz
High Score:
Time:
4
00
Start
Pause
Stop
Code Quiz
Answer the following questions in the time given. Good luck!
Begin Quiz


Enter the name of an actor to see some of the movies they have played roles in. Movies:
Enter
Enter an actor.
I know about these actors:


"In our current climate of fear and debt I am reminded of what I hold most valuable in this life: the human souls closest to me. We need each other.  The human story is still unfolding. We are telling it as we speak. The human song is still weaving its way towards a chorus, through the suffering, through the fear. We need each other. We need heroes. Let your life be a beautiful song. We need hope. Tell a good story with the way you live. What is the world you want?" ---- Jon Foreman (Huffington Post)
“Be brave your melody is worth it. Be strong your melody is needed. I dare you to live out the purpose for which you were born. That your melody would soar above the past, above the pain, above the dissonance. The song you were born to sing would come into life…. The composer of time and space has given you a part in this great symphony this is your moment, This is your opus.  ---- Jon Foreman
"For me motion is a positive thing, It’s about change, and change for me is a positive thing. If we are created in the image of God, we must clearly represent who He is when we are loving one another. That would be true motion." ---- Jon Foreman (TodaysChristianMusic)


{{ _s('Required browser version:')}}
{{ _s('The script and service is open source under the MIT License.').format(' href="https://github.com/browser-update/browser-update/blob/master/LICENSE.txt"') | safe}} {{ _s('The script is not tracking users in any way and does not collect any personal information.') }}
{{ _s('You can customize the style of the message, the text and other options.').format('customize.html') | safe}}


class: center, middle ### W4995 Applied Machine Learning # Working with Imbalanced Data 02/28/18 Andreas C. Müller ??? Today we’ll talk about working with imbalanced data. We already talked about how accuracy is a bad measure and what are the other measures we can use. FIXME add AP for all evaluations, add more roc / pr curves FIXME better illustration for sampling FIXME better motivation for sampling / why we want to change things FIXME TOO SHORT FIXME Add estimators minimizing loss directly? --- class: center, middle ## Recap on imbalanced data ??? --- class: spacious # Two sources of imbalance - Asymmetric cost - Asymmetric data ??? In general, there's are two ways in which a classification task can be imbalanced. First one is asymmetric costs. Even if the probability of class 0 and class 1 are the same, they might be different like in business costs, or health costs, or any other kind of cost or benefit associated with making different kinds of mistakes. The second one is having asymmetrical data. Meaning that one class is much more common than the other class. --- class: spacious # Why do we care? - Why should cost be symmetric? - All data is imbalanced - Detect rare events ??? One of these two is true in basically all real world applications. Usually, both of them are true. There's no reason why a false positive and a false negative should have the same business cost, they’re usually very, very different things, no matter whether you do ad-click prediction or whether you do health, the two kinds of mistakes are usually quite different, and have quite different real world consequences. Also, data is always imbalanced, and often very drastically. In particular if you do diagnosis, or if you do ad clicks-or marketing….For ad-clicks, I think it's like below 0.01% of ads I clicked on, depending on how good doing with your targeting. So very often, we have very few positives. And so this is really a topic that is basically all of classification. So balance classification with balance costs, is not really something that happens a lot in the real world. --- # Changing Thresholds .tiny-code[ ```python data = load_breast_cancer() X_train, X_test, y_train, y_test = train_test_split( data.data, data.target, stratify=data.target, random_state=0) lr = LogisticRegression().fit(X_train, y_train) y_pred = lr.predict(X_test) classification_report(y_test, y_pred) ``` ``` precision recall f1-score support 0 0.91 0.92 0.92 53 1 0.96 0.94 0.95 90 avg/total 0.94 0.94 0.94 143 ``` ```python y_pred = lr.predict_proba(X_test)[:, 1] > .85 classification_report(y_test, y_pred) ``` ``` precision recall f1-score support 0 0.84 1.00 0.91 53 1 1.00 0.89 0.94 90 avg/total 0.94 0.93 0.93 143 ``` ] ??? So apart from evaluation we talked about one way we could’ve changed the outcome to take into account which was changing the threshold of greater probability. So not only taking into account the predicted class. Assume I have a logistic regression model and I can either use the predict method which basically makes the cut off at 0.5 probability of the positive class, then I can look at the classification report, which will tell me precision and recall for both the positive and the negative class. But if I want to increase recall for class 0 or increase precision for class 1, I can say only predict things as class 1 where the estimated probability of class 1 is 0.85. And then I will have only the ones that I'm very certain predicted as class 1. If you have given actual a cost function of how much each mistake costs, you can optimize this threshold. --- # Roc Curve .center[ ![:scale 85%](images/roc_svc_rf_curve.png) ] ??? We also looked at ROC curves, which basically look at all possible thresholds as you can apply. Either for probabilistic prediction, or for any sort of continuous uncertainty estimate. --- class: center, middle ## Remedies for the model ??? Today, I really want to talk about more, how we can change the model more than just changing the threshold. So how can we change the building of the model so that it takes into account the asymmetric costs, or asymmetric data. --- # Mammography Data .smaller[ .left-column[ ```python import openml # mammography dataset # https://www.openml.org/d/310 data = openml.datasets.get_dataset(310) X, y = data.get_data(target='class') X.shape ``` (11183, 6) ```python np.bincount(y) ``` array([10923, 260]) ] .right-column[ .center[ ![:scale 100%](images/mammography_data.png) ] ] ] ??? I use this mammography data set, which is very imbalanced. This is a data set that has many samples, only six features and it's very imbalanced. The datasets are about mammography data, and whether there are calcium deposits in the breast. They are often mistaken for cancer, which is why it's good to detect them. Since its rigidly low dimensional, we can do a scatter plot. And we can see that these are much skewed distributions and there's really a lot more of one class than the other. Note: Split one slide to two due to size constraints. --- # Mammography Data .smaller[ ```python from sklearn.model_selection import cross_validate from sklearn.linear_model import LogisticRegression scores = cross_validate(LogisticRegression(), X_train, y_train, cv=10, scoring=('roc_auc', 'average_precision')) scores['test_roc_auc'].mean(), scores['test_average_precision'].mean() ``` 0.920, 0.630 ```python from sklearn.ensemble import RandomForestClassifier scores = cross_validate(RandomForestClassifier(n_estimators=100), X_train, y_train, cv=10, scoring=('roc_auc', 'average_precision')) scores['test_roc_auc'].mean(), scores['test_average_precision'].mean() ``` 0.939, 0.722 ] ??? --- # Mammography Data .center[ ![:scale 85%](images/mammography_features23.png) ] ??? So as a baseline here is just evaluating logistic regression and the random forest on this. Actually, I ran it under ROC curve and average precision. I’ve used a cross-validate function model selection that allows you to specify multiple metrics. So I only need to train the model once but I can look at multiple metrics. I do a 10 fold cross-validation on the data set and I split into training and test and so I can look at the scores here. The scores are dictionary, they give me training and test scores for all the metrics I specified. And so you can look at the mean test drug score and the mean test average precision score. This gives a high AUC and a quite low average precision. Here is a second baseline with a random forest doing the same evaluation with ROC AUC and average precision. We get slightly higher AUC and quite a bit higher average precision. --- # Basic Approaches .left-column[ .center[ ![:scale 85%](images/basic_approaches.png) ] ] .right-column[ Change the training procedure ] ??? Now we want to change these basic training methods to be better adapted to this imbalanced dataset. There are generally two approaches. One is changing the data. And the other is change the training procedure and how you built the model. The easier one is to change the data. We can either add samples to the data, we can remove samples to the data, or we can do both. Resampling is not possible in scikit-learn because of some API issues. --- class: center, spacious # Sckit-learn vs resampling ![:scale 55%](images/pipeline.png) ??? The problem with pipelines, as they're in scikit-learn right now is, if you create a pipeline, and you call fit, it'll always use the original y and the output of a transformer is always a transformed x. So we can't change y. So we can re-sample the data. - The transform method only transforms X - Pipelines work by chaining transforms - To resample the data, we need to also change y --- class: spacious # Imbalance-Learn http://imbalanced-learn.org ``` pip install -U imbalanced-learn ``` Extends `sklearn` API ??? So we're going to use imbalance learn, which is an extension of the scikit-learn API that basically allows us to resample. --- ### Sampler To resample a data sets, each sampler implements: ```python data_resampled, targets_resampled = obj.sample(data, targets) ``` Fitting and sampling can also be done in one step: ```python data_resampled, targets_resampled = obj.fit_sample(data, targets) ``` --
In Pipelines: Sampling only done in `fit`! ??? This extends sampler objects in scikit-learn. The sampler objects have a sample method which returns resample data and resample targets. There’s also pipelines in imbalance learn. The important part here is the sampling is only done in fit. So only your training data will be resampled. But when you do predictions, you want predictions to be made on the whole test set, and on the original test set. So you don't want to mess with the test set in your evaluation. So resampling is only done when you're building a model. - Imbalance-learn extends scikit-learn interface with a “sample” method. - Imbalance-learn has a custom pipeline that allows resampling. - Imbalance-learn: resampling is only performed during fitting - Warning: not everything in imbalance-learn is multiclass! --- # Random Undersampling ```python from imblearn.under_sampling import RandomUnderSampler rus = RandomUnderSampler(replacement=False) X_train_subsample, y_train_subsample = rus.fit_sample( X_train, y_train) print(X_train.shape) print(X_train_subsample.shape) print(np.bincount(y_train_subsample)) ``` ``` (8387, 6) (390, 6) [195 195] ``` ??? The easiest strategy is randomly undersampling. The default strategy is to undersample the majority class so that it has the same size as the minority class, that's implemented in the random under sampler. Here, I instantiate to random under sampler, I set replacement equal to false, which means sampling without replacement and then I can do fit sample on the training set. And so the original training set was 8387 samples, the subsample data set is only 390 samples. And you can see now in the bin count here, the data set is balanced. Basically, I reduced the majority class randomly to a very much smaller dataset, which made the majority class the same size as the minority class. And you can see that the dataset is 20 times smaller because the dataset was imbalanced. So building anything on this dataset will be much much faster. But also keep in mind, we threw away 98% of our data in doing that. - Drop data from the majority class randomly - Often untill balanced - Very fast training (data shrinks to 2x minority) - Loses data ! --- # Random Undersampling .smaller[ ```python from imblearn.pipeline import make_pipeline as make_imb_pipeline undersample_pipe = make_imb_pipeline(RandomUnderSampler(), LogisticRegressionCV()) scores = cross_validate(undersample_pipe, X_train, y_train, cv=10, scoring=('roc_auc', 'average_precision')) scores['test_roc_auc'].mean(), scores['test_average_precision'].mean() # was 0.920, 0.630 without ``` ``` 0.927, 0.527 ``` ] -- .smaller[ ```python undersample_pipe_rf = make_imb_pipeline(RandomUnderSampler(), RandomForestClassifier()) scores = cross_validate(undersample_pipe_rf, X_train, y_train, cv=10, scoring=('roc_auc', 'average_precision')) scores['test_roc_auc'].mean(), scores['test_average_precision'].mean() # was 0.939, 0.722 without ``` ``` 0.951, 0.629 ``` ] ??? Looking at the result, ROC AUC actually improved a little bit while the average precision decreased a little bit. Given that we threw away 98% of our data, I think the fact that the ROC AUC improved is quite remarkable. So this is clearly still a reasonable model, given one particular measure, it’s even a better model even though we threw away most of the data. Even though it's very simplistic, it's actually a viable strategy that people often use in practice. In particular, if you have a very big data set, you might not have enough compute to actually do something on the whole dataset or you might only do something simple on the whole dataset. But after you resampled it, you can maybe train a much more complicated model. Here by default, this random under simpler makes it balanced but of course, you could be slightly less extreme, so that you throw away a little bit fewer data. We can do the same thing with random forest. After computing, the area under the ROC curve actually went up substantially. Again, it's quite surprising given that we used much less data, but the average precision went down quite a bit. - As accurate with fraction of samples! - Really good for large datasets --- # Random Oversampling ```python from imblearn.over_sampling import RandomOverSampler ros = RandomOverSampler() X_train_oversample, y_train_oversample = ros.fit_sample( X_train, y_train) print(X_train.shape) print(X_train_oversample.shape) print(np.bincount(y_train_oversample)) ``` ``` (8387, 6) (16384, 6) [8192 8192] ``` ??? - Repeat samples from the minority class randomly - Often untill balanced - Much slower (dataset grows to 2x majority) --- # Random Oversampling .smaller[ ```python oversample_pipe = make_imb_pipeline(RandomOverSampler(), LogisticRegression()) scores = cross_validate(oversample_pipe, X_train, y_train, cv=10, scoring=('roc_auc', 'average_precision')) scores['test_roc_auc'].mean(), scores['test_average_precision'].mean() ``` 0.917, 0.585 ] -- .smaller[ ```python oversample_pipe_rf = make_imb_pipeline(RandomOverSampler(), RandomForestClassifier()) scores = cross_validate(oversample_pipe_rf, X_train, y_train, cv=10, scoring=('roc_auc', 'average_precision')) scores['test_roc_auc'].mean(), scores['test_average_precision'].mean() ``` 0.926, 0.715 ] ??? The complement of doing random sampling of the data is random oversampling of data. So in random oversampling, we do the opposite. We basically resample the training dataset so that the minority class has the same number of samples as the majority class. Given that this dataset was very imbalanced, we nearly doubled the size of the training dataset. So now everything will be actually much slower because we have many more samples. We nearly doubled the dataset size because we reproduced many copies of the minority class and then we have a balanced dataset again. Here, what we did is we just sampled with replacement. We sampled with replacement about 8000 times from this pool of 195 samples. Q: Does that mean there are repeat records? Yeah, most of them are repeated like 40 times on average. Q: What distribution you’re sampling from? We're not sampling IID from the original distribution because in the original distribution there was a strongly imbalanced. So we now sample from the traditional distributions basically where we sample first the label and then we sample from this class. And we do this for the two labels independently in the same amount of time. It's slightly weird because we have a lot of copies of the sample. Logreg the same, Random Forest much worse than undersampling (about same as doing nothing) --- # Curves for LogReg .center[ ![:scale 100%](images/curves_logreg.png) ] ??? Here, I’m making a pipeline with logistic aggression random forest and you can see that the area under the ROC curve is actually lower, while the average precision is higher than with undersampling but slightly lower than the original dataset. --- # Curves for Random Forest .center[ ![:scale 100%](images/curves_rf.png) ] ??? We can also look at the curves. We have on the left, the ROC curve for logistic regression with the original data set, the oversample, and the under-sample dataset. On the right-hand side, we have the recall curve. These are the same for random forest. If you look at these curves from afar, they give you the exact opposite ideas. On the left, under sample seems to be best and oversample is the worst while under sample is clearly the worst and under sample is not so bad on the curve in the right. If I look at the precision-recall curve, the original data set did best. Looking at these two curves you get quite different ideas. The TPR axis is the same as the recall axis. The idea is since we have the cost function, we know which could be the area under one of these curves, or could be a particular recall or position value or particular cost matrix we want to achieve and we want to optimize this. And we hope that by taking into account the imbalance of the classes, we can optimize this cost better than just basically using the IID data set. But precision and false positive rate measure quite different things. --- # ROC or PR? FPR or Precision? `$$ \large\text{FPR} = \frac{\text{FP}}{\text{FP}+\text{TN}}$$` `$$ \large\text{Precision} = \frac{\text{TP}}{\text{TP}+\text{FP}}$$` ??? The false positive rate is how many false positives are there among the negatives. If you have a very imbalanced problem, the FPR is not very interesting because usually, the true negatives are much bigger than anything else which will end up distorting the curve. If you're looking at a high precision model, so high precision for the minority class, then looking at the precision-recall curve is much more informative. Because for the high precision you can see that the blue and orange model are really very much better than the green model. fIXME think of better explanation --- class: spacious # Class-weights - Instead of repeating samples, re-weight the loss function. - Works for most models! - Same effect as over-sampling (though not random), but not as expensive (dataset size the same). ??? One way we can make the resampling more efficient is by using class weights instead of actually resampling. So we can change our loss function to do the same thing as if you would resample but under sampling case, we don't actually throw away any data and in the oversampling case, we don't actually make our computational problem harder by repeating some of the samples. This works for most models and it's pretty simple to do in scikit-learn. Basically, it's the same as oversampling in a sense because you're not throwing away any data. --- class: spacious # Class-weights in linear models `$$\min_{w \in ℝ^{p}}-C \sum_{i=1}^n\log(\exp(-y_iw^T \textbf{x}_i) + 1) + ||w||_2^2$$` `$$ \min_{w \in \mathbb{R}^p} -C \sum_{i=1}^n c_{y_i} \log(\exp(-y_i w^T \mathbf{x}_i) + 1) + ||w||^2_2 $$` Similar for linear and non-linear SVM ??? So for the linear model, for example, let's say we do logistic regression. Instead of minimizing this problem, for each class, we have a class weight c_(y_i ) and so the loss for each sample gets multiplied by this class weight and usually, they sum to one. This is similar to having a different penalty C for all of the different classes. You can see that this is the same as if I repeat each sample x_i c_(y_i ) many times in each class. So if I set the cost weight of one class to 2, that would be the same as repeating each sample in this class twice, only now I don't actually have to duplicate any sampling. So this is cheaper than over sampling but has the same effect. You can do this for hinge loss and SVMs by just changing the loss. --- # Class weights in trees Gini Index: `$$H_\text{gini}(X_m) = \sum_{k\in\mathcal{Y}} p_{mk} (1 - p_{mk})$$` `$$H_\text{gini}(X_m) = \sum_{k\in\mathcal{Y}} c_k p_{mk} (1 - p_{mk})$$` Prediction: Weighted vote ??? For trees and all trees based models, you can just change the splitting criteria. For example, if you have a Gini index here, and you compute the Gini index for each class or the cross-entropy for each class, and you have the class weights in here. And again, you can see this is the same as replicating the data points c_k many times. If you want to make predictions, you can do a weighted vote. --- #Using Class-Weights .smaller[ ```python scores = cross_validate(LogisticRegression(class_weight='balanced'), X_train, y_train, cv=10, scoring=('roc_auc', 'average_precision')) scores['test_roc_auc'].mean(), scores['test_average_precision'].mean() ``` 0.918, 0.587 ```python scores = cross_validate(RandomForestClassifier(n_estimators=100, class_weight='balanced'), X_train, y_train, cv=10, scoring=('roc_auc', 'average_precision')) scores['test_roc_auc'].mean(), scores['test_average_precision'].mean() ``` 0.917, 0.701 ] ??? In scikit-learn, all the classifier has a class weight parameter. You can set them to anything you want, basically, giving arbitrary integers to the particular classes, there is normalized sum to one. Balanced setting means do the same as oversampling so that the populations have the same size for all the classes. You can see this has a somewhat similar effect to the oversampling for only half the computational price. This is a pretty simple way to try to change the model towards a positive class. --- class: spacious # Ensemble Resampling - Random resampling separate for each instance in an ensemble! - Paper: “Exploratory Undersampling for Class Imbalance Learning” - Not in sklearn (yet) - Easy with imblearn ??? There’s something a little bit better that’s called easy ensembles or resampling within an ensemble. So the idea is you build an ensemble like bagging classifier, but instead of doing a bootstrap sample, you can do a random undersampling into a balance dataset separately for each classifier in ensemble. Right now, you can only do this with imbalance learn. --- # Easy Ensemble with imblearn .smaller[ ```python from sklearn.tree import DecisionTreeClassifier from imblearn.ensemble import BalancedBaggingClassifier tree = DecisionTreeClassifier(max_features='auto') resampled_rf = BalancedBaggingClassifier(base_estimator=tree, n_estimators=100, random_state=0) scores = cross_validate(resampled_rf, X_train, y_train, cv=10, scoring=('roc_auc', 'average_precision')) scores['test_roc_auc'].mean(), scores['test_average_precision'].mean() ``` 0.957, 0.654 ] ??? For example, I can do a balanced random forest, I’m using a decision tree as a base classifier with max features as auto. For classifier, this is the square root of number of features. And so this will build 100 estimators. Each estimator will be basically trained on the random undersample of the data set. So I do a random under a sample of the data set 100 times and I build a tree on each of them. So this is exactly as expensive as building a random forest on the undersample data set, which is pretty cheap because under sampling throws away most of the data. In fact, we're not throwing away as much data, we're keeping a lot of the data but only in different trees in the ensemble. Of all the models that we looked at today, this is the best one in terms of area under the curve. It’s cheap to do and it allows you to use a lot of your data in a pretty nice way. This has been shown to be like pretty competitive in a bunch of benchmarks. -As cheap as undersampling, but much better results than anything else! -Didn't do anything for Logistic Regression. --- class: center, middle ![:scale 100%](images/roc_vs_pr.png) ??? Looking at the curves again, comparing the easy ensemble. You can see that in the higher recall area, it does quite well and in the high precision area, it does better than just undersampling. So remember, this is much much cheaper than the oversampling by a large amount. And so if we are anywhere in this area here, it seems to be like a pretty decent solution. To explain the difference between easy ensemble and under sample….In undersampling, I randomly under sample the dataset once. So then I have a balance dataset 195-195 and I built a model on this. And in this case, I build a random forest model. And in the easy ensemble, what I do is for each tree in the random forest I separately do an undersampling in 295-95. So they will all have the same minority class samples, but they all will have different majority class samples. So in total, I'm looking at more than 195 samples from the majority class since I under sample for each tree in a different way. That makes it quite a bit better. These are all the randomly sample methods that I want to talk about. You can see that here, they make quite a big difference. Depending on where you want to be on this precision-recall curve, you would choose quite different methods. --- class: center, middle # Smart resampling ## (based on nearest neighbour heuristics from the 70's) ??? Now I want to talk about some other resampling strategies called smart resampling strategies. They're based on heuristics for nearest neighbor classification from the 70s.  So now some people use the same methods to basically prune the majority class, instead of randomly undersampling the majority class, it strategically removes samples from the majority class. --- class: spacious # Edited Nearest Neighbours - Originally as heuristic for reducing dataset for KNN - Remove all samples that are misclassified by KNN from training data (mode) or that have any point from other class as neighbor (all). - “Cleans up” outliers and boundaries. ??? One is the edited nearest neighbors. This is the originally used as a heuristic for reducing dataset for KNN. And it removes all samples that are misclassified by KNN from the training data. Or if they have any of the K neighbors is from the other class at all. So basically, what you're doing here is you clean up outliers and boundaries. --- .center[ ![:scale 90%](images/edited_nearest_neighbour.png) ] ??? This is a synthetic data set. You have a minority class of blue and majority class of green. Basically, all the samples of the class of the majority class that are impinging on the territory of the minority class here are removed. This will clearly give you more recall on class one (the minority class) because a bigger area will be classified as blue in this case. --- # Edited Nearest Neighbours .smaller[ ```python from imblearn.under_sampling import EditedNearestNeighbours enn = EditedNearestNeighbours(n_neighbors=5) X_train_enn, y_train_enn = enn.fit_sample(X_train, y_train) enn_mode = EditedNearestNeighbours(kind_sel="mode", n_neighbors=5) X_train_enn_mode, y_train_enn_mode = enn_mode.fit_sample(X_train, y_train) ``` .center[ ![:scale 100%](images/edited_nearest_neighbour_2.png) ] ] ??? This is for the mammography dataset. The first one is the original dataset, the second one is with mode and the third is with all. The second one means all the blue points get removed if they would be classified by 5 nearest neighbors as orange and the third if they have any orange point in their neighborhood. This picture doesn't really make this clear, because it's in six dimensions. So you would think many more points are removed but actually, in the six dimensions, only very few of the points got removed, because most of the points are not along the boundary. So definitely, in terms of computation, this doesn't really help as much. It might help us in terms of accuracy. --- .smaller[ ```python enn_pipe = make_imb_pipeline(EditedNearestNeighbours(n_neighbors=5), LogisticRegression()) scores = cross_val_score(enn_pipe, X_train, y_train, cv=10, scoring='roc_auc') np.mean(scores) ``` 0.920 ```python enn_pipe_rf = make_imb_pipeline(EditedNearestNeighbours(n_neighbors= 5), RandomForestClassifier(n_estimators=100)) scores = cross_val_score(enn_pipe_rf, X_train, y_train, cv=10, scoring='roc_auc') np.mean(scores) ``` 0.944 ] ??? --- # Condensed Nearest Neigbours - Iteratively adds points to the data that are misclassified by KNN - Focuses on the boundaries - Usually removes many ```python cnn = CondensedNearestNeighbour() X_train_cnn, y_train_cnn = cnn.fit_sample(X_train, y_train) print(X_train_cnn.shape) print(np.bincount(y_train_cnn)) ``` (556, 6) [361 195] ??? Interestingly, there's another approach called condensed nearest neighbor, which does exactly the opposite. This also was proposed to prune nearest neighbors and it focuses on the boundaries. It'll focus on the outliers in the boundaries and remove data points that are in the center of the class. This iteratively adds points to the majority class that is misclassified by K nearest neighbor.  This really prunes down the dataset a lot. So here, you can see that it prune down the majority class to 361 samples, so it's nearly balanced now. --- .center[ ![:scale 100%](images/edited_condensed_nn.png) ] ??? Here's an illustration on the synthetic dataset. So basically, the edited nearest neighbors took away all these points here, while condensed nearest neighbors do exactly the opposite. It doesn’t exactly keep the closest points because the misclassified ones are sampled at random. This is kind of nice because it reduces the dataset a lot. Also, this uses KNN, so if you have a very big data set, this might not be computationally feasible. --- .smaller[ ```python cnn_pipe = make_imb_pipeline(CondensedNearestNeighbour(), LogisticRegression()) scores = cross_val_score(cnn_pipe, X_train, y_train, cv=10, scoring='roc_auc') np.mean(scores) ``` 0.919 ```python cnn_pipe = make_imb_pipeline(CondensedNearestNeighbour(), RandomForestClassifier(n_estimators=100)) scores = cross_val_score(cnn_pipe, X_train, y_train, cv=10, scoring='roc_auc') np.mean(scores) ``` 0.948 ] ??? If you’re unlucky doing this condensing might actually be more expensive than your classifier. These strategies are usually not used by themselves as much, but they're used together with the method we're going to talk about next, which is basically a way to do synthetic sample generation. --- class: center, middle ## Synthetic Sample Generation ??? There are many methods, but the only method that your interviewer will expect you to know is SMOTE. --- # Synthetic Minority Oversampling Technique # (SMOTE) - Adds synthetic interpolated data to smaller class - For each sample in minority class: – Pick random neighbor from k neighbors. – Pick point on line connecting the two uniformly – Repeat. ??? I don't think it's actually used commonly in practice like the random oversampling and random undersampling. In particular, the undersample is great because it makes everything much faster. The idea is to add samples to the smaller class. So you synthetically want to add samples that kind of looks like the smaller class and this way hopefully, bias the classifier more towards the smaller class. It's also neighbor space so again if you have a very big dataset or if you’re in a very high dimension this might be slow. So in very high dimensions not even work that well. So what we're doing here is for each sample on the minority class you pick a random neighbor among the K nearest neighbors and then you pick a point on the line between the two. - Leads to very large datasets (oversampling) - Can be combined with undersampling strategies --- .center[ ![:scale 100%](images/smote.png) ] ??? So you oversample basically until the classes are balanced. --- class: center, middle .center[ ![:scale 100%](images/smote_3.png) ] ??? This is feature three and feature four from the mammography dataset. You can see basically that for this dataset it’s pretty far away, K is three and so these neighbors were picked and then a bunch of times points was randomly picked on the line between the two. So basically, you get something that is sort of connecting all two data points. This might set of make more sense than just repeating the sample over and over again. But also, if you're in high dimensions, it's not entirely clear how well this will work. --- .smaller[ ```python smote_pipe = make_imb_pipeline(SMOTE(), LogisticRegression()) scores = cross_val_score(smote_pipe, X_train, y_train, cv=10, scoring='roc_auc') np.mean(scores) ``` 0.919 ```python smote_pipe_rf = make_imb_pipeline(SMOTE(),RandomForestClassifier(n_estimators=100)) scores = cross_val_score(smote_pipe_rf,X_train,y_train, cv=10, scoring='roc_auc') np.mean(scores) ``` 0.947 ```python param_grid = {'smote__k_neighbors': [3, 5, 7, 9, 11, 15, 31]} search = GridSearchCV(smote_pipe_rf, param_grid, cv=10, scoring="roc_auc") search.fit(X_train, y_train) ``` ] ??? The results are pretty similar to either the original dataset or the random sampling. Performing nearest neighbors, I found 11 to be best. --- .center[ ![:scale 90%](images/param_smote_k_neighbours.png) ] ??? Also here in these plots, it looks now, there are more yellow points than purple points that's because I followed the purple points first and then the yellow points. Because if I didn't, then in the original data, you wouldn't see any yellow points. Again, if you look at the metrics, this doesn't really make a big difference. --- .center[ ![:scale 100%](images/smote_k_neighbours.png) ] ??? --- class: spacious # Summary - Always check roc_auc, look at curve - Undersampling is very fast and can help! - Undersampling + Ensembles is very powerful! - Many smart sampling strategies, mixed outcomes - SMOTE allows adding new interpolated samples, works well in practice - More advanced variants of SMOTE available ??? Always check the ROC AUC and the average precision and look at the curves. You’ve seen that the different strategies and different parts of the curves, they behave quite differently. Undersampling is really fast, and it can sometimes make things better. So I would always try under sampling just because maybe your model is slightly worse but if you get 100 times to speed up, it's still worth it. Using undersampling with easy ensembles is as fast as undersampling, but often gives better results. There are many variants of SMOTE and people often combined SMOTE with the pruning strategies. So they prune data points, and they add more data points and then remove them and add more points and so on. SMOTE seems to be the only strategy that kind of works in practice, apart from the under-sampling and easy ensembles. The methods that people actually use are kind of limited and unfortunately, also the benchmarks are kind of limited. People in machine learning research like balance datasets, but in the real world data sets are never balanced. Unfortunately, most of the datasets we have come from machine learning researchers. And so there's really not a lot of interesting data sets that are very balanced. The other thing I should have covered is you can directly optimize particular metrics. So you can train a model to optimize precision at K or area under the curve or something like that, at least for linear model, that's relatively straightforward. I'm not sure what the outcome was if someone tried it with trees. But I think the most common is just reweighting to samples. ---


{% extends "global/Page.html" %} {% load otree static %} {% block title %} Final Results {% endblock %} {% block content %}
Thank you for participating in today's experiment. Below are the payoffs for each individual part of the experiment followed by the total payoff from the experiment (show up payment + total earnings).
| Show-Up Payment | $7.00 |
|---|---|
| Part 1 | {{ payoff1 }} |
| Part 2 | {{ payoff2 }} |
| Part 3 | {{ payoff3 }} |
| Part 4 | {{ payoff4 }} |
| Part 5 | {{ payoff5 }} |
| Total Payoff | {{ finalpayoff }} |
Your Subject ID number is {{ SubjectID }}. When we call your number, please come to the podium for payment. Please wait patiently.
{% endcomment %}We will now process your payment. Click "Next" to complete a survey. While you complete the survey, we will process your payment.
{% next_button %} {% endblock %} {% block styles %} {% endblock %}


Uncover Leeds
About Leeds
Nights Out
Food and Drink
Days Out
Events
Contact
Contact us
If you would like to get in contact with us to;
Tell us your experience in Leeds
Suggest any other places to go to within Leeds
Let us know what you think of our website
then you can submit your email below.


Interval Timers
Periodic Timers
A ten minute session for 30:30second intervals
Viking Warrior Timers
cMVO2 Test timer - use this to calculate the number of reps to use in the Conditioning Phase.
15MVO2 interval timer for th 15:15 phase of conditioning exercises.


Admin
messages
22
Dashboard
Chat
Messages
Users
Roles
Account
Actions
Success
Error
User settings
Could you check something!
Username
Email
Change Password
Password
Retype password
Chat settings
Enable new messages audio notifications
Enable new messages visual notifications


#include <moveit/task_constructor/properties.h>
#include <gtest/gtest.h>
#include <initializer_list>
Go to the source code of this file.
Classes | |
| class | InitFromTest |
Functions | |
| TEST (Property, standard) | |
| TEST (Property, directset) | |
| TEST (Property, redeclare) | |
| TEST (Property, reset) | |
| TEST (Property, anytype) | |
| TEST (Property, serialize_basic) | |
| TEST (Property, serialize) | |
| TEST_F (InitFromTest, standard) | |
| TEST_F (InitFromTest, limited) | |
| TEST_F (InitFromTest, sourceId) | |
| TEST_F (InitFromTest, multipleSourceIds) | |
| TEST_F (InitFromTest, otherName) | |
| TEST_F (InitFromTest, function) | |
| TEST | ( | Property | , |
| standard | |||
| ) |
Definition at line 8 of file test_properties.cpp.
| TEST | ( | Property | , |
| directset | |||
| ) |
Definition at line 26 of file test_properties.cpp.
| TEST | ( | Property | , |
| redeclare | |||
| ) |
Definition at line 37 of file test_properties.cpp.
| TEST | ( | Property | , |
| reset | |||
| ) |
Definition at line 52 of file test_properties.cpp.
| TEST | ( | Property | , |
| anytype | |||
| ) |
Definition at line 79 of file test_properties.cpp.
| TEST | ( | Property | , |
| serialize_basic | |||
| ) |
Definition at line 89 of file test_properties.cpp.
| TEST | ( | Property | , |
| serialize | |||
| ) |
Definition at line 98 of file test_properties.cpp.
| TEST_F | ( | InitFromTest | , |
| standard | |||
| ) |
Definition at line 126 of file test_properties.cpp.
| TEST_F | ( | InitFromTest | , |
| limited | |||
| ) |
Definition at line 137 of file test_properties.cpp.
| TEST_F | ( | InitFromTest | , |
| sourceId | |||
| ) |
Definition at line 146 of file test_properties.cpp.
| TEST_F | ( | InitFromTest | , |
| multipleSourceIds | |||
| ) |
Definition at line 155 of file test_properties.cpp.
| TEST_F | ( | InitFromTest | , |
| otherName | |||
| ) |
Definition at line 161 of file test_properties.cpp.
| TEST_F | ( | InitFromTest | , |
| function | |||
| ) |
Definition at line 170 of file test_properties.cpp.


{% extends "main.html" %} {% block title %}Email List FAQs{% endblock %} {% block content %}
A: An email list is a subscription-based way of communicating among members of a community via email.  The list software then distributes that message to all subscribers. Your message may not arrive in your inbox as soon as you have sent it: you don't need to keep sending the message. If by the next day other messages have been received but yours hasn't, resend the message!
A: Go to the list info page for ProFox or ProFoxTech. You can sign up from there.
A: ProFox was spawned when the host of another list decided that he could suspend people from the list for transgressing the list rules: only by taking a test could the member be reinstated. Ed Leafe started this list to allow a freer exchange of opinions... and opinions are freely exchanged, especially in the Off Topic threads. If the off-topic stuff really bothers you, or even worse, bothers your employer, you should subscribe instead to the ProFoxTech list.
A: No, not really. It is a sublist of the messages posted to ProFox. The list software looks for messages with [OT] in the subject, and forwards all those without that label to ProFoxTech. You never post messages to ProFoxTech; you post them to ProFox. Those with [OT] only go to ProFox subscribers; all the rest go to subscribers of both. If you think ProFoxTech is better for you, go to the list info page for ProFoxTech to sign up.
A: Since this is a FoxPro community, topics that are related to software development using FoxPro are preferred. However, since we are a diverse community and have interests outside of FoxPro, just about any topic is OK.
As a courtesy to others, all non-technical messages should be labeled with:
[OT] (for "Off Topic")
in the Subject, so that the list software can filter them out of the tech-only sublist, ProFoxTech. Similarly, technical posts that are not strictly Fox-related should be labeled:
[NF] (for "Not Fox")
Messages concerning list adminstration, mostly from our beloved Listmom:
[ADMIN]
Please note that the square brackets are important for the software that filters these messages for ProFoxTech.
A: The lists use a powerful filtering tool called SpamBayes to help trap spam being sent to the list. It uses a technique called 'Bayesian filtering' to help determine what is spam and what isn't. It's very good, but not perfect.
Since spam is such a problem, the filtering level is set to be very strict. While this means fewer spam messages make it through, it also means that some legitimate messages will be flagged as potential spam. The listmom gets a notice for each held message, and will release all non-spam to the list as soon as possible. Please don't be offended - you didn't write anything bad. There are no magic words that trigger this, nor any magic words that can bypass the filter.
A: If that person is just mistaken, feel free to post your take on things. Either they'll engage you in an intelligent discussion of the issue, or they'll start ranting against you.
It should go without saying that respect should be a part of every post. Unfortunately, not everyone agrees with this, so you may occasionally be flamed by someone with more conviction than brains.
When this happens, please try to ignore them. There is no need to continuously respond to these idiots.


Akan names are derived from Ghanian culture. Frequently in Ghana, children are given their first name as a 'day name' which corresponds to the day in the week they were born. This website helps you generate your akan name.


A wrapper for the MediaWiki API, aimed particularly at the Wikimedia 'production' wikis, such as Wikipedia. It can be used to retrieve page text, information about users or the history of pages, and elements of the category tree.
| Version: | 1.5.0 |
| Imports: | httr, jsonlite |
| Suggests: | testthat, knitr, WikidataR, pageviews |
| Published: | 2017-02-05 |
| Author: | Oliver Keyes [aut, cre], Brock Tilbert [ctb] |
| Maintainer: | Oliver Keyes <ironholds at gmail.com> |
| BugReports: | https://github.com/Ironholds/WikipediR/issues |
| License: | MIT + file LICENSE |
| URL: | https://github.com/Ironholds/WikipediR/ |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| In views: | WebTechnologies |
| CRAN checks: | WikipediR results |
| Reference manual: | WikipediR.pdf |
| Vignettes: |
WikipediR |
| Package source: | WikipediR_1.5.0.tar.gz |
| Windows binaries: | r-devel: WikipediR_1.5.0.zip, r-release: WikipediR_1.5.0.zip, r-oldrel: WikipediR_1.5.0.zip |
| OS X binaries: | r-release: WikipediR_1.5.0.tgz, r-oldrel: WikipediR_1.5.0.tgz |
| Old sources: | WikipediR archive |
| Reverse imports: | tosca, WikidataR, wikilake |
| Reverse suggests: | pageviews |
Please use the canonical form https://CRAN.R-project.org/package=WikipediR to link to this page.


Florida State Cyber Security Workshop 03/09/19
jsfunfuzzer Simple python Install for python3
git clone https://github.com/MozillaSecurity/funfuzz.git
cd funfuzz
sudo python3 setup.py install
Since our crash is on firefox 44.0.2, we will try writing a fuzzer for that target, with hopes of reproducing it. First retrieve the source
wget https://ftp.mozilla.org/pub/firefox/releases/44.0.2/source/firefox-44.0.2.source.tar.xz
tar -xvf firefox-44.0.2.source.tar.xz
We have to patch the configure file in the source First, you must attempt a configure in the js/src directory. This will modify the configure file to have a regular expression check moved to a different line than it was at previoudly, from 15834 to 15735. Once this move happens, you need to modify line 15735 to replace instances of [:space:] with [[:space:]] so that the line looks like:
version=`sed -n 's/^[[:space:]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"`
You also may be required to install autoconf-2.13 with
sudo apt-get install autoconf2.13
After, we begin the build process
cd firefox-44.0.2/js/src
autoconf2.13
mkdir build_DBG.OBJ
cd build_DBG.OBJ
../configure --enable-debug --enable-debug-symbols --disable-optimize --prefix=$(pwd)/gk_install
make -j 2
make install
With jsfunfuzz installed and the javascript engine built, it’s time to get the fuzzer running. A proper config needs to be set up for our fuzzer, create a file js.fuzzmanagerconf in the directory of the installed js engine
cd gk_install/bin
Add to the file:
[Main]
platform = x86_64
product = mozilla-central
os = linux
[Metadata]
pathPrefix = /location/of/firefox/download/firefox-44.0.2/js/src/build_DBG.OBJ/gk_install/bin
buildFlags = --disable-optimize --enable-debug
We can now execute the fuzzer
python3 -m funfuzz.js.loop --random-flags --compare-jit 20 mozilla-central $(pwd)/js
Outputted javascript samples are inside of the instance folder First sample is located in /wtmp1 Has the samples used for fuzzing Will have dumps in the file core.tgz Dump of js process to be reproduced


Development
We welcome you to join the development of ParaViewWeb. This document will help you through the process.
Before You Start
Please follow the coding style:
- Follow Airbnb JavaScript Style Guide.
- Use soft-tabs with a two space indent.
- Don’t put commas first.
Workflow
- Fork [kitware/paraviewweb].
Clone the repository to your computer and install dependencies.
$ git clone https://github.com/<username>/paraviewweb.git
$ cd paraviewweb
$ npm install
$ npm install -g commitizenCreate a feature branch.
$ git checkout -b new_feature
Start hacking.
Use Commitizen for commit message
$ git cz
Push the branch:
$ git push origin new_feature
Create a pull request and describe the change.
Notice
- Don’t modify version number in
package.json
. Your pull request will only get merged when tests passed. Don’t forget to run tests before submission.
$ npm test
Updating Documentation
The ParaViewWeb documentation is part of the code repository.
Reporting Issues
When you encounter some problems when using ParaViewWeb, you can find the solutions in Troubleshooting or ask me on GitHub or Mailing list. If you can’t find the answer, please report it on GitHub.


Two web applications. One for the participants here today, one for me.
The participants use their application to input their home town (or where they arrived here from, today).
All data is sent to the Firebase Realtime Database.
My applicaation fetches and displays all locations, and finally finds the person who travelled the furthest to get here.


Top 100 EBooks yesterday (2020-08-24)
- Pride and Prejudice by Jane Austen (2019)
- Beowulf: An Anglo-Saxon Epic Poem (1643)
- Alice's Adventures in Wonderland by Lewis Carroll (1246)
- Frankenstein; Or, The Modern Prometheus by Mary Wollstonecraft Shelley (1011)
- Moby Dick; Or, The Whale by Herman Melville (825)
- Metamorphosis by Franz Kafka (825)
- The Yellow Wallpaper by Charlotte Perkins Gilman (820)
- The Adventures of Sherlock Holmes by Arthur Conan Doyle (814)
- A Tale of Two Cities by Charles Dickens (745)
- A Modest Proposal by Jonathan Swift (736)
- The Scarlet Letter by Nathaniel Hawthorne (735)
- Anthem by Ayn Rand (734)
- Et dukkehjem. English by Henrik Ibsen (702)
- The Republic by Plato (633)
- The Strange Case of Dr. Jekyll and Mr. Hyde by Robert Louis Stevenson (621)
- Treasure Island by Robert Louis Stevenson (615)
- The Iliad by Homer (596)
- Il Principe. English by Niccolò Machiavelli (583)
- Dracula by Bram Stoker (580)
- The Importance of Being Earnest: A Trivial Comedy for Serious People by Oscar Wilde (569)
- Grimms' Fairy Tales by Jacob Grimm and Wilhelm Grimm (528)
- Narrative of the Life of Frederick Douglass, an American Slave by Frederick Douglass (516)
- Jane Eyre: An Autobiography by Charlotte Brontë (506)
- Little Women by Louisa May Alcott (506)
- The Souls of Black Folk by W. E. B. Du Bois (497)
- The Adventures of Tom Sawyer by Mark Twain (486)
- Walden, and On The Duty Of Civil Disobedience by Henry David Thoreau (480)
- The Secret Garden by Frances Hodgson Burnett (477)
- The Picture of Dorian Gray by Oscar Wilde (472)
- Adventures of Huckleberry Finn by Mark Twain (471)
- The Count of Monte Cristo, Illustrated by Alexandre Dumas (441)
- Peter Pan by J. M. Barrie (438)
- The Wonderful Wizard of Oz by L. Frank Baum (437)
- War and Peace by graf Leo Tolstoy (426)
- The Happy Prince, and Other Tales by Oscar Wilde (416)
- One Against the Stars by Bill Garson (413)
- Wonder Stories: The Best Myths for Boys and Girls by Carolyn Sherwin Bailey (408)
- A Christmas Carol in Prose; Being a Ghost Story of Christmas by Charles Dickens (403)
- The Awakening, and Selected Short Stories by Kate Chopin (397)
- Wuthering Heights by Emily Brontë (389)
- Great Expectations by Charles Dickens (388)
- The Slang Dictionary: Etymological, Historical and Andecdotal by John Camden Hotten (387)
- Uncle Tom's Cabin by Harriet Beecher Stowe (384)
- The New Wonder of the World: Buffalo, the Electric City by A. E. Richmond (377)
- Emma by Jane Austen (374)
- Anne of Green Gables by L. M. Montgomery (358)
- The Philippine Islands, 1493-1898, Volume 33, 1519-1522 by Antonio Pigafetta (352)
- Ulysses by James Joyce (337)
- The Prophet by Kahlil Gibran (336)
- The War of the Worlds by H. G. Wells (330)
- Heart of Darkness by Joseph Conrad (322)
- The Call of the Wild by Jack London (322)
- Dubliners by James Joyce (321)
- Siddhartha by Hermann Hesse (320)
- The Hound of the Baskervilles by Arthur Conan Doyle (319)
- War Gardens: A Pocket Guide for Home Vegetable Growers by Montague Free (315)
- Le jardin des supplices by Octave Mirbeau (309)
- The Jungle by Upton Sinclair (305)
- Autobiography of Benjamin Franklin by Benjamin Franklin (297)
- Prestuplenie i nakazanie. English by Fyodor Dostoyevsky (296)
- The Problems of Philosophy by Bertrand Russell (294)
- Candide by Voltaire (290)
- Tractatus Logico-Philosophicus by Ludwig Wittgenstein (288)
- The Turn of the Screw by Henry James (286)
- Leviathan by Thomas Hobbes (283)
- The Jungle Book by Rudyard Kipling (282)
- A Journal of the Plague Year by Daniel Defoe (278)
- The Odyssey by Homer (278)
- David Copperfield by Charles Dickens (273)
- A Study in Scarlet by Arthur Conan Doyle (273)
- The Interesting Narrative of the Life of Olaudah Equiano, Or Gustavus Vassa, The African by Equiano (272)
- The Brothers Karamazov by Fyodor Dostoyevsky (270)
- Narrative of the Captivity and Restoration of Mrs. Mary Rowlandson by Mary White Rowlandson (260)
- Don Quixote by Miguel de Cervantes Saavedra (260)
- Common Sense by Thomas Paine (258)
- Pygmalion by Bernard Shaw (256)
- A Dictionary of Cebuano Visayan by John U. Wolff (256)
- Sense and Sensibility by Jane Austen (251)
- Les Misérables by Victor Hugo (246)
- Index of the Project Gutenberg Works of H. G. Wells by H. G. Wells (246)
- Ethan Frome by Edith Wharton (245)
- Essays of Michel de Montaigne — Complete by Michel de Montaigne (244)
- The Elements of Style by William Strunk (243)
- Second Treatise of Government by John Locke (242)
- The Kama Sutra of Vatsyayana by Vatsyayana (234)
- The Confessions of St. Augustine by Bishop of Hippo Saint Augustine (232)
- Shaggo, the Mighty Buffalo by Richard Barnum (228)
- Incidents in the Life of a Slave Girl, Written by Herself by Harriet A. Jacobs (227)
- On the origin of species by Charles Darwin (224)
- Frankenstein; Or, The Modern Prometheus by Mary Wollstonecraft Shelley (222)
- A Night in Acadie by Kate Chopin (221)
- The Mysterious Affair at Styles by Agatha Christie (219)
- Japanese Girls and Women by Alice Mabel Bacon (217)
- Index of Project Gutenberg Works on Black History by Various (216)
- Beyond Good and Evil by Friedrich Wilhelm Nietzsche (214)
- The Life and Adventures of Robinson Crusoe by Daniel Defoe (212)
- The Works of Edgar Allan Poe — Volume 2 by Edgar Allan Poe (210)
- Through the Looking-Glass by Lewis Carroll (205)
- Also sprach Zarathustra. English by Friedrich Wilhelm Nietzsche (205)
- Poetics. English by Aristotle (204)


In August \(2022\text{,}\) President Biden committed to forgiving \(\$10,000\) in student debt for around \(43\) million debtors in the U.S., with an additional \(\$10,000\) being forgiven for Pell Grant recipients. The debt was forgiven only for single adults earning under \(\$125,000\) a year and married couples earning under \(\$250,000\) a year [9.11.144].
in-context


review_requested
by Kate Lynch at 2021-01-11 22:41:26.The account privileges were updated.
labeled
by James R. Griffin III at 2021-01-11 15:08:40.labeled
by James R. Griffin III at 2021-01-11 15:08:40.assigned
by James R. Griffin III at 2021-01-11 15:08:41.closed
by James R. Griffin III at 2021-01-11 15:13:50.This has been completed for the file attachments and Solr indices. I will need to upload the DataSpace SIPs from my local development environment.
labeled
by James R. Griffin III at 2021-01-11 16:28:36.labeled
by James R. Griffin III at 2021-01-11 16:28:36.assigned
by James R. Griffin III at 2021-01-11 16:28:36.This should be resolved with the following:
query = DSpace::CLI::Query.new.find_collections_by_title('Monographic reports and papers (Access Limited to Princeton)')
query.results.first.workflow_items.map { |wfi|<EMAIL_ADDRESS>}
query.results.first.workflow_items.map { |wfi|<EMAIL_ADDRESS>}
query = DSpace::CLI::Query.new.find_collections_by_title('Monographic reports and papers (Publicly Accessible)')
query.results.first.workflow_items.map { |wfi|<EMAIL_ADDRESS>}
query.results.first.workflow_items.map { |wfi|<EMAIL_ADDRESS>}
labeled
by James R. Griffin III at 2021-01-11 18:06:04.labeled
by James R. Griffin III at 2021-01-11 18:06:04.assigned
by James R. Griffin III at 2021-01-11 18:06:04.renamed
by James R. Griffin III at 2021-01-11 18:42:54.renamed
by James R. Griffin III at 2021-01-11 20:55:23.referenced
by Eliot Jordan at 2021-01-11 16:11:15.merged
by Eliot Jordan at 2021-01-11 16:11:15.closed
by Eliot Jordan at 2021-01-11 16:11:15.head_ref_deleted
by Eliot Jordan at 2021-01-11 16:11:16.@dependabot rebase
Superseded by #4369.
mentioned
by Dependabot at 2021-01-11 16:12:28.closed
by None at 2021-01-11 16:16:56.head_ref_deleted
by None at 2021-01-11 16:16:57.referenced
by Eliot Jordan at 2021-01-11 16:25:41.merged
by Eliot Jordan at 2021-01-11 16:25:41.closed
by Eliot Jordan at 2021-01-11 16:25:41.head_ref_deleted
by Eliot Jordan at 2021-01-11 16:25:42.labeled
by None at 2021-01-11 16:16:54.labeled
by None at 2021-01-11 16:16:54.referenced
by Eliot Jordan at 2021-01-11 16:55:43.merged
by Eliot Jordan at 2021-01-11 16:55:43.closed
by Eliot Jordan at 2021-01-11 16:55:44.head_ref_deleted
by Eliot Jordan at 2021-01-11 16:55:44.@dependabot rebase
mentioned
by Dependabot at 2021-01-11 16:56:06.head_ref_force_pushed
by None at 2021-01-11 16:56:38.referenced
by Eliot Jordan at 2021-01-11 17:32:09.merged
by Eliot Jordan at 2021-01-11 17:32:09.closed
by Eliot Jordan at 2021-01-11 17:32:09.head_ref_deleted
by Eliot Jordan at 2021-01-11 17:32:10.hi, @kelynch and @cwulfman ! can we get this done for Ellen sometime this week? I need to touch base with her :)
@kelea99
Can you give a description of the goal here? I realize we've done this before, but I wasn't really involved so I want to make sure I do the right thing. I assume the deal is that you need a new project with the same configuration as the other project, then move that box to the new project, then you'll assign external contributors to it so they can enter metadata off the digital images? Then when they're done we move it back?
Is there a project name you'd like for this? Do you want to set the project up first and we can just move the box there?
This is all correct, @tpendragon ! yes, that is exactly why. this is for the folks in India who are working on the metadata for the digitzed items. I am happy to set up the project. standby
Confirmed with Ellen. We can and should continue using the DK - SAE ephpmera project . the stuff from before is still there. will we be able to copy back just the most recent box when it is complete? or is this an all or nothing transfer back to the SAE collection when metadata is complete for the entire project?
We can do one box at a time. Do you want the box copied or moved?
what is easiest for you? I would assume moved? since we have to move the entirety back over once complete, anyway? What do you think?
Yes, unless you have a reason for duplicates moving is easier.
No reason for duplicates. Yes, moving the box over to the DK project and we can move it back to SAE upon completion. Thank you!!
@kelea99 I think it's done, can you confirm?
Looks good to me!! Just informed Ellen. Thank you!!! Shall I close the ticket?
Sure! Glad it worked. :)
Great and thank you!!!
mentioned
by Cliff Wulfman at 2021-01-11 16:08:55.subscribed
by Cliff Wulfman at 2021-01-11 16:08:56.mentioned
by Kate Lynch at 2021-01-11 16:08:56.subscribed
by Kate Lynch at 2021-01-11 16:08:56.mentioned
by Kim Leaman at 2021-01-11 18:40:16.subscribed
by Kim Leaman at 2021-01-11 18:40:16.assigned
by Trey Pendragon at 2021-01-11 18:41:04.added_to_project
by Trey Pendragon at 2021-01-11 18:41:08.moved_columns_in_project
by Trey Pendragon at 2021-01-11 18:41:11.mentioned
by Trey Pendragon at 2021-01-11 19:31:03.subscribed
by Trey Pendragon at 2021-01-11 19:31:03.mentioned
by Kim Leaman at 2021-01-11 19:49:25.subscribed
by Kim Leaman at 2021-01-11 19:49:25.closed
by Kim Leaman at 2021-01-11 20:02:09.moved_columns_in_project
by Kim Leaman at 2021-01-11 20:02:09.@kelea99 This should be done. I'm gonna close this, reopen if there's a problem?
Great! will do. We are still having some server issues last i checked, but will test with @roelmoon either today or tomorrow to ensure it works. Thanks!
added_to_project
by Trey Pendragon at 2021-01-11 18:32:54.mentioned
by Kim Leaman at 2021-01-11 20:12:35.subscribed
by Kim Leaman at 2021-01-11 20:12:36.closed
by Kim Leaman at 2021-01-11 20:13:58.mentioned
by Roel Munoz at 2021-01-11 20:13:59.subscribed
by Roel Munoz at 2021-01-11 20:13:59.moved_columns_in_project
by Kim Leaman at 2021-01-11 20:13:59.labeled
by None at 2021-01-11 19:47:17.labeled
by None at 2021-01-11 19:47:17.referenced
by Eliot Jordan at 2021-01-11 21:59:32.merged
by Eliot Jordan at 2021-01-11 21:59:32.closed
by Eliot Jordan at 2021-01-11 21:59:32.head_ref_deleted
by Eliot Jordan at 2021-01-11 21:59:33.@jrgriffiniii @hackartisan Anyone remember why I reopened this?
mentioned
by None at 2021-01-11 22:57:25.subscribed
by None at 2021-01-11 22:57:25.mentioned
by James R. Griffin III at 2021-01-11 22:57:25.subscribed
by James R. Griffin III at 2021-01-11 22:57:25.These got reuploaded.
closed
by Trey Pendragon at 2021-01-11 23:03:23.This was image 9 and it's been reuploaded.
closed
by Trey Pendragon at 2021-01-11 23:05:54.We don't generate JP2s anymore and the pyramidal worked fine.
closed
by Trey Pendragon at 2021-01-11 23:07:07.closed
by Trey Pendragon at 2021-01-11 23:09:40.I'm...leaving this open, but there are SO many ephemera items in DPUL now. It wasn't necessary to give them ARKs. However, these don't currently have any persistent identifier because of that.
@eliotjordan Bi-yearly check-in: Still busted?
mentioned
by Eliot Jordan at 2021-01-11 23:15:40.subscribed
by Eliot Jordan at 2021-01-11 23:15:40.closed
by Trey Pendragon at 2021-01-11 23:16:34.@eliotjordan Still necessary? If not, close?
mentioned
by Eliot Jordan at 2021-01-11 23:16:50.subscribed
by Eliot Jordan at 2021-01-11 23:16:50.closed
by Trey Pendragon at 2021-01-11 23:18:30.@kelea99 @escowles What's the story here? Do we close this?
I think we should hold of on migrating anything until it is decided what we want to do with all of them. those that were needed for the milberg show were ingested as title only by me and metadata was added directly in DPUL for the exhibition.
mentioned
by Esmé Cowles at 2021-01-11 23:17:20.subscribed
by Esmé Cowles at 2021-01-11 23:17:20.mentioned
by Kim Leaman at 2021-01-11 23:17:20.subscribed
by Kim Leaman at 2021-01-11 23:17:20.@kelea99 Can we close this?
Yes! closing. :)
mentioned
by Kim Leaman at 2021-01-11 23:10:21.subscribed
by Kim Leaman at 2021-01-11 23:10:21.closed
by Kim Leaman at 2021-01-11 23:21:01.@kelea99 Is this done now? Looking at a few they're in the collection.
Yes. this is complete. closing.
mentioned
by Kim Leaman at 2021-01-11 23:02:18.subscribed
by Kim Leaman at 2021-01-11 23:02:18.closed
by Kim Leaman at 2021-01-11 23:22:14.head_ref_force_pushed
by Eliot Jordan at 2021-01-11 23:37:49.referenced
by Trey Pendragon at 2021-01-11 23:22:10.closed
by Eliot Jordan at 2021-01-11 23:43:45.referenced
by Eliot Jordan at 2021-01-11 23:43:44.merged
by Eliot Jordan at 2021-01-11 23:43:45.closed
by Eliot Jordan at 2021-01-11 23:43:45.head_ref_deleted
by Eliot Jordan at 2021-01-11 23:43:46.@kelynch There's a whole working group for this now right? Should we close this until those recommendations come through?
mentioned
by Kate Lynch at 2021-01-11 23:54:09.subscribed
by Kate Lynch at 2021-01-11 23:54:09.We fixed this when we rewrote all the bulk ingest logic.
closed
by Trey Pendragon at 2021-01-11 23:55:38.@kelynch @kelea99 Do you know where we're at here? I've lost track, and it's funny because we built AV functionality specifically for this ingest.
mentioned
by Kate Lynch at 2021-01-11 23:58:16.subscribed
by Kate Lynch at 2021-01-11 23:58:17.mentioned
by Kim Leaman at 2021-01-11 23:58:17.subscribed
by Kim Leaman at 2021-01-11 23:58:17.It's been so long I think the answer is "no."
closed
by Trey Pendragon at 2021-01-12 00:00:05.@kelea99 Should we close this? There's a training program and a bunch of documentation now, yeah?
there is documentation. I do not have everything from above, that apparently the curators asked for. I am so sorry! Do you have more information on "terminology" and what was meant by that?
KEL should address: How ARKs work, and how various URLs are related (e.g. ARK shoulder in DPUL URL)
I assume things like when we say "Record Page", "Source metadata identifier", "Ephemera Folder", "Scanned Resource", "MapSet" maybe?
ok. May we leave this open until i create that as well? I want to make sure we cover everything that was asked. Ill make sure we can close by weeks end
Sounds good.
mentioned
by Kim Leaman at 2021-01-11 23:56:58.subscribed
by Kim Leaman at 2021-01-11 23:56:58.assigned
by Kim Leaman at 2021-01-12 00:03:21.Tested, works.
closed
by Trey Pendragon at 2021-01-12 00:05:24.closed
by Trey Pendragon at 2021-01-12 00:05:42.Users know to switch browsers and we haven't received any complaints. Closing this.
closed
by Trey Pendragon at 2021-01-12 00:06:17.@kelynch There's a working group doing this right? Maybe close this?
mentioned
by Kate Lynch at 2021-01-12 00:06:43.subscribed
by Kate Lynch at 2021-01-12 00:06:43.@kelynch There's a working group doing this right? Maybe close this?
mentioned
by Kate Lynch at 2021-01-12 00:07:00.subscribed
by Kate Lynch at 2021-01-12 00:07:00.closed
by Trey Pendragon at 2021-01-12 00:07:40.closed
by Trey Pendragon at 2021-01-12 00:08:09.closed
by Trey Pendragon at 2021-01-12 00:09:25.closed
by Trey Pendragon at 2021-01-12 00:10:07.We fixed this by switching to pyramidals!
closed
by Trey Pendragon at 2021-01-12 00:13:59.@kelea99 Still needed?
@tpendragon Yes
mentioned
by Kim Leaman at 2021-01-12 00:13:26.subscribed
by Kim Leaman at 2021-01-12 00:13:26.mentioned
by Trey Pendragon at 2021-01-12 00:15:35.subscribed
by Trey Pendragon at 2021-01-12 00:15:35.@kelea99 Still necessary?
Nope. closing.
mentioned
by Kim Leaman at 2021-01-12 00:11:05.subscribed
by Kim Leaman at 2021-01-12 00:11:05.closed
by Kim Leaman at 2021-01-12 00:16:30.@kelea99 Can we close this?
This is similar to/same as #2452. should the two be connected? we do not have multiple creators in ephemera yet, so it should be either be buddies with 2452 or addressed separately.
mentioned
by Kim Leaman at 2021-01-12 00:10:36.subscribed
by Kim Leaman at 2021-01-12 00:10:36.@roelmoon Do you know if this is still a problem?
It is.
mentioned
by Roel Munoz at 2021-01-12 00:09:04.subscribed
by Roel Munoz at 2021-01-12 00:09:04.@kelea99 Still needed? If not can you close it?
@cwulfman and @escowles do you know about this? this was before my time. can you give me more specifics what this is asking for and why?
mentioned
by Kim Leaman at 2021-01-12 00:07:58.subscribed
by Kim Leaman at 2021-01-12 00:07:58.mentioned
by Esmé Cowles at 2021-01-12 00:21:57.subscribed
by Esmé Cowles at 2021-01-12 00:21:57.mentioned
by Cliff Wulfman at 2021-01-12 00:21:57.subscribed
by Cliff Wulfman at 2021-01-12 00:21:58.labeled
by Eliot Jordan at 2021-01-11 23:11:22.assigned
by Eliot Jordan at 2021-01-11 23:11:23.closed
by Trey Pendragon at 2021-01-12 00:23:57.referenced
by Trey Pendragon at 2021-01-12 00:23:57.merged
by Trey Pendragon at 2021-01-12 00:23:57.closed
by Trey Pendragon at 2021-01-12 00:23:57.head_ref_deleted
by Trey Pendragon at 2021-01-12 00:23:58.Here is the current Voyager to Alma mapping: https://docs.google.com/spreadsheets/d/18YCL_PoGMjybNHplVpVhdk-fEgPrTHHxU2VvNcpOTBI/edit?usp=sharing
closed
by Christina Chortaria at 2021-01-11 16:36:05.unassigned
by Christina Chortaria at 2021-01-11 19:02:57.unassigned
by None at 2021-01-11 19:02:57.unlabeled
by Christina Chortaria at 2021-01-11 19:05:56.labeled
by None at 2021-01-11 18:58:25.renamed
by None at 2021-01-11 19:07:43.Also update the callnumberdisplay to be the same for consistency.
Coverage decreased (-0.02%) to 78.173% when pulling eaddd919dd6b3178af59bcb7c05fae37e42fcb60 on 859-daemon into 1cc359b9d3da3e9e04ad13d145e8978cd006a4de on alma.
base_ref_force_pushed
by None at 2021-01-11 14:02:40.head_ref_force_pushed
by None at 2021-01-11 14:55:53.referenced
by Trey Pendragon at 2021-01-11 20:03:06.merged
by Trey Pendragon at 2021-01-11 20:03:06.closed
by Trey Pendragon at 2021-01-11 20:03:06.head_ref_deleted
by Trey Pendragon at 2021-01-11 20:03:07.Coverage decreased (-4.4%) to 78.173% when pulling ce072bdb69f9386f7255a83a5f26a52a68837b70 on alma into b3ecd66028801434ad5f7d9b56a01f41cbf5e2bd on main.
head_ref_force_pushed
by None at 2021-01-11 14:02:40.deployed
by Trey Pendragon at 2021-01-11 21:34:35.I followed @tpendragon solution and made a start with https://app.datadoghq.com/logs/analytics?agg_m=count&agg_q=%40controller%2C%40action%2C%40format&agg_t=count&analyticsOptions=%5B%22bars%22%2C%22cool%22%2Cnull%2Cnull%2C%22value%22%5D&from_ts=1610402629076&index=&live=true&query=service%3Abibdata+host%3Abibdata-alma-staging1++-controller%3A%22HighVoltage%3A%3APagesController%22&to_ts=1610403529076&top_n=10&top_o=top&viz=query_table
mentioned
by Trey Pendragon at 2021-01-11 22:34:58.subscribed
by Trey Pendragon at 2021-01-11 22:34:58.referenced
by Eliot Jordan at 2021-01-11 18:17:35.merged
by Eliot Jordan at 2021-01-11 18:17:35.closed
by Eliot Jordan at 2021-01-11 18:17:35.head_ref_deleted
by Eliot Jordan at 2021-01-11 18:17:37.@dependabot rebase
mentioned
by Dependabot at 2021-01-11 18:17:53.head_ref_force_pushed
by None at 2021-01-11 18:18:24.referenced
by Eliot Jordan at 2021-01-11 20:07:40.merged
by Eliot Jordan at 2021-01-11 20:07:40.closed
by Eliot Jordan at 2021-01-11 20:07:40.head_ref_deleted
by Eliot Jordan at 2021-01-11 20:07:41.Coverage remained the same at 100.0% when pulling 4642c6fb4d8f2d4903ee7f8356916bb638c40090 on dependabot/bundler/redcarpet-3.5.1 into 96ec618fe91b6caa901aca08837b94f555e6ec19 on main.
labeled
by None at 2021-01-11 19:21:37.labeled
by None at 2021-01-11 19:21:37.referenced
by Francis Kayiwa at 2021-01-11 15:54:24.merged
by Francis Kayiwa at 2021-01-11 15:54:24.closed
by Francis Kayiwa at 2021-01-11 15:54:24.head_ref_deleted
by Francis Kayiwa at 2021-01-11 15:54:25.referenced
by Trey Pendragon at 2021-01-11 20:12:17.merged
by Trey Pendragon at 2021-01-11 20:12:17.closed
by Trey Pendragon at 2021-01-11 20:12:17.head_ref_deleted
by Trey Pendragon at 2021-01-11 20:12:18.referenced
by Christina Chortaria at 2021-01-11 20:55:47.merged
by Christina Chortaria at 2021-01-11 20:55:47.closed
by Christina Chortaria at 2021-01-11 20:55:47.head_ref_deleted
by Christina Chortaria at 2021-01-11 20:55:48.head_ref_force_pushed
by Francis Kayiwa at 2021-01-11 14:50:09.ready_for_review
by Francis Kayiwa at 2021-01-11 15:37:47.review_requested
by Francis Kayiwa at 2021-01-11 15:38:00.head_ref_force_pushed
by Francis Kayiwa at 2021-01-11 16:00:50.referenced
by Francis Kayiwa at 2021-01-11 22:11:08.merged
by Francis Kayiwa at 2021-01-11 22:11:08.closed
by Francis Kayiwa at 2021-01-11 22:11:08.head_ref_deleted
by Francis Kayiwa at 2021-01-11 22:11:09.convert_to_draft
by Trey Pendragon at 2021-01-11 22:45:30.referenced
by Christina Chortaria at 2021-01-11 20:54:20.merged
by Christina Chortaria at 2021-01-11 20:54:21.closed
by Christina Chortaria at 2021-01-11 20:54:21.head_ref_deleted
by Trey Pendragon at 2021-01-11 20:55:01.base_ref_changed
by None at 2021-01-11 15:18:52.head_ref_force_pushed
by None at 2021-01-11 16:00:14.head_ref_force_pushed
by None at 2021-01-11 19:28:41.head_ref_force_pushed
by None at 2021-01-11 21:01:12.closed
by None at 2021-01-11 15:57:01.moved_columns_in_project
by None at 2021-01-11 15:57:03.referenced
by None at 2021-01-11 15:57:01.merged
by None at 2021-01-11 15:57:01.closed
by None at 2021-01-11 15:57:02.head_ref_deleted
by None at 2021-01-11 15:57:03.closed
by Eliot Jordan at 2021-01-11 16:28:12.referenced
by Eliot Jordan at 2021-01-11 16:28:11.merged
by Eliot Jordan at 2021-01-11 16:28:11.closed
by Eliot Jordan at 2021-01-11 16:28:12.head_ref_deleted
by Eliot Jordan at 2021-01-11 16:28:13.Coverage decreased (-0.9%) to 99.089% when pulling 95b4af1a56345fb55f715e8a320394ef4d108dc5 on omniauth into 7aa36ff8b7a07da09c9045cf02950f27acadfb5a on main.
deployed
by Trey Pendragon at 2021-01-11 19:43:19.deployed
by Trey Pendragon at 2021-01-11 20:26:39.Resolved: Confluence is back up in 4ca23c0
.
labeled
by Francis Kayiwa at 2021-01-11 02:49:38.labeled
by Francis Kayiwa at 2021-01-11 02:49:38.locked
by Francis Kayiwa at 2021-01-11 02:49:39.closed
by Francis Kayiwa at 2021-01-11 03:26:31.


-
June 2017
We set up, we set up, we set up, we set up, we set up, we set up, we set up, we set up
-
June 2017
We set up, we set up, we set up, we set up, we set up, we set up, we set up, we set up
-
June 2017
We set up, we set up, we set up, we set up, we set up, we set up, we set up, we set up
-
June 2017
We set up, we set up, we set up, we set up, we set up, we set up, we set up, we set up
-
June 2017
We set up, we set up, we set up, we set up, we set up, we set up, we set up, we set up


Checkboxes are sometimes confusing and for touch screen based apps, checkboxes can be difficult to operate. So we have created AtomYesNoControl to be a perfect alternative of Checkbox to store and display boolean switch.


Class DualSurfaceCurve
Inheritance
System.Object
DualSurfaceCurve
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Assembly: CADability.dll
Syntax
public class DualSurfaceCurve : IDualSurfaceCurve
Constructors
|
Improve this Doc
View Source
DualSurfaceCurve(ICurve, ISurface, ICurve2D, ISurface, ICurve2D)
Declaration
public DualSurfaceCurve(ICurve curve3D, ISurface surface1, ICurve2D curve2D1, ISurface surface2, ICurve2D curve2D2)
Parameters
Methods
|
Improve this Doc
View Source
SwapSurfaces()
Declaration
public void SwapSurfaces()
Explicit Interface Implementations
|
Improve this Doc
View Source
IDualSurfaceCurve.Curve2D1
Declaration
ICurve2D IDualSurfaceCurve.Curve2D1 { get; }
Returns
|
Improve this Doc
View Source
IDualSurfaceCurve.Curve2D2
Declaration
ICurve2D IDualSurfaceCurve.Curve2D2 { get; }
Returns
|
Improve this Doc
View Source
IDualSurfaceCurve.Curve3D
Declaration
ICurve IDualSurfaceCurve.Curve3D { get; }
Returns
|
Improve this Doc
View Source
IDualSurfaceCurve.GetCurveOnSurface(ISurface)
Declaration
ICurve2D IDualSurfaceCurve.GetCurveOnSurface(ISurface onThisSurface)
Parameters
| Type |
Name |
Description |
| ISurface |
onThisSurface |
|
Returns
|
Improve this Doc
View Source
IDualSurfaceCurve.Split(Double)
Declaration
IDualSurfaceCurve[] IDualSurfaceCurve.Split(double v)
Parameters
| Type |
Name |
Description |
| System.Double |
v |
|
Returns
|
Improve this Doc
View Source
IDualSurfaceCurve.Surface1
Declaration
ISurface IDualSurfaceCurve.Surface1 { get; }
Returns
|
Improve this Doc
View Source
IDualSurfaceCurve.Surface2
Declaration
ISurface IDualSurfaceCurve.Surface2 { get; }
Returns
Implements


@* * Copyright 2019 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import config.AppConfig @import helpers.accordionHelper @(email: String)(implicit request: Request[_], messages: Messages, appConfig: AppConfig) @accordionContent = {
@messages("verifyEmail.accordion.lineOne") @messages("verifyEmail.accordion.lineTwo"). @messages("verifyEmail.accordion.lineThree")
} @main_template(title = messages("verifyEmail.title"), bodyClasses = None) {@messages("verifyEmail.lineOne", email)
@messages("verifyEmail.lineTwo") @messages("verifyEmail.lineThree") @messages("verifyEmail.lineFour")
@accordionHelper( messages("verifyEmail.accordion.heading"), "email-address", "confirmation-email", accordionContent ) }


Use this page to run test against your subscribers
Please note that this is a reference implementation that is intended to demontrate all the possible capabilities.
In a real scenario you may want to integrate the API provided by this service in your help desk software.
{{vm.truckroll.result_code}}
{{vm.truckroll.result}}
{{vm.truckroll.backend_status}}


Next: constantly, Previous: identity, Up: Data and Control Flow Dictionary
complement
function ⇒ complement-function
function—a function.
complement-function—a function.
Returns a function that takes the same arguments as function, and has the same side-effect behavior as function, but returns only a single value: a generalized boolean with the opposite truth value of that which would be returned as the primary value of function. That is, when the function would have returned true as its primary value the complement-function returns false, and when the function would have returned false as its primary value the complement-function returns true.
(funcall (complement #'zerop) 1) ⇒ true (funcall (complement #'characterp) #\A) ⇒ false (funcall (complement #'member) 'a '(a b c)) ⇒ false (funcall (complement #'member) 'd '(a b c)) ⇒ true
(complement x) ≡ #'(lambda (&rest arguments) (not (apply x arguments)))
In Common Lisp, functions with names like "xxx-if-not" are related to functions with names like "xxx-if" in that
(xxx-if-not f . arguments) ≡ (xxx-if (complement f) . arguments)
For example,
(find-if-not #'zerop '(0 0 3)) ≡ (find-if (complement #'zerop) '(0 0 3)) ⇒ 3
Note that since the "xxx-if-not" functions and the :test-not arguments have been deprecated, uses of "xxx-if" functions or :test arguments with complement are preferred.


Moka name refers to the technique in brewing coffee. This library is primarily used configuration usage in java applications / services that need to merge environment variables with property configurations.
As more applications move to docker the need for use of environment variables to configure an application becomes more important.
Feel free to fork and make changes.