The R package covfefe performs Computational Validation For Estimating Falciparum Epidemiology (ahem). More specifically, it provides a flexible framework for simulating genetic data from P. falciparum transmission models.
We start with data on infection histories - i.e. who became infected when, who did this infection originate from, when did this episode recover, etc. We then specify a subset of samples that we are interested in - for example, 100 individuals at day 365. covfefe then prunes the infection history data down to a reduced set that contains only the events that directly impact on the samples that we are interested in. Often the number of sampled hosts is far smaller than the total infected population, or perhaps sampling only occurs at a few time points, meaning the pruned infection history can be much smaller than the complete infection history. Finally, covfefe simulates genetic data from the pruned infection history and from a set of user-defined parameters that specify the genetic model, for example the recombination rate and the number of loci.
By using the infection history as the starting point we ensure that multiple epidemiological models can be plugged into the same tool. Any malaria transmission model that generates infection history data in the format required by covfefe can be used to simulate genetic data, and this format has been designed to be flexible enough to encompass a wide range of models. covfefe also contains it sown simple individual-based model that simulates malaria transmission in multiple demes (partially isolated subpopulations), with or without migration between demes.
This package is still in development, meaning methods are likely to change in the near future. That being said, here are instructions on how to install and run covfefe as it currently stands.
covfefe relies on the Rcpp package, which requires the following OS-specific steps:
Install the core software development utilities required for R package development as well as LaTeX by executing
```
sudo apt-get install r-base-dev texlive-full
```
Next, ensure that you have devtools installed by running
install.packages("devtools")
Finally, install the covfefe package directly from GitHub by running
devtools::install_github("mrc-ide/covfefe")
library(covfefe)
The analysis pipeline starts by creating a covfefe project. This project will hold all inputs and outputs used by the package, and is a convenient way of keeping everything we need in one place.
myproj <- covfefe_project()
Running names(myproj)
we can see all the elements that make up a covfefe project, including parameters, distributions, etc. We will talk about each of these elements in due course.
To begin with we need some data on infection histories. For convenience, we will use the in-built individual-based model with default settings, which simulates transmission in a single population.
mysim <- sim_indiv()
Again, running names(mysim)
we can see the elements that make up mysim
, including H
- the human population size in each deme, daily_counts
- the number of susceptible vs. singly-infected vs. doubly-infected (and so on) individuals on each day, and infection_history
- a complete list of critical events. For those who want to understand the infection history format, details can be found here (TODO - link to format).
TODO - demonstrate plotting functions for simulated data.
We continue by loading the infection history into our project.
myproj <- assign_infection_history(myproj, mysim$infection_history)
Next, we need to specify how many human hosts we want to sample from, and when. We do this using a simple matrix or data frame with three columns: column 1 gives the time of sampling, column 2 gives the deme that we are sampling from, and column 3 gives the number of hosts to draw at random from the pool of blood-stage individuals at that point in time. Note that in column 3, a value of -1 indicates that all blood stage hosts should be sampled. In this example, we will sample at day 100 and day 365, in a single deme (we only have one deme), and drawing all hosts at the first time point and 100 hosts at the second time point.
mysamp <- data.frame(times = c(100, 365), demes = 1, hosts = c(-1, 100))
Next we load this data into our project, taking care to specify the number of demes, which is not always completely obvious from the infection history and sampling data alone.
myproj <- sample_hosts(myproj, mysamp, demes = 1)
Finally we prune the infection history down based on the sampling data. Once we have done this, we are free to delete the original infection history data from the project. Doing so will free up space, which might be limited if the infection history data is very large, but will also mean we cannot re-run sample_hosts
without first re-loading the infection history data.
myproj <- prune(myproj)
myproj <- delete_infection_history(myproj)
Now that we know which transmission events we are interested in, we can simulate the passing down of genetic information through this infection tree. Two of the most important variables from the genetic point of view are the number of oocysts that develop in the mosquito to produce viable sporozoites, and the number of sporozoites that make it to the liver of a newly infected host to form viable hepatic schizonts. Each of these variables can be specified in terms of a full probability distribution, which is drawn from independently each time a mosquito or human becomes infected.
myproj <- define_oocyst_distribution(myproj, oocysts = dpois(1:10, lambda = 1))
myproj <- define_hepatocyte_distribution(myproj, hepatocytes = dpois(1:10, lambda = 1))
Any distribution can be used, but note that these distributions are assumed to start from 1, as a value of 0 oocysts or 0 hepatic schizonts is impossible given that transmission occured.
Next we must define the loci that we are interested in. We define these in a list of up to 14 elements (one for each chromosome), with each consisting of a vector of genomic positions (in base pairs). In this example our target loci are evenly tiled over chromosomes 1 and 3.
myloci <- list(seq(0, 64e4, 1e4), NULL, seq(0, 100e4, 1e4))
Finally we can simulate some genetic data. At this stage we also specify the recombination rate in events per base-pair.
myproj <- sim_genotypes(myproj, myloci, recom_rate = 0.001)
Further details of the genetic model can be found here (TODO - link to details of genetic model).


Data Science and more
machine learning steps
31 Aug 2020
Which problems can data science solve | August 31, 2020
What is in it for you | August 29, 2020


@@include('../partials/head/head.html')
@@include('../partials/components/leftCol.html')
@@include('../partials/components/topLine.html', { "title": "View Details Page" }) @@include('../partials/components/topView.html')
plan details
kroger
cvs
mail order
@@include('../partials/scripts/common.html')


Preparation time
less than 30 mins
Cooking time
over 2 hours
Serves
Serves 6
A hearty pie for a comforting supper. For a variation, try adding carrots or other root vegetables.
Preheat the oven to 200C/400F/Gas 6.
For the filling, boil the meat in the stock for approximately one hour. Add the potatoes, cook until they begin to soften then season to taste with salt. Continue cooking until the potatoes are very soft and the mixture has thickened then set aside and allow to stand for about 30 minutes.
For the pastry, sift the flour into a bowl and rub in the margarine and lard until the mixture resembles fine breadcrumbs.
Add the salt and mix in enough soda water to form a stiff dough. Wrap the dough in cling film and chill in the fridge for 20-30 minutes.
Spoon the cooked meat mixture into a pie dish and moisten the edges of the dish with a little water.
Roll out the pastry on a floured work surface to a 1cm/½in thickness and place it on top of the pie dish. Trim the pastry, then seal and crimp the edges. For the glaze, mix together the egg and milk and brush it over the pastry.
Bake the pie in the oven for 30-35 minutes or until the pastry is golden-brown. Let the pie stand for five minutes before serving.


The RStudio window has multiple panes. RStudio IDE Cheat Sheet:
Top Left - Code Editor: for creating scripts to run in pieces or as a whole (like this document!);
Bottom Left - R Console: you can type R commands and see output;
Top Right - Environment: lists the objects that you create, such as data sets;
Bottom Right - Help: find out information about functions and packages. This same pane will have tabs for showing plots that you make, view apps and documents, show files in the folder, and packages used.
R is a scripting language, which means that it is just like writing an essay, or a math proof. We write a script to do specific tasks, that we can run again and again, or give to someone else to run.
You should take note of the following facts:
>
;
#
tag. You can comment in continuation of the command line or in a separate line.💡 The best way to learn is by doing. Therefore, I would like you not to copy paste the commands showing in the black boxes, but to type it in your R console. It would be even better to type it as an R script, so that you can keep a history of it and return to it if you wish to do so.
New project
, then New directory
, navigate to the desktop, and name the project My_First_R
. This will create a folder with this name on the desktop. This will be your workspace for this project. 😇If you want to read or write files on your computer from and to a specific location you will need to set a working directory in R. To set the working directory in R to a specific folder on your computer you will use the following:
# On a pc, you would set working directory like this
setwd("C:/Documents/MyR_Project")
# On a mac, you would set working directory like this
setwd("~/documents/MyR_Project")
🤓💡: Make sure you fully adopt the correct syntax in terms of slashes and quotation marks.
Note that the current working directory is displayed by RStudio within the title region of the Console. You can also set up your working directory by:
Use the Tools | Change Working Dir… menu (Session | Set Working Directory on a mac).
Use the More | Set As Working Directory menu
However, you should always start a fresh project (File | New Project…) that will automatically set up your working directory without having to point to it in your script file. You should read Project-oriented workflow 💻🔥 article by Jenny Bryan to convince yourself that this would be a good habit you should adopt.
“In R, the fundamental unit of shareable code is the package." Hadley Wickham, R packages
R packages are collections of functions code, data sets, documentation and tests developed by the community, that are mostly made available on the Comprehensive R Archive Network, or CRAN, the public clearing house for R packages. These packages are developed by experts in their fields and currently the CRAN package repository features over 14,000 of them. Many of the analyses that they offer are not even available in any of the standard data analysis software packages, which is one of the reasons that R is so successful.
When you run R you will authomatically upload the package:base
, which is the system library, i.e. the package where all standard functions are defined. The rest of the so called base packages contain the basic statistical routines. Assuming that you are connected to the internet, you can install a package using install.packages()
. From the RStudio menu you can do it by sellecting Tools | Install Packages… and typing the name of the desired package in the dialogue window.
Once installed, the package will appear in the list of available packages in your Packages pane. To use it you have to load it to the system’s search path by simply typing the name of the package as an argument of the library()
function, or by checking the box next to its name from the Packages pane.
💡: Note that you can call the dialog window to install a package from the Packages pane! Have you spotted the Install icon yet?
To begin with, we can use R as a calculator. 😁
In your console type in 2 + 2
. Note that you don’t have to type the equals sign and that the answer has [1] in front. The [1] indicates that there is only one number in the answer. If the answer contains more than one number it uses numbering like this to indicate where in the ‘group’ of numbers each one is.
You see?! R is like a big calculator! 😲
R’s binary and logical operators will look very familiar to those who have some experience with programming.
Try doing other math operations, like subtraction, multiplication, division, or square root and power operations. For example, try the following:
2 + 5
3 - 2
18 / 6
4 * 7
(5 - 3)^2 / 4
9^(1/2) * 4
The code you type and want to be executed can be saved in scripts and R Markdown files. Scripts ending with .R file extension and R Markdown files, which mixes both R code and Markdown code, end with .Rmd.
🤓💡: The code that you write just for quick exploration can be written in the console. Code we want to reuse and show off later should be saved as a script.
To create a new script go through the menu File | New File | R Script or through the green plus button on the top left.
Any code we type in here can be run and executed in the console. Hitting the Run button at the top of the script window will run the line of code on which the cursor is sitting.
To run multiple lines of code, highlight them and click Run.
💡: Get into the habit of saving your scripts after you create them. Try to save them before running your code in case you write code that makes R crash which sometimes happens. 😣 &@#$!?#%
https://www.rstudio.com/products/rstudio/features/
R provides a number of specialised data structures we will refer to as objects. To refer to an object we use a symbol. You can assign any object using the assignment operator <-, which is a composite made up from ‘less than’ and ‘minus’, with no space between them! Thus, we can create scalar constants, which we refer to as variables, and perform mathematical operations over them.
x <- 5
y <- 6
You can use objects in calculation in exactly the same way as you have already seen numbers being used earlier:
x + y
and you can store the results of the calculation done with the objects in another object:
z <- x * y
z
🤓💡 BUT, remember!!! Operator <- is a composite made up from ‘less than’ and ‘minus’, with no space between them!!!!
Try to type the following
x< -5
y< -6
and see what happens.
After you’ve created some objects in R you can get a list of them using ls()
function:
ls()
RStudio provides a very comfortable working environment and enables you to monitor your list of objects in the Environment pane window in the top right corner.
R is not like other conventional statistical packages like SAS, Minitab, SPSS, to name a few. It is more of a programming language designed for conducting data analyses. It comes with a vast number of ready-made blocks of code that will enable you to manipulate data, perform intricate mathematical calculations with data, carry out an array of statistical analysis ranging from simple to complex to extremely complex and it will facilitate the creation of fantastic graphs. These pre-made blocks of code are known as functions.
R has all the standard mathematical functions that you might ever need: sin
, cos
, tan
, asin
, atan
, log
, log10
, exp
, abs
, sqrt
, factorial
… To use them, all you need to do is to type the function and put the name of the object (argument) you would like to use the function for in brackets.
You should try a few 😃
sqrt(144)
log10(8)
log10(100)
log(100)
exp(1)
pi
sin(pi/2)
abs(-7)
factorial(3)
exp(x)
log(y, 2)
You can use expression as the argument of a function:
z <- x * y
trunc(x^2 + z / y)
log((100 * x - y^2) / z)
You can have nested functions and you can use functions in creating new objects:
round(exp(x), 2)
p <- abs(floor(log((100*x - y^2) / exp(z))))
p
🤓💡 To obtain a description of a function you need to type a question mark, **?**, in front of the name of the function. You might find this particularly useful when you start applying more complicated functions, as help will often provide you not only with the detailed description of the function’s input/output arguments, but practical illustrative examples on how the function can be used and applied. You should try to ask R for help for lm()
function (can you tell what it is used for?)
When analysing data you are more likely to be working with lots of numbers/variables. It would be much more convenient to keep all of those numbers/variables as an object. Variables can be of different types: logical, integer, double, string are some examples. Variables with one or more values of the same type are vectors. Hence, a variable with a single value (known to us as a scalar) is a vector of length 1. We can assign to vectors in many different ways:
:
) as a sequence generated operator or by using built in function rep()
for replicating the given number for a given number of times.x <- 1:10
x
## [1] 1 2 3 4 5 6 7 8 9 10
x <- rep(1,10)
x
## [1] 1 1 1 1 1 1 1 1 1 1
x <- c(2, 6, 4, 2, 3, 7, 1, 5, 9, 8)
x
## [1] 2 6 4 2 3 7 1 5 9 8
seq(1,10,0.2)
## [1] 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6
## [15] 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 5.8 6.0 6.2 6.4
## [29] 6.6 6.8 7.0 7.2 7.4 7.6 7.8 8.0 8.2 8.4 8.6 8.8 9.0 9.2
## [43] 9.4 9.6 9.8 10.0
💡: R can easily perform arithmetic with vectors as it does with scalars. Thus, just as we can use those operators over the scalars we can use them when dealing with the vectors and/or a combination of both.
x <- rep(1,10)
y <- 1:10
x
## [1] 1 1 1 1 1 1 1 1 1 1
y
## [1] 1 2 3 4 5 6 7 8 9 10
c(x, y)
## [1] 1 1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 10
x + y
## [1] 2 3 4 5 6 7 8 9 10 11
x + 2 * y
## [1] 3 5 7 9 11 13 15 17 19 21
x^2 / y
## [1] 1.0000000 0.5000000 0.3333333 0.2500000 0.2000000 0.1666667 0.1428571
## [8] 0.1250000 0.1111111 0.1000000
z <- (x+y)/2
z
## [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5
z <- c(z, rep(1, 3), c(100, 200, 300))+1
z
## [1] 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 2.0
## [12] 2.0 2.0 101.0 201.0 301.0
p <- 2.5
z*p
## [1] 5.00 6.25 7.50 8.75 10.00 11.25 12.50 13.75 15.00 16.25
## [11] 5.00 5.00 5.00 252.50 502.50 752.50
To access a specific element of a vector you would use index inside a single square bracket [] operator. The following shows how to obtain a vector member. The vector index is 1-based, thus use the index position 4 to access the fourth element.
x <- c(9, 3, 7, 2, 9, 2, 1, 5, 4, 6)
x
## [1] 9 3 7 2 9 2 1 5 4 6
x[4]
## [1] 2
💡: In R you can evaluate functions over the entire vectors which helps to avoid looping.
y <- c(4, 1, 0, 8, 1, x)
max(y)
## [1] 9
range(y)
## [1] 0 9
mean(y)
## [1] 4.133333
var(y)
## [1] 9.409524
sort(y)
## [1] 0 1 1 1 2 2 3 4 4 5 6 7 8 9 9
cumsum(y)
## [1] 4 5 5 13 14 23 26 33 35 44 46 47 52 56 62
💡: Note that missing values in R are represented by the symbol NA (not available) or NaN (not a number) for undefined mathematical operations.
Here, NA would be shown if an index is out-of-range.
z <- c(5, 8, 2)
z[10]
## [1] NA
You can also obtain a desirable selection of the elements of a vector by specifying a query within the index brackets []
:
y <- c(9, 3, 7, 2, 9, 2, 1, 5, 4, 6)
y[y > 5]
## [1] 9 7 9 6
y[y > 10]
## numeric(0)
y[y != 2]
## [1] 9 3 7 9 1 5 4 6
When data is arranged in two dimensions rather than one we have matrices. In R function matrix()
creates matrices:
ma1 <- matrix(c(1, 0, -20, 0, 1, -15, 1, -1, 0),
nrow = 3, ncol = 3,
byrow = TRUE)
ma1
## [,1] [,2] [,3]
## [1,] 1 0 -20
## [2,] 0 1 -15
## [3,] 1 -1 0
dim(ma1)
## [1] 3 3
The individual numbers in a matrix are called the elements of the matrix. Each element is uniquely defined by its particular row number and column number. To determine the dimensions of a matrix use function dim()
.
An element at the i
-th row, j
-th column of a matrix can be accessed by indexing inside square bracket operator [i, j]
. The entire i
-th row or entire j
-th column of a matrix can be extracted as shown in the code below.
ma1 <- matrix(c(4, 10, 130, 0, 8, -7, 9, 11, -2, 7, -5, 4),
nrow = 3, ncol = 4)
ma1
## [,1] [,2] [,3] [,4]
## [1,] 4 0 9 7
## [2,] 10 8 11 -5
## [3,] 130 -7 -2 4
ma1[2, 3]
## [1] 11
ma1[1, ]
## [1] 4 0 9 7
ma1[ , 4]
## [1] 7 -5 4
Standard scalar algebra, which deals with operations on single numbers, has a set of well established rules for handling manipulations involving addition, subtraction, multiplication and division. In a broadly similar fashion, a set of rules has been developed to enable us to manipulate matrices. Introducing those rules is beyond the scope of this course, but they are nicely covered on the www.statisticshowto.com website.
Practise by doing the following set of exercises:
Create vectors called x1
and x2
, where vector x1
consists of numbers: 1, 4, 7, 9, 11, 12, 13, 15
and 18
and vector x2
of numbers: 1, 1, 1, 2, 2, 2, 3, 3, 3
.
Subtract x2
from x1
.
Create a new vector called x3
by combining vectors x1
and x2
.
Calculate mean and variance of x3
.
Calculate medians for the three vectors.
Create a matrix called m1
with the following elements:
matrix(c(1, 5, 9, 2, 6, 10, 3, 7, 11, 4, 8, 12), nrow = 4, ncol = 3, byrow = TRUE)
Use a subscript to find the 2
-nd number in vector x1
and x2
and element in the 2
-nd row and 3
-rd column in matrix m1
.
Add the 5
-th number in vector x1
to the element in matrix m1
which is in 1
-st row and 1
-st column.
Calculate the mean of all numbers in x3
that are less than 13.
© 2019 Tatjana Kecojevic


Welcome to iCoffee
Refresh
Refresh
Refresh
Refresh
Refresh
Refresh
Refresh
Refresh
Refresh
Refresh
Refresh
Refresh


Project 616
articles
colophon
Copyright
25 Aug 2011
No Escape
25 Aug 2011
Steve Jobs Resigns
25 Aug 2011
Tea Party more unpopular than Atheists
18 Aug 2011
Apologist
18 Aug 2011
Ignoring Ron Paul
17 Aug 2011
[OS X Lion] Sucks
13 Aug 2011
The Future of NASA
13 Aug 2011
Uncle
12 Aug 2011
Kindle Cloud Reader
12 Aug 2011
US Debt
12 Aug 2011
More on Software Patents
11 Aug 2011
jojo
10 Aug 2011
Star Wars Helmets
07 Aug 2011
Fauxgo
06 Aug 2011
SE on SW Patents
05 Aug 2011
IE IQ
04 Aug 2011
Battleship
29 Jul 2011
50 and 50 — The State Mottos
27 Apr 2011
Apple Sues Samsung
19 Apr 2011
Kindle With Ads
11 Apr 2011
Gift Complaint Form
09 Apr 2011
Elliot Jay Stocks on Cloud Set-ups
09 Apr 2011
Pow
08 Apr 2011
Garfield Minus Garfield
08 Apr 2011
Glenn Beck Canceled
07 Apr 2011


A
bubble plot
is a scatter plot with a third numeric
variable mapped to circle size. This page describes several methods to
build one with R
.
A bubble chart is basically a scatterplot with a third numeric variable used for circle size. Thus, remember all the tips described in the scatterplot section also apply here.
Scatterplot sectionggplot2
ggplot2 allows to create bubble
chart thanks to the geom_point()
function. Next examples
will lead you through the process step by step:
Here is an interactive bubble chart built in R, thanks to the
ggplotly()
function of the plotly
library.
Try to hover circles to get a tooltip, or select an area of interest
for zooming. Double click to reinitialize.
The web is full of astonishing R charts made by awesome bloggers. The R graph gallery tries to display some of the best creations and explain how their source code works. If you want to display your work here, please drop me a word or even better, submit a Pull Request!


urllib3¶
urllib3 is a powerful, sanity-friendly HTTP client for Python. Much of the Python ecosystem already uses urllib3 and you should too. urllib3 brings many critical features that are missing from the Python standard libraries:
- Thread safety.
- Connection pooling.
- Client-side SSL/TLS verification.
- File uploads with multipart encoding.
- Helpers for retrying requests and dealing with HTTP redirects.
- Support for gzip and deflate encoding.
- Proxy support for HTTP and SOCKS.
- 100% test coverage.
urllib3 is powerful and easy to use:
>>> import urllib3
>>> http = urllib3.PoolManager()
>>> r = http.request('GET', 'http://httpbin.org/robots.txt')
>>> r.status
200
>>> r.data
'User-agent: *\nDisallow: /deny\n'
Installing¶
urllib3 can be installed with pip:
$ pip install urllib3
Alternatively, you can grab the latest source code from GitHub:
$ git clone git://github.com/shazow/urllib3.git
$ python setup.py install
Documentation¶
urllib3 has usage and reference documentation at urllib3.readthedocs.io.
Contributing¶
urllib3 happily accepts contributions. Please see our contributing documentation for some tips on getting started.
Sponsorship¶
If your company benefits from this library, please consider sponsoring its development.
Changes¶
1.22 (2017-07-20)¶
- Fixed missing brackets in
HTTP CONNECT
when connecting to IPv6 address via IPv6 proxy. (Issue #1222) - Made the connection pool retry on
SSLError
. The originalSSLError
is available onMaxRetryError.reason
. (Issue #1112) - Drain and release connection before recursing on retry/redirect. Fixes deadlocks with a blocking connectionpool. (Issue #1167)
- Fixed compatibility for cookiejar. (Issue #1229)
- pyopenssl: Use vendored version of
six
. (Issue #1231)
1.21.1 (2017-05-02)¶
- Fixed SecureTransport issue that would cause long delays in response body delivery. (Pull #1154)
- Fixed regression in 1.21 that threw exceptions when users passed the
socket_options
flag to thePoolManager
. (Issue #1165) - Fixed regression in 1.21 that threw exceptions when users passed the
assert_hostname
orassert_fingerprint
flag to thePoolManager
. (Pull #1157)
1.21 (2017-04-25)¶
- Improved performance of certain selector system calls on Python 3.5 and later. (Pull #1095)
- Resolved issue where the PyOpenSSL backend would not wrap SysCallError exceptions appropriately when sending data. (Pull #1125)
- Selectors now detects a monkey-patched select module after import for modules that patch the select module like eventlet, greenlet. (Pull #1128)
- Reduced memory consumption when streaming zlib-compressed responses (as opposed to raw deflate streams). (Pull #1129)
- Connection pools now use the entire request context when constructing the pool key. (Pull #1016)
PoolManager.connection_from_*
methods now accept a new keyword argument,pool_kwargs
, which are merged with the existingconnection_pool_kw
. (Pull #1016)- Add retry counter for
status_forcelist
. (Issue #1147) - Added
contrib
module for using SecureTransport on macOS:urllib3.contrib.securetransport
. (Pull #1122) - urllib3 now only normalizes the case of
http://
andhttps://
schemes: for schemes it does not recognise, it assumes they are case-sensitive and leaves them unchanged. (Issue #1080)
1.20 (2017-01-19)¶
- Added support for waiting for I/O using selectors other than select, improving urllib3’s behaviour with large numbers of concurrent connections. (Pull #1001)
- Updated the date for the system clock check. (Issue #1005)
- ConnectionPools now correctly consider hostnames to be case-insensitive. (Issue #1032)
- Outdated versions of PyOpenSSL now cause the PyOpenSSL contrib module to fail when it is injected, rather than at first use. (Pull #1063)
- Outdated versions of cryptography now cause the PyOpenSSL contrib module to fail when it is injected, rather than at first use. (Issue #1044)
- Automatically attempt to rewind a file-like body object when a request is retried or redirected. (Pull #1039)
- Fix some bugs that occur when modules incautiously patch the queue module. (Pull #1061)
- Prevent retries from occuring on read timeouts for which the request method was not in the method whitelist. (Issue #1059)
- Changed the PyOpenSSL contrib module to lazily load idna to avoid unnecessarily bloating the memory of programs that don’t need it. (Pull #1076)
- Add support for IPv6 literals with zone identifiers. (Pull #1013)
- Added support for socks5h:// and socks4a:// schemes when working with SOCKS proxies, and controlled remote DNS appropriately. (Issue #1035)
1.19.1 (2016-11-16)¶
- Fixed AppEngine import that didn’t function on Python 3.5. (Pull #1025)
1.19 (2016-11-03)¶
- urllib3 now respects Retry-After headers on 413, 429, and 503 responses when using the default retry logic. (Pull #955)
- Remove markers from setup.py to assist ancient setuptools versions. (Issue #986)
- Disallow superscripts and other integerish things in URL ports. (Issue #989)
- Allow urllib3’s HTTPResponse.stream() method to continue to work with non-httplib underlying FPs. (Pull #990)
- Empty filenames in multipart headers are now emitted as such, rather than being supressed. (Issue #1015)
- Prefer user-supplied Host headers on chunked uploads. (Issue #1009)
1.18.1 (2016-10-27)¶
CVE-2016-9015. Users who are using urllib3 version 1.17 or 1.18 along with PyOpenSSL injection and OpenSSL 1.1.0 must upgrade to this version. This release fixes a vulnerability whereby urllib3 in the above configuration would silently fail to validate TLS certificates due to erroneously setting invalid flags in OpenSSL’s
SSL_CTX_set_verify
function. These erroneous flags do not cause a problem in OpenSSL versions before 1.1.0, which interprets the presence of any flag as requesting certificate validation.There is no PR for this patch, as it was prepared for simultaneous disclosure and release. The master branch received the same fix in PR #1010.
1.18 (2016-09-26)¶
- Fixed incorrect message for IncompleteRead exception. (PR #973)
- Accept
iPAddress
subject alternative name fields in TLS certificates. (Issue #258) - Fixed consistency of
HTTPResponse.closed
between Python 2 and 3. (Issue #977) - Fixed handling of wildcard certificates when using PyOpenSSL. (Issue #979)
1.17 (2016-09-06)¶
- Accept
SSLContext
objects for use in SSL/TLS negotiation. (Issue #835) - ConnectionPool debug log now includes scheme, host, and port. (Issue #897)
- Substantially refactored documentation. (Issue #887)
- Used URLFetch default timeout on AppEngine, rather than hardcoding our own. (Issue #858)
- Normalize the scheme and host in the URL parser (Issue #833)
HTTPResponse
contains the lastRetry
object, which now also contains retries history. (Issue #848)- Timeout can no longer be set as boolean, and must be greater than zero. (PR #924)
- Removed pyasn1 and ndg-httpsclient from dependencies used for PyOpenSSL. We now use cryptography and idna, both of which are already dependencies of PyOpenSSL. (PR #930)
- Fixed infinite loop in
stream
when amt=None. (Issue #928) - Try to use the operating system’s certificates when we are using an
SSLContext
. (PR #941) - Updated cipher suite list to allow ChaCha20+Poly1305. AES-GCM is preferred to ChaCha20, but ChaCha20 is then preferred to everything else. (PR #947)
- Updated cipher suite list to remove 3DES-based cipher suites. (PR #958)
- Removed the cipher suite fallback to allow HIGH ciphers. (PR #958)
- Implemented
length_remaining
to determine remaining content to be read. (PR #949) - Implemented
enforce_content_length
to enable exceptions when incomplete data chunks are received. (PR #949) - Dropped connection start, dropped connection reset, redirect, forced retry, and new HTTPS connection log levels to DEBUG, from INFO. (PR #967)
1.16 (2016-06-11)¶
- Disable IPv6 DNS when IPv6 connections are not possible. (Issue #840)
- Provide
key_fn_by_scheme
pool keying mechanism that can be overridden. (Issue #830) - Normalize scheme and host to lowercase for pool keys, and include
source_address
. (Issue #830) - Cleaner exception chain in Python 3 for
_make_request
. (Issue #861) - Fixed installing
urllib3[socks]
extra. (Issue #864) - Fixed signature of
ConnectionPool.close
so it can actually safely be called by subclasses. (Issue #873) - Retain
release_conn
state across retries. (Issues #651, #866) - Add customizable
HTTPConnectionPool.ResponseCls
, which defaults toHTTPResponse
but can be replaced with a subclass. (Issue #879)
1.15.1 (2016-04-11)¶
- Fix packaging to include backports module. (Issue #841)
1.15 (2016-04-06)¶
- Added Retry(raise_on_status=False). (Issue #720)
- Always use setuptools, no more distutils fallback. (Issue #785)
- Dropped support for Python 3.2. (Issue #786)
- Chunked transfer encoding when requesting with
chunked=True
. (Issue #790) - Fixed regression with IPv6 port parsing. (Issue #801)
- Append SNIMissingWarning messages to allow users to specify it in the PYTHONWARNINGS environment variable. (Issue #816)
- Handle unicode headers in Py2. (Issue #818)
- Log certificate when there is a hostname mismatch. (Issue #820)
- Preserve order of request/response headers. (Issue #821)
1.14 (2015-12-29)¶
- contrib: SOCKS proxy support! (Issue #762)
- Fixed AppEngine handling of transfer-encoding header and bug in Timeout defaults checking. (Issue #763)
1.13.1 (2015-12-18)¶
- Fixed regression in IPv6 + SSL for match_hostname. (Issue #761)
1.13 (2015-12-14)¶
- Fixed
pip install urllib3[secure]
on modern pip. (Issue #706) - pyopenssl: Fixed SSL3_WRITE_PENDING error. (Issue #717)
- pyopenssl: Support for TLSv1.1 and TLSv1.2. (Issue #696)
- Close connections more defensively on exception. (Issue #734)
- Adjusted
read_chunked
to handle gzipped, chunk-encoded bodies without repeatedly flushing the decoder, to function better on Jython. (Issue #743) - Accept
ca_cert_dir
for SSL-related PoolManager configuration. (Issue #758)
1.12 (2015-09-03)¶
- Rely on
six
for importinghttplib
to work around conflicts with other Python 3 shims. (Issue #688) - Add support for directories of certificate authorities, as supported by OpenSSL. (Issue #701)
- New exception:
NewConnectionError
, raised when we fail to establish a new connection, usuallyECONNREFUSED
socket error.
1.11 (2015-07-21)¶
- When
ca_certs
is given,cert_reqs
defaults to'CERT_REQUIRED'
. (Issue #650) pip install urllib3[secure]
will install Certifi and PyOpenSSL as dependencies. (Issue #678)- Made
HTTPHeaderDict
usable as aheaders
input value (Issues #632, #679) - Added urllib3.contrib.appengine
which has an
AppEngineManager
for usingURLFetch
in a Google AppEngine environment. (Issue #664) - Dev: Added test suite for AppEngine. (Issue #631)
- Fix performance regression when using PyOpenSSL. (Issue #626)
- Passing incorrect scheme (e.g.
foo://
) will raiseValueError
instead ofAssertionError
(backwards compatible for now, but please migrate). (Issue #640) - Fix pools not getting replenished when an error occurs during a
request using
release_conn=False
. (Issue #644) - Fix pool-default headers not applying for url-encoded requests like GET. (Issue #657)
- log.warning in Python 3 when headers are skipped due to parsing errors. (Issue #642)
- Close and discard connections if an error occurs during read. (Issue #660)
- Fix host parsing for IPv6 proxies. (Issue #668)
- Separate warning type SubjectAltNameWarning, now issued once per host. (Issue #671)
- Fix
httplib.IncompleteRead
not getting converted toProtocolError
when usingHTTPResponse.stream()
(Issue #674)
1.10.4 (2015-05-03)¶
- Migrate tests to Tornado 4. (Issue #594)
- Append default warning configuration rather than overwrite. (Issue #603)
- Fix streaming decoding regression. (Issue #595)
- Fix chunked requests losing state across keep-alive connections. (Issue #599)
- Fix hanging when chunked HEAD response has no body. (Issue #605)
1.10.3 (2015-04-21)¶
- Emit
InsecurePlatformWarning
when SSLContext object is missing. (Issue #558) - Fix regression of duplicate header keys being discarded. (Issue #563)
Response.stream()
returns a generator for chunked responses. (Issue #560)- Set upper-bound timeout when waiting for a socket in PyOpenSSL. (Issue #585)
- Work on platforms without ssl module for plain HTTP requests. (Issue #587)
- Stop relying on the stdlib’s default cipher list. (Issue #588)
1.10.2 (2015-02-25)¶
- Fix file descriptor leakage on retries. (Issue #548)
- Removed RC4 from default cipher list. (Issue #551)
- Header performance improvements. (Issue #544)
- Fix PoolManager not obeying redirect retry settings. (Issue #553)
1.10.1 (2015-02-10)¶
- Pools can be used as context managers. (Issue #545)
- Don’t re-use connections which experienced an SSLError. (Issue #529)
- Don’t fail when gzip decoding an empty stream. (Issue #535)
- Add sha256 support for fingerprint verification. (Issue #540)
- Fixed handling of header values containing commas. (Issue #533)
1.10 (2014-12-14)¶
- Disabled SSLv3. (Issue #473)
- Add
Url.url
property to return the composed url string. (Issue #394) - Fixed PyOpenSSL + gevent
WantWriteError
. (Issue #412) MaxRetryError.reason
will always be an exception, not string. (Issue #481)- Fixed SSL-related timeouts not being detected as timeouts. (Issue #492)
- Py3: Use
ssl.create_default_context()
when available. (Issue #473) - Emit
InsecureRequestWarning
for every insecure HTTPS request. (Issue #496) - Emit
SecurityWarning
when certificate has nosubjectAltName
. (Issue #499) - Close and discard sockets which experienced SSL-related errors. (Issue #501)
- Handle
body
param in.request(...)
. (Issue #513) - Respect timeout with HTTPS proxy. (Issue #505)
- PyOpenSSL: Handle ZeroReturnError exception. (Issue #520)
1.9.1 (2014-09-13)¶
- Apply socket arguments before binding. (Issue #427)
- More careful checks if fp-like object is closed. (Issue #435)
- Fixed packaging issues of some development-related files not getting included. (Issue #440)
- Allow performing only fingerprint verification. (Issue #444)
- Emit
SecurityWarning
if system clock is waaay off. (Issue #445) - Fixed PyOpenSSL compatibility with PyPy. (Issue #450)
- Fixed
BrokenPipeError
andConnectionError
handling in Py3. (Issue #443)
1.9 (2014-07-04)¶
- Shuffled around development-related files. If you’re maintaining a distro package of urllib3, you may need to tweak things. (Issue #415)
- Unverified HTTPS requests will trigger a warning on the first request. See our new security documentation for details. (Issue #426)
- New retry logic and
urllib3.util.retry.Retry
configuration object. (Issue #326) - All raised exceptions should now wrapped in a
urllib3.exceptions.HTTPException
-extending exception. (Issue #326) - All errors during a retry-enabled request should be wrapped in
urllib3.exceptions.MaxRetryError
, including timeout-related exceptions which were previously exempt. Underlying error is accessible from the.reason
propery. (Issue #326) urllib3.exceptions.ConnectionError
renamed tourllib3.exceptions.ProtocolError
. (Issue #326)- Errors during response read (such as IncompleteRead) are now wrapped in
urllib3.exceptions.ProtocolError
. (Issue #418) - Requesting an empty host will raise
urllib3.exceptions.LocationValueError
. (Issue #417) - Catch read timeouts over SSL connections as
urllib3.exceptions.ReadTimeoutError
. (Issue #419) - Apply socket arguments before connecting. (Issue #427)
1.8.3 (2014-06-23)¶
- Fix TLS verification when using a proxy in Python 3.4.1. (Issue #385)
- Add
disable_cache
option tourllib3.util.make_headers
. (Issue #393) - Wrap
socket.timeout
exception withurllib3.exceptions.ReadTimeoutError
. (Issue #399) - Fixed proxy-related bug where connections were being reused incorrectly. (Issues #366, #369)
- Added
socket_options
keyword parameter which allows to definesetsockopt
configuration of new sockets. (Issue #397) - Removed
HTTPConnection.tcp_nodelay
in favor ofHTTPConnection.default_socket_options
. (Issue #397) - Fixed
TypeError
bug in Python 2.6.4. (Issue #411)
1.8.2 (2014-04-17)¶
- Fix
urllib3.util
not being included in the package.
1.8.1 (2014-04-17)¶
- Fix AppEngine bug of HTTPS requests going out as HTTP. (Issue #356)
- Don’t install
dummyserver
intosite-packages
as it’s only needed for the test suite. (Issue #362) - Added support for specifying
source_address
. (Issue #352)
1.8 (2014-03-04)¶
- Improved url parsing in
urllib3.util.parse_url
(properly parse ‘@’ in username, and blank ports like ‘hostname:’). - New
urllib3.connection
module which contains all the HTTPConnection objects. - Several
urllib3.util.Timeout
-related fixes. Also changed constructor signature to a more sensible order. [Backwards incompatible] (Issues #252, #262, #263) - Use
backports.ssl_match_hostname
if it’s installed. (Issue #274) - Added
.tell()
method tourllib3.response.HTTPResponse
which returns the number of bytes read so far. (Issue #277) - Support for platforms without threading. (Issue #289)
- Expand default-port comparison in
HTTPConnectionPool.is_same_host
to allow a pool with no specified port to be considered equal to to an HTTP/HTTPS url with port 80/443 explicitly provided. (Issue #305) - Improved default SSL/TLS settings to avoid vulnerabilities. (Issue #309)
- Fixed
urllib3.poolmanager.ProxyManager
not retrying on connect errors. (Issue #310) - Disable Nagle’s Algorithm on the socket for non-proxies. A subset of requests will send the entire HTTP request ~200 milliseconds faster; however, some of the resulting TCP packets will be smaller. (Issue #254)
- Increased maximum number of SubjectAltNames in
urllib3.contrib.pyopenssl
from the default 64 to 1024 in a single certificate. (Issue #318) - Headers are now passed and stored as a custom
urllib3.collections_.HTTPHeaderDict
object rather than a plaindict
. (Issue #329, #333) - Headers no longer lose their case on Python 3. (Issue #236)
urllib3.contrib.pyopenssl
now uses the operating system’s default CA certificates on inject. (Issue #332)- Requests with
retries=False
will immediately raise any exceptions without wrapping them inMaxRetryError
. (Issue #348) - Fixed open socket leak with SSL-related failures. (Issue #344, #348)
1.7.1 (2013-09-25)¶
- Added granular timeout support with new
urllib3.util.Timeout
class. (Issue #231) - Fixed Python 3.4 support. (Issue #238)
1.7 (2013-08-14)¶
- More exceptions are now pickle-able, with tests. (Issue #174)
- Fixed redirecting with relative URLs in Location header. (Issue #178)
- Support for relative urls in
Location: ...
header. (Issue #179) urllib3.response.HTTPResponse
now inherits fromio.IOBase
for bonus file-like functionality. (Issue #187)- Passing
assert_hostname=False
when creating a HTTPSConnectionPool will skip hostname verification for SSL connections. (Issue #194) - New method
urllib3.response.HTTPResponse.stream(...)
which acts as a generator wrapped around.read(...)
. (Issue #198) - IPv6 url parsing enforces brackets around the hostname. (Issue #199)
- Fixed thread race condition in
urllib3.poolmanager.PoolManager.connection_from_host(...)
(Issue #204) ProxyManager
requests now include non-default port inHost: ...
header. (Issue #217)- Added HTTPS proxy support in
ProxyManager
. (Issue #170 #139) - New
RequestField
object can be passed to thefields=...
param which can specify headers. (Issue #220) - Raise
urllib3.exceptions.ProxyError
when connecting to proxy fails. (Issue #221) - Use international headers when posting file names. (Issue #119)
- Improved IPv6 support. (Issue #203)
1.6 (2013-04-25)¶
- Contrib: Optional SNI support for Py2 using PyOpenSSL. (Issue #156)
ProxyManager
automatically addsHost: ...
header if not given.- Improved SSL-related code.
cert_req
now optionally takes a string like “REQUIRED” or “NONE”. Same withssl_version
takes strings like “SSLv23” The string values reflect the suffix of the respective constant variable. (Issue #130) - Vendored
socksipy
now based on Anorov’s fork which handles unexpectedly closed proxy connections and larger read buffers. (Issue #135) - Ensure the connection is closed if no data is received, fixes connection leak on some platforms. (Issue #133)
- Added SNI support for SSL/TLS connections on Py32+. (Issue #89)
- Tests fixed to be compatible with Py26 again. (Issue #125)
- Added ability to choose SSL version by passing an
ssl.PROTOCOL_*
constant to thessl_version
parameter ofHTTPSConnectionPool
. (Issue #109) - Allow an explicit content type to be specified when encoding file fields. (Issue #126)
- Exceptions are now pickleable, with tests. (Issue #101)
- Fixed default headers not getting passed in some cases. (Issue #99)
- Treat “content-encoding” header value as case-insensitive, per RFC 2616 Section 3.5. (Issue #110)
- “Connection Refused” SocketErrors will get retried rather than raised. (Issue #92)
- Updated vendored
six
, no longer overrides the globalsix
module namespace. (Issue #113) urllib3.exceptions.MaxRetryError
contains areason
property holding the exception that prompted the final retry. Ifreason is None
then it was due to a redirect. (Issue #92, #114)- Fixed
PoolManager.urlopen()
from not redirecting more than once. (Issue #149) - Don’t assume
Content-Type: text/plain
for multi-part encoding parameters that are not files. (Issue #111) - Pass strict param down to
httplib.HTTPConnection
. (Issue #122) - Added mechanism to verify SSL certificates by fingerprint (md5, sha1) or against an arbitrary hostname (when connecting by IP or for misconfigured servers). (Issue #140)
- Streaming decompression support. (Issue #159)
1.5 (2012-08-02)¶
- Added
urllib3.add_stderr_logger()
for quickly enabling STDERR debug logging in urllib3. - Native full URL parsing (including auth, path, query, fragment) available in
urllib3.util.parse_url(url)
. - Built-in redirect will switch method to ‘GET’ if status code is 303. (Issue #11)
urllib3.PoolManager
strips the scheme and host before sending the request uri. (Issue #8)- New
urllib3.exceptions.DecodeError
exception for when automatic decoding, based on the Content-Type header, fails. - Fixed bug with pool depletion and leaking connections (Issue #76). Added
explicit connection closing on pool eviction. Added
urllib3.PoolManager.clear()
. - 99% -> 100% unit test coverage.
1.4 (2012-06-16)¶
- Minor AppEngine-related fixes.
- Switched from
mimetools.choose_boundary
touuid.uuid4()
. - Improved url parsing. (Issue #73)
- IPv6 url support. (Issue #72)
1.3 (2012-03-25)¶
- Removed pre-1.0 deprecated API.
- Refactored helpers into a
urllib3.util
submodule. - Fixed multipart encoding to support list-of-tuples for keys with multiple values. (Issue #48)
- Fixed multiple Set-Cookie headers in response not getting merged properly in Python 3. (Issue #53)
- AppEngine support with Py27. (Issue #61)
- Minor
encode_multipart_formdata
fixes related to Python 3 strings vs bytes.
1.2.2 (2012-02-06)¶
- Fixed packaging bug of not shipping
test-requirements.txt
. (Issue #47)
1.2.1 (2012-02-05)¶
- Fixed another bug related to when
ssl
module is not available. (Issue #41) - Location parsing errors now raise
urllib3.exceptions.LocationParseError
which inherits fromValueError
.
1.2 (2012-01-29)¶
- Added Python 3 support (tested on 3.2.2)
- Dropped Python 2.5 support (tested on 2.6.7, 2.7.2)
- Use
select.poll
instead ofselect.select
for platforms that support it. - Use
Queue.LifoQueue
instead ofQueue.Queue
for more aggressive connection reusing. Configurable by overridingConnectionPool.QueueCls
. - Fixed
ImportError
during install whenssl
module is not available. (Issue #41) - Fixed
PoolManager
redirects between schemes (such as HTTP -> HTTPS) not completing properly. (Issue #28, uncovered by Issue #10 in v1.1) - Ported
dummyserver
to usetornado
instead ofwebob
+eventlet
. Removed extraneous unsupported dummyserver testing backends. Added socket-level tests. - More tests. Achievement Unlocked: 99% Coverage.
1.1 (2012-01-07)¶
- Refactored
dummyserver
to its own root namespace module (used for testing). - Added hostname verification for
VerifiedHTTPSConnection
by vendoring in Py32’sssl_match_hostname
. (Issue #25) - Fixed cross-host HTTP redirects when using
PoolManager
. (Issue #10) - Fixed
decode_content
being ignored when set throughurlopen
. (Issue #27) - Fixed timeout-related bugs. (Issues #17, #23)
1.0.2 (2011-11-04)¶
- Fixed typo in
VerifiedHTTPSConnection
which would only present as a bug if you’re using the object manually. (Thanks pyos) - Made RecentlyUsedContainer (and consequently PoolManager) more thread-safe by wrapping the access log in a mutex. (Thanks @christer)
- Made RecentlyUsedContainer more dict-like (corrected
__delitem__
and__getitem__
behaviour), with tests. Shouldn’t affect core urllib3 code.
1.0.1 (2011-10-10)¶
- Fixed a bug where the same connection would get returned into the pool twice, causing extraneous “HttpConnectionPool is full” log warnings.
1.0 (2011-10-08)¶
- Added
PoolManager
with LRU expiration of connections (tested and documented). - Added
ProxyManager
(needs tests, docs, and confirmation that it works with HTTPS proxies). - Added optional partial-read support for responses when
preload_content=False
. You can now make requests and just read the headers without loading the content. - Made response decoding optional (default on, same as before).
- Added optional explicit boundary string for
encode_multipart_formdata
. - Convenience request methods are now inherited from
RequestMethods
. Old helpers likeget_url
andpost_url
should be abandoned in favour of the newrequest(method, url, ...)
. - Refactored code to be even more decoupled, reusable, and extendable.
- License header added to
.py
files. - Embiggened the documentation: Lots of Sphinx-friendly docstrings in the code
and docs in
docs/
and on urllib3.readthedocs.org. - Embettered all the things!
- Started writing this file.
0.4.1 (2011-07-17)¶
- Minor bug fixes, code cleanup.
0.4 (2011-03-01)¶
- Better unicode support.
- Added
VerifiedHTTPSConnection
. - Added
NTLMConnectionPool
in contrib. - Minor improvements.
0.3.1 (2010-07-13)¶
- Added
assert_host_name
optional parameter. Now compatible with proxies.
0.3 (2009-12-10)¶
- Added HTTPS support.
- Minor bug fixes.
- Refactored, broken backwards compatibility with 0.2.
- API to be treated as stable from this version forward.
0.2 (2008-11-17)¶
- Added unit tests.
- Bug fixes.
0.1 (2008-11-16)¶
- First release.


Ohio University is home to 550+ student organizations with 10,000 Bobcats involved. Interested in learning more about student organizations? You’re at the right place. Check out our guide below to clubs at OU.
Benefits of joining
Whether you’re an incoming freshman or senior, it's never too late or too early to join a club. While benefits vary for each individual, overall they can best be summed up by three simple words, friendship, growth and leadership. Student organizations are extracurriculars that enhance your resume and teach important skills, like time management. They present the opportunity for leadership positions, which in turn, pushes you to grow as an individual. Joining clubs is the perfect getaway to new experiences, new friends and new opportunities, which is a huge part of what your time at college is all about. Student organizations allow you to meet new people and open doors to friendships you may not have discovered otherwise.
Important Resources
Bobcat Connect is a one-stop directory of every student organization on the OU campus. Students can learn about the variety of clubs as well as who to contact to join. To make exploring options easier, Bobcat Connect also has a search bar and filter, where you can choose preferences of what you’re looking for.
OU's Campus Involvement Center is the heart of student organizations. The center provides guidelines for structure and assists in smooth execution. They can help you start your own club or decide what to join. To contact a Campus Involvement representative, email<EMAIL_ADDRESS>or stop by the Campus Involvement Center at Baker 355.
The OU Student Involvement Fair is held every year the day before the fall semester begins, which means this year it will be held on Sunday, August 22. The fair takes place in the heart of College Green and is a great opportunity for students to explore multiple organizations while meeting new people. Just remember to mask up this year if you plan on attending.
Different types
While this list does not cover every genre of club at OU, it covers general classifications to provide a jumpstart to exploring one’s options.
Greek Life
OU has 10 sororities and 15 fraternities. Sororities and fraternities are social value-based organizations. To join, students go through a recruitment process referred to as “rush week.” Rush is a mutual selection process that formally takes place twice a year. To learn more about Greek life, see the Office of Sorority and Fraternity Life.
Publications & Media
OU is well known for its roots in the field of communication. Through publications and media clubs, students are able to expand and showcase their talent in that field. Magazine and newspaper organizations regularly publish content thanks to student involvement. There are also clubs for those interested in music, film or public relations.
Service
Work together with fellow peers by spending time helping others and join a service-based student organization. The 82 service based clubs at OU provide a wide range of causes to support. Pick whichever one speaks to you. Whether it is helping socialize service dogs in training or raising money for the Ronald McDonald House, there is something for everyone.
Hobbies
What do you like to do in your freetime? Well, OU probably has a club for it. There are two different levels of sport organizations. At club level, you compete against other schools and are one step below collegiate. The recreational level is for fun, and players compete against other students and no prior experience is needed. There are clubs for other hobbies such as singing in an ensemble or an a capella group. If you like to dance, OU has teams for that. If you like gaming, they have both video game and board game options to choose from. Clearly, OU has a club to fit just about everyone’s needs.
Religious/Spiritual
Religious/spiritual student organizations provide a community of those interested in growing their chosen faith or for those discovering new beliefs. Currently, there are 32 religious/spiritual organizations at OU ranging from various branches of Christianity to Islam. Apply the religious/spiritual filter when searching Bobcat Connect for all that is offered.
How to start your own club
According to OU's Campus Involvement Center, there were 50+ new student organizations last school year. Your idea for a club can come to life in just a few simple steps. First step to starting a registered student organization, you need a group of five or more currently enrolled OHIO students. Then, there also must be a faculty/staff advisor. Also, the club must have a primary goal of advancing a common mission or interest. To learn all of the details of starting a club, check out the Student Organization Handbook [PDF].


Set read only
Remove read only
Change code to "test"
Change template-start to "class Test{"
Change template-end to "}"
Change theme to dark theme
is read only: {{cannotModify}}


Much Todo About Nothing
Why use pen and paper when you can make a website instead!
Task (You can create up to ten)
Create
Update
Delete
Clear All
Select
Number
Task
Last Updated


Enumeration defining the extrapolation of table interpolation
type Extrapolation = enumeration(HoldLastPoint "Hold the first/last table point outside of the table scope", LastTwoPoints "Extrapolate by using the derivative at the first/last table points outside of the table scope", Periodic "Repeat the table scope periodically", NoExtrapolation "Extrapolation triggers an error");


Let's test the activation/desactivation for the tooltips.
Desactivate
Activate
Article Type
research-article
review-article
article
case-report
brief-communication
abstract
editorial
book-reviews
conference
other


{% extends "base.html" %} {% block content %}
How you can contributeRunning a website requires a lot of work, and a larger team of people tends to ease the load off of that work. This is where you come in. Do you think that the codebase (found here) for this website needs improving? Make an issue or pull request, or just contact me! Do you think that the design looks unnecessarily like a Picasso? Tell me and provide suggestions! If you have any suggestions to improving this website or want to help out please do not hesitate to contact me. |


Source queries let you search for the sources (apps and devices) that have saved data to the HealthKit store. These queries return a set containing all the sources for any samples that match the query.


Unbound scriptable interface¶
Python module for Unbound provides easy-to-use flexible solution, for scripting query events and much more!
Along with extensible SWIG interface, it turns Unbound into dynamic DNS service designed for rapid development of DNS based applications, like detailed (per query/domain) statistics, monitoring with anything Python can offer (database backend, http server).
- Key features
- Rapid dynamic DNS-based application development in Python
- Extensible interface with SWIG
- Easy to use debugging and analysis tool
- Capable to produce authoritative answers
- Support for logging or doing detailed statistics
- Allows to manipulate with content of cache memory


Pauline Phillips has been a registered nurse for twenty years with the last fifteen as a hospice nurse. She has seen the complications of constipation and the severe effects it has on the body. Her role was to help resolve their sometimes painful dilemma. Being around so much illness, she developed a passion for illness prevention and developing a healthy lifestyle. As a colon hydrotherapist, she can now concentrate on helping people detoxify and regain better health. Due to her own personal health issues the last twenty years, she has learned about nutrition, disease prevention, allergies, better food choices and other beneficial therapies.
With colon hydrotherapy, Pauline has the opportunity to be involved in her client’s health journey instead of their end of life journey. She is excited to be a colon hydrotherapist and see the difference it makes in her life and the life of others. Her personal experience is that colon hydrotherapy helps her feel less sluggish, sleep better, think better and have more energy. She would consider it a privilege to help you in the same way by maintaining a cleaner inside with healthy and complete elimination.
We are located in the adjoining parking lot with the CVS across from the East Alabama Medical Center.
Monday - 7 a.m. - 5 p.m.
Tuesday - 9 a.m. - 7 p.m.
Wednesday – Closed
Thursday - 9 a.m. – 7 p.m.
Friday - 12:30 p.m. – 5 p.m.
Saturday - By Appointment
If you have a particular time need, please discuss this when you call for an appointment.


school
circuits
feedback'07
feedback'13
videos
controls'11
controls'13
digitalComm
signals
commContrl
eLearners
mitBee
ctuOnline
eLearners
electronics
-->
serialControl
-->
materials
-->
patents
european
canadian
unitedStates
copyright
uselessPats
books
engBooks
elecCircuits
elecCircuits
physics
engineering
solutions
solidState
circuits
paper
processes
-->
moreEng
-->
<--


Game Over! Failure.
- You lasted seconds. Try harder next time!
- Here are your stats for this game:
- You passed waves.
- You spent $.
- You built tower(s).
- You upgraded tower(s).
- You sold tower(s)!
- You repaired your base times.
Try Again?
Game Complete! Victory!
- You beat them down in seconds!
- Here are your stats for this game:
- You passed waves.
- You spent $.
- You built tower(s).
- You upgraded tower(s).
- You sold tower(s)!
- You repaired your base times.
Try Again?


Switchboard Class
Switchboard is a sort of engine, setting up and executing jobs which retrieve and format data through configured data flows ("routines").
Constructor
Switchboard
()
Item Index
Methods
Properties
Methods
addAndRunJob
-
userRoutine
-
entryQueries
-
callback
-
mergeMethod
Create, execute and remove a job from queue all in one go.
addJob
-
userRoutine
-
entryQueries
Add a job to the "queue".
Parameters:
Returns:
getJob
-
jobId
Gets a job by id.
Parameters:
-
jobId
IntegerId of job to get.
jobDone
-
err
-
response
-
callback
-
mergeMethod
-
usedRoutine
Runs when a job has finished. Initiates results formatting and sends everything back via callback.
Parameters:
-
err
ObjectError object containing any thrown errors.
-
response
ObjectObject specifying API-methods and API-execution order
-
callback
FunctionObject specifying API-methods and API-execution order
-
mergeMethod
StringObject specifying API-methods and API-execution order
-
usedRoutine
ObjectObject specifying API-methods and API-execution order
removeJob
-
job
-
callback
-
mergeMethod
Executes and removes a Switchboard job. Triggers jobDone
run
-
callback
-
mergeMethod
Execute all jobs in queue.
runJob
-
jobId
-
callback
-
mergeMethod
Execute and remove a job from queue.
translateUserRoutine
-
userRoutine
Transforms a userRoutine to Switchboard-executable machineRoutine.
Parameters:
-
userRoutine
ObjectObject specifying API-methods and API-execution order
Returns:
translateUserRoutine
-
userRoutine
Transforms a userRoutine to Switchboard-executable machineRoutine.
Parameters:
-
userRoutine
ObjectObject specifying API-methods and API-execution order


--- tags: - 基础算法-贪心 grammar_cjkRuby: true catalog: true layout: post header-img: "img/header/P13.jpg" preview-img: "/img/preview/P13.jpg" ---
标签：贪心，模拟
A new dogshow on TV is starting next week. On the show dogs are required to demonstratebottomless stomach, strategic thinking and self-preservation instinct. You andyour dog are invited to compete with other participants and naturally you wantto win!
On theshow a dog needs to eat as many bowls of dog food as possible (bottomlessstomach helps here). Dogs compete separately of each other and the rules are asfollows:
At thestart of the show the dog and the bowls are located on a line. The dog startsat position x = 0 and n bowls are located atpositions x = 1, x = 2, ..., x = n. Thebowls are numbered from 1 to n from left to right.After the show starts the dog immediately begins to run to the right to thefirst bowl.
The foodinside bowls is not ready for eating at the start because it is too hot (dog'sself-preservation instinct prevents eating). More formally, the dog can eatfrom the i-th bowl after ti seconds from thestart of the show or later.
It takesdog 1 second to move from the position x to theposition x + 1. The dogis not allowed to move to the left, the dog runs only to the right with theconstant speed 1 distance unit per second. When the dog reaches a bowl (say,the bowl i), the followingcases are possible:
· the food had cooled down (i.e. it passed atleast ti secondsfrom the show start): the dog immediately eats the food and runs to the rightwithout any stop,
· the food is hot (i.e. it passed less than ti seconds from the showstart): the dog has two options: to wait for the i-th bowl, eat the food and continue to run at the moment ti or to skip the i-th bowl and continue to run to theright without any stop.
After T seconds from thestart the show ends. If the dog reaches a bowl of food at moment T the dog can not eatit. The show stops before T seconds ifthe dog had run to the right of the last bowl.
You needto help your dog create a strategy with which the maximum possible number ofbowls of food will be eaten in T seconds.
Input
Twointeger numbers are given in the first line - n and T (1 ≤ n ≤ 200 000, 1 ≤ T ≤ 2·109) — thenumber of bowls of food and the time when the dog is stopped.
On thenext line numbers t1, t2, ..., tn (1 ≤ ti ≤ 109) aregiven, where ti is themoment of time when the i-th bowlof food is ready for eating.
Output
Output asingle integer — the maximum number of bowls of food the dog will be able toeat in T seconds.
Example
Input
3 5
1 5 3
Output
2
Input
1 2
1
Output
1
Input
1 1
1
Output
0
Note
In thefirst example the dog should skip the second bowl to eat from the two bowls(the first and the third).
code
#include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) #define dep(i,a,b) for(int i=a;i>=b;i--) using namespace std; const int maxn=200005; int a[maxn],t[maxn]; int n,m; int main() { scanf("%d%d",&n,&m); rep(i,0,n-1)scanf("%d",&t[i]); int ans=0,cur=0; for(int last=0;last<n&&last<m-1;last++){ if(t[last]<=m-1){ cur++; int pos=last+(m-t[last]); if(pos<n)a[pos]++; } cur-=a[last]; ans=max(ans,cur); } printf("%d\n",ans); return 0; }


package data
Ordering
- Alphabetic
Visibility
- Public
- All
Type Members
-
case class
CorpusTfIdfResults
(name: String, selectionCount: Int, selectionSize: Double, weighted: Boolean, results: Map[String, Double]) extends Product with Serializable
Created by<EMAIL_ADDRESS>on 19/5/17.
- case class CountTerms (count: Int, terms: List[String]) extends Product with Serializable
-
case class
OldTapDocument
(sections: List[OldTapSection]) extends Product with Serializable
Created by<EMAIL_ADDRESS>on 27/2/17.
-
case class
OldTapSection
(sentences: List[OldTapSentence]) extends Product with Serializable
Created by<EMAIL_ADDRESS>on 19/5/17.
-
case class
OldTapSentence
(text: String, tokens: List[String], tags: OldTapTags = OldTapTags()) extends Product with Serializable
Created by<EMAIL_ADDRESS>on 19/5/17.
-
case class
OldTapTags
(lemmas: List[String] = List(), posTags: List[String] = List()) extends Product with Serializable
Created by<EMAIL_ADDRESS>on 19/5/17.
-
case class
TapMetrics
(wordCount: Int) extends Product with Serializable
Created by<EMAIL_ADDRESS>on 6/9/17.
-
case class
TapSentence
(tokens: List[TapToken], start: Int, end: Int, length: Int) extends Product with Serializable
Created by<EMAIL_ADDRESS>on 6/9/17.
-
case class
TapToken
(term: String, lemma: String, postag: String, parent: Int, child: Int, deptype: String) extends Product with Serializable
Created by<EMAIL_ADDRESS>on 29/8/17.
- case class TapVocab (unique: Int, terms: List[TermCount]) extends Product with Serializable
-
case class
TermCount
(term: String, count: Int) extends Product with Serializable
Created by<EMAIL_ADDRESS>on 6/9/17.
- case class TextShape (numChunks: Int, numDensities: Int, densities: List[Double]) extends Product with Serializable
Value Members
-
object
StringTypes
Created by<EMAIL_ADDRESS>on 30/6/17.
Documentation for TAP GraphQL
The Text Analytics Pipeline (TAP) GraphQL was originally created by Andrew Gibson
Overview


Let's take out some time to learn more about AdonisJs
Website
Here is the official website http://adonisjs.com/
Features
- Fully Featured MVC Framework
- Built with keeping testing in mind and comes with handcrafted IoC container.
- Powerful Routing
- Awesome Error Handling
- Active Record based Sql ORM.
A dummy heading 3


‘I Don’t Want Shatta Wale To Sign Me, He Has Poor Managerial Skills’- Kevynboy Fires
by BB JonesKelvynboy has a way of throwing bombs verbally and he has done it once again, this time by aiming it at Shatta Wale.
In an interview with Vibes in 5 with Arnold Elevanyo Mensah, Kelvynboy was asked if he would move to Shatta Wale’s camp now that he has nothing to do with Stonebwoy.
His response was that Shatta Wale has no record of good management so there’s no way he would love to join the Shatta Movement.
He also mentioned that from past experience, he will not agree to be managed by Shatta Wale because although they will give him the platform, he [Kelvynboy] will be required to put so much effort in order to blow.
“I don’t see any good management that can manage me from Shatta’s camp. Yes, he can endorse me and support me and provide me with a feature that will help push my brand.
For Ghanaians, we love to say it than to do it so I need to do it my own small way till I get people who have the energy to support me then I will work with them,”he said.


Federated Hogwarts
TensorflowJS
Federated Learning
Demo Code
Showing
Accuracy
Cross-Entropy
by federated client over time:


CGMonitor
Miners
Summary
Click on each name for more information
Name
Accepted
Rejected
MH/s Average
Best Share
{{range .Rows}}
{{.Name}}
{{.Accepted}}
{{.Rejected}}
{{.MHSAv}}
{{.BestShare}}
{{end}}


--- date: 2013-11-21 10:00:05 author: Colene Chow title: "PhoneGap Day 2013: Chrome Packaged Apps and PhoneGap" format: html tags: - PhoneGap Day - Community - Event ---
Thank you to everyone who attended PhoneGap Day EU. We'll be rolling out all the videos over the coming days for those who weren't able to attend.
Our next video is Joe Marini, Lead Dev Relations for Google, covering Chrome packaged apps and PhoneGap.


Captain Gilbert:
We have not met in a long time. So you are an esquire in training... Anyway, I am glad to see you! I am Captain Gilbert.
Ask if there is anything you can help with


Create new possibilities
Jump To Work has internship, jobs, thesis offers from companies to students and marketing profiles for schools globally. Creating reliable and strong connections for educational, commercial purposes and advancing in career is no longer difficult. The following links direct to job board, school directory and contact platform.
The cornerstone of Jump To Work is assisting students’ study & career paths with a variety of educational institutions as well as job offers while increasing companies’ capacities for recruiting new talents and promoting schools universally. Our mission is to facilitate the (connection and ) cooperation between students, schools and companies globally.


GREEN GUARD PMS RELIEF- acetaminophen and pamabrom tablet, film coated
Unifirst First Aid Corporation
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
Active ingredients (in each tablet)
Acetaminophen 325 mg
Pamabrom 25 mg
Purposes
Pain reliever/fever reducer
Diuretic
Uses
For the temporary relief of minor aches and pains associated with
- headache
- backaches
- menstrual cramps
Temporarily relieves water-weight gain, bloating, swelling and full feeling associated with the premenstrual and menstrual periods.
Warnings
Liver warning: This product contains acetaminophen. Severe liver damage may occur if you take:
- more than 4,000 mg of acetaminophen in 24 hours
- with other drugs containing acetaminophen
- 3 or more alcoholic drinks every day while using this product
Do not use
- with any other drug containing acetaminophen (prescription or nonprescription). If you are not sure whether a drug contains acetaminophen, ask a doctor or pharmacist.
- for more than 10 days for pain unless directed by a doctor
- for more than 3 days for fever unless directed by a doctor
Ask a doctor before use if you have
Ask a doctor or pharmacist before use if
- you are taking the blood thinning drug warfarin
Stop using and ask a doctor if
- symptoms do not improve
- new symptoms occur
- pain or fever persists or gets worse
- redness or swelling is present
Keep out of reach of children. In case of accidental overdose, get medical help or contact a Poison Control Center right away. Prompt medical attention is critical for adults as well as for children even if you do not notice any signs or symptoms.
If pregnant or breast-feeding, ask a health professional before use.
Directions
-
do not use more than directed
Adults and children: (12 years and older)
Take 2 tablets every 4 to 6 hours as needed. Do not take more than 8 tablets in 24 hours.
Children under 12 years:
Do not give to children under 12 years of age.
Other information
- read all product information before using
- store at room temperature 59º-86ºF (15º-30ºC)
- avoid excessive heat and humidity
- tamper-evident sealed packets
- do not use any opened or torn packets
Inactive ingredients
corn starch, D&C yellow #10, FD&C blue #1, FD&C red #40, microcrystalline cellulose, povidone, stearic acid, sucrose
Questions or comments? 1-800-869-6970
Principal Display Panel
Principal Display Panel - 810R GG PMS Relief Label
PMS relief™
GREEN GUARD®
Pull to Open
Acetaminophen 325mg/Acetaminofeno 325mg
Pamabrom 25mg
Tabletas para el alivio
del syndrome premenstrual
125 Packets of 2 Tablets
250 Tablets
Order #2271
Distributed by Green Guard®, St Louis, MO 63045


{% load mptt_tags %} {% load ninecms_extras %} {% comment %} Block template for menu as breadcrumbs The menu is expected to be the children of a menu item, of a menu block. Author: George Karakostas Copyright: Copyright 2015, George Karakostas Licence: BSD-3 Email<EMAIL_ADDRESS>{% endcomment %}


Numerical differentiation. Calculation of the first derivative.¶
Definition¶
By definition, the first derivative of a smooth function \(f(x)\) at a point x is calculated as
When calculating the first derivative of the function \(f(x)\) on a computer, we replace the infinitesimal \(h \rightarrow \infty\) with a small but finite value \(h\):
where \(\mathrm{O}(h)\) is the derivative calculation error, which naturally depends on \(h\). Previous formula is called a difference scheme for calculating the first derivative (more precisely, a right difference scheme or just a right difference). Similarly, maybe the left-hand difference scheme is written.
How to determine \(\mathrm{O}(h)\)? Expand the function \(f(x)\) in a Taylor series at the point \(x + h\):
whence it follows that in the first order of the expansion
By choosing a very small \(h\), the round-off errors in computing on a computer can be comparable to or greater than \(h\). Therefore, we are interested in an algorithm that gives lower error value for the same value of \(h\).
Such an improved algorithm can be easily obtained by expanding the function \(f(x)\) into a Taylor series at the points \(x + h\) and \(x - h\), then subtracting one result from the other, which gives
where the error in calculating the first derivative
This is the central difference scheme (central difference).
In principle, it is possible to follow the path of improving the accuracy of the method for calculating the first derivative and further. For example, considering the expansion of the function \(f(x)\) in a Taylor series at the points \(x + h\), \(x + 2h\), \(x - h\), and \(x - 2h\), one can obtain a four-point scheme etc.
Usage¶
Imagine that we want to find the derivative of the following function:
Then the code will look like this:
// example_first_order_derivative_h.cpp
#include <iostream>
#include "../src/numerary.hpp" // Numerary library
using namespace std;
using namespace numerary;
/* Functiion to derive */
double f(double x) {
return sin(x);
}
/* The main function */
int main() {
const short int order = 1;
double x, dy_dx;
// Point where we want get value of derivative function
x = M_PI;
dy_dx = Numerary::differentiate(f, order, x);
cout << "dy/dx (" << x << ") = " << dy_dx << endl;
return 0;
}


Err404 4.0 starts in
Days
Hours
Mins
Secs
What is ERR_404 4.0?
ERR_404 4.0 is the fourth iteration of 24hrs State Level Hackathon organised by Programmers
Club
of Computer
Department of M. H. Saboo Siddik College of Engineering
We call out all the cybernerds to come forth, compile your minds and execute your ideas in a
competitive environment.
The hackathon will run across the weekend which offers students the chance to work in
groups,
brainstorm ideas, and
build a working prototype before the time limit!
Whether it's your first hackathon, or your 50th, we would love to see students of all
skill
levels
and from all colleges
come along for a weekend of creativity, collaboration and coding.
Godspeed!
Domains
Machine Learning
Machine learning is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed. Machine learning focuses on the development of computer programs that can change when exposed to new data.
Web Development
Web development is the work involved in developing a web site for the Internet or an intranet. It can range from developing a simple single static page of plain text to complex web-based internet applications, electronic businesses, and social network services.
Cloud Computing
Cloud computing is the on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user. The term is generally used to describe data centers available to many users over the Internet.
Big Data
Big data analytics is the process of examining large and varied data sets -- i.e., big data -- to uncover hidden patterns, unknown correlations, market trends, customer preferences and other useful information that can help organizations make more-informed business decisions.
Networking And Security
Network security is a specialized field in computer networking that involves securing a computer network infrastructure. Explore the world of Networking Security and build an innovative product around it, or find any unsolved/unknown bug. Remember ETERNALBLUE?
App Development
Mobile app development is the act or process by which a mobile app is developed for mobile devices, such as personal digital assistants, enterprise digital assistants or mobile phones.
Prizes
Prizes upto ₹40,000 for Top 3 teams
Special Prize for Female Hackers
Goodies and Honourable Mentions for the rest of the hackers :)
Rules and regulations!
- Teams can be anywhere from two to four members.
- To ensure a level field for all contestants, all code, design and assets must be created during the duration of the Hackathon.
- You are, however, free to make plans, create wireframes, and brainstorm prior to the event. You are allowed to use 3rd party services, APIs, open source projects, libraries, and frameworks.
- There will be no alcohol, smoking allowed at the event. Behave professionally.
- Remember that harassment and racist, sexist, or exclusionary jokes are not appropriate for this event*.
- Attendees violating these rules may be asked to leave the Hackathon at the sole discretion of the Hackathon organizers. Thank you for helping make this a welcoming, friendly event for all.
View the complete Rules here
Venue
General Guidelines
We are hopeful that you all will be very excited about the ERR_404 4.0 Hackathon. To conduct this event smoothly & in a successful manner. We would like you to follow the below guidelines:
Schedule
Error 404! This Hackathon is under construction! We will inform you as soon as the schedule is decided.
FAQ's
-
Who can participate?Anyone with a knack of programming and solving problems can participate.
-
How much does it cost?Absolutely nothing, except for hard work, dedication, and patience.
-
What should I bring?Due to the online nature of the hackathon, you don’t have to travel. Though enthusiasm and humor are always welcome.
-
Where is it?From the safest and most comfortable place, your home.
-
Is it compulsory that all members belong to same college?No it is not, you can form a team of students from different colleges. While registering you can either put the Team Leader's College or mutually decide.


ITNAmerica respects your privacy and will keep all customer information confidential. The following information allows us to provide better service to our customers, and helps us better understand the circumstances that customers face when they apply to use the ITN for rides.
A personal ITN transportation account is like a personal bank account. It is debited whenever you take an ITN ride, and when you make a payment to ITN, it is like making a deposit into your account. At the end of each month, you receive a statement that details your rides and any other account activity, such as payments, gift certificates, Ride & Shop™ or Healthy Miles™, volunteer credits, CarTrade™ credits, or payment of membership dues.
ITN is a charitable nonprofit service supported by your fares and voluntary local community support. Because fares cover only half the true cost of rides, the ITN affiliate may include family members and any others you have listed as contacts in its fundraising campaigns, including the Family Membership Campaign, Walk for Rides and Annual Appeal. Participation in these campaigns is voluntary. A contact’s decision not to participate will not affect the quality of your service or your eligibility to use ITN for rides.
Your signature below indicates that you agree to the following policies:
You will maintain a balance in your account sufficient to cover your monthly rides;
Your membership dues will be automatically debited on the anniversary of your membership;
If you have an unpaid balance greater than $200 for longer than 60 days, your account will be paused until you have deposited sufficient funds to again achieve a positive balance;
If there is no activity in your account for one year and we have made three documented unsuccessful attempts to reach you, you agree that the balance in our account will become a charitable gift to ITN;
Your contacts may receive a limited number of mailings (via regular mail or e-mail) for the ITN affiliate’s fundraising events/campaigns, as well as up to four quarterly ITN Newsletters. Their names will not be shared with any other party or organization.
{{formData.agreement.name1}}
{{formData.agreement.signature1}}
{{formData.agreement.date1}}
Informed Consent
The Independent Transportation Network (ITN) is a nonprofit, community-based organization providing dignified, consumer-oriented transportation for seniors and people with visual impairments.
As an ITNAmerica affiliate community, your ITN benefits from more than a decade of research to develop a model for economically sustainable transportation. Among the public and private organizations that have supported this research are the Federal Transit Administration, the Transportation Research Board (National Academies of Science), AARP, the Great Bay Foundation for Social Entrepreneurs, and the Atlantic Philanthropies. Thousands of private individuals and their families have participated in this research and development, without which, this service would not be possible.
In the spirit of this public/private effort, to continue the development and analysis that will allow ITNAmerica to better understand the mobility needs of older Americans, their families and their communities, and to continuously improve the quality and sustainability of the service, we routinely collect data about riders and the rides we deliver. The identity of our riders is kept entirely confidential in all reports we use for these purposes.
In addition to this routine data collection, ITNAmerica also conducts research. From time to time, we may ask you to participate in a research project. Your participation in the ITNAmerica research studies is voluntary and confidential. If you prefer not to participate in the research studies, your decision will not affect the quality of your service or your eligibility to use ITN for rides.
Your signature indicates that you understand that routinely-collected ITNAmerica data will be used to study and improve transportation for seniors, and that you may, from time to time, be asked questions about your use of the service. We will do our best to provide rides for you and we will always strive to inform you when we cannot provide a ride. However, we are not responsible for any costs or expenses you may incur when we are unable to provide a ride for a specific time and place.
This information is correct to the best of my knowledge. I give the Independent Transportation Network permission to check on this information, and to contact references.
{{formData.references.signature}}
{{formData.references.date}}
Volunteering with ITN
{{formData.volunteering.priorAffiliationWithITN}}
{{formData.volunteering.learnAboutITN}}
{{formData.volunteering.volunteeredBefore}}
Please rank your reasons for wanting to drive for the ITN, with " 1 " the most important reason, and " 6 " being the least:
Please fill in your complete name (please include any previous names used) and include date of birth, then sign below. The purpose of this background check will be for volunteer purposes.
{{formData.requestCriminalRecord.name}}
{{formData.requestCriminalRecord.maidenName}}
{{formData.requestCriminalRecord.dob}}
I authorize Independent Transportation Network® to request and receive any and all criminal history information about me held by the State Bureau of Identification. The purpose of this background check will be for volunteer purposes.
It is the responsibility of the Volunteer Driver to notify the Independent Transportation Network® of any changes in relevant driver information.
Please notify your ITN Representative of any incidents or changes related to the list below, and submit copies of new documents before their expiration dates.
Change of insurance policy, agent, or carrier
Accidents
Moving Violations
New/different vehicles
Criminal convictions
Significant medical issues that affect driving
Change in license status
I understand that I need to report any changes in the above to ITN, and agree to do so in a timely manner.


Bad
Bad, With Custom Header
Good Specific Origin
Good Specific Origin, With Custom Header
Good Wildcard
Good Wildcard, With Custom Header
Good Wildcard (Set Cookie)
Good Wildcard (Send Cookie)
Good Specific Origin (Set Cookie)
Good Specific Origin (Send Cookie)
Redirect to Good
Redirect to Good, With Custom Header
Redirect to Good (Set-Cookie)
Redirect to Good (Send-Cookie)
Redirect to Wildcard
Redirect to Wildcard, With Custom Header
Redirect to Wildcard (Set-Cookie)
Redirect to Bad
Redirect to Bad (Set-Cookie)


Add the basil, pine nuts and garlic to a blender and blend into a paste.
Gradually add the olive oil while running the blender slowly.
Beware of the leopard


Your application
What happens next
The buyer creates a shortlist
When the opportunity closes the buyer will score your evidence. They’ll create a shortlist of the most suitable suppliers.
It takes at least 3 days for a buyer to create a shortlist and it can take several weeks.
If you're shortlisted
If you’re one of the shortlisted suppliers, you'll go through to the next stage, known as the evaluation stage.
If you're not shortlisted
If you’re not successful, the buyer will let you know and may give you feedback on the evidence you provided.
The buyer evaluates the shortlisted suppliers
At the evaluation stage, the buyer will get in touch to ask you to provide:
- further evidence of your skills and experience
- your proposal
Your evidence must describe the skills and experience of the people who’ll be working on the project.
The buyer will use the assessment methods listed in their requirements to evaluate your evidence. They’ll use:
- interview
The buyer will use the weightings they published with their requirements to score the suppliers who reach the evaluation stage. They’ll provide feedback if you’re unsuccessful.
Contact email
Earliest start date
Essential skills and experience
| Requirement | Evidence | Action |
|---|---|---|
| Demonstrable experience of delivering successful Pre Discovery and Discovery outcomes to support complex digital transformation in a service delivery organisation - 5 points. | ||
| Demonstrable experience of delivering savings through digital transformation projects including quick wins and actionable roadmaps through the Discovery phase - 5 points. | ||
| Full understanding and demonstrable experience of research methodologies and data collection techniques for complex, high volume, citizen facing, transactional services - 5 points. | ||
| Able to deploy an effective team ready to hit the ground running no later than 15th August 2016 - 5 points. | ||
| Demonstrable experience of working with users and stakeholders at all levels in complex political environments - 2 points. | ||
| Demonstrable experience of carrying out research with a diverse mix of users including those with low digital literacy and assisted digital needs - 2 points. | ||
| Demonstrable experience of knowledge sharing and skills transfer with in-house teams so as to build sustainable capability - 2 points. | ||
| Demonstrable experience of working successfully with incumbent legacy vendors and in-house ICT as part of Discoveries to support digital transformation - 2 points. | ||
| Demonstrable experience of delivering working prototypes during a discovery phase that exemplify the digital vision and strategy - 2 points. | ||
| Proven ability to lead and coach public sector organisations through the digital transformation process aligned with the Digital by Default standard - 2 point. |
Nice-to-have skills and experience
| Requirement | Evidence | Action |
|---|---|---|
| Previous experience in public sector transformation programme - 1 point. | ||
| Strong experience of delivering projects in line with the Government Digital Service’s Design Principles and Digital Service Standard - 1 point. | ||
| Demonstrable experience of research methodologies; ethnography, open and closed card sorting, multivariate testing - 1 point. | ||
| Strong understanding of the approach other local authorities are taking with digital and of the benefits this provides - 1 point. |


<change-request-system>
Use the <change-request-system>
element to specify the name of an
information system that manages or serves the referenced change request, for example, an
issue tracking system.
Category: Release-management domain elements


{% extends "base.html" %} {% block title %}Page Not Found{% endblock %} {% block bodyclass %}error{% endblock %} {% block content %}
We couldn't find the page you were looking for. Please check the url and try again, or start from the home page if you still can't find what you're after.
{% endblock %}


Hi entrepreneurs, Dean (@deanliu) and Dan (@tradealert) are back and today we’re showing you how to create and manage your very own decentralized organisation with Aragon.
Aragon.
I- Executive Summary.
Aragon is a dApp on the Ethereum network that allows anybody to create and manage a general-purpose decentralized autonomous organisation (DAO). Each Aragon DAO is technically a collection of interconnected Ethereum smart contracts packaged into one sleek user interface. Although the project is still in development, basic DAOs come equipped with a solid suite of basic functions such as token emissions, voting and finance management which we will go over in details in the second section of this article.
The grand vision behind Aragon is to create an entire network of decentralized organizations ruled by a decentralized court system to create a transparent and censorship-resistant new economy on the blockchain. The Aragon network possess is own native token (ANT) which will be used to decentralize the government of the protocol in the future but aren’t required to deploy nor manage your own DAO at this time.
Aragon DAOs currently come in two different flavors:
- General purpose tokenized democracies;
- Business oriented multi-signature organizations.
Since the DAO hack, autonomous organizations have somewhat faded into the background and their general-purpose nature makes it somewhat difficult to lay out their benefits to new users but today we would like to focus on giving you an overview on how to deploy a multi-signature organization and propose one use case which hopefully might inspire you to start your own project on the platform.
We will discuss the more technical stuff for subsequent articles once the project develops and also once we gain in familiarity with the platform and its functions.
So let’s get into it.
II- How to deploy a Multi-Signature (Multi-Sig) organization.
Our project started with the need to pool tokens in order to run a node on a third-party Ethereum-based network. Multi-Sig DAOs not only allow you to securely store the tokens needed to run a node into a multi-sig smart contract but also to create a decentralized “bank account” where the rewards can be pooled then sent out to individual investors according to their stake in the investment.
Let’s break this down.
Step-by-step guide:
Go to Aragon.one and open the Rikeby Testnet on Metamask, make sure your Rinkeby wallet has got some ETH in it, you can request some from this faucet:
Then click on the “Try Aragon Core 0.5” Icon:
… and create a new organization, ours is a Token Project with Multisig:
- Now you can claim your own testnet domain:
…and assign as many co-signers as you want:
- Next, name your DAO governance tokens and assign a ticker symbol to them:
- Finally deploy your unstoppable organization and tokens on the testnet by signing a couple of transactions:
- Shazam! You’re now the proud owner of your very own (testnet) DAO.
- Once the real app goes live on the main-net you’ll be able to fund your DAO with tokens by going into Settings and sending ERC-20 tokens to it, sending real tokens to a testnet DAO now will only result in the loss of your tokens, you’ve been warned!
- Your tokens will appear in the Finance Tab, together with a tool to implement automatic payments, it’ really neat:
- Finally you’ll be able to manage the government of your DAO from the Voting app and create polls for your community to vote on:
And that’s it! You’re now part of the decentralized governance revolution.
Aragon surely is an ambitious project with a grand vision to reinvent governance at every level of society. What’s more, its general-purpose design can be disarming at first but the tools the dApp offers are just as well suited for micro projects, community building and investment management on the blockchain. That’s why we strongly encourage you to go check out Aragon for yourself so you can experience first-hand the power of its smart contract and start the governance revolution at your scale.
Dan & Dean.
_If you liked this post please consider supporting Dan’s blog by upvoting, re-steeming and following yours truly and If you’d like more content like this or if you’re simply interested in learning more about cryptocurrencies, come join my [awesome community on Discord](https://discord.gg/4VGVHrs). Don’t be shy, it’s free!!_
Also, make sure to go check out our other featured review, that time on generating passive income with ZenCash and Dan’s guide on how to use Radar Relay, the best zero-fee decentralized exchange built on the 0x protocol.
Tip Dan:
EOS: 0x942a1F730f6ED432e663869d61097E73D48037d2
ZEN: znd4A1TVbnn76YDNrRb8vxeCvu3WBvZeV1a
ETH: 0x942a1F730f6ED432e663869d61097E73D48037d2
This page is synchronized from the post: ‘Aragon: Create your Own Decentralized Organization on Ethereum.’


|
|
Getting set for the flames of an Apollo
launch. The thrust chambers of the first
stage's five engines extend into the 45-foot-square
hole in the Mobile Launcher platform.
Until liftoff, the flames will impinge downward
onto a flame deflector that diverts the
blast lengthwise in the flame trench. Here,
a flame deflector coated with a black
ceramic is in place below the opening, while
a yellow (uncoated) spare deflector rests on
its track in the background. It takes a tremendous
flow of water (28,000 gollons per
minute) to cool the flame deflector and
trench. The pumps, which start 8 seconds
before ignition, can deliver that flow for
30 seconds, and then a reduced flow for
an indefinite period. Another 17,000 gpm
of water curtains the Mobile Launcher
tower from the rising flames.
|


{% block head %}
DriveAI
{% endblock %}
DriveAI
Beta verion 1.1
Home
Drivers
Profile
About
My Statistics
Register
Log In
Driver's mask and emotions
with 240
without 120
DriveAI
Angry
40
Happy
100
Fearful
60
Disgusted
10
Sad
55
Neutral
80
Surprised
35


For our final project, we will work to create a website that will enable people to more easily plan out their visits and tours of various colleges. This is an interesting topic because many people, while looking trying to figure out which colleges to apply to, take college trips on which they visit 3 or 4 different schools. At each school, people usually try to attend an information session about the school, as well as a tour of the campus. However, while planning these trips, it is often very difficult to coordinate which schools have available information sessions and tours that do not overlap and that allow you to visit each school during one trip. For example, if someone is planning on visiting University of Pennsylvania, Duke, and Vanderbilt, it could be difficult to determine which school to visit first based on which schools offer information sessions and tours at what compatible times. Therefore, our project will attempt to provide an easy solution to this problem.
In order to do accomplish this, our website will allow users to input the various schools that they wish to visit, as well as the dates that they plan on going. Then, our website will use data from each school’s website regarding the information sessions and tours that are offered at that school during these dates. Using this information, as well as information regarding how long it would take to travel between schools, our website will give back various schedules that allow the user to visit each school that he/she entered, taking a tour and sitting in on an information session at each one. Then, if a schedule incorporating these schools is possible, the user will be able to select which of the schedules he/she wishes to follow, and save that information. We will use data from university websites and user inputs in order to make people visiting schools’ lives much easier.


|
Click on 'Unhappy Password' on the main menu, screen like figure 2.6.1 will be shown. Input your new unhappy password twice, and click the 'Save' button
to update your unhappy password, and it will be effective immediately. The only constraint of unhappy password is it's length, it must be 8 characters or
more. Like common password convention, it is case sensitive.
|


Pre-ICO
Start: 01 August 2017
End: 01 September 2017
CCI tokens for distribution: 10 000 000 (5 000 ETH)
Token exchange rate: 2000 CCI : 1 ETH
Minimum transaction amount: 0.1 ETH
ICO
Start: 05 August 2017
End: 01 September 2017
CCI tokens for distribution: 50 000 000
Token exchange rate first week: 1500 CCI : 1 ETH
Token exchange rate after: 1000 CCI : 1 ETH
Minimum transaction amount: 0.1 ETH
Total token amount: 100 000 000 CCI tokens


Here are links to projects-in-progress by Portland Code School Web Foundations students.
Primer Basic final team project assignment:
Team NE
Team Puppy Blocks
Team Walrus
Primer Basic "Create Your Own Web Development Notebook" assignment
(Instructions here.)


First one should be easy...
"But you work at a startup,
this can never work at my large Enterprise!?!?!"
That was literally me a few years ago.
Silliness, unoriginality, lack of creativity...
But mostly because I think the definition of "working" is usually wrong
Starting to see a theme?
logs, APM, error notifications
"Hey are we working?!?"