Basic usage¶
There are various ways of using friendly. I only list here the basic scenarios available from a terminal or from within a Python interpreter. More options are possible, including running from an editor/IDE as described later in this documentation.
For those that know how to run programs from a terminal, I recommend using one of the first three following options.
Execute a Python program, as I have already shown at the beginning:
$ python -m friendly example.py
You can also start a friendly console:
$ python -m friendly
Combining the two options above by using Python’s
-i
flag to start friendly’s console after executing a program:$ python -im friendly example.py
All of the above assume that you are using a terminal with a dark background.
If you are using a terminal with a light background, you might want to
add --format light
as a command line option.
More ways to use¶
The following ways of using friendly are described in more details later. I simply list them here as useful summary for experienced Python programmers.
You can use friendly as an exception hook:
import friendly friendly.install() # replaces the default sys.excepthook
Starting the console from any Python interpreter:
>>> import friendly >>> friendly.start_console()
You can also use it to catch exceptions locally:
import friendly ... try: # Some code except Exception: friendly.explain_traceback()
All of the above support additional options allowing one to select a different language (only French for now) or changing the information that is shown by default.
More information about various additional options is
provided later in this documentation.
As a shortcut, you can
also type python -m friendly -h
in a terminal.
Logging¶
You can use friendly with the logging module. Here’s an example, together with the corresponding output:
import friendly
import logging
# Configure as desired before running the code
logging.basicConfig(filename="ignore.log")
friendly.set_lang('fr') # Just as an example :-)
try:
import ignore2
except Exception:
friendly.explain_traceback(redirect="capture")
# Note: friendly often remove some details from tracebacks
# to make them more readable. This can be helpful
# but sometimes we might also need to see the full
# traceback in log files.
# For example, compare the path of ignore2.py shown
# in both tracebacks.
log = (" Friendly traceback\n" +
friendly.get_output() +
"\n----Original traceback-----\n")
# exc_info=True below will append the original traceback
logging.error(log, exc_info=True)
And here’s the output:
ERROR:root: Friendly traceback
Traceback (most recent call last):
File "ignore.py", line 9, in <module>
import ignore2
File "CWD:\ignore2.py", line 3, in <module>
c = a / b
ZeroDivisionError: division by zero
Une exception de type `ZeroDivisionError` se produit lorsque vous essayez de diviser une valeur
par zéro soit directement ou en utilisant une autre opération mathématique.
Vous divisez par le terme suivant
b
qui est égal à zéro.
L'exécution s'est arrêtée à la ligne 9 du fichier ignore.py
7:
8: try:
--> 9: import ignore2
10: except Exception:
Exception levée à la ligne 3 du fichier CWD:\ignore2.py.
1: a = 1
2: b = 0
-->3: c = a / b
^^^^^
a: 1
b: 0
----Original traceback-----
Traceback (most recent call last):
File "ignore.py", line 9, in <module>
import ignore2
File "C:\Users\andre\github\friendly\ignore2.py", line 3, in <module>
c = a / b
ZeroDivisionError: division by zero


You don't have permission to change the form, so it's disabled.
Please use the navigation buttons on the top bar to move around.
{{ errorMessage }}
Describe Objective & Background
List the tasks associated with the project
List the resources associated with the project
List the deliverables associated with the project
List the staffing resources associated with the project


Yep!
referenced
by Nikitas Tampakis at 2019-11-22 12:29:40.merged
by Nikitas Tampakis at 2019-11-22 12:29:40.closed
by Nikitas Tampakis at 2019-11-22 12:29:40.labeled
by None at 2019-11-22 19:57:01.labeled
by None at 2019-11-22 19:57:01.labeled
by None at 2019-11-22 19:51:55.milestoned
by None at 2019-11-22 19:57:24.labeled
by None at 2019-11-22 19:53:21.milestoned
by None at 2019-11-22 19:58:25.labeled
by None at 2019-11-22 19:59:53.labeled
by None at 2019-11-22 19:59:53.milestoned
by None at 2019-11-22 19:59:53.labeled
by None at 2019-11-22 20:02:43.milestoned
by None at 2019-11-22 20:02:43.labeled
by None at 2019-11-22 20:04:59.labeled
by None at 2019-11-22 20:06:20.labeled
by None at 2019-11-22 20:16:18.During user testing we were asked again for this information:
Would like to see pending/approved requests in the current month and onward to see if it impacts how many hours I can take of. Show a list of future requests for a date range.
labeled
by None at 2019-11-22 20:25:56.milestoned
by None at 2019-11-22 20:25:57.labeled
by None at 2019-11-22 20:26:43.milestoned
by None at 2019-11-22 20:26:43.labeled
by None at 2019-11-22 20:28:25.milestoned
by None at 2019-11-22 20:28:25.labeled
by None at 2019-11-22 20:30:47.milestoned
by None at 2019-11-22 20:30:47.labeled
by None at 2019-11-22 20:35:03.milestoned
by None at 2019-11-22 20:35:03.milestoned
by None at 2019-11-22 20:40:10.labeled
by None at 2019-11-22 20:40:15.labeled
by None at 2019-11-22 20:40:56.milestoned
by None at 2019-11-22 20:40:56.labeled
by None at 2019-11-22 20:53:27.milestoned
by None at 2019-11-22 20:53:27.labeled
by None at 2019-11-22 20:55:54.labeled
by None at 2019-11-22 20:59:09.milestoned
by None at 2019-11-22 20:59:09.renamed
by None at 2019-11-22 21:03:42.mentioned
by Esmé Cowles at 2019-11-22 23:37:48.subscribed
by Esmé Cowles at 2019-11-22 23:37:49.I think it does here: https://github.com/pulibrary/cicognara-rails/blob/master/config/deploy.rb#L47-L48
I see rake tei:index
in that Cap task, but not rake tei:partials
— I'm not sure why that isn't there, and think it probably should be.
@tampakis the task I'm asking about which I don't see being run is called tei:partials
ahh ok, I think maybe there's an expectation that the TEI doesn't change often and that therefore the partials are relatively stable
so this?
ruby
namespace :deploy do
desc 'Generate partials, reindex the TEI entries and MARC records'
task :build-tei do
on roles(:web), in: :groups, limit: 3, wait: 5 do
within release_path do
execute :rake, 'tei:catalogo:update'
execute :rake 'tei:partials'
end
end
task :reindex do
on roles(:web), in: :groups, limit: 3, wait: 5 do
within release_path do
execute :rake, 'tei:index'
end
end
end
👍 I think that's the right change.
I agree that maybe the TEI doesn't change that much — but when we do a new deploy, we probably need to generate them all again regardless.
labeled
by None at 2019-11-22 13:44:23.mentioned
by Nikitas Tampakis at 2019-11-22 13:49:33.subscribed
by Nikitas Tampakis at 2019-11-22 13:49:33.labeled
by None at 2019-11-22 16:11:42.it works now.
closed
by None at 2019-11-22 16:34:06.Thanks @tampakis! we got that all fixed up and also added a rake task that wraps the whole delete / re-seed process together. I'll go ahead and merge as instructed.
head_ref_force_pushed
by None at 2019-11-22 15:57:46.review_requested
by Nikitas Tampakis at 2019-11-22 15:59:28.head_ref_force_pushed
by None at 2019-11-22 16:35:50.head_ref_force_pushed
by None at 2019-11-22 16:56:22.mentioned
by Nikitas Tampakis at 2019-11-22 16:57:34.subscribed
by Nikitas Tampakis at 2019-11-22 16:57:35.referenced
by None at 2019-11-22 16:59:10.merged
by None at 2019-11-22 16:59:10.closed
by None at 2019-11-22 16:59:10.The bug on staging results in there being no Version objects there, although manifests do get indexed onto the entry-level solr document.
deployed
by Trey Pendragon at 2019-11-22 00:57:35.deployed
by Trey Pendragon at 2019-11-22 16:47:55.closed
by None at 2019-11-22 19:51:09.closed
by None at 2019-11-22 20:01:36.labeled
by None at 2019-11-22 20:13:19.Coverage increased (+0.1%) to 96.528% when pulling beaa8057969d7bce136446173180cca0610ec163 on issues-1626-jrgriffiniii-facet-browse-lists into 602c4ea588d3fcc9ff3987bc5fbcb1f99e88e24f on master.
referenced
by Francis Kayiwa at 2019-11-21 23:46:34.closed
by Francis Kayiwa at 2019-11-22 12:56:45.referenced
by Francis Kayiwa at 2019-11-22 12:56:44.merged
by Francis Kayiwa at 2019-11-22 12:56:44.closed
by Francis Kayiwa at 2019-11-22 12:56:45.head_ref_deleted
by Francis Kayiwa at 2019-11-22 12:56:48.@kayiwa there's a build fail.
review_requested
by Francis Kayiwa at 2019-11-21 23:47:14.mentioned
by Francis Kayiwa at 2019-11-22 01:26:41.subscribed
by Francis Kayiwa at 2019-11-22 01:26:42.head_ref_force_pushed
by Francis Kayiwa at 2019-11-22 13:40:50.referenced
by Cliff Wulfman at 2019-11-22 13:47:39.merged
by Cliff Wulfman at 2019-11-22 13:47:39.closed
by Cliff Wulfman at 2019-11-22 13:47:39.head_ref_deleted
by Cliff Wulfman at 2019-11-22 13:47:47.referenced
by None at 2019-11-22 18:43:57.review_requested
by None at 2019-11-22 19:08:26.review_requested
by Francis Kayiwa at 2019-11-23 00:03:57.referenced
by Francis Kayiwa at 2019-11-23 00:05:59.merged
by Francis Kayiwa at 2019-11-23 00:05:59.closed
by Francis Kayiwa at 2019-11-23 00:05:59.head_ref_deleted
by Francis Kayiwa at 2019-11-23 00:06:03.referenced
by Francis Kayiwa at 2019-11-23 00:08:13.merged
by Francis Kayiwa at 2019-11-23 00:08:13.closed
by Francis Kayiwa at 2019-11-23 00:08:13.head_ref_deleted
by Francis Kayiwa at 2019-11-23 00:08:16.closed
by James R. Griffin III at 2019-11-22 00:10:11.referenced
by James R. Griffin III at 2019-11-22 00:10:11.merged
by James R. Griffin III at 2019-11-22 00:10:11.closed
by James R. Griffin III at 2019-11-22 00:10:11.head_ref_deleted
by James R. Griffin III at 2019-11-22 00:10:14.referenced
by Eliot Jordan at 2019-11-22 17:24:51.merged
by Eliot Jordan at 2019-11-22 17:24:51.closed
by Eliot Jordan at 2019-11-22 17:24:51.head_ref_deleted
by Eliot Jordan at 2019-11-22 17:24:55.referenced
by Eliot Jordan at 2019-11-22 17:25:32.merged
by Eliot Jordan at 2019-11-22 17:25:32.closed
by Eliot Jordan at 2019-11-22 17:25:32.head_ref_deleted
by Eliot Jordan at 2019-11-22 17:25:35.Coverage remained the same at 99.285% when pulling 83bc48418f681631bda8580efa309cba2d2f76fa on dependabot/npmandyarn/eslint-utils-1.4.3 into 08e3f29582a316d88ca07edcc751c3c0d338918d on master.
labeled
by None at 2019-11-22 17:25:28.labeled
by None at 2019-11-22 17:25:28.Coverage remained the same at 99.285% when pulling 097d1b08486127edac40e2c3073aa937c6cb8ea2 on dependabot/npmandyarn/mixin-deep-1.3.2 into 08e3f29582a316d88ca07edcc751c3c0d338918d on master.
labeled
by None at 2019-11-22 17:25:28.labeled
by None at 2019-11-22 17:25:28.Coverage remained the same at 99.285% when pulling 5bb36a7a5014f20cd10a5b95d35401b5ddfe62aa on dependabot/bundler/rubyzip-1.3.0 into 08e3f29582a316d88ca07edcc751c3c0d338918d on master.
labeled
by None at 2019-11-22 17:25:29.labeled
by None at 2019-11-22 17:25:29.Coverage remained the same at 99.285% when pulling f4c2b1944cf0008cdb076e6576e4c1c600dc3a7a on dependabot/bundler/simple_form-5.0.0 into 6b49783c79e246f7b6bb2015517af23fd4b4036e on master.
labeled
by None at 2019-11-22 17:25:31.labeled
by None at 2019-11-22 17:25:31.head_ref_force_pushed
by None at 2019-11-22 17:26:17.referenced
by Axa Mei Liauw at 2019-11-22 13:48:03.merged
by Axa Mei Liauw at 2019-11-22 13:48:03.closed
by Axa Mei Liauw at 2019-11-22 13:48:03.head_ref_deleted
by Axa Mei Liauw at 2019-11-22 13:48:06.I am also noticing that the database updates (drush updatedb
) are still pending / not run via deploy.


Invitado ! ( Log in Log out )
Visit your account page.
If you want to access the user-only account page, you need to log-in first.
#{enumsBean.roleAdmin} #{enumsBean.roleUser}


M4
Section: User Commands (1)Updated: March 2009
Index Return to Main Contents
NAME
m4 - macro processorSYNOPSIS
m4 [OPTION]... [FILE]...DESCRIPTION
Process macros in FILEs. If no FILE or if FILE is `-', standard input is read.Mandatory or optional arguments to long options are mandatory or optional for short options too.
Operation modes:
- --help
- display this help and exit
- --version
- output version information and exit
- -E, --fatal-warnings
- once: warnings become errors, twice: stop execution at first error
- -i, --interactive
- unbuffer output, ignore interrupts
- -P, --prefix-builtins
- force a `m4_' prefix to all builtins
- -Q, --quiet, --silent
- suppress some warnings for builtins
- --warn-macro-sequence[=REGEXP]
- warn if macro definition matches REGEXP,
- default \$\({[^}]*}\|[0-9][0-9]+\)
Preprocessor features:
- -D, --define=NAME[=VALUE]
- define NAME as having VALUE, or empty
- -I, --include=DIRECTORY
- append DIRECTORY to include path
- -s, --synclines
- generate `#line NUM "FILE"' lines
- -U, --undefine=NAME
- undefine NAME
Limits control:
- -g, --gnu
- override -G to re-enable GNU extensions
- -G, --traditional
- suppress all GNU extensions
- -H, --hashsize=PRIME
- set symbol lookup hash table size [509]
- -L, --nesting-limit=NUMBER
- change nesting limit, 0 for unlimited [0]
Frozen state files:
- -F, --freeze-state=FILE
- produce a frozen state on FILE at end
- -R, --reload-state=FILE
- reload a frozen state from FILE at start
Debugging:
- -d, --debug[=FLAGS]
- set debug level (no FLAGS implies `aeq')
- --debugfile[=FILE]
- redirect debug and trace output to FILE (default stderr, discard if empty string)
- -l, --arglength=NUM
- restrict macro tracing size
- -t, --trace=NAME
- trace NAME when it is defined
FLAGS is any of:
- a
- show actual arguments
- c
- show before collect, after collect and after call
- e
- show expansion
- f
- say current input file name
- i
- show changes in input files
- l
- say current input line number
- p
- show results of path searches
- q
- quote values as necessary, with a or e flag
- t
- trace for all macro calls, not only traceon'ed
- x
- add a unique macro call id, useful with c flag
- V
- shorthand for all of the above flags
If defined, the environment variable `M4PATH' is a colon-separated list of directories included after any specified by `-I'.
Exit status is 0 for success, 1 for failure, 63 for frozen file version mismatch, or whatever value was passed to the m4exit macro.
AUTHOR
Written by Rene' Seindal.REPORTING BUGS
Report bugs to<EMAIL_ADDRESS>GNU M4 home page: <http://www.gnu.org/software/m4/>. General help using GNU software: <http://www.gnu.org/gethelp/>.COPYRIGHT
Copyright © 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
SEE ALSO
The full documentation for m4 is maintained as a Texinfo manual. If the info and m4 programs are properly installed at your site, the command- info m4
should give you access to the complete manual.
Index
This document was created by man2html, using the manual pages.
Time: 05:29:05 GMT, December 24, 2015


#include "_doctype.html"
Curl -- Search this site
#include "css.t"
#define CURL_SEARCH
#define CURL_URL search.html
#include "_menu.html"
#include "setup.t"
WHERE1(Search)
TITLE(Search This Site)
#include "sitesearch.t"
SUBTITLE(Search Hints)
A few things to keep in mind to improve your searches on how you read the
results from your searches:
- The contents of this site is frequently indexed by Google, but you should
still not assume that you will be able to search on very recent additions to
the site.
- There are more than 27,000 HTML pages at this site. Specify your search
with several keywords for better results.
- The search results may include mailing list postings that may contain
details and inaccurate facts. We keep all mailing list postings ever posted
and some may be a bit out-of-date or possibly at times they were already
incorrect when they were posted the first time!
- The search results might offer links to source code, which could be
a bit confusing to users not used to such reading.
#include "_footer.html"


1.1 What is GINI?
GINI (GINI Is Not Internet) is a toolkit for creating virtual micro Internets for teaching and learning computer networks. It provides an easy to use graphical user interface called gBuilder for creating network instances. Using gBuilder, the user can create small to moderate sized networks. Once the network is built graphically, parameters such as subnet addresses can be assigned by the user to different components of the network. gBuilder provides a lot of support by automatically computing routing tables and assigning IP and MAC addresses using the constraints expressed by the user. The network specification is verified by a compiler and then converted into an XML file containing the network definition. The XML file can then be used to start the virtual network on the back-end program called gLoader, and the user can interact with the running devices of that network through gBuilder.
1.2 What is new with GINI 2.0?The most notable difference with GINI 2.0 is the new user interface, more specifically gBuilder 2.0. It has been completely rewritten using PyQt4, a set of Python bindings for Qt 4. On top of most of the features provided in the first release of gBuilder, it is highly configurable. It adds a new level of user-friendliness by providing configurable styles and themes, as well as dockable windows. Also, gBuilder can remember the layout so that the windows will reappear in the same location the user left them the last time they ran the program.
1.3 Where can I get help?There is a GINI mailing list for bugs or questions to which the administrators will reply to. If the documentation is insufficient for your needs, please post something and hopefully someone will provide a solution.
2. Downloading GINI 2.02.1 Where can I download GINI 2.0?
If you are simply looking to use GINI, it is best downloaded from the subversion repository https://svn.origo.ethz.ch/gini/stable. You can then proceed to the installation. If you are interested in the development of GINI, you can download the full repository at https://svn.origo.ethz.ch/gini.
2.2 Which version should I download?If you are running Windows, you only have the option of installing the front-end. If you are running Linux, you can install the front-end, back-end or full version of GINI. To run GINI, you will require at least one installation of the front-end and one installation of the back-end or simply one full version.
2.3 What do I need to run GINI?
The full GINI package should work on the latest Ubuntu distributions (8.04, 8.10, 9.04) using Python 2.5 or 2.6. The front-end version of GINI can be run on Windows, but to run a topology you will need a Linux server with the back-end installed to connect to.
Front-end:
3.1 How do I install GINI 2.0?
First, you need to create the directory where you want to install GINI, and then add the path of that directory as GINI_HOME to your environment variables. You also need to add the path of GINI_HOME/bin to your PATH environment variable. If you have not already downloaded the repository, do so in a different directory than GINI_HOME. Navigate to the downloaded repository in a command line and execute the command depending on the installation you want:
4.1 How do I start gBuilder 2.0?
If you are running Linux, typing 'gbuilder' in the command line should be sufficient. On both Windows and Linux, double-clicking on the source file gbuilder.py or a shortcut to it should work fine.
5. Creating Topologies5.1 How do I create a topology?
You start by dragging the desired elements from the Drag & Drop Toolbar onto the canvas and connect them according to the connection rules. See 5.2 for the connection rules. To connect two elements, you must hold right-click over one element, drag it over to the element you want to connect it to and release it. If you are not using the 'auto-generate IP/MAC addresses' option, the you will need to fill in the IP and MAC addresses of each applicable element manually and then compile. Otherwise, you only need to compile the topology and if there are no errors, the topology can be started.
5.2 How do I save a topology?Generally, with a new topology you will be prompted to save at compilation, runtime, or when closing the program. You can save manually under the 'File' menu.
5.3 Can I transfer my save files to another machine?Yes. The save files should be readable on another machine and should load the same topology. The properties of each device should also be the same as well. Note that this does not include any changes made to the actual UML, that information is stored server-side and can be dealt with through the use of projects.
6. Starting Topologies6.1 How do I start a topology?
To do so, a server must be started beforehand. See 6.2 for how to start a server. You can then start a topology from the 'Run' menu, or press the toolbar button with the green arrow.
6.2 How do I start a server?To do so, a username and hostname must be provided in the server options accessible from the 'Config' menu. If you have not set up a passwordless ssh keypair, you will have to enter your password or passphrase to connect. To find out more about ssh keypairs, see 6.3. You can then start a server from the 'Run' menu, or press the toolbar button with the green arrow on the server.
6.3 How do I set up ssh keypairs?
Choose the case that best suits you.
7.1 What is a project?
A project is used to specify where to load and store data on the server so that any changes made to UMLs can be reused between topologies.
7.2 Can I transfer my project files to another machine?The short answer is yes. The project files that gBuilder creates are simply files that store your username and hostname. You can easily recreate this project on another machine by creating a project with the same name and the same server information. Doing so will give you access to the same data stored on the server from that other machine. Note that if you change the server information of a project, you will not have access to the same data. On a related note, if you have transferred the project file to someone else, he or she will require access to the server under your username.


|
Spring Security Framework | |||||||||
| PREV NEXT | FRAMES NO FRAMES |
| Packages that use AuthenticationDetailsSource | |
|---|---|
| org.springframework.security.providers.anonymous | Allows you to secure every invocation (especially useful for web request URI security) by always having either an actual principal or an anonymous principal authenticated. |
| org.springframework.security.ui | Authentication processing mechanisms, which respond to the submission of authentication credentials using various protocols (eg BASIC, CAS, form login etc). |
| org.springframework.security.ui.basicauth | Authenticates HTTP BASIC authentication requests. |
| org.springframework.security.ui.digestauth | Authenticates HTTP Digest authentication requests. |
| org.springframework.security.ui.ntlm | |
| org.springframework.security.ui.portlet | Authentication interceptor (and related classes) for use with the Portlet 1.0 (JSR 168) Specification. |
| org.springframework.security.ui.preauth | |
| org.springframework.security.ui.preauth.j2ee | |
| org.springframework.security.ui.preauth.websphere | |
| org.springframework.security.ui.rememberme | Support for remembering a user between different web sessions. |
| org.springframework.security.ui.switchuser | Provides HTTP-based "switch user" (su) capabilities. |
| org.springframework.security.ui.x509 | This package is now deprecated and will be removed in a future version. |
| Uses of AuthenticationDetailsSource in org.springframework.security.providers.anonymous |
|---|
| Methods in org.springframework.security.providers.anonymous with parameters of type AuthenticationDetailsSource | |
|---|---|
void |
AnonymousProcessingFilter.setAuthenticationDetailsSource(AuthenticationDetailsSource authenticationDetailsSource)
|
| Uses of AuthenticationDetailsSource in org.springframework.security.ui |
|---|
| Classes in org.springframework.security.ui that implement AuthenticationDetailsSource | |
|---|---|
class |
AuthenticationDetailsSourceImpl
Base implementation of AuthenticationDetailsSource . |
class |
WebAuthenticationDetailsSource
Implementation of AuthenticationDetailsSource which builds the details object from
an HttpServletRequest object. |
| Fields in org.springframework.security.ui declared as AuthenticationDetailsSource | |
|---|---|
protected AuthenticationDetailsSource |
AbstractProcessingFilter.authenticationDetailsSource
|
| Methods in org.springframework.security.ui that return AuthenticationDetailsSource | |
|---|---|
AuthenticationDetailsSource |
AbstractProcessingFilter.getAuthenticationDetailsSource()
|
| Methods in org.springframework.security.ui with parameters of type AuthenticationDetailsSource | |
|---|---|
void |
AbstractProcessingFilter.setAuthenticationDetailsSource(AuthenticationDetailsSource authenticationDetailsSource)
|
| Uses of AuthenticationDetailsSource in org.springframework.security.ui.basicauth |
|---|
| Methods in org.springframework.security.ui.basicauth with parameters of type AuthenticationDetailsSource | |
|---|---|
void |
BasicProcessingFilter.setAuthenticationDetailsSource(AuthenticationDetailsSource authenticationDetailsSource)
|
| Uses of AuthenticationDetailsSource in org.springframework.security.ui.digestauth |
|---|
| Methods in org.springframework.security.ui.digestauth with parameters of type AuthenticationDetailsSource | |
|---|---|
void |
DigestProcessingFilter.setAuthenticationDetailsSource(AuthenticationDetailsSource authenticationDetailsSource)
|
| Uses of AuthenticationDetailsSource in org.springframework.security.ui.ntlm |
|---|
| Methods in org.springframework.security.ui.ntlm with parameters of type AuthenticationDetailsSource | |
|---|---|
void |
NtlmProcessingFilter.setAuthenticationDetailsSource(AuthenticationDetailsSource authenticationDetailsSource)
|
| Uses of AuthenticationDetailsSource in org.springframework.security.ui.portlet |
|---|
| Classes in org.springframework.security.ui.portlet that implement AuthenticationDetailsSource | |
|---|---|
class |
PortletPreAuthenticatedAuthenticationDetailsSource
|
| Methods in org.springframework.security.ui.portlet with parameters of type AuthenticationDetailsSource | |
|---|---|
void |
PortletProcessingInterceptor.setAuthenticationDetailsSource(AuthenticationDetailsSource authenticationDetailsSource)
|
| Uses of AuthenticationDetailsSource in org.springframework.security.ui.preauth |
|---|
| Methods in org.springframework.security.ui.preauth with parameters of type AuthenticationDetailsSource | |
|---|---|
void |
AbstractPreAuthenticatedProcessingFilter.setAuthenticationDetailsSource(AuthenticationDetailsSource authenticationDetailsSource)
|
| Uses of AuthenticationDetailsSource in org.springframework.security.ui.preauth.j2ee |
|---|
| Classes in org.springframework.security.ui.preauth.j2ee that implement AuthenticationDetailsSource | |
|---|---|
class |
AbstractPreAuthenticatedAuthenticationDetailsSource
Base implementation for classes scenarios where the authentication details object is used to store a list of authorities obtained from the context object (such as an HttpServletRequest) passed to AbstractPreAuthenticatedAuthenticationDetailsSource.buildDetails(Object) . |
class |
J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource
Implementation of AuthenticationDetailsSource which converts the user's J2EE roles (as obtained by calling HttpServletRequest.isUserInRole(String) ) into GrantedAuthoritys and stores these in the authentication
details object (. |
| Uses of AuthenticationDetailsSource in org.springframework.security.ui.preauth.websphere |
|---|
| Classes in org.springframework.security.ui.preauth.websphere that implement AuthenticationDetailsSource | |
|---|---|
class |
WebSpherePreAuthenticatedAuthenticationDetailsSource
This AuthenticationDetailsSource implementation, when configured with a MutableGrantedAuthoritiesContainer, will set the pre-authenticated granted authorities based on the WebSphere groups for the current WebSphere user, mapped using the configured Attributes2GrantedAuthoritiesMapper. |
class |
WebSpherePreAuthenticatedWebAuthenticationDetailsSource
This AuthenticationDetailsSource implementation, when configured with a MutableGrantedAuthoritiesContainer, will set the pre-authenticated granted authorities based on the WebSphere groups for the current WebSphere user, mapped using the configured Attributes2GrantedAuthoritiesMapper. |
| Methods in org.springframework.security.ui.preauth.websphere that return AuthenticationDetailsSource | |
|---|---|
AuthenticationDetailsSource |
WebSphere2SpringSecurityPropagationInterceptor.getAuthenticationDetailsSource()
|
| Methods in org.springframework.security.ui.preauth.websphere with parameters of type AuthenticationDetailsSource | |
|---|---|
void |
WebSphere2SpringSecurityPropagationInterceptor.setAuthenticationDetailsSource(AuthenticationDetailsSource authenticationDetailsSource)
|
| Uses of AuthenticationDetailsSource in org.springframework.security.ui.rememberme |
|---|
| Methods in org.springframework.security.ui.rememberme that return AuthenticationDetailsSource | |
|---|---|
protected AuthenticationDetailsSource |
AbstractRememberMeServices.getAuthenticationDetailsSource()
|
| Methods in org.springframework.security.ui.rememberme with parameters of type AuthenticationDetailsSource | |
|---|---|
void |
AbstractRememberMeServices.setAuthenticationDetailsSource(AuthenticationDetailsSource authenticationDetailsSource)
|
| Uses of AuthenticationDetailsSource in org.springframework.security.ui.switchuser |
|---|
| Methods in org.springframework.security.ui.switchuser with parameters of type AuthenticationDetailsSource | |
|---|---|
void |
SwitchUserProcessingFilter.setAuthenticationDetailsSource(AuthenticationDetailsSource authenticationDetailsSource)
|
| Uses of AuthenticationDetailsSource in org.springframework.security.ui.x509 |
|---|
| Methods in org.springframework.security.ui.x509 with parameters of type AuthenticationDetailsSource | |
|---|---|
void |
X509ProcessingFilter.setAuthenticationDetailsSource(AuthenticationDetailsSource authenticationDetailsSource)
Deprecated. |
|
Spring Security Framework | |||||||||
| PREV NEXT | FRAMES NO FRAMES |


--- layout: default title: Panels page-header: headline: "Panels" alignment: left parent: label: "Components" url: "/components/" page-navigation: - label: "Panel Cell" link: "#panels-cells" navigation: - label: "Size Modifiers" link: "#panels-cells-size-modifiers" - label: "Size Direction Modifiers" link: "#panels-cells-size-direction-modifiers" - label: "Panel Styling" link: "#panels-styling" ---
A panel is a simple, flexible, and customizable content container. In combination with panel cells, panels can be used to create a wide range of layout and content display options.
To create a new panel use the .panel
class. By itself, a panel is pretty basic - offering nothing more than box styling and outer spacing. Use one or more nested panel cells (.panel-cell
) to create a layout that fits your specific project requirements.
<div class="panel"> … </div>


Dharmang Soni
Courses
School/College
Field of study
Degree
Start Date
End date
On Going
Grade
Activities & Associated
Summary
Save Details
All Courses
College name
Course name
Grade A+
Activities
Description
Remove


Subscribe
Gigantic Store Site
Sign in
Your account
Deals
Our products
Technology
Clothes
Help
Please sign in
Email address
Password
Remember me
Sign in


Why ?
- Underscore js is nothing but a simple js library that gives a number of js functional programming helpers which can be used in your js code. It works well with your own js libraries like prototypejs, jQuery or backbone.
- Simplifies your code to a good extent. Well defined functional helpers are a great advantage for programming languages like python and ruby. Underscore does the same for JS.
- More importantly, it does not modify any built-in objects to add these methods. In the practical scenario, we use multiple libraries from different authors. It is important that built-in objects are not extended in any of this code to avoid side effects. (An example problem caused by extending Array.prototype add adding methods/properties - http://stackoverflow.com/questions/8859828/javascript-what-dangers-are-in-extending-array-prototype)
- Easy to get started and makes you productive in minutes.
Info -
- Home page - http://underscorejs.org/
- Source code - http://underscorejs.org/docs/underscore.html
- Documentation - http://underscorejs.org/
Important functions -
Underscorejs’s home page has the list of functions it offers and they are faily simple to be followed from here. I am just listing down some of them which i think are cool.
| Category | functions |
|---|---|
| Collection (Array/Object) | each, map, reduce, reduceRight, find, where, findWhere, reject, some, contains, invoke, pluck, max, sortBy, groupBy, countBy |
| Array | first, last, rest, compact, flatten, without, union, intersection, uniq, zip, unzip, lastIndexOf, findIndex, range |
| Objects | keys, allKeys, values, pairs, functions, findKey, extend, pick, omit, clone, has, isEqual, isMatch, isEmpty, isElement, isArray, isObject, isArguments, isFunction, isString, isNumber, isFinite, isBoolean, isDate, isRegExp, isNaN, isNull, isUndefined |
| Functions | bind, partial, memoize, delay, throttle, once, after, before, compose |
| Chaining | chain |
Example -
In case of underscorejs, you ll call all the functions on “_” and pass your Objects/variables as arguments. Note that you need to have underscore.js required in your environment to execute the example below.
 I had written a lot of JS code before finding this and was always comfortable. But once you find this little thing, you ll only realize that it takes a great deal out of your way and makes you happy. Especially, if you know what it means modifying the native objects.”


THE LION KING A film review by Eric Walker Copyright 1994 Eric Walker
Walt Disney came up with a winning formula when he made SNOW WHITE AND THE SEVEN DWARFS, back in 1937; over the years, his company refined that formula to a science. With the re-birth of Disney in the late 1980s, the "magical" formula for Disney animation was re-discovered by Jeff Katzenberg and Michael Eisner, the studio heads. Unfortunately, these two men are not Walt Disney: they're Hollywood studio executives. That means that you can expect them to milk a winning formula for all it's worth, and not dare to push the edge. If it works, why change it?
Because you can wear it out, that's why. The spectacular box-office success of Disney's animated films (except for THE RESCUERS DOWN UNDER, which deserved to do better) has blinded the men on the top of the heap; as long as the money keeps rolling in, they're not going to want to make any changes. But they don't see that when you rely too heavy on a safe, predictable formula, you risk losing the life-granting "spark" that infuses your creations with energy--and keeps the money rolling in. THE LION KING is going to make another pile of money for Disney, and as a result we can expect to see no changes in the formula for Disney animated films in the future. That formula is laid bare here:
- Pour lots of money into producing great animation. This is the easy part. The Disney studios have hundreds of artists and the latest computer technology to produce lavish, dazzling animation that can be matched by no one else. There are some amazing moments here, especially during the opening sequence (which Disney has pushed for months, revealing this sequence at its many Disney Stores as early as February) and a scene where Mufasa speaks to his son from the clouds. The animation on the rest of the movie is also good, as one expects from Disney. But is great animation the only reason we watch Disney films? No. The formula has more ingredients, such as ....
- Create an evil, sneaky villain, and then let him be utterly defeated (preferably in the midst of an inferno of some sort, with lightning and smoke and explosions and fire to make it more dramatic). With the Disney formula, there are only the Good Guys and the Bad Guys--you know whom to root for, because the Bad Guys are always drawn in a cartoonish way that makes them look less than human. The perfect hero and heroine battle the freaks, and guess who wins in the end?
- Create a hero, and give him a girlfriend--but make sure the hero is nice and bland. What's the difference between Simba, the hero of this film, and Aladdin? Nothing at all, other than being drawn differently. They're both young and naive; they both make a big mistake; they both correct that mistake by beating the Bad Guy once and for all. And the girlfriend must be equally bland, though at least in ALADDIN Princess Jasmine was a major character. In THE LION KING, the girlfriend is merely there for the hero to grow up with, and to bring him back to face his big mistake so that the movie can reach its climax. Why must the hero and his girlfriend be so generic and uninteresting? So that they won't overshadow the supporting characters, as we see in the next ingredient ....
- For comic relief (and merchandising), through in a few goofy characters to play the hero's friends. These characters always act silly, and they get the lion's share (pun intended) of the laughs, except during the climax when they stay by the hero's side and battle the bad guys.
 Ever since THE LITTLE MERMAID won the Oscars for Best Original Score and Best Song, Disney has been pushing its animated films as the last bastion of the Hollywood musical. Each of their animated films includes a bunch of bouncy numbers as filler, one Busby Berkeley surrealist musical number, and a sappy, treacly "love" song to get the audience all weepy-eyed.
When this formula works, it can awaken the child in us. I enjoyed THE LITTLE MERMAID, because it made the Disney films seem fresh and new again. I loved ALADDIN in spite of its flaws--but if it weren't for Robin Williams, that movie would have fallen flat on its face, because it was nothing but Disney formula. THE LION KING doesn't have Robin Williams; and while it does have James Earl Jones' booming baritone as Mufasa, the great king, that's not enough to keep this film from feeling like a re-hash. There's nothing new here, and there's not enough creativity to make it seem refreshing.
Sure, the animation's great--that's easy for Disney to do, because they've got millions of dollars to do it. But there's more to making a great film than merely dazzling the eyes, whether it's with animated lions, computer-generated dinosaurs or exploding bridges (which we'll see in TRUE LIES). As in all great movies, it's the story and the characters that count, and there's nothing in here that we haven't seen before. Mufasa himself is a regal, majestic figure; the comic-relief characters are funny; and the evil Scar is wicked and properly evil. But Disney has given us a long line of majestic, funny, and evil characters, from Cruella de Vil and Stromboli to Gaston and Iago; the characters in THE LION KING simply aren't charismatic enough to come out from the shadow of their predecessors.
As if to add insult to injury, the musical numbers are downright awful. There's nothing in here to match the catchy, joyful "Under The Sea and "Be Our Guest," or even the fun "Prince Ali" and "Never Had A Friend Like Me." The songs were written by Tim Rice (who also worked on the ALADDIN soundtrack) and Elton John--who also sings the "love theme" over the ending credits. Bleah. Disney is certain to push this soundtrack for the Oscar...but if it actually wins, it will be undeniable proof that taste is dead in Hollywood. There IS a reasonably good musical score by Hans Zimmer that's based on on African music (though why didn't Disney just bring in some real African musicians to compose it?), but that's about all the praise I can give it.
The problem is simply that we've seen it all before. Nothing is new here, and one gets the impression that Disney is merely spinning its wheels. The Disney formula is starting to wear thin ... but as long as it keeps making millions for the company, we're not going to see anything different.
In this respect, one can say that BEAUTY AND THE BEAST was the most original Disney film in a long time, because while it included many aspects of the Disney formula (animation, musical numbers, comedy relief characters), it actually worked on real characterization (at least on the part of the Beast himself) and an entertaining story (though I detested the character of Gaston). But that film proved to be an exception to the rule. ALADDIN, despite Robin Williams' delightful presence, was merely a return to the old formula ... the same formula that mires down THE LION KING.
This does not bode well for the long-term future of American animated films. Hollywood is falling once again into the trap of trying to imitate Disney, rather than experimenting with other ways of making animated films. But Walt Disney himself knew that if you don't keep looking forward and aiming for something new, fresh, and different, you're liable to dig your own grave.
Disney has reached the height of its popularity; in fact, it may have already passed that peak (note the troubles of Euro Disneyland). But if corporate history has any precedents, it is that the bigwigs at the top don't notice that the tree is sick until it's already rotten and ready to collapse or be cut down. I suspect that the same thing is starting with Disney: THE LION KING is merely one symptom of corporate rot that is starting to seep into the Disney empire--its movies are safe, non-controversial, and bland; the theme parks are expanding with seemingly endless re-hashes of the same few ideas (movie-based rides); and all of the company's other projects (the BEAUTY AND THE BEAST stage musical, or their proposed ceremonies for the World Cup tournament) consist of them spending money like water to flash and dazzle the eyes and promote themselves.
Disney is in trouble--but they don't know it yet. The next few years are going to be *very* interesting times, indeed.
.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


--- layout: page title: Welcome subtitle: Developing production-quality software products to study our microbial world. color: "#A52A2A" ---
We are a bioinformatics software engineering lab focused on developing applications of microbiome science in human health, cancer detection and treatment, and environmental sustainability.
We additionally lead activities focused on scientific computing education, bioinformatics education and training, and increasing diversity and inclusion in open source scientific software development.
Our software and educational content are free and open source, and we're committed to increasing accessibility and building community around reproducible bioinformatics and microbiome science.


Before Change
from setuptools.dist import Distribution
DOCLINES = __doc__.strip().split("\n")
os.chdir(os.path.dirname(os.path.abspath(__file__))) // setup.py should be ran from its folder, just in case one tries to execute it from a different folder
CLASSIFIERS = \
Development Status :: 5 - Production/Stable
After Change
distclass=VmafDistribution,
name="vmaf",
package_dir={"": "src"},
packages=find_packages("src"),
include_package_data=True,
install_requires=[
"numpy>=1.12.0",


You will have 15 seconds to answer each questions


IT my passion.
Java.
C++
Bootstrap is my favorite css module
I am passionable developer of java and c++


Miscellaneous functions commonly used in other packages maintained by 'Yihui Xie'.
| Version: |
0.4 |
| Imports: |
tools |
| Suggests: |
testit, parallel, rstudioapi, tinytex, mime, markdown, knitr, htmltools, base64enc, rmarkdown |
| Published: |
2018-10-23 |
| Author: |
Yihui Xie [aut, cre, cph],
Daijiang Li [ctb] |
| Maintainer: |
Yihui Xie <xie at yihui.name> |
| BugReports: |
https://github.com/yihui/xfun/issues |
| License: |
MIT + file LICENSE |
| URL: |
https://github.com/yihui/xfun |
| NeedsCompilation: |
no |
| Materials: |
README NEWS |
| CRAN checks: |
xfun results |


Bite Size Bayes¶
Copyright 2020 Allen B. Downey
License: Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
Review¶
In the previous notebook we extended the cookie problem with more bowls and the dice problem with more dice.
And I introduced an alternative to the Bayes table, a probability mass function (PMF), which is a useful way to represent and do computations with distributions.
Here’s the function I used to create a Pmf
, given a sequence of quantities, xs
, and the corresponding probabilities, ps
.
def make_pmf(xs, ps, **options):
"""Make a Series that represents a PMF.
xs: sequence of values
ps: sequence of probabilities
options: keyword arguments passed to Series constructor
returns: Pandas Series
"""
pmf = pd.Series(ps, index=xs, **options)
return pmf
And here’s the function that performs a Bayesian update, given a sequence of likelihoods:
def bayes_update(pmf, likelihood):
"""Do a Bayesian update.
pmf: Series that represents the prior
likelihood: sequence of likelihoods
returns: float probability of the data
"""
pmf *= likelihood
prob_data = pmf.sum()
pmf /= prob_data
return prob_data
We’ll use these functions to solve a new problem similar to the cookie problem.
The Euro problem¶
Here’s a problem from David MacKay’s book, Information Theory, Inference, and Learning Algorithms, which is the book where I first learned about Bayesian statistics. MacKay writes:
A statistical statement appeared in The Guardian on Friday January 4, 2002:
“When spun on edge 250 times, a Belgian one-euro coin came up heads 140 times and tails 110. ‘It looks very suspicious to me’, said Barry Blight, a statistics lecturer at the London School of Economics. ‘If the coin were unbiased the chance of getting a result as extreme as that would be less than 7%’.”
But [asks MacKay] do these data give evidence that the coin is biased rather than fair?
To answer this question, we have to make some modeling choices.
First, let’s assume that if you spin a coin on edge, there is some probability that it will land heads up. I’ll call that probability \(x\).
Second, let’s assume that \(x\) varies from one coin to the next, depending on how the coin is balanced and maybe some other factors.
With these assumptions we can formulate MacKay’s question as an inference problem: given the data — 140 heads and 110 tails — what do we think \(x\) is for this coin?
This formulation is similar to the 101 Bowls problem we saw in the previous notebook; in fact, we will use the same likelihoods.
But in the 101 Bowls problem, we are told that we choose a bowl at random, which implies that all bowls have the same prior probability.
For the Euro problem, we have to think harder. What values of \(x\) do you think are reasonable?
It seems likely that many coins are “fair”, meaning that the probability of heads is close to 50%. Do you think there are coins where \(x\) is 75%? How about 90%?
To be honest, I don’t really know. To get started, I will assume that all values of \(x\), from 0% to 100%, are equally likely. Then we’ll come back and try another prior.
Here’s a uniform prior from 0 to 100.
xs = np.arange(101)
prior = 1/101
pmf = make_pmf(xs, prior)
Here are the likelihoods for heads and tails:
likelihood_heads = xs / 100
likelihood_tails = 1 - xs / 100
And here are the updates for 140 heads and 110 tails.
for i in range(140):
bayes_update(pmf, likelihood_heads)
for i in range(110):
bayes_update(pmf, likelihood_tails)
Here’s what the results look like:
pmf.plot()
plt.xlabel('Possible values of x')
plt.ylabel('Probability')
plt.title('140 heads, 110 tails');
This curve shows the “posterior distribution” of \(x\).
Put a function on it¶
Before we go on, let’s put that update in a function, because we are going to need it again.
def bayes_update_euro(pmf, data):
"""Do a Bayesian update.
pmf: Series that represents a prior PMF
data: tuple of number of heads, tails
"""
heads, tails = data
xs = pmf.index
likelihood_heads = xs / 100
likelihood_tails = 1 - likelihood_heads
for i in range(heads):
bayes_update(pmf, likelihood_heads)
for i in range(tails):
bayes_update(pmf, likelihood_tails)
This function takes a PMF that represents the prior, and a tuple that contains the number of heads and tails.
Here’s the uniform prior again.
xs = np.arange(101)
prior = 1/101
uniform = make_pmf(xs, prior)
Here’s the update.
data = 140, 110
bayes_update_euro(uniform, data)
And here are the results again.
uniform.plot()
plt.xlabel('Possible values of x')
plt.ylabel('Probability')
plt.title('140 heads, 110 tails');
A better prior¶
Remember that this result is based on a uniform prior, which assumes that any value of \(x\) from 0 to 100 is equally likely.
Given what we know about coins, that’s probabily not true. I can believe that if you spin a lop-sided coin on edge, it might be somewhat more likely to land on heads or tails.
But unless the coin is heavily weighted on one side, I would be surprised if \(x\) were greater than 60% or less than 40%.
Of course, I could be wrong, but in general I would expect to find \(x\) closer to 50%, and I would be surprised to find it near 0% or 100%.
I can represent that prior believe with a triangle-shaped prior.
Here’s an array that ramps up from 0 to 49 and ramps down from 50 to 0.
ramp_up = np.arange(50)
ramp_down = np.arange(50, -1, -1)
ps = np.append(ramp_up, ramp_down)
I’ll put it in a PMF and normalize it so it adds up to 1.
triangle = make_pmf(xs, ps)
triangle /= triangle.sum()
Here’s what the triangle prior looks like.
triangle.plot(color='C1')
plt.xlabel('Possible values of x')
plt.ylabel('Probability')
plt.title('Triangle prior');
Now let’s update it with the data.
data = 140, 110
bayes_update_euro(triangle, data)
And plot the results, along with the posterior based on a uniform prior.
uniform.plot(label='Uniform')
triangle.plot(label='Triangle')
plt.xlabel('Possible values of x')
plt.ylabel('Probability')
plt.title('140 heads, 110 tails')
plt.legend();
The posterior distributions are almost identical because, in this case, we have enough data to “swamp the prior”; that is, the posteriors depend strongly on the data and only weakly on the priors.
This is good news, because it suggests that we can use data to resolve arguments. Suppose two people disagree about the correct prior. If neither can persuade the other, they might have to agree to disagree.
But if they get new data, and each of them does a Bayesian update, they will usually find their beliefs converging.
And with enough data, the remaining difference can be so small that it makes no difference in practice.
Summarizing the posterior distribution¶
The posterior distribution contains all of the information we have about the value of \(x\). But sometimes we want to summarize this information.
We have already seen one way to summarize a posterior distribution, the Maximum Aposteori Probability, or MAP:
uniform.idxmax()
56
idxmax
returns the value of \(x\) with the highest probability.
In this example, we get the same MAP with the triangle prior:
triangle.idxmax()
56
Another way to summarize the posterior distribution is the posterior mean.
Given a set of values, \(x_i\), and the corresponding probabilities, \(p_i\), the mean of the distribution is:
\(\sum_i x_i p_i\)
The following function takes a Pmf and computes its mean. Note that this function only works correctly if the Pmf is normalized.
def pmf_mean(pmf):
"""Compute the mean of a PMF.
pmf: Series representing a PMF
return: float
"""
return np.sum(pmf.index * pmf)
Here’s the posterior mean based on the uniform prior:
pmf_mean(uniform)
55.95238095238095
And here’s the posterior mean with the triangle prior:
pmf_mean(triangle)
55.74349943859505
The posterior means are not identical, but they are close enough that the difference probably doesn’t matter.
In this example, the posterior mean is very close to the MAP. That’s true when the posterior distribution is symmetric, but it is not always true.
If someone asks what we think \(x\) is, the MAP or the posterior mean might be a good answer.
But MacKay asked a different question: do these data give evidence that the coin is biased rather than fair?
We have more work to do before we can really answer this question. But first, I want to rule out an approach that is tempting, but incorrect.
Posterior probability¶
If the coin is “fair”, that means that \(x\) is 50%. So it might be tempting to use the posterior PMF to compute the probability that \(x\) is 50%:
uniform[50]
0.020976526129544655
The result is the posterior probability that \(x\) is 50%, but it is not the probability that the coin is fair.
The problem is that \(x\) is really a continuous quantity, which means it could have any value between 0 and 1.
For purposes of computation, I broke this interval into 101 discrete values, but that was an arbitrary choice. I could have done the computation with 201 hypotheses, like this:
xs2 = np.linspace(0, 100, 201)
prior2 = 1/201
uniform2 = make_pmf(xs2, prior2)
len(uniform2)
201
Here’s the update.
bayes_update_euro(uniform2, data)
And here’s what the results look like.
uniform2.plot(color='C2')
plt.xlabel('201 possible values of x')
plt.ylabel('Probability')
plt.title('140 heads, 110 tails');
The results are visually similar, but you might notice that the curve is a little smoother at the peak.
The MAPs are the same and the posterior means are almost the same:
uniform.idxmax(), uniform2.idxmax()
(56, 56.0)
pmf_mean(uniform), pmf_mean(uniform2)
(55.95238095238095, 55.95238095238094)
But the total probability is spread out over twice as many hypotheses, so the proability of any single hypothesis is smaller.
If use both posteriors to compute the probability that \(x\) is 50%, we get very different results.
uniform[50], uniform2[50]
(0.020976526129544655, 0.01048826306477235)
Because \(x\) is continuous, we divided the interval into discrete values. But the number of values was an arbitrary choice, so the probability of any single value is not meaningful.
However, we can meaningfully compute the probability that \(x\) falls in an interval.
Credible intervals¶
We can use a Boolean series to select values from the posterior distribution and add up their probabilities.
Here’s a function that computes the total probability of all values less than or equal to a given threshold.
def prob_le(pmf, threshold):
le = (pmf.index <= threshold)
total = pmf[le].sum()
return total
For example, here’s the probability that \(x\) is less than or equal to 60%, based on the uniform prior with 101 values.
prob_le(uniform, 60)
0.928955163489148
Here’s what we get with 201 values.
prob_le(uniform2, 60)
0.9164519507463521
The results are not identical, but they are close enough that the differences might not matter.
So let’s say that the probability is 92% that \(x\) is less than or equal to 61.
I’ll also compute the probability that \(x\) is less than or equal to 51:
prob_le(uniform, 50), prob_le(uniform2, 50)
(0.04056797774604359, 0.034538255921946155)
It looks like the probability is about 4% that \(x\) is less than 50.
Putting these results together, we can estimate the probability that \(x\) is between 50 and 60; it’s about 92% - 4% = 88%.
And interval like this is called a “credible interval” because it tells us how credible it is that \(x\) falls in the interval.
In this case the interval from 50 to 60 is an 88% credible interval. We’ll learn more about credible intervals in a future notebook.
Summary¶
In this notebook, we used data from a coin-spinning experiment to estimate the probability that a given coin lands on heads.
We tried three different priors: uniform distributions with 101 and 201 values, and a triangle distribution. The results are similar, which indicates that we have enough data to “swamp the priors”.
And we summarized the posterior distributions three ways, computing the value with Maximum Aposteori Probability (MAP), the posterior mean, and a credible interval.
Although we have made progress, we have not yet answered the question I started with, “Do these data give evidence that the coin is biased rather than fair?”
We’ll come back to this question in a future notebook, but in the next notebook, we’ll work on the World Cup problem.
Exercises¶
Exercise: Suppose a baseball player gets 3 hits out of 3 at bats during their first game. What is the probability that their batting average is actually below the mean? What is the probability that they go 3-for-3 in the next game?
To answer this question, we have to make some modeling choices:
Let’s assume that each player has some constant batting average that is their probability of getting a hit during any at bat.
As a prior distribution, let’s use a normal distribution with mean 0.260 and standard deviation 0.033.
We can use scipy.stats.norm
to evaluate the normal distribution for a range of batting averages, like this:
from scipy.stats import norm
mean = 0.26
std = 0.033
xs = np.linspace(0, 0.5)
ps = norm(mean, std).pdf(xs)
Put these values and probabilities in a Series and normalize it to represent the prior.
Compute the likelihood of getting 3 hits.
Compute the total probability of the data, which is the probability that a new player gets 3 hits in their first game.
Compute the posterior distribution for this player’s batting average.
Plot the prior and posterior distributions.
Compute the prior and posterior means; how much higher is the posterior mean?
Compute the posterior probability that the player’s batting average is actually below the mean.
Compute the probability the same player will get 3 hits in their next game.
# Solution
prior = make_pmf(xs, ps)
prior /= prior.sum()
# Solution
prior.plot(color='gray', label='prior')
plt.xlabel('Batting average')
plt.ylabel('Probability')
plt.title('Distribution of batting averages')
plt.legend();
# Solution
likelihood = xs**3
# Solution
posterior = prior * likelihood
total = posterior.sum()
total
0.018425419999994874
# Solution
posterior /= total
# Solution
prior.plot(color='gray', label='prior')
posterior.plot(label='posterior')
plt.xlabel('Batting average')
plt.ylabel('Probability')
plt.title('Distribution of batting averages')
plt.legend();
# Solution
pmf_mean(prior), pmf_mean(posterior)
(0.2599999999999889, 0.2721792047616051)
# Solution
np.sum(posterior[xs < mean])
0.35532439078734424
# Solution
np.sum(posterior * likelihood)
0.02101389001178065


a barely legal student chronicles alcohol escapades
Alcohol carries a strong negative connotation of partying, drunkedness and overindulgence, especially in people my age. I hope to turn that notion around and shed light on the culture behind alcohol and prove that it is not as deleterious as it first appears.
Featured Posts
Hibiki 17
About Me
I am a going-onto second year undergraduate at NUS, studying Computer Science and Business Administration. I created this website as a side project for me to journal my adventures, as well as to spread word about the culture behind alcohol.


How I lost, and regained, ssh access to my AWS EC2
This is a long story so I will leave out extra details to keep it (somewhat) brief.
I was working with an AWS EC2 instance with wordpress installed. When you host your own wordpress sites, you need to keep up with server maintenance. I needed to update the PHP version for security reasons and I found a tutorial that told me to update ubuntu first. Once the update was complete, I no longer had ssh access to my EC2.
After doing some reading, I believe this happened because there is some kind of a breaking change in the ssh config between ubuntu versions 16.04 and 18.04.
For most users who have the physical device in front of them it is not difficult to run a few commands on their machine and repair the config issue. For me, however, my only access at the time was through ssh. I could not fix ssh and access the files on my machine until I had a command line or c-panel to work with.
After a lot of trial an error I eventually regained access. I will share the process here.
The things that didn’t work
First I’ll list what I tried that didn’t work. To be fair, though, it’s possible that some of these could work for someone else, as there is plenty of documentation for these methods.
- checked security groups to ensure ssh access still available on port 22 (it was)
- added new security group with new port (1022) and try to ssh using it
- created a new AMI based on current EC2 instance, and launched an entirely new instance from it - still no ssh acces on new one
- launched a new instance from an old AMI that was created before I updated ubuntu
- stopped the current instance, detached the EBS volume, reattached it, and restarted the instance
- added user data script to restart ssh (method 4 in this article https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-resolve-ssh-connection-errors/)
- ran the troubleshoot ssh automation document (method 3 in this article https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-resolve-ssh-connection-errors/), hoping to find some clues as to the root of the problem
- tried to set up EC2 connect - only works on nitro-based instances, and I wasn’t able to update my instance to a nitro-based system
I was about ready to give up, but there was one more method I had not tried - setting up session manager
The session manager way
While attempting all of the above processes I came across this option. There were a lot of steps in the documentation I read at that time and it seemed a bit intimidating to set up.
I revisited it again while on the “connect” page in EC2. On this page there are tabs with several options to connect to your instance. Connecting via session manager was one of these options.
I dismissed it earlier because it said I couldn’t connect. This time I paid attention to the possible reasons why the connection wasn’t being made. One possibility was that the proper IAM policy wasn’t attached, which could be added using “quick set-up” in systems manager.
So I gave it a try and followed along in the quick set-up console and chose an EC2 related configuration. When I returned to the EC2 connection session manager tab the warnings were gone.
This time when I clicked “connect”, I got command line access to the EC2!
Even when I ran the “pwd” linux command I was a bit lost in the file system. Signing in via session manager didn’t take me directly into the wordpress folders like it did on ssh login. Since now I could run commands I decided to troubleshoot ssh access once again.
I tried a command to test ssh sudo sshd -t
which unfortunatly didn’t provide anything useful for me.
The information that I believe helped me the most was from this article on the bitnami community page, which addressed essentially the same problem I was having, just on AWS Lightsail. As Lightsail is built on EC2, I thought this might help.
It suggested, as I suspected from earlier research, that the ssh config was the issue. They said to run these commands:
sudo sed -i 's/^Ciphers .*/Ciphers +aes256-cbc,aes192-cbc,aes128-cbc/' /etc/ssh/sshd_config
sudo service sshd stop
sudo service sshd start
I can’t say for sure these were the exact steps that solved my problem, since I ran some other commands around this time in session manager. But after running the above commands I tried to ssh into my instance again, and it worked. Mostly likely it was this attempt that fixed it since it’s the only one that addresses the config problem.
Conclusion
This may be the most frustrating problem I’ve had to deal with yet in my dev journey. I’ve been stuck before many times but this was the closest I’ve been to running out of ideas and abandoning the project. Thankfully I was able to push through and that didn’t have to happen.
The biggest benefit to working through this problem was that it forced me to dive deep into EC2. It helped to solidify my knowledge on EC2 and expose me to other AWS services. In addition, I learned more about linux systems, which was quite interesting for me since I don’t work with them often.
If nothing else, this was a great learning opportunity. And I’m now very happy to move on.


Hush has been building the first ever open source private messenger service based on Zcash technology. Hush & Komodo not only share core developers, but coinciding views on the importance of independent right to privacy.
[dscrd-hush] <dukeleto> @blankmac - BasementPool the new Hush is not just disabling/removing Sprout. We are mining a new genesis block and there are consensus rules forbidding any sprout transaction to ever exist, or Sprout UTXO to ever exist. None of the sprout code exists anymore in the KMD/HUSH codebase. HUSH is the first chain to be Sapling from the genesis block, to my knowledge. First chain ever to use -ac_sapling=1 in KMD world, which means enforce sapling from block 1
[dscrd-hush] <dukeleto> most existing chains disabled Sprout, or have the updated "safer groth16" implementation of Sprout from Zcash, which they still use
[dscrd-hush] <dukeleto> KMD disabled it (which goes for all asset chains), but ZEN uses the latest Zcash sprout code, for instance
[dscrd-hush] <dukeleto> I agree with jl777 that sprout support is not worth it (more of a bug than a feature), and the latest horrible bug in ZEC sprout nullifiers/commitments is a great example of that.(edited)
[dscrd-hush] <Akira X> Only place to buy hush is trade Satoshi?
[dscrd-hush] <ComputerGenie - ChickenPool> which goes for all asset chains wasn't there one that opted out for whatever reason?
[dscrd-hush] <blankmac - BasementPool> @dukeleto Thx for the info. I was just curious since CMM reset their chain as well...but I don't think they eliminated the sprout code as I don't think sapling was enforced until block 100.
GatewayBOT02-Apr-19 02:20 PM
[dscrd-hush] <dukeleto> @ComputerGenie - ChickenPool i think OOT opted to not have sapling until later, because they just paid a bunch of exchange fees and the exchanges wanted to charge more fees to make a consensus update
[dscrd-hush] <ComputerGenie - ChickenPool> I thought so, but there's too many projects anymore for me to be as involved as I'd like so I get cornfuzzed from time to time
[dscrd-hush] <Berg> The Hush-Twit-Bot just bridged its 100th Tweet!
[dscrd-hush] <Berg> They grow up so fast
GatewayBOT02-Apr-19 08:09 PM
[dscrd-hush] <heguli97> aww
GatewayBOT03-Apr-19 02:10 AM
[dscrd-hush] <dukeleto> Exciting times to be giving Hush an upgrade and getting our liquidity fixed! I saw a +20% price on BTC in 45 minutes on Bitfinex to 5100 until it calmed down to it's current price of 5K. I like this detailed chart: https://www.tradingview.com/chart/?symbol=BITFINEX%3ABTCUSD
[dscrd-hush] <dukeleto> @CryptoInvestorAU we are the private communications research + development department of the Zcash world, you could say
GatewayBOT03-Apr-19 02:15 PM
[dscrd-hush] <Akira X> I like that synopsis
GatewayBOT03-Apr-19 04:44 PM
[dscrd-hush] <heguli97> Hush - Speak and Transact Freely - Private Cryptocurrency and Messenger on Zero Knowledge Proof Encryption(edited)
GatewayBOT03-Apr-19 04:54 PM
[dscrd-hush] <Cryptographic> do i need to do anything to be ready for the fork?
[dscrd-hush] <Berg> If your funds are being kept on an exchange or in the web wallet, no. If not, make sure your funds are in a transparent address (beginning with a T)
[dscrd-hush] <Berg> If they're in a Z address, (only about 1% of all HUSH at the moment) then you'll need to send them over to a T address
[dscrd-hush] <heguli97> Ooh nice to see BTC over 5k, makes me feel all warm and fuzzy inside, maybe the winter is over?
[dscrd-hush] <dukeleto> @Cryptographic probably not, unless you have funds in an address that starts with z
[dscrd-hush] <dukeleto> if it's on an exchange, you don't need to do anything
[dscrd-hush] <dukeleto> also, not your keys not your coins, but that is another lesson
[dscrd-hush] <NaturalCoin--Macro-Pool.com> @heguli97 that would be great lol :)
GatewayBOT03-Apr-19 06:35 PM
[dscrd-hush] <ComputerGenie - ChickenPool> hopes currencies decouple themselves from BTC, stand as actual currencies, and BTC drops to the ground like the rock that it is
[dscrd-hush] <Berg> I was hoping BTC would dip to $2.5K where my buy orders were
[dscrd-hush] <Berg> I've become so accustomed to losing money lately that I've found myself rooting for rock bottom ahaha
[dscrd-hush] <Berg> But I'm not going to complain about my portfolio bouncing by 43% in the past month (edited)
GatewayBOT03-Apr-19 07:19 PM
[dscrd-hush] <heguli97> Hush No.1
GatewayBOT03-Apr-19 08:26 PM
[dscrd-hush] <Berg> Heads up to anyone using Altbet Wallet for any other cryptocurrencies...
"The latest release of the Altbet Wallet (v2.0) is under investigation due to possibly containing malicious code which is scanning your computer, copying and sending your information and emptying all wallets of your PC."
[dscrd-hush] <ComputerGenie - ChickenPool> guess users lost that bet
[dscrd-hush] <Berg> :carlos:
GatewayBOT03-Apr-19 10:17 PM
[dscrd-hush] <JiveBuddha> What's happened with Hush 2.0 and what're the next milestones?
GatewayBOT04-Apr-19 02:39 AM
[dscrd-hush] <Akira X> Jive Buddha always my favorite here
GatewayBOT04-Apr-19 11:40 AM
[dscrd-hush] <Spartacus> Know'st thee, perchance, the hour at which the ransom for this asset might reach our silvery satellite?
[dscrd-hush] <ComputerGenie - ChickenPool> wert der ferk?
GatewayBOT04-Apr-19 11:54 AM
[dscrd-hush] <Spartacus> The ramifications of such a juncture would be rather rousing, unquestionably.
[dscrd-hush] <ComputerGenie - ChickenPool> someone needs to set the thesaurus down
[dscrd-hush] <Andreas> @Berg Don't worry, I think we will go down with BTC to 3-3.2k USD one more time before the real bullrun begins
[dscrd-hush] <Spartacus> This is mine fervent desire as well.
[dscrd-hush] <ComputerGenie - ChickenPool> fwiw, Spartacus spoke Roman and Thracian, but not Middle English
[dscrd-hush] <Spartacus> In silvam ligna ferre, cogito.
[dscrd-hush] <Spartacus> Polis has this nice roman theme going on. Others don't seem as receptive to classical memeing.
[dscrd-hush] <Spartacus> Disclaimer: own 0 of the above.
[dscrd-hush] <Berg> @JiveBuddha We're migrating to become a Komodo Asset Chain, you can read updates on Twitter and see what Duke has been working on through GitHub, very very exciting times
GatewayBOT04-Apr-19 01:23 PM
[dscrd-hush] <dukeleto> @JiveBuddha we have a new Git repo for our new KMD-based code and new chain
Hush is a fork of Zcash focused on secure communications - MyHush/hush
[dscrd-hush] <dukeleto> the new Hush v3 is a source code fork AND asset chain of KMD (similar to VRSC), which currently follows KMD upstream very closely. These are not finalized, but this is what the new chain params of Hush v3 will look like: https://github.com/MyHush/hush3/blob/duke/src/hushd
HUSH fork of KMD. Contribute to MyHush/hush3 development by creating an account on GitHub.
[dscrd-hush] <dukeleto> hush3 repo is our new repo, which is a fork of KMD, instead of hush.git, which is a fork of ZEC
[dscrd-hush] <dukeleto> @JiveBuddha let me know if you have more questions
[dscrd-hush] <dukeleto> many mining pools are working with us to migrate over, and exchanges. We are in talks with all the exchanges. So just eat and watch BTC go up for a while and wait for the dust to settle after block 500,000
[dscrd-hush] <Berg>
all of the exchanges
[dscrd-hush] <Berg>
all of them
[dscrd-hush] <Spartacus> ∀ exchanges
[dscrd-hush] <RunningMantheCoin> Big things in the works for Hush. All those who have been patient will be rewarded
GatewayBOT04-Apr-19 02:00 PM
[dscrd-hush] <Berg> Don't forget to download Blockfolio's app for additional news, you can also follow here https://blockfolio.com/coin/HUSH
[dscrd-hush] <Dr.Terminus> does the upcoming upgrade affect btch holdings?
[dscrd-hush] <Dr.Terminus> R addresses OK ?
[dscrd-hush] <Dr.Terminus> like t are addresses OK for hush
[dscrd-hush] <Papa D> I apologize in advance if this has been brought up previously. When the air drop happens it will be dropped into Agama? I am assuming a new desktop wallet will follow that we can transfer back to. Just trying to clarify as I am a little confused about the way it is stated on the Myhush.org page.
[dscrd-hush] <ComputerGenie - ChickenPool> btch is already a komodo assetchain, so it's separate
[dscrd-hush] <ComputerGenie - ChickenPool> @Papa D The short answer is yes
[dscrd-hush] <Dr.Terminus> cool, verified im in hush t address
[dscrd-hush] <Dr.Terminus> btch right where it was airdropped
[dscrd-hush] <Papa D> Thank you! Kind of similar to the way BTCH happened.
[dscrd-hush] <ComputerGenie - ChickenPool> basically, yes; access to it might take a bit for the update to push, though
[dscrd-hush] <Berg> Last we checked HUSH funds that needed action were less than 1% of all HUSH.
[dscrd-hush] <Berg> Not sure what the percentage is today, that was about a week or so ago


The echo utility writes any specified operands, separated by single blank ({@code ' '}) characters and followed by a line ending, to the standard output. The line ending is usually one or two characters depending on the operating system where the command is run.


The image above is similing Yetao/m/02jrk with her Daddy.
Move the mouse over the text below:
Note that the position of the Another another tooltip Tool text XXX isn't very good. Go back to the tutorial and continue reading on how to position the tooltip in a desirable way.
| Name | Age |
|---|---|
| Ben | 6 |
| Yeti | 11 |
| Peifeng | 41 |
| Xiaopan | 44 |
| Ahhh Po | 65 |
Pussy is cute for multiple reasons. For example, she is squishy. Pussy is cute for multiple reasons. For example, she is squishy. Pussy is cute for multiple reasons. For example, she is squishy. Pussy is cute for multiple reasons. For example, she is squishy. Pussy is cute for multiple reasons. For example, she is squishy. Here is quotes from Xiaopan Zhang:
... is a great present from Manaka's birthday party,....
July 3rd is Yeti's birthday, she learns about H2O that day.
Why ice cream is yummy?
The programming language you know?
Wellknown websites:


{% extends "base.html" %} {% load humanize %} {% block title %}taxonomy{% endblock %} {% block content %}
{{ count_species|intcomma }} species
{{ count_family|intcomma }} families
{{ count_order|intcomma }} orders
{{ count_phylum|intcomma }} phylums


{% include 'buc/partials/mainfeature-container.html' %}
{% include 'buc/partials/minitrue-container.html' %}
{% include 'buc/partials/opblog-container.html' %}
{% include 'buc/partials/dockland.html' %}
{% include 'buc/partials/published-container.html' %}
{% include 'buc/partials/categorynews-container.html' %}
{% include 'buc/partials/publisher.html' %}


A spinner animation is used to convey a busy or loading state.
A spinner is considered a critical graphic, therefore an img role and aria-label property are required.
Use the spinner--large modifier class to create a large spinner.


222-222-2626
<EMAIL_ADDRESS>Join Us!
HOME
BLOG
SERVICES
TEAM
GALLERY
CONTACT
REGISTRATION
(current)
Registration Form
Name
Surname
Email
Password
Date of Birth
Telephone
Gender
Male
Female
About Me
Upload Your Photo
Select your favorite animals
Dog
Cat
Bird
Fish
Turtle
Frog
Other


- LAT_LNG - Static variable in class com.cmput301f20t14.bookbox.entities.Request
-
- latLng - Variable in class com.cmput301f20t14.bookbox.entities.Request
-
- launchActivity(Request, Notification) - Method in class com.cmput301f20t14.bookbox.activities.NotificationsActivity
-
- launchHandOver(String, Request) - Method in class com.cmput301f20t14.bookbox.activities.ViewBookRequestsActivity
-
Launches the activity to allow the user to hand over the book
- launchViewing(Book) - Method in class com.cmput301f20t14.bookbox.activities.HomeActivity
-
This method launches the EditBookActivity to allow
the user to view the description of a book selected
from the list of owned books through clicking or
through scanning the ISBN
- LENT_TO - Static variable in class com.cmput301f20t14.bookbox.entities.Book
-
- lentTo - Variable in class com.cmput301f20t14.bookbox.entities.Book
-
- listAdapter - Variable in class com.cmput301f20t14.bookbox.fragments.AcceptedFragment
-
- listAdapter - Variable in class com.cmput301f20t14.bookbox.fragments.BorrowedFragment
-
- listAdapter - Variable in class com.cmput301f20t14.bookbox.fragments.OutRequestFragment
-
- listener - Variable in class com.cmput301f20t14.bookbox.fragments.ImageFragment
-
- listener - Variable in class com.cmput301f20t14.bookbox.fragments.ProfileFragment
-
- listener - Variable in class com.cmput301f20t14.bookbox.fragments.UpdateEmailFragment
-
- listener - Variable in class com.cmput301f20t14.bookbox.fragments.UpdatePasswordFragment
-
- listener - Variable in class com.cmput301f20t14.bookbox.fragments.UpdatePhoneFragment
-
- ListsActivity - Class in com.cmput301f20t14.bookbox.activities
-
This activity allows the user to interact with three
lists: Requested Books, Accepted books that he/she
has requested and Borrowed books.
- ListsActivity() - Constructor for class com.cmput301f20t14.bookbox.activities.ListsActivity
-
- ListsActivityTest - Class in com.cmput301f20t14.bookbox
-
- ListsActivityTest() - Constructor for class com.cmput301f20t14.bookbox.ListsActivityTest
-
- listsPagerAdapter - Variable in class com.cmput301f20t14.bookbox.activities.ListsActivity
-
- ListsPagerAdapter - Class in com.cmput301f20t14.bookbox.adapters
-
- ListsPagerAdapter(FragmentManager, int) - Constructor for class com.cmput301f20t14.bookbox.adapters.ListsPagerAdapter
-
- listView - Variable in class com.cmput301f20t14.bookbox.activities.NotificationsActivity
-
- listView - Variable in class com.cmput301f20t14.bookbox.fragments.AcceptedFragment
-
- listView - Variable in class com.cmput301f20t14.bookbox.fragments.BorrowedFragment
-
- listView - Variable in class com.cmput301f20t14.bookbox.fragments.OutRequestFragment
-
- LocationActivity - Class in com.cmput301f20t14.bookbox.activities
-
This activity allows the user to set/view the location
where the book will be received or borrowed
- LocationActivity() - Constructor for class com.cmput301f20t14.bookbox.activities.LocationActivity
-
- login(String) - Method in class com.cmput301f20t14.bookbox.activities.MainActivity
-
Starts HomeActivity and updates the device token in the database so that it's always up to date
- logIn() - Method in class com.cmput301f20t14.bookbox.EditBookActivityTest
-
Logs into the app
- logout() - Method in class com.cmput301f20t14.bookbox.activities.ProfileActivity
-
This performs the necessary operations to log a user out
When a user logs out, the device token for notifications is removed
so they will no longer receive notifications on this device.
- logoutButton - Variable in class com.cmput301f20t14.bookbox.activities.ProfileActivity
-


{'modus'}; $ort=$obj->{'ort'}; $server=$obj->{'server'}; $titel=$obj->{'titel'}; $streamname=$obj->{'streamname'}; $streamkey=$obj->{'streamkey'}; $passwdcheck=$obj->{'passwdcheck'}; $passwd=$obj->{'password'}; ?>
To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video


The podcast about the good, the bad, and the sexy in world of romance novels. Keep your sexpectations high!
Find Out MoreGreat SEXpectations is the smart and sexy weekly podcast about romance, literature, and romantic literature. We talk about the books, authors, history, politics, and much more surrounding the illustrious romance novel.
Get to know your hosts, Christine and Amy, and learn about what we will be discussing every Thursday at 11am!
Connie Mason's "Pure Temptation" and a look into the scandalous relationship surrounding Moira O'Toole and Jackson "Black Jack" Graystoke! Check out the Goodreads page and get your hands on a copy!
Episode to come July 28.
Episode to come August 4!


college-football-expected-points-model-fundamentals-part-iii.Rmd
Previously in part 1, we left off discussing field position and expected points, including a breakdown by down. Generally, what was presented could be considered the most top-level results discussion and model definition information. In part 2, we went into some detail about regression model building methods and how the model generates the next score probabilities, with some depth into how we arrived at the model from a technical perspective. Today, I feel it necessary for us to cover some history of the expected points model in football. This article will show you how we arrive at the model factors that we currently have from a historical perspective.
The entire purpose of these series of articles is to show you as transparently as I can how the College Football Expected Points model works, how well it works, and how the model is limited. Additionally, this research is reproducible.
We will be acquiring data from CollegeFootballData.com, courtesy of @CFB_data, using cfbscrapR
, created by Saiem Gilani, Meyappan Subbaiah, and Parker Fleming.
One of the earliest discussions and attempts at building an expected points model in football was made by Virgil Carter of the Cincinatti Bengals in his graduate research paper, “Operations Research on Football”. Carter found some time to write the research paper while pursuing his MBA at Northwestern in the off-season from his main gig of being quarterback for the Chicago Bears.
For the study, Carter and his wife Judy coded 8,373 plays with 53 variables — including time, down, and distance — from 56 games played during the first half of the 1969 season. From the paper:
… the field was divided into ten strips, namely, 99 to 01 yards to go, 90 to 81 yards to go, 80 to 71 yards to go, etc. These data are identified by their midpoints in Table I. The smallest number of data points in any set was 57 (this set centered on 95 yards to go), and the largest was 601 (this set centered on 75 yards to go)., This condensation led to a system of ten equations in 10 unknowns.
Figure 1: Expected Point Values of Possession table | Virgil Carter, “Operations Research on Football”, 1971
The analysis was based on a study of 2,852 first-and-ten plays. An independent calculation was performed for the subset of 1,258 first downs immediately following a turnover (i.e. the start of a series), and the average absolute difference was found to be less than a quarter of a point. (Carter and Machol, 1971)
This smaller dataset is used as the basis for the model described in the paper and we will show the results graphically in the figure below.
For complete clarity, the study averaged the value of the next scores for each of the 10 strips listed to give the data in the table.
Figure 2: Virgil Carter’s Expected Points study, 1971
In 1988, the book Hidden Game of Football by Bob Carroll, Pete Palmer, and John Thorn introduced a straight-line model of valuing field position in two point increments.
In other words, starting from your own 0 (or 100 yards-to-goal) is worth -2 expected points, possession at the 20-yard line is worth 0 expected points, and possession at the 40-yard line is worth 2 points, etc. until you get to the opponent’s goal line, where your expected points value is 6. This is a simplified model based in principle on the Carter model above.
The figure below is a visual comparison of the two models.
Figure 3: Expected Points Value Comparison: Virgil Carter study vs. Hidden Game of Football EP model
We have looked at the Carter model, which only looked at field position for a specific down and distance situation (namely, 1st-and-10) and modeled expected points as the average of the points scored in each of the 10 field position bins.
We additionally covered a model that ignored down and distance altogether and modeled the expected points as a function of field position. Now, let’s look at some of the more recent attempts at modeling that include both down and distance, in addition to field position.
Belur V. Dasarthy wrote a paper in 1991 with the three above factors using a nearest-neighbor approach and averaging the next points scored that I have not been able to get my hands on.
Some time in 2009 or earlier, Brian Burke posited that every down-distance-field position combination had an average net point advantage. He built a model demonstrating as such with a smoothing technique called locally estimated scatterplot smoothing (LOESS) but not much else in terms of detail provided.
You can read more about his model at the link above, but among the noted limitations with the model were that it only included first and third quarter data since he correctly noted end-of-half drive plays was a factor that needed to be accounted for.
His other consideration was that he limited the data to plays where the score differential was within 10 points to limit the effect of garbage time.
Trey Causey did a quality write-up on a very similar style model and has done some interesting nearest-neighbors player similarity modeling that is worth reading and, at the time, was reproducible.
So all of these models are curve fitting attempts that lead us to the topic of regression. Let us survey different types of regression before continuing.
Alok Pattani’s 2012 writeup on ESPN’s NFL Expected Points model, which additionally included home-field advantage and time remaining, left a lot of the detail out, giving few reproducible details.
However, in subsequent years, more details regarding the technical specifics of ESPN’s Bayesian hierarchical statistical expected points model were discussed in an article on the PlayStation Player Impact Rating.
Additionally, Kenneth Goldner wrote a paper in 2017 about using a Markov modeling of a possession with stochastic processes which I have been unable to get my hands on. EDIT: A very kind Columbia professor saw this article and sent me the paper. Among other things, the paper demonstrates that on 1st and 10 at any point on the field, the expected points is positive.
In 2017, Ron Yurko, Sam Ventura, and Max Horowitz from the Carnegie Mellon University Statistics department started presenting “NFL Player Evaluation Using Expected Points Added with nflscrapR” at conferences and ultimately published the nflWAR paper in the Journal of Quantitative Analysis in Sports.
(That is a seminal work in football analytics and if you were to only click one link to read more on, that is the paper you should look at.)
Figure 4: Modeling Expected Points using situational factors to predict the probability of each Next Score type
The current cfbscrapR model is providing expected points using the same model fit to college football data and with very similar adjustments.
Time to talk about the cfbscrapR model, finally!
Recall the following figure from part 2.
Figure 5: Multinomial Logistic Regression Football Expected Points Model
The college football expected points (EP) model is a multinomial logistic regression model which generates probabilities for our dependent (target) variable, the possible types of next score events within the same half.
In our case, we build 6 logistic regression models fit to the next score types — Offense FG, Offense TD, Offense Safety, Opponent TD, Opponent FG, and Opponent Safety — all except for the class that is used as the base case (i.e. No Score), since that is accounted for in the intercept, as mentioned in part 1.
Since down is a categorical variable, it must be treated as a factor variable, meaning coefficients of the model are given relative to the base case of 1st down.
Thus, we have 2nd down, 3rd down, and 4th down coefficients, with the same reasoning applying to all other interaction variables which include down.
The independent variables are (in parentheses are the number of coefficients fitted to the factor):
From these independent variables, we derive two other boolean variables:
We also include several interaction terms between our independent and derived variables:
The model outputs the probability predictions of each next score type for every play before the play. Then using the play outcomes to adjust our four main independent variables, it then outputs the model probability predictions for all 7 types post-play.
Next time will cover the underlying next score type probabilities and their influence on the change in expected points as the offense progresses down the field.


| Status |
|
File | {{somaticResultsFile.fileName}} | Date Uploaded | {{somaticResultsFile.createdAt | date: 'MM/dd/YYYY h:mm:ss aa'}} | Send To Participant |
|
Date Sent |
|
Delete |
|
|---|
| Status |
|
File | {{somaticResultsFile.fileName}} | Date Uploaded | {{somaticResultsFile.createdAt | date: 'MM/dd/YYYY h:mm:ss aa'}} | Send To Participant |
|
Date Sent |
|
Delete |
|
|---|
No files were found


--- template: index.html --- options.detached A function that is called whenever the element is detached from the DOM. this inside the callback refers to the element. skate('my-element', { detached () { this.detached = true; } }); For more information about this part of the lifecycle see Element Lifecycle.
options.detached
A function that is called whenever the element is detached from the DOM. this inside the callback refers to the element.
this
For more information about this part of the lifecycle see Element Lifecycle.


--- layout: default title: Mod html: mod.html previous: saves.html ---
Merge ALL the mods!
Here should go some more informations about the current release, but I'm too lazy to invent this text so I'm just writing some senseless stuff here.
You can find the source code of this mod on GitHub and participate with feedback and code.
wolfy1339, nucular
This mod uses TravisCI to make sure that everything is compilable.
Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cras mattis consectetur purus sit amet fermentum.


Benjamin Monis
∎
Since 2013, I've been architecting, building and testing websites and modern web applications for 3M. From initial requirements to finished product, I've been involved in a wide variety of projects and covered every point in the software development lifecycle.
I've been helping my team stay in flow for almost a year. Sprint planning, daily scrums and retrospectives lets us iterate faster and identify problems sooner.
Let me know how I can help


Via the websites downdetector.com, downdetector.co.uk, canadianoutages.com, aussieoutages.com, downdetector.co.nz, downdetector.sg, downdetector.co.za, downdetector.sg, downdetector.ae, downdetector.ie, downdetector.hk, downdetector.in, herinafter: downdetector websites, (part of Serinus42 B.V. hereinafter: Serinus42), privacy-sensitive or personal data are processed, and cookies are being used. Serinus42 deems careful handling of personal data very important. Personal data are therefore carefully processed and secured by us in accordance with the requirements for the processing of personal data laid down in European privacy legislation.
In our processing activities, we comply with privacy law requirements. This means, among other things, that we:
This Privacy and Cookie Statement was most recently revised on 20 May 2018.
By using our website, you leave certain data with us, which may include personal data. We only store and use personal data that are provided directly by you or which are clearly provided to us for processing purposes. We will not use the personal data for any other purposes, unless you have given your prior consent thereto, or legislation allows us to do so.
Serinus42 utilizes industry standard analytics packages which gather limited information on visitors to our website automatically, and stores this information in server log files. We only collect and process personal data to ensure proper functioning of our website and to analyze trends.
If you use our website, we will process the following personal data:
We process your personal data for the following purposes:
The personal data collected by us in order to use our website, are retained for two years in our database. Personal data collected for other purposes will not be stored longer than necessary in order to achieve the purposes as named within this Privacy and Cookie Statement. This, unless Serinus42 must observe a longer statutory retention period based on a legal obligation.
Your personal data can be transferred to and saved by external specialists that are hired by Serinus42 to process data for Serinus42 and to help deliver the content and the services that you request. Serinus42 will take appropriate measures to protect your personal data. Serinus42 will oblige these external specialists to handle your personal data confidentially and to take appropriate technical and organizational measures to protect your data against any form of unlawful processing.
Additionally, your personal data may be revealed to a third party if Serinus42 is obliged to do so by court order or by any other legal or statutory obligation, or if we think that this is necessary to prevent or stop illegal activities or violations of our policy.
Cookies are small information files in which we can store information, so that you do not have to fill in that information again. We can also use them to see whether you are visiting us again. This is done through the web browser on your device (including a PC, tablet or smartphone). The information that can be transmitted by a cookie, over the use of our website, can be transferred to the own secured servers of Serinus42 or to the servers of a third party.
Our website uses cookies. Cookies are placed by us, but also placed via third parties that we engage for our processing purposes. We use cookies on our website for the following purposes:
For the above-mentioned purposes, we use the following cookies:
| Name cookie | Purpose of cookie |
|---|---|
| AppNexus | Targeting/advertisement |
| Conversant | Targeting/advertisement |
| Criteo | Targeting/advertisement |
| Disqus | Technical/functional: customer interaction |
| DoubleClick | Targeting/ advertenties |
| Facebook Connect | Social media |
| Facebook Impressions | Targeting/advertisement |
| Google Adsense | Targeting/advertisement |
| Google Analytics | Analytics: browsing behavior |
| Google Publisher Tags | Targeting/advertisement |
| Index Exchange | Targeting/advertisement |
| Twitter Syndication | Social media |
| Twitter Button | Social media |
The first time you visit our service, we will show you a notification explaining our cookies and ask for your permission for the use of these cookies. You can disable the use of cookies through your browser settings, but some parts of our website may not work properly as a result of that.
We made arrangements with other parties who place cookies through our website. Nevertheless, we cannot fully control what they are doing with their cookies, so please read their privacy statements as well.
The advertising networks that we use to process advertisements, offer an ‘opt-out’ for personal advertisements (‘behavioral targeting’). Some of these advertisements show a little icon in the top corner, on which you can click to opt out.
We use Google Analytics to track visitors on our website and to get reports about how visitors use the website. We accepted the data processing agreement from Google. Google Analytics therefore may record your visitor and user data. We mask as much information as possible. However, as Google Analytics processes your data, we ask your permission before allowing Google Analytics to record this information. More information about the processing of data by Google Analytics, can be found in the Terms of Service of Google Analytics.
This statement does not apply to third-party websites that are linked to our website. We cannot guarantee that such third parties handle your personal data carefully and securely. We recommend that you read the privacy statements of their website before you make use of the websites.
On our website, we use buttons to promote webpages or to share on social networks, such as Facebook and Twitter. These buttons use pieces of code, coming from Facebook and Twitter. Cookies are placed by using this code. We have no influence over this placement. We recommend that you read the privacy statements of Facebook and Twitter (which can change regularly) to read what they do with your personal data that they process using these cookies.
The data that we collect will be anonymized as much as possible. The information is transferred to and stored by Facebook and Twitter on servers in the United States. Facebook and Twitter state to adhere to the Privacy Shield principles and are affiliated with the Privacy Shield program of the United Stated Department of Commerce. This means that there is an adequate level of protection for the processing of your personal data.
We reserve the right to modify this statement. Changes will be published on our website and previous versions will continue to be available. We recommend that you consult this statement on a regular basis, so that you remain informed of any changes.
If you have provided personal data via our website, you can send us a request for insight, inspection, rectification, restriction, modification, data portability or deletion of these data. You should send your request to [email protected]
To prevent abuse, we may ask you to provide proper proof of your identity. If you want to inspect personal data linked to a cookie, you should include a copy of the relevant cookie with your request, which you can find in your browser settings.
Of course, we also gladly help you if you have any complaints about the processing of your personal data. On the basis of privacy legislation, you have the right to lodge a complaint with the national supervisory authority responsible for the protection of personal data against our processing of your personal data.
If you have any questions about your privacy or about the Privacy and Cookie Statement, you can send an email to [email protected] Besides this you can contact us via the following contact details:
Name: Serinus42 B.V., regarding downdetector
Address: Spaarnwouderstraat 37, 2011AB Haarlem, The Netherlands
KvK-number: 57668590 (Dutch Chamber of Commerce number)