sprout
- simple project templating
sprout
add name src
sprout
remove name
sprout
list
sprout
init name target
Sprout helps with templating for new projects. It allows management of different project templates that can be copied quickly when starting fresh, and provides an interface to customize the new projects as specified by the template author.
Underlined parameters are required, non-underlined optional.
sprout add [-h] [-v] name src
Adds a template to your repertoire from src
as name
. Name represents how you would like the template to be named within sprout. You are required to add a template which can be either a clone url or a path to a local template. If no name is provided, sprout will use the last piece of the template as the name.
-v
, --verbose
Run in verbose mode.
sprout remove [-h] [-v] name
:
Removes the template with the specified name
from sprout.
-v
, --verbose
Run in verbose mode.
list
list all the templates that have been added to sprout.
sprout init [-h] [-l [LOCALS [LOCALS ...]]] [-t TAG] [-b BRANCH] [-c CONFIG] [-v] name target
Initializes the template with the given name
at the given target
.
-l [LOCALS [LOCALS ...]]
, --locals [LOCALS [LOCALS ...]]
:
Pass locals as options which will override the prompts set in your templates. Locals are passed to the CLI like so: -l key1=value1 key2='value2'
-t TAG
, --tag TAG
:
Pass a git tag to generate the template from.
-b BRANCH
, --tag branch
:
Pass a git branch to generate the template from.
-c CONFIG
, --config CONFIG
:
Pass a JSON or yaml file to pre-define a large set of values.
-v
, --verbose
Run in verbose mode.
sprout run [-h] [-t TARGET] [-v] name generator [args [args ...]]
Run a generator named generator
, provided in a template with the given name
, on a template instance in the current working directory.
[args, [args ...]]
:
Pass arguments to the generator.
-t TARGET
, --target TARGET
:
Optionally pass the path to the template instance (relative to the current working directory).
-v
, --verbose
Run in verbose mode.
--help
, -h
usage docs, can be run for every sub-command as well for command-specific docs.
Full source and docs can be found at http://github.com/carrot/sprout.


Thymeleaf - Bootstrap Modal
Home
(current)
About
Services
Contact
Launch simple modal
Dynamic modal 1
Dynamic modal 2
modal
modal
modal


Using AXS¶
With AXS you can cross-match, query, and analyze data from astronomical catalogs. This page provides a brief description of these features.
Cross-matching catalogs¶
After you have installed AXS, started AXS, and imported data from at least two catalogs, you can cross-match them.
First, you can get the list of tables in the AXS metastore using list_tables. The following snippet, for example, will print out the names of known tables:
db = AxsCatalog(spark)
for tname in db.list_tables():
print(tname)
To load tables, you use AxsCatalog’s load method:
sdss = db.load('sdss')
gaia = db.load('gaia')
Both sdss and gaia are objects of type AxsFrame. You can cross-match the two (with 2 arc-second radius, as in the next example) using the crossmatch method:
gaia_sdss_cm = gaia.crossmatch(sdss, 2*Constants.ONE_ASEC,
return_min=False, include_dist_col=True)
If you set return_min to True, only the nearest match will be returned for each row. include_dist_col determines if the calculated distance will be returned as one of the columns (named axsdist).
Now that you have cross-matching results in an AxsFrame, you can do further processing on the results using Spark and AXS APIs.
Querying catalog data¶
To query and process AXS catalog data you can use standard Spark API. However, one important concept in AXS is data duplication: some of the rows (those in border areas of each zone) are duplicated. Those rows will have the dup column set to 1. The dup column is used for quick cross-matching. But during normal data processing, this duplication is unwanted. You can exlude the duplicated rows using AxsFrame’s exclude_duplicates function:
gaia_clean = gaia.exclude_duplicates()
AXS provides several additional astronomy-specific methods:
- region returns all objects from an AxsFrame inside a square specified by two points in the sky (and their ‘ra’ and ‘dec’ coordinates).
- cone returns all objects from an AxsFrame falling in a cone specified by its central point and a radius.
- With histogram you can specify a function (a new column definition) for calculating a value which will be used for binning the rows. You also need to set the number of bins to use.
- With histogram2d you can do the same thing in two dimensions.
Running custom functions¶
Two methods deserve special mention: add_primitive_column(colname, coltype, func, *col_names) and add_column(colname, coltype, func, *col_names). They serve the same purpose: making it easier to run custom, user-defined data processing functions. The user-defined function should run on a single row at a time and produce one value as a result. add_primitive_column supports only output columns of primitive types (integer, float, string, and so on), but should be faster to run (it uses Spark’s @pandas_udf mechanism). add_column also supports complex columns (map, array, struct) and uses Spark’s @udf mechanism.
You have to provide the resulting column name and its type (colname and coltype arguments, respectively), the names of the columns whose values should serve as an input to the function (col_names argument), and the function itself (func).
The function for add_primitive_column needs to operate on Pandas.Series objects (of the same number as the number of col_names) and return a single Pandas.Series object of the type defined by coltype.
The function for add_column should be an ordinary Python function, returning a single object of the type defined by coltype.
Working with light-curve data¶
AXS stores light-curve data in array columns. The intention is to have one row per object and store the different measurements as elements of arrays. For example, a star would have a row with its Ra and Dec coordinates, possibly also an ID column, and 5 measurements of the star in these columns:
- mjd - containing times at which measurements were taken
- filter - containing filters that were used: r, g, r, etc.
- mag - containing the actual measurements
Other columns (such as mag_err) could also be used, depending on the actual catalog.
To query these data AXS relies on Spark functionalities and adds two additional SQL functions: array_allpositions and array_select. array_allpositions takes an array column and a value and returns the positions of all the occurrences of the value in the given array column as an array of longs. array_select takes an array column and an array of indices (which can be another column or a value) and returns all elements from the column array corresponding to the provided indices.
These functions, enabling filtering of array columns, along with other Spark built-in functions should be adequate for most use cases.


Google announces London cloud computing data centre
Google has revealed it has built a London data centre for the cloud computing services it rents to third parties.
The facility is its second in Europe, after Brussels, and promises to provide faster
access times to nearby clients.
Google is currently the third most capable cloud computing service provider,
according to a recent study.
But the report, by Gartner, suggested Amazon and Microsoft had a clear lead.
The technology consultancy added that in terms of sales to the "cloud infrastructure
as a service" market, Google's share was also a "distant third".
'Lower latency'
Until now, the search giant has focused on opening data centres for its cloud computing platform in the US and Asia, where it has bases in Singapore, Taiwan and Tokyo. But in announcing the London centre, it also disclosed plans to open facilities in Finland, the Netherlands and Frankfurt.
"GCP [Google Cloud Platform] customers throughout the British Isles and Western Europe will see significant reductions in latency when they run their workloads in the London region," said product manager Dave Stiver, referring to processing delays caused by the distances data has to travel.
"In cities like London, Dublin, Edinburgh and Amsterdam, our performance testing shows 40% to 82% reductions in round-trip latency when serving customer from London compared with the Belgium region."
Until now, the search giant has focused on opening data centres for its cloud computing platform in the US and Asia, where it has bases in Singapore, Taiwan and Tokyo. But in announcing the London centre, it also disclosed plans to open facilities in Finland, the Netherlands and Frankfurt.
"GCP [Google Cloud Platform] customers throughout the British Isles and Western Europe will see significant reductions in latency when they run their workloads in the London region," said product manager Dave Stiver, referring to processing delays caused by the distances data has to travel.
"In cities like London, Dublin, Edinburgh and Amsterdam, our performance testing shows 40% to 82% reductions in round-trip latency when serving customer from London compared with the Belgium region."
'Deep discounts'
Google's platform allows clients to offload data processing tasks and information storage, including support for apps they may offer to the public and analysing feedback gathered from internet-connected devices.
By charging customers for the amount of compute time they use rather than a flat rate, Google seeks to provide IT departments with a cheaper alternative to maintaining their own data centres.
The company's existing customers include the Telegraph newspaper, Coca-Cola and the online education service Khan Academy.
At present, GCP offers fewer features than Amazon Web Services or Microsoft Azure, but it is catching up, according to Gartner. "Google uses deep discounts and exceptionally flexible contracts to try to win projects from customers that are currently spending significant sums of money with cloud competitors," its June report said. And that had led some companies to use Google to supplement their use of Amazon or Microsoft's rival platforms.
Gartner added: "GCP is increasingly chosen as a strategic alternative to AWS by customers whose businesses compete with Amazon."
Last month it emerged that Wal-Mart had urged its IT vendors not to use Amazon's service because it did not want its "most sensitive data... sitting on a competitor's platform". Google does not disclose revenue for its cloud platform, but analysts estimate that it generated about $1bn (£776m) of sales last year and forecast it will double that amount in 2018.
By contrast, market leader AWS generated $12.2bn of sales in the past financial year, and is more profitable than Amazon's better-known retail business. Microsoft will update investors on Azure's performance when it posts its full year's results next week. On Monday, it announced a new hybrid service that would allow customers to run Azure's technologies on their own servers. Azure Stack is being targeted at operations that have slow or non-existent internet connections - such as oil rigs and ships - as well as countries where data must be stored locally.
Apple's China data centre
In a related development, Apple has announced it is setting up its first data centre in China. The facility is being developed in conjunction with a local company - Guizhou-Cloud Big Data Industry - and will be used to deliver its iCloud services to the public.
"This data centre will allow us to improve the speed and reliability of our products and services while also complying with newly passed regulations," Apple said in a statement. "No backdoors will be created into any of our systems."
China introduced a law in June that requires overseas-based companies to both store data about its citizens locally and to give Chinese companies control over the operation of the computer servers involved. Apple has said it will retain the relevant encryption keys and has indicated the move will not compromise users' privacy. But some experts have suggested it could put the company under more pressure to acquiesce to government demands in the case of future disputes. BBC News


Netflix App For Mac Download Ultimate Guide
How To Download Netflix Movies On Mac For Offline Viewing
How To Download Netflix Movies On Mac Youtube
Netflix For Mac Download
Download Netflix For Mac 13 20 0
How To Download Netflix On A Mac Macworld Uk
How To Download Movies From Netflix On Mac Watch Offline
Netflix For Mac Jofasr
Netflix For Mac Peatix
How To Use Netflix App For Mac Offline Founder S Guide
Netflix Mac Download
How To Download Movies From Netflix On To Your Mac Or Ipad
How To Fix Netflix Not Working On Your Mac Safari 12
Netflixダウンロードはmacに対応済み Netflix Macで見れない問題すぐ解消 コミニー Cominy
Netflix Mac Os Download Offline Peatix
Netflix Download Mac Treeparent S Blog
How To Download Apps On Mac Youtube
How To Download Videos From Netflix On Mac
How To Download Netflix Party On Mac Page 1 Line 17qq Com
Macos Big Sur Is Here Apple
How To Save Subtitle Files From Netflix On Mac
How To Download Netflix Movies And Tv Shows On Your Mac
Download Netflix App For Mac To Save Netflix Movies Offline
How To Clear Your Viewing History In Netflix Imore
Download App For Netflix Mac Peatix
Pin On Android Phone Hacks
Mac Os 10 6 Download Free Fasrschools
How To Download Movies And Tv Shows From Netflix


All blockchain project requiring auditing to ensure that they work the way that they are supposed to and meet the required industry guidelines and regulations. We provide blockchain project auditing in a manner that is comfortable and friendly, with suggestions for changes or improvements.
Decentralized autonomous applications are an application of blockchain technology with almost unlimited potential. Following the industry standard, we build DApps that are open source, decentralized, and easy to use.
Our team of developers and devops engineers is passionate about building blockchain solutions. We work closely with you to build the entire solution, that is ready for you to pick up and begin working.
Agile processes instil a disciplined and methodical approach to project management, encouraging efficient team collaboration and high-quality output. Learn how to implement Agile methods in your teams through our tailored Agile coaching solution.
A subset of Agile, Scrum is a method for managing product and software development in line with rapidly-changing needs and environments to meet business objectives while maintaining absolute control. Work with us to adopt the Scrum framework in your company.
Having the right team is paramount to the success of any business, but especially important in the technology sector where having a combination of the right skills is vital. Recognizing the challenge that many startups face, we will help you to build the best team for your business.
Smart contracts are the actionable aspect of a blockchain solution, automating processes which would otherwise have been unfeasible or even impossible to action manually. Our smart contract development is tailored to your product, with future developments and expansion in mind.
The white paper is the blueprint of a blockchain project, sharing the team’s vision and development plans with investors and future users. A professional white paper commands a degree of skill, as it incorporates both the business and the technical elements in universal language that flows.
A website puts an ICO on the map, as it welcomes interested parties from across the globe to learn more about the project. As well as providing a user-friendly information hub, we create a functional website that supports the aims of the ICO and the blockchain project thereafter.


---
layout: archive
title: Lean Prover Zulip Chat Archive
permalink: 116395maths/66698opensetsareunionsofbasiselements.html
---
The archive URL format has changed. Please find this page at:
https://leanprover-community.github.io/archive/stream/116395-maths/topic/open.20sets.20are.20unions.20of.20basis.20elements.html


Introduction
Welcome to the Hello Books API!
Hello Books is a library application that allows users borrow books and read books. With this guide, you'd learn how to access our API endpoints in order to perform operations like account creation, login, querying library and checkout out book information, borrow books, return them, contribute books to the database and more.
We have language bindings in Javascript! You can view code examples in the dark area to the right.
Authentication
Hello Books requires authentication with username and password for access to protected api routes. On signup and subsequent logins, a token is generated and required for requests to protected routes.
The token is expected to be provided in the x-access-token-header
request header.
Login
Request:
{
"username": "syndey",
"password": "supersecretpassword"
}
Response:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiZW1haWwiOiJhYmNAZ21haWwuY29tIiwidXNlcm5hbWUiOiJTZWd1biIsImlzQWRtaW4iOnRydWUsImlhdCI6MTUwODAwNjg5MSwiZXhwIjoxNTA4MDkzMjkxfQ.catTTd9DVZ4vDH_AAuSxZ6638D4INjx-j7PN-8Zlxa8",
"id": 1,
"firstName": "Syndey",
"lastName": "caprice",
"isAdmin": false,
"message": "Welcome back Syndey"
}
Make sure to include your token with subsequent requests
Request
- Endpoint: POST:
/users/signin
- Body
(application/json)
Response
- Status:
200: OK
- Body
(application/json)
Users
Create a user
Request:
{
"username": "newuser",
"email"<EMAIL_ADDRESS>"password": "supersecretpassword",
"confirmPassword": "supersecretpassword",
"firstName": "Philip",
"lastName": "Dean",
}
Response:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiZW1haWwiOiJhYmNAZ21haWwuY29tIiwidXNlcm5hbWUiOiJTZWd1biIsImlzQWRtaW4iOnRydWUsImlhdCI6MTUwODAwNjg5MSwiZXhwIjoxNTA4MDkzMjkxfQ.catTTd9DVZ4vDH_AAuSxZ6638D4INjx-j7PN-8Zlxa8",
"id": 1,
"firstName": "Philip",
"lastName": "Dean",
"isAdmin": false,
"message": "Welcome Philip. This is your dashboard"
}
Request
- Endpoint: POST:
/users/signup
- Body
(application/json)
Response
- Status:
201: Created
- Body
(application/json)
Borrowed Books
This endpoint gets a list of books a user, with id of 1, has borrowed.
Sample JSON structured response:
{
"books": [
{
"id": 6,
"title": "Learn Fish",
"authors": "Segun Martins, Beau Dearmont",
"description": "Fish is an awesome shell scripting language.\n\nLearn from the masters",
"total": 15,
"cover": null,
"bookFile": null,
"createdAt": "2017-10-04T01:05:00.856Z",
"updatedAt": "2017-10-14T21:39:33.088Z",
"categoryId": 1,
"borrowedBook": {
"userId": 1,
"bookId": 6,
"returned": false,
"createdAt": "2017-10-04T04:25:58.463Z",
"updatedAt": "2017-10-04T04:25:58.463Z"
}
},
{
"id": 7,
"title": "Foonam",
"authors": "bo Dakes, low Fruity",
"description": "Goo goo gooo",
"total": 7,
"cover": null,
"bookFile": null,
"createdAt": "2017-10-04T01:10:30.754Z",
"updatedAt": "2017-10-14T11:57:31.798Z",
"categoryId": 1,
"borrowedBook": {
"userId": 1,
"bookId": 7,
"returned": false,
"createdAt": "2017-10-04T04:25:59.682Z",
"updatedAt": "2017-10-04T04:25:59.682Z"
}
},
{
"id": 2,
"title": "French",
"authors": "flo harrison",
"description": "An ruby ruby programming language",
"total": 20,
"cover": null,
"bookFile": null,
"createdAt": "2017-09-16T12:10:22.085Z",
"updatedAt": "2017-10-09T17:36:43.139Z",
"categoryId": 1,
"borrowedBook": {
"userId": 1,
"bookId": 2,
"returned": true,
"createdAt": "2017-09-16T12:10:24.294Z",
"updatedAt": "2017-10-09T17:36:43.128Z"
}
}
]
}
Request
- Endpoint: GET:
/users/1/books
- Requires: Authentication
Response
- Status:
200 OK
- Body
(application/json)
Query Parameters
| Parameter | Value | Description |
|---|---|---|
| returned | false | If set to false, returns only unreturned books. |
| returned | true | If set to true, returns only books a user has returned. |
| returned | If unset, returns all books a user has ever borrowed. |
Update User Info
This endpoint updates user data. In this case, the user with id of 1.
Request
- Endpoint: PUT:
/users/1/books
- Body
(application/json)
- Requires: Authentication
Response
- Status:
200 OK
- Body
(application/json)
Request:
{
"firstName": "light"
}
Response:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiZW1haWwiOiJhYmNAZ21haWwuY29tIiwidXNlcm5hbWUiOiJTZWd1biIsImlzQWRtaW4iOnRydWUsIm1lbWJlcnNoaXBUeXBlIjoiYnJvbnplIiwiaWF0IjoxNTE0OTEzODcyLCJleHAiOjE1MTQ5NDM4NzJ9.vQ6oOOJI4dy0plJCNY6BaUEP9YPrR0bUcY1R26d3Km4",
"id": 1,
"firstName": "light",
"lastName": "Ola",
"isAdmin": true,
"message": "Your information was successfully updated"
}
Books
Get All Books
This endpoint retrieves a list of all books in the library.
Sample Structured JSON Response
{
"books": [
{
"id": 1,
"title": "eloquent ruby",
"authors": "flo harrison",
"description": "ruby destruction",
"total": 10,
"cover": "/path/to/book/cover",
"bookFile": "/path/to/book/file",
"createdAt": "2017-10-04T12:14:51.510Z",
"updatedAt": "2017-10-04T12:14:51.510Z",
"categoryId": 1,
"createdAt": "2018-01-02T07:38:25.304Z",
"updatedAt": "2018-01-02T07:38:25.304Z"
},
{
"id": 2,
"title": "eloquent python",
"authors": "flo harrison, dan moss",
"description": "feeel the snake",
"total": 0,
"cover": "/path/to/book/cover",
"bookFile": "/path/to/book/file",
"createdAt": "2017-10-04T12:14:51.510Z",
"updatedAt": "2017-10-04T12:14:51.510Z",
"categoryId": 2
"createdAt": "2018-01-02T07:38:25.304Z",
"updatedAt": "2018-01-02T07:38:25.304Z"
},
{
"id": 3,
"title": "Foonam",
"authors": "bo Dakes, low Fruity",
"description": "GOo goo gooo",
"total": 7,
"cover": null,
"bookFile": "/path/to/book/file",
"createdAt": "2017-10-04T01:10:30.754Z",
"updatedAt": "2017-10-14T11:57:31.798Z",
"categoryId": 2,
"createdAt": "2018-01-02T07:38:25.304Z",
"updatedAt": "2018-01-02T07:38:25.304Z"
},
{
"id": 4,
"title": "Learn Fish",
"authors": "Segun Martins, Beau Dearmont",
"description": "Fish is an awesome shell scripting language.\n\nLearn from the masters",
"total": 15,
"cover": "/path/to/book/cover",
"bookFile": "/path/to/book/file",
"createdAt": "2017-10-04T01:05:00.856Z",
"updatedAt": "2017-10-14T21:39:33.088Z",
"categoryId": 1,
"createdAt": "2018-01-02T07:38:25.304Z",
"updatedAt": "2018-01-02T07:38:25.304Z"
}
],
"metadata": {
"pageNumber": 2,
"pageCount": 4,
"pageSize": 4,
"total": 16
}
}
Request
- Endpoint: GET:
/books
Response
- Status:
200 OK
- Body
(application/json)
Query Parameters
| Parameter | Default value | Description |
|---|---|---|
| categoryId | "" | Filters books by category id specified. |
| search | "" | Filters books by search parameter specified. |
Get Book
The following endpoint retrieves a specific book. In this case, the book with the id of 12
Response
{
"book": {
"id": 12,
"title": "French",
"authors": "flo harrison",
"description": "A ruby programming language",
"total": 21,
"cover": null,
"bookFile": null,
"createdAt": "2017-09-16T12:10:22.085Z",
"updatedAt": "2017-10-15T14:21:51.773Z",
"category": "ruby",
"createdAt": "2018-01-02T07:38:25.304Z",
"updatedAt": "2018-01-02T07:38:25.304Z"
}
}
Request
- Endpoint: GET:
/books/12
Response
- Status:
200 OK
- Body
(application/json)
Borrow Book
Request
{
"id": 2
}
Response
{
"message": "You have successfully borrowed French. Check your dashboard to read it"
}
Request
- Endpoint: POST:
/users/1/books
.1
here, is the user id. - Requires: Authentication
Response
- Status:
200 OK
- Body
(application/json)
Return Book
Request
{
"id": 2
}
Response
{
"message": "You have successfully returned French"
}
Request
- Endpoint: PUT:
/users/1/books
1
here, is the user id. - Requires: Authentication
Response
- Status:
200 OK
- Body
(application/json)
Add Book
Request
{
"title": "FOSS",
"authors": "Flo Harrison, Nick Hansel",
"description": "A soft introduction to open source software development",
"total": 21,
"cover": "/path/to/cover/image",
"bookFile": "/path/to/file/",
"category": "OSS"
}
Response
{
"book": {
"id": 2,
"title": "FOSS",
"authors": "Flo Harrison, Nick Hansel",
"description": "A soft introduction to open source software development",
"total": 21,
"cover": "/path/to/cover/image",
"bookFile": "/path/to/file/",
"category": "OSS"
"createdAt": "2017-09-16T12:10:22.085Z",
"createdAt": "2017-09-16T12:10:22.085Z",
},
"message": "Successfully added FOSS to Library"
}
Request
- Endpoint: POST:
/books
- Requires: Authentication and Authorization
Response
- Status:
201: Created
- Body
(application/json)
Update Book
The following updates the total number of copies of the book with id
, 2
, to 30.
Request
{
"total": 30
}
Response
{
"book": {
"id": 2,
"title": "FOSS",
"authors": "Flo Harrison, Nick Hansel",
"description": "A soft introduction to open source software development",
"total": 30,
"cover": "/path/to/cover/image",
"bookFile": "/path/to/file/",
"category": "OSS"
"createdAt": "2017-09-16T12:10:22.085Z",
"createdAt": "2017-09-16T12:10:22.085Z"
},
"message": "FOSS was successfully updated"
}
Request
- Endpoint: PUT:
/books/2
- Requires: Authentication and Authorization
Response
- Status:
200 OK
- Body
(application/json)
Delete Book
This deletes the book with id
of 2
.
Response
{
"message": "Successfully deleted book from database"
}
Request
- Endpoint: DELETE:
/books/2
- Requires: Authentication and Authorization
Response
- Status:
200 OK
- Body
(application/json)
Add Book Category
Request
{
"category": "ruby"
}
Response
{
"category": { "id": 4, "category": "ruby" },
"message": "Successfully added new category, ruby, to Library"
}
Request
- Endpoint: POST:
/books/category
- Requires: Authentication and Authorization
Response
- Status:
200 OK
- Body
(application/json)
Get Book Categories
Sample JSON Response
{
"categories": [
{
"id": 1,
"category": "Python"
},
{
"id": 2,
"category": "Javascript"
},
{
"id": 3,
"category": "react"
}
]
}
Request
- Endpoint: GET:
/books/category
Response
- Status:
200 OK
- Body
(application/json)
Get Book Suggestions
Sample JSON Response
{
"suggestions": [
{
"id": 3,
"title": "eloquent python",
"cover": null
},
{
"id": 5,
"title": "fluency in haskell",
"cover": "path/to/book/cover"
}
]
}
Request
- Endpoint: GET:
/books/suggestions
Response
- Status:
200 OK
- Body
(application/json)
Notification
Admin notifications
This endpoint notifies admin users of library transactions starting from the most recent transactions
Response
{
"notifications": [
{
"id": 77,
"type": "return",
"bookTitle": "eloquent javascript",
"username": "Segun",
"createdAt": "2017-10-01T07:54:15.782Z",
"updatedAt": "2017-10-01T07:54:15.782Z"
},
{
"id": 76,
"type": "borrow",
"bookTitle": "eloquent ruby",
"username": "deboX5690",
"createdAt": "2017-09-29T03:30:26.128Z",
"updatedAt": "2017-09-29T03:30:26.128Z"
},
{
"id": 75,
"type": "return",
"bookTitle": "eloquent javascript",
"username": "Tuf0_346",
"createdAt": "2017-09-29T03:30:17.417Z",
"updatedAt": "2017-09-29T03:30:17.417Z"
}
],
"metadata": {
"pageNumber": 2,
"pageCount": 2,
"pageSize": 3,
"total": 9
}
}
Request
- Endpoint: GET:
/admin-notifications
- Requires: Authentication and Authorization
Response
- Status:
200: OK
- Body
(application/json)
History
Get Transaction History
This endpoint gets all of a users' transactions
Response
{
"notifications": [
{
"id": 77,
"type": "return",
"bookTitle": "eloquent javascript",
"username": "Segun",
"createdAt": "2017-10-01T07:54:15.782Z",
"updatedAt": "2017-10-01T07:54:15.782Z"
},
{
"id": 76,
"type": "borrow",
"bookTitle": "eloquent ruby",
"username": "Segun",
"createdAt": "2017-09-29T03:30:26.128Z",
"updatedAt": "2017-09-29T03:30:26.128Z"
},
{
"id": 75,
"type": "return",
"bookTitle": "eloquent javascript",
"username": "Segun",
"createdAt": "2017-09-29T03:30:17.417Z",
"updatedAt": "2017-09-29T03:30:17.417Z"
}
],
"metadata": {
"pageNumber": 2,
"pageCount": 2,
"pageSize": 3,
"total": 9
}
}
Request
- Endpoint: GET:
/users/1/transactions
- Requires: Authentication
Response
- Status:
200: OK
- Body
(application/json)
Errors
The Hello Books api uses the following error codes
| Error Code | Meaning |
|---|---|
| 400 | Bad Request -- Invalid request syntax. |
| 401 | Unauthorized -- Failed authorization. |
| 403 | Forbidden -- The request is not allowed. |
| 404 | Not Found -- The specified resource could not be found. |
| 409 | Conflict -- Your request has a contains conflicting data. |
| 422 | Unprocessable Entity -- The request could not be processed with the data provided |
| 500 | Internal Server Error -- We had a problem with our server. Try again later. |


According to the frequency of episode postings in the top 25 podcasts, to avoid falling behind you should listen in the following order:
{% if lFList %}
{% for podcast in lFList %}
{{podcast}}
{% endfor %}
{% endif %}
Twitter feed
Follow some of the top podcasts' twitter feeds and discover more podcasts to follow!


APDevice Class Reference
| Inherits from | APObject : NSObject |
| Conforms to | APObjectPropertyMapping NSCoding |
| Declared in | APDevice.h APDevice.m |
Tasks
Initializing an APDevice instance
-
– initWithDeviceToken:deviceType:
Create a basic instance of an APDevice Object with deviceToken and deviceType.
-
+ currentDevice
Method to get the currentDevice object
-
+ registerCurrentDeviceWithPushDeviceToken:enablePushNotifications:
registerCurrentDeviceWithPushDeviceToken:enablePushNotifications:successHandler:failureHandler:
-
+ registerCurrentDeviceWithPushDeviceToken:enablePushNotifications:failureHandler:
registerCurrentDeviceWithPushDeviceToken:enablePushNotifications:successHandler:failureHandler:
-
+ registerCurrentDeviceWithPushDeviceToken:enablePushNotifications:successHandler:failureHandler:
Method to register your device for Push Notifications.
-
+ deregisterCurrentDevice
-
+ deregisterCurrentDeviceWithFailureHandler:
-
+ deregisterCurrentDeviceWithSuccessHandler:failureHandler:
Method to deregister your device from Push Notifications.
Saving APDevice
-
– saveObject
-
– saveObjectWithFailureHandler:
-
– saveObjectWithSuccessHandler:failureHandler:
Save the object on the remote server. This method will save an object in the background. If save is successful the properties will be updated and the successBlock will be invoked. If not the failure block is invoked.
Deleting APDevice
-
– deleteObject
-
– deleteObjectWithSuccessHandler:failureHandler:
deleteObjectWithSuccessHandler:failureHandler:
-
– deleteObjectWithFailureHandler:
-
– deleteObjectWithConnectingConnections
deleteObjectWithConnectingConnectionsSuccessHandler:failureHandler:
-
– deleteObjectWithConnectingConnections:
deleteObjectWithConnectingConnectionsSuccessHandler:failureHandler:
-
– deleteObjectWithConnectingConnectionsSuccessHandler:failureHandler:
Deletes an APObject along with any connections it has.
-
– updateObject
updateObjectWithRevisionNumber:successHandler:failureHandler:
-
– updateObjectWithFailureHandler:
updateObjectWithRevisionNumber:successHandler:failureHandler:
-
– updateObjectWithSuccessHandler:failureHandler:
updateObjectWithRevisionNumber:successHandler:failureHandler:
-
– updateObjectWithRevisionNumber:successHandler:failureHandler:
Method to update the device object.
Fetching APDevice
-
– fetch
-
– fetchWithFailureHandler:
-
– fetchWithSuccessHandler:failureHandler:
-
– fetchWithPropertiesToFetch:successHandler:failureHandler:
Method used to fetch an APObject. This method will use the type and objectId properties to fetch the object. If the objectId and type is not set, results are unexpected.
-
+ restoreCurrentDevice
Method to fetch a reference to the current device object.
Class Methods
currentDevice
Method to get the currentDevice object
+ (APDevice *)currentDevice
Return Value
currentDevice instance
Declared In
APDevice.h
deregisterCurrentDeviceWithFailureHandler:
+ (void)deregisterCurrentDeviceWithFailureHandler:(APFailureBlock)failureBlock
Declared In
APDevice.h
deregisterCurrentDeviceWithSuccessHandler:failureHandler:
Method to deregister your device from Push Notifications.
+ (void)deregisterCurrentDeviceWithSuccessHandler:(APSuccessBlock)successBlock failureHandler:(APFailureBlock)failureBlock
Parameters
- successBlock
block executed when the operation is successful.
- failureBlock
block executed when the operation fails.
Declared In
APDevice.h
registerCurrentDeviceWithPushDeviceToken:enablePushNotifications:
+ (void)registerCurrentDeviceWithPushDeviceToken:(NSData *)token enablePushNotifications:(BOOL)answer
See Also
Declared In
APDevice.h
registerCurrentDeviceWithPushDeviceToken:enablePushNotifications:failureHandler:
+ (void)registerCurrentDeviceWithPushDeviceToken:(NSData *)token enablePushNotifications:(BOOL)answer failureHandler:(APFailureBlock)failureBlock
See Also
Declared In
APDevice.h
registerCurrentDeviceWithPushDeviceToken:enablePushNotifications:successHandler:failureHandler:
Method to register your device for Push Notifications.
+ (void)registerCurrentDeviceWithPushDeviceToken:(NSData *)token enablePushNotifications:(BOOL)answer successHandler:(APSuccessBlock)successBlock failureHandler:(APFailureBlock)failureBlock
Parameters
- token
device token for Push Notifications.
- answer
whether Push notifications should be enabled on current device.
- successBlock
block executed when the operation is successful.
- failureBlock
block executed when the operation fails.
Declared In
APDevice.h
restoreCurrentDevice
Method to fetch a reference to the current device object.
+ (void)restoreCurrentDevice
Return Value
a reference to the static current device object.
Declared In
APDevice.h
Instance Methods
deleteObjectWithConnectingConnections
- (void)deleteObjectWithConnectingConnections
Declared In
APDevice.h
deleteObjectWithConnectingConnections:
- (void)deleteObjectWithConnectingConnections:(APFailureBlock)failureBlock
Declared In
APDevice.h
deleteObjectWithConnectingConnectionsSuccessHandler:failureHandler:
Deletes an APObject along with any connections it has.
- (void)deleteObjectWithConnectingConnectionsSuccessHandler:(APSuccessBlock)successBlock failureHandler:(APFailureBlock)failureBlock
Parameters
- successBlock
Block invoked when the delete operation is successful.
- failureBlock
Block invoked when the delete operation is unsuccessful.
Declared In
APDevice.h
deleteObjectWithFailureHandler:
- (void)deleteObjectWithFailureHandler:(APFailureBlock)failureBlock
Declared In
APDevice.h
deleteObjectWithSuccessHandler:failureHandler:
deleteObjectWithSuccessHandler:failureHandler:
- (void)deleteObjectWithSuccessHandler:(APSuccessBlock)successBlock failureHandler:(APFailureBlock)failureBlock
Declared In
APDevice.h
fetchWithFailureHandler:
- (void)fetchWithFailureHandler:(APFailureBlock)failureBlock
Declared In
APDevice.h
fetchWithPropertiesToFetch:successHandler:failureHandler:
Method used to fetch an APObject. This method will use the type and objectId properties to fetch the object. If the objectId and type is not set, results are unexpected.
- (void)fetchWithPropertiesToFetch:(NSArray *)propertiesToFetch successHandler:(APSuccessBlock)successBlock failureHandler:(APFailureBlock)failureBlock
Parameters
- propertiesToFetch
Array of properties to be fetched excluding all other.
- successBlock
Block invoked when the fetch operation is successful.
- failureBlock
Block invoked when the fetch operation fails.
Declared In
APDevice.h
fetchWithSuccessHandler:failureHandler:
- (void)fetchWithSuccessHandler:(APSuccessBlock)successBlock failureHandler:(APFailureBlock)failureBlock
Declared In
APDevice.h
initWithDeviceToken:deviceType:
Create a basic instance of an APDevice Object with deviceToken and deviceType.
- (instancetype)initWithDeviceToken:(NSString *)deviceToken deviceType:(NSString *)deviceType
Parameters
- deviceToken
Device token provided by Appacitive.
- deviceType
Type of device voz. iOS/Android/WindowsPhone
Declared In
APDevice.h
saveObjectWithFailureHandler:
- (void)saveObjectWithFailureHandler:(APFailureBlock)failureBlock
Declared In
APDevice.h
saveObjectWithSuccessHandler:failureHandler:
Save the object on the remote server. This method will save an object in the background. If save is successful the properties will be updated and the successBlock will be invoked. If not the failure block is invoked.
- (void)saveObjectWithSuccessHandler:(APResultSuccessBlock)successBlock failureHandler:(APFailureBlock)failureBlock
Parameters
- successBlock
Block invoked when the save operation is successful.
- failureBlock
Block invoked when the save operation fails.
Declared In
APDevice.h
updateObjectWithFailureHandler:
- (void)updateObjectWithFailureHandler:(APFailureBlock)failureBlock
Declared In
APDevice.h
updateObjectWithRevisionNumber:successHandler:failureHandler:
Method to update the device object.
- (void)updateObjectWithRevisionNumber:(NSNumber *)revision successHandler:(APSuccessBlock)successBlock failureHandler:(APFailureBlock)failureBlock
Parameters
- revision
The last revision number for the object.
- successBlock
Block invoked when the update operation is successful.
- failureBlock
Block invoked when the update operation is unsuccessful.
Declared In
APDevice.h


{{apptitle}}: \{\{ username = "defaced value"; \}\}
{{username}} attempts to inject code which will deface the application, but fails to accomplish their task, because the server has correctly escaped the interpolation start/end markers with REVERSE SOLIDUS U+005C (backslash) characters.
Instead, the result of the attempted script injection is visible, and can be removed from the database by an administrator.


blimbing
its the best
pupel thet should becom climbers:
{% if likes_same_sport == True %}
like climbing:
{% for climb in favplyers %}
{{climb}}
{% endfor %}
{% else %}
dint like climbing:
{% endif %}
favplyers:


Click below to see the HTML version of this email.
http://link.cvs.com/r/WLM15ON/6NTSN/QDSFMO/0GZ3U9O/AHXUF/K9/t?a=WLM15ON&b=Y96OO&c=DXH56DA&d=3UGOJK&e=1
****************************************************
CVS/pharmacy®
****************************************************
Save time with your personalized prescription calendar.
****************************************************
Add<EMAIL_ADDRESS>to your address book to continue receiving our emails.
****************************************************
You are receiving this email because you indicated you wanted to be informed of the latest news and specials from CVS/pharmacy online. If you prefer not to receive future emails, please unsubscribe below. Please note that if you are opted in for other CVS/pharmacy email communications, you will continue to receive them unless you opt-out specifically for those.
http://link.cvs.com/u/WLM15ON/6NTSN/QDSFMO/0GZ3U9O/HD/aHVibGVlcGg2MDZAdHVtYmxyLmNvbQ==/
© Copyright 2012 CVS.com
http://link.cvs.com/r/WLM15ON/6NTSN/QDSFMO/0GZ3U9O/RXLMZ/K9/t?a=EM_RxCOM_121712
One CVS Drive, Woonsocket, RI 02895
[[WLM15ON-Y96OO-6NTSN-QDSFMO-0GZ3U9O-M-M2-20121217-85d13769e04b8c9]]


UseSQLiteDatabase()
语法
UseSQLiteDatabase()概要
Initialize the SQLite database environment for future use.
参数
无.
返回值
无.
备注
SQLite is a file based, serverless database manager. There is no driver or additional files to install, all is ready to use. SQLite is widely spread across the industry and is considered to be one of the best embedded database manager available. For more information about SQLite: http://www.sqlite.org.
To create a new empty database, create a new file with CreateFile(). Database commands can now be used to create tables and add records.
A SQLite database has to be opened using OpenDatabase() before using any other database functions.
示例
UseSQLiteDatabase() Filename$ = OpenFileRequester("Choose a file name", "PureBasic.sqlite", "*.sqlite|*.sqlite", 0) If CreateFile(0, Filename$) Debug "Database file created" CloseFile(0) EndIf If OpenDatabase(0, Filename$, "", "") Debug "Connected to PureBasic.sqlite" If DatabaseUpdate(0, "CREATE TABLE info (test VARCHAR(255));") Debug "Table created" EndIf EndIf
参阅
OpenDatabase(), UsePostgreSQLDatabase(), UseODBCDatabase()
已支持操作系统
所有


Settings
ERROR
Core
Work model
1
2
3
4
5
Matching level
1
2
3
4
5
Distinct hand kind while ident
Use preselect
Save debug info
Save front camera image
Max right hands
Max left Hands
Min right hands
Min left Hands
Web password
Minimal quality
Minimal identification quality
Studio connection warning timeout (sec)
Studio connection block timeout (min)
Run SNMP agent
PV WTC 2
Test
1
2
3
4
5


Types
Messages
List Message
First Item
Second Item
Facebook
Enter facebook to learn more about social networking
Warning Message
Get more information here.


Sam is a flexible MCMC sampler for Python and Cython, designed with astrophysics use cases in mind.
Installation


Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever.
All of the projects that I have worked on.


Here are all the benefits.
- Cost: There are 3 options, first $2.95/mo. The next $18.99/mo. Last $79.99/mo.
- Hosting services:Shared, VPS and dedicated are the three hosting services.
- Domain services: They have a variety of options ranging from $4.99/yr to 12.99/yr. .com .org .net .tech .co .website.
- Options: One option I found is onlie stores powered by WooCommerce.
Here are all the benefits.
- Cost:For GoDaddy the cost is $0.99 for .com, $14.99 for .net $2.99 for .info and $0.99 for .club
- Hosting services:VPS and dedicated hosting.
- Domain services:They use .com .net .info. club and .life.
- Options: Offers lots of online tools to help get online quick.
Here are all the benefits.
- Cost: For the Hatchling plan $2.75/mo, for the Baby plan $3.95/mo. And for the Business plan $5.95/mo.
- Hosting services: They provide WordPress Hosting $5.95/mo, VPS Hossting $29.95/mo and Dedicated Hosting $119/mo.
- Domain services: .co$12.95/yr, .website $9.95/yr,.info $12.95/yr, .club $9.95/yr, .org$12.95/yr, .host $39.95/yr, .co$12.95/yr and .net $12.95.
- Options: Quick and easy start up and help throughout the website.
I personally would chose HostGator because I feel like it has the most options. The prices are relatively cheep from what I saw and I think that for my situation it would be best.


The picture shows one medium (red) and one large (yellow) gear. The distance between their centers is the equivalent length of one white and one green strut:


vignettes/introduction.Rmd
introduction.Rmd
The blorr package offers tools for building and validating binary logistic regression models. It is most suitable for beginner/intermediate R users and those who teach statistics using R. The API is very simple and most of the functions take either a data.frame
/tibble
or a model
as input. blorr use consistent prefix blr_ for easy tab completion.
You can install blorr using:
install.packages("blorr")
The documentation of the package can be found at https://blorr.rsquaredacademy.com. This vignette gives a quick tour of the package.
To demonstrate the features of blorr, we will use the bank marketing data set. The data is related with direct marketing campaigns of a Portuguese banking institution. The marketing campaigns were based on phone calls. Often, more than one contact to the same client was required, in order to access if the product (bank term deposit) would be (‘yes’) or not (‘no’) subscribed. It contains a random sample (~4k) of the original data set which can be found at https://archive.ics.uci.edu/ml/datasets/bank+marketing.
Let us begin with careful bivariate analysis of each possible variable and the outcome variable. We will use information value and likelihood ratio chi square test for selecting the initial set of predictors for our model. The bivariate analysis is currently avialable for categorical predictors only.
blr_bivariate_analysis(bank_marketing, y, job, marital, education, default,
housing, loan, contact, poutcome)
#> Bivariate Analysis
#> ----------------------------------------------------------------------
#> Variable Information Value LR Chi Square LR DF LR p-value
#> ----------------------------------------------------------------------
#> job 0.16 75.2690 11 0.0000
#> marital 0.05 21.6821 2 0.0000
#> education 0.05 25.0466 3 0.0000
#> default 0.02 6.0405 1 0.0140
#> housing 0.16 72.2813 1 0.0000
#> loan 0.06 26.6615 1 0.0000
#> contact 0.31 124.3834 2 0.0000
#> poutcome 0.53 270.6450 3 0.0000
#> ----------------------------------------------------------------------
Weight of evidence (WoE) is used to assess the relative risk of di¤erent attributes for a characteristic and as a means to transform characteristics into variables. It is also a very useful tool for binning. The WoE for any group with average odds is zero. A negative WoE indicates that the proportion of defaults is higher for that attribute than the overall proportion and indicates higher risk.
The information value is used to rank order variables in terms of their predictive power. A high information value indicates a high ability to discriminate. Values for the information value will always be positive and may be above 3 when assessing highly predictive characteristics. Characteristics with information values less than 0:10 are typically viewed as weak, while values over 0.30 are sought after.
blr_woe_iv(bank_marketing, job, y)
#> Weight of Evidence
#> --------------------------------------------------------------------------------
#> levels count_0s count_1s dist_0s dist_1s woe iv
#> --------------------------------------------------------------------------------
#> management 809 130 0.20 0.25 -0.22 0.01
#> technician 682 79 0.17 0.15 0.11 0.00
#> entrepreneur 139 12 0.03 0.02 0.40 0.00
#> blue-collar 937 73 0.23 0.14 0.51 0.05
#> unknown 29 2 0.01 0.00 0.61 0.00
#> retired 152 47 0.04 0.09 -0.87 0.05
#> admin. 433 61 0.11 0.12 -0.09 0.00
#> services 392 39 0.10 0.08 0.26 0.01
#> self-employed 132 22 0.03 0.04 -0.26 0.00
#> unemployed 126 15 0.03 0.03 0.08 0.00
#> housemaid 110 12 0.03 0.02 0.17 0.00
#> student 63 25 0.02 0.05 -1.13 0.04
#> --------------------------------------------------------------------------------
#>
#> Information Value
#> -----------------------------
#> Variable Information Value
#> -----------------------------
#> job 0.1594
#> -----------------------------
k <- blr_woe_iv(bank_marketing, job, y)
plot(k)
We can generate the weight of evidence and information value for multiple variables using blr_woe_iv_stats()
.
blr_woe_iv_stats(bank_marketing, y, job, marital, education)
#> Variable: job
#>
#> Weight of Evidence
#> --------------------------------------------------------------------------------
#> levels count_0s count_1s dist_0s dist_1s woe iv
#> --------------------------------------------------------------------------------
#> management 809 130 0.20 0.25 -0.22 0.01
#> technician 682 79 0.17 0.15 0.11 0.00
#> entrepreneur 139 12 0.03 0.02 0.40 0.00
#> blue-collar 937 73 0.23 0.14 0.51 0.05
#> unknown 29 2 0.01 0.00 0.61 0.00
#> retired 152 47 0.04 0.09 -0.87 0.05
#> admin. 433 61 0.11 0.12 -0.09 0.00
#> services 392 39 0.10 0.08 0.26 0.01
#> self-employed 132 22 0.03 0.04 -0.26 0.00
#> unemployed 126 15 0.03 0.03 0.08 0.00
#> housemaid 110 12 0.03 0.02 0.17 0.00
#> student 63 25 0.02 0.05 -1.13 0.04
#> --------------------------------------------------------------------------------
#>
#> Information Value
#> -----------------------------
#> Variable Information Value
#> -----------------------------
#> job 0.1594
#> -----------------------------
#>
#>
#> Variable: marital
#>
#> Weight of Evidence
#> ---------------------------------------------------------------------------
#> levels count_0s count_1s dist_0s dist_1s woe iv
#> ---------------------------------------------------------------------------
#> married 2467 273 0.62 0.53 0.15 0.01
#> single 1079 191 0.27 0.37 -0.32 0.03
#> divorced 458 53 0.11 0.10 0.11 0.00
#> ---------------------------------------------------------------------------
#>
#> Information Value
#> -----------------------------
#> Variable Information Value
#> -----------------------------
#> marital 0.0464
#> -----------------------------
#>
#>
#> Variable: education
#>
#> Weight of Evidence
#> ----------------------------------------------------------------------------
#> levels count_0s count_1s dist_0s dist_1s woe iv
#> ----------------------------------------------------------------------------
#> tertiary 1104 195 0.28 0.38 -0.31 0.03
#> secondary 2121 231 0.53 0.45 0.17 0.01
#> unknown 154 25 0.04 0.05 -0.23 0.00
#> primary 625 66 0.16 0.13 0.20 0.01
#> ----------------------------------------------------------------------------
#>
#> Information Value
#> ------------------------------
#> Variable Information Value
#> ------------------------------
#> education 0.0539
#> ------------------------------
blr_woe_iv()
and blr_woe_iv_stats()
are currently avialable for categorical predictors only.
For the initial/ first cut model, all the independent variables are put into the model. Our goal is to include a limited number of independent variables (5-15) which are all significant, without sacrificing too much on the model performance. The rationale behind not-including too many variables is that the model would be over fitted and would become unstable when tested on the validation sample. The variable reduction is done using forward or backward or stepwise variable selection procedures. We will use blr_step_aic_both()
to shortlist predictors for our model.
blr_step_aic_both(model)
#> Stepwise Selection Method
#> -------------------------
#>
#> Candidate Terms:
#>
#> 1 . age
#> 2 . job
#> 3 . marital
#> 4 . education
#> 5 . default
#> 6 . balance
#> 7 . housing
#> 8 . loan
#> 9 . contact
#> 10 . day
#> 11 . month
#> 12 . duration
#> 13 . campaign
#> 14 . pdays
#> 15 . previous
#> 16 . poutcome
#>
#>
#> Variables Entered/Removed:
#>
#> - duration added
#> - poutcome added
#> - month added
#> - contact added
#> - housing added
#> - loan added
#> - campaign added
#> - marital added
#> - education added
#> - age added
#>
#> No more variables to be added or removed.
#>
#>
#> Stepwise Summary
#> ---------------------------------------------------------
#> Variable Method AIC BIC Deviance
#> ---------------------------------------------------------
#> duration addition 2674.384 2687.217 2670.384
#> poutcome addition 2396.014 2428.097 2386.014
#> month addition 2274.109 2376.773 2242.109
#> contact addition 2207.884 2323.381 2171.884
#> housing addition 2184.550 2306.463 2146.550
#> loan addition 2171.972 2300.302 2131.972
#> campaign addition 2164.164 2298.910 2122.164
#> marital addition 2158.524 2306.103 2112.524
#> education addition 2155.837 2322.666 2103.837
#> age addition 2154.272 2327.517 2100.272
#> ---------------------------------------------------------
model %>%
blr_step_aic_both() %>%
plot()
#> Stepwise Selection Method
#> -------------------------
#>
#> Candidate Terms:
#>
#> 1 . age
#> 2 . job
#> 3 . marital
#> 4 . education
#> 5 . default
#> 6 . balance
#> 7 . housing
#> 8 . loan
#> 9 . contact
#> 10 . day
#> 11 . month
#> 12 . duration
#> 13 . campaign
#> 14 . pdays
#> 15 . previous
#> 16 . poutcome
#>
#>
#> Variables Entered/Removed:
#>
#> - duration added
#> - poutcome added
#> - month added
#> - contact added
#> - housing added
#> - loan added
#> - campaign added
#> - marital added
#> - education added
#> - age added
#>
#> No more variables to be added or removed.
We can use bivariate analysis and stepwise selection procedure to shortlist predictors and build the model using the glm()
. The predictors used in the below model are for illustration purposes and not necessarily shortlisted from the bivariate analysis and variable selection procedures.
model <- glm(y ~ age + duration + previous + housing + default +
loan + poutcome + job + marital, data = bank_marketing,
family = binomial(link = 'logit'))
Use blr_regress()
to generate comprehensive regression output. It accepts either of the following
glm()
Let us look at the output generated from blr_regress()
:
blr_regress(model)
#> Model Overview
#> ------------------------------------------------------------------------
#> Data Set Resp Var Obs. Df. Model Df.  The odds ratio estimates are not explicitly computed as we observed considerable increase in computation time when dealing with large data sets.
Let us use the model formula and the data set to generate the above results.
blr_regress(y ~ age + duration + previous + housing + default +
loan + poutcome + job + marital, data = bank_marketing)
#> Model Overview
#> ------------------------------------------------------------------------
#> Data Set Resp Var Obs. Df. Model Df. Residual Convergence
#> ------------------------------------------------------------------------
#> data y 4521 4520 4498 TRUE
#> ------------------------------------------------------------------------
#>
#> Response Summary
#> --------------------------------------------------------
#> Outcome Frequency Outcome Frequency
#> --------------------------------------------------------
#> 0 4004 1 517
#> --------------------------------------------------------
#>
#> Maximum Likelihood Estimates
#> -----------------------------------------------------------------------
#> Parameter DF Estimate Std. Error z value Pr(>|z|)
#> -----------------------------------------------------------------------
#> (Intercept) 1 -5.1347 0.3728 -13.7729 0.0000
#> age 1 0.0096 0.0067 1.4299 0.1528
#> duration 1 0.0042 2e-04 20.7853 0.0000
#> previous 1 -0.0357 0.0392 -0.9089 0.3634
#> housingno 1 0.7894 0.1232 6.4098 0.0000
#> defaultyes 1 -0.8691 0.6919 -1.2562 0.2091
#> loanno 1 0.6598 0.1945 3.3925 7e-04
#> poutcomefailure 1 0.6085 0.2012 3.0248 0.0025
#> poutcomeother 1 1.1354 0.2700 4.2057 0.0000
#> poutcomesuccess 1 3.2481 0.2462 13.1913 0.0000
#> jobtechnician 1 -0.2713 0.1806 -1.5019 0.1331
#> jobentrepreneur 1 -0.7041 0.3809 -1.8486 0.0645
#> jobblue-collar 1 -0.6132 0.1867 -3.2851 0.0010
#> jobunknown 1 -0.9932 0.8226 -1.2073 0.2273
#> jobretired 1 0.3197 0.2729 1.1713 0.2415
#> jobadmin. 1 0.1120 0.2001 0.5599 0.5755
#> jobservices 1 -0.1750 0.2265 -0.7728 0.4397
#> jobself-employed 1 -0.1408 0.3009 -0.4680 0.6398
#> jobunemployed 1 -0.6581 0.3432 -1.9174 0.0552
#> jobhousemaid 1 -0.7456 0.3932 -1.8963 0.0579
#> jobstudent 1 0.1927 0.3433 0.5613 0.5746
#> maritalsingle 1 0.5451 0.1387 3.9299 1e-04
#> maritaldivorced 1 -0.1989 0.1986 -1.0012 0.3167
#> -----------------------------------------------------------------------
#>
#> Association of Predicted Probabilities and Observed Responses
#> ---------------------------------------------------------------
#> % Concordant 0.8886 Somers' D 0.7773
#> % Discordant 0.1114 Gamma 0.7773
#> % Tied 0.0000 Tau-a 0.1575
#> Pairs 2070068 c 0.8886
#> ---------------------------------------------------------------
Model fit statistics are available to assess how well the model fits the data and to compare two different models.The output includes likelihood ratio test, AIC, BIC and a host of pseudo r-squared measures. You can read more about pseudo r-squared at https://stats.idre.ucla.edu/other/mult-pkg/faq/general/faq-what-are-pseudo-r-squareds/.
blr_model_fit_stats(model)
#> Model Fit Statistics
#> ----------------------------------------------------------------------------------
#> Log-Lik Intercept Only: -1607.330 Log-Lik Full Model: -1123.340
#> Deviance(4498): 2246.679 LR(22): 967.980
#> Prob > LR: 0.000
#> MCFadden's R2 0.301 McFadden's Adj R2: 0.287
#> ML (Cox-Snell) R2: 0.193 Cragg-Uhler(Nagelkerke) R2: 0.379
#> McKelvey & Zavoina's R2: 0.388 Efron's R2: 0.278
#> Count R2: 0.904 Adj Count R2: 0.157
#> BIC: 2440.259 AIC: 2292.679
#> ----------------------------------------------------------------------------------
In the event of deciding a cut-off point on the probability scores of a logistic regression model, a confusion matrix is created corresponding to a particular cut-off. The observations with probability scores above the cut-off score are predicted to be events and those below the cut-off score, as non-events. The confusion matrix, a 2X2 table, then calculates the number of correctly classified and miss-classified observations.
blr_confusion_matrix(model, cutoff = 0.5)
#> Confusion Matrix and Statistics
#>
#> Reference
#> Prediction 0 1
#> 0 3920 352
#> 1 84 165
#>
#>
#> Accuracy : 0.9036
#> No Information Rate : 0.8856
#>
#> Kappa : 0.3851
#>
#> McNemars's Test P-Value : 0.0000
#>
#> Sensitivity : 0.3191
#> Specificity : 0.9790
#> Pos Pred Value : 0.6627
#> Neg Pred Value : 0.9176
#> Prevalence : 0.1144
#> Detection Rate : 0.0365
#> Detection Prevalence : 0.0551
#> Balanced Accuracy : 0.6491
#> Precision : 0.6627
#> Recall : 0.3191
#>
#> 'Positive' Class : 1
The validity of a cut-off is measured using sensitivity, specificity and accuracy.
Sensitivity: The % of correctly classified events out of all events = TP / (TP + FN)
Specificity: The % of correctly classified non-events out of all non-events = TN / (TN + FP)
Accuracy: The % of correctly classified observation over all observations = (TP + TN) / (TP + FP + TN + FN)
True Positive (TP) : Events correctly classified as events.
True Negative (TN) : Non-Events correctly classified as non-events.
False Positive (FP): Non-events miss-classified as events.
False Negative (FN): Events miss-classified as non-events.
For a standard logistic model, the higher is the cut-off, the lower will be the sensitivity and the higher would be the specificity. As the cut-off is decreased, sensitivity will go up, as then more events would be captured. Also, specificity will go down, as more non-events would miss-classified as events. Hence a trade-off is done based on the requirements. For example, if we are looking to capture as many events as possible, and we can afford to have miss-classified non-events, then a low cut-off is taken.
Hosmer and Lemeshow developed a goodness-of-fit test for logistic regression models with binary responses. The test involves dividing the data into approximately ten groups of roughly equal size based on the percentiles of the estimated probabilities. The observations are sorted in increasing order of their estimated probability of having an even outcome. The discrepancies between the observed and expected number of observations in these groups are summarized by the Pearson chi-square statistic, which is then compared to chi-square distribution with t degrees of freedom, where t is the number of groups minus 2. Lower values of Goodness-of-fit are preferred.
blr_test_hosmer_lemeshow(model)
#> Partition for the Hosmer & Lemeshow Test
#> --------------------------------------------------------------
#> def = 1 def = 0
#> Group Total Observed Expected Observed Expected
#> --------------------------------------------------------------
#> 1 453 2 5.14 451 447.86
#> 2 452 3 8.63 449 443.37
#> 3 452 4 11.88 448 440.12
#> 4 452 7 15.29 445 436.71
#> 5 452 14 19.39 438 432.61
#> 6 452 10 24.97 442 427.03
#> 7 452 31 33.65 421 418.35
#> 8 452 62 49.74 390 402.26
#> 9 452 128 88.10 324 363.90
#> 10 452 256 260.21 196 191.79
#> --------------------------------------------------------------
#>
#> Goodness of Fit Test
#> ------------------------------
#> Chi-Square DF Pr > ChiSq
#> ------------------------------
#> 52.9942 8 0.0000
#> ------------------------------
A lift curve is a graphical representation of the % of cumulative events captured at a specific cut-off. The cut-off can be a particular decile or a percentile. Similar, to rank ordering procedure, the data is in descending order of the scores and is then grouped into deciles/percentiles. The cumulative number of observations and events are then computed for each decile/percentile. The lift curve is the created using the cumulative % population as the x-axis and the cumulative percentage of events as the y-axis.
blr_gains_table(model)
#> decile total 1 0 ks tp tn fp fn sensitivity specificity
#> 1 1 452 256 196 44.62134 256 3808 196 261 49.51644 95.10490
#> 2 2 452 128 324 61.28765 384 3484 520 133 74.27466 87.01299
#> 3 3 452 62 390 63.53965 446 3094 910 71 86.26692 77.27273
#> 4 4 452 31 421 59.02130 477 2673 1331 40 92.26306 66.75824
#> 5 5 452 10 442 49.91657 487 2231 1773 30 94.19729 55.71928
#> 6 6 452 14 438 41.68544 501 1793 2211 16 96.90522 44.78022
#> 7 7 452 7 445 31.92552 508 1348 2656 9 98.25919 33.66633
#> 8 8 452 4 448 21.51040<PHONE_NUMBER> 5 99.03288 22.47752
#> 9 9 452 3 449 10.87689<PHONE_NUMBER> 2 99.61315 11.26374
#> 10 10 453 2 451 0.00000 517 0 4004 0 100.00000 0.00000
#> accuracy
#> 1 89.89162
#> 2 85.55629
#> 3 78.30126
#> 4 69.67485
#> 5 60.11944
#> 6 50.74099
#> 7 41.05286
#> 8 31.23203
#> 9 21.36695
#> 10 11.43552
model %>%
blr_gains_table() %>%
plot()
ROC curve is a graphical representation of the validity of cut-offs for a logistic regression model. The ROC curve is plotted using the sensitivity and specificity for all possible cut-offs, i.e., all the probability scores. The graph is plotted using sensitivity on the y-axis and 1-specificity on the x-axis. Any point on the ROC curve represents a sensitivity X (1-specificity) measure corresponding to a cut-off. The area under the ROC curve is used as a validation measure for the model – the bigger the area the better is the model.
model %>%
blr_gains_table() %>%
blr_roc_curve()
The KS Statistic is again a measure of model efficiency, and it is created using the lift curve. The lift curve is created to plot % events. If we also plot % non-events on the same scale, with % population at x-axis, we would get another curve. The maximum distance between the lift curve for events and that for non-events is termed as KS. For a good model, KS should be big (>=0.3) and should occur as close to the event rate as possible.
model %>%
blr_gains_table() %>%
blr_ks_chart()
The decile lift chart displays the lift over the global mean event rate for each decile. For a model with good discriminatory power, the top deciles should have an event/conversion rate greater than the global mean.
model %>%
blr_gains_table() %>%
blr_decile_lift_chart()
If the model has good discriminatory power, the top deciles should have a higher event/conversion rate compared to the bottom deciles.
model %>%
blr_gains_table() %>%
blr_decile_capture_rate()
The Lorenz curve is a simple graphic device which illustrates the degree of inequality in the distribution of thevariable concerned. It is a visual representation of inequality used to measure the discriminatory power of the predictive model.
blr_lorenz_curve(model)
blorr can generate 22 plots for residual, influence and leverage diagnostics.
blr_plot_diag_influence(model)
blr_plot_diag_leverage(model)
blr_plot_diag_fit(model)


Concerned about Public Health, Indian Home Ministry Asks States to Enforce E-Cigarettes Ban
New Delhi (Sputnik): On 18 September, 2019, a temporary provision was passed by the government banning the production, sale and purchase of e-cigarettes.
The Indian Ministry of Home Affairs on Wednesday asked all state governments to strictly enforce an e-cigarette ban in their territories as per the Prohibition of Electronic Cigarettes Ordinance.
In a letter to the Chief Secretaries and the Director Generals of Police across India, the Home Ministry has empowered sub-inspectors across states to "enter, search and seize" prohibited items without any warrant.
The ministry says that the ban is due to the “deleterious” impact of e-cigarettes on public health, especially on young people in schools and colleges.
"Further, congruent capacity building and sensitisation of the enforcement personnel may be done for effective implementation of the Ordinance," the letter said.
Those violating the provision may face up to three years in prison plus a fine.
With the ban on e-cigarettes, India has come into line with countries including Brazil, Japan, and Australia.
According to media reports, New Delhi does not have manufacturing units for e-cigarettes despite being a market for nearly 400 brands.
On 31 May, which is World Tobacco Day, the Indian Council of Medical Research released a white paper pointing out the detrimental effects of e-cigarettes.


FAQ¶
This section will gather the frequently asked questions and provide up-to-date answers.
[gouvernance] Open Source Governance¶
Substra Foundation is managing the open source governance of the project. The process is willingly kept as open as possible. Feel free to get in touch with us!
[feature] How do I suggest an important feature to develop?¶
You can refer to the contributing section / feature request and open an issue or even open a PR!
[feature] I really need this feature, how can we work this out?¶
Of course! Please refer to the feature request section in the contributing guide.
[com] Do you guys have crazy stickers?¶
Sure we do! Where should be we send it?
[setup] Is there an easy way to install Substra on my machine?¶
Not yet, but we are working on it! Want to suggest some good options?
[privacy] Is it really privacy preserving to deploy Substra on third party hosting solutions?¶
Great question!
[usage] Can I export my results after a run?¶
OFC
[setup] Can I install Substra on Windows?¶
This has not been tested yet.
[setup] I am having trouble dowloading the images, is there something I can do?¶
Good question, you can refer to this section, but you will need to gather all the sources before being able to run Substra.


{% include '/header.html' %}
An Internal Server Error has been encountered. Any inconvinience is deeply regretted. Kindly, visit again later or contact site-administrator.


Vermeer's Delft
I expanded my #vermeergoals and visited Delft in October 2018—343 years after Vermeer lived there!
Vermeer was born and raised in Delft. There's relatively little information on Vermeer's life in general but it seems he spent the vast majority of it in Delft, with a few possible trips to other places in the Netherlands, like Amsterdam.
I visited and have noted here some of the places scholars have identified as a part of Vermeer's life—though, as you'll see there's often two best guesses for a location.
This by no means is an exhaustive resource, for that you should most definitely visit Essential Vermeer where most of my information comes from.
My personal notes on the trip are on the Visits page.
Sections
Homes
Birth, childhood, adulthood
Vermeer lived in three locations, that we know of, all within a short distance of each other and nearby the market square in Delft.
Early Childhood Home
Vermeer was born in and lived as a young child at the inn his parents ran. The location still exists and remains an Inn, Herberg de Vliegende Vos. It is a few doors down from what is today the Vermeer Center, but what was once the artists' guild that Vermeer belonged to, Guild of St. Luke.
The storefront window of the inn today and the street with neighborhing buildings.Childhood Home
When he was a child, Vermeer's family moved just across the canal to another inn, named Mechelen, where his father also was an art dealer. The building no longer exists; it was torn down in order to make the street across the canal wider for fire safety. There is, however, a plaque on the buliding which would have been next door, though the plaque gives incorrect details.
The space, now a wider street, where the Mechelen once stood and Vermeer lived as a child until he married.Adult Home
After Vermeer married he moved a few minutes walk further from the market square, into the home of his Mother-in-law. He remained here for the rest of his life. There are two theories as to where that home was located.
One theory, which is documented at the location, is that the parcel of land where Vermeer lived with his wife, 11 children and Mother-in-law, is now occupied by the Maria van Jesse Church. There is a really throrough study of the neighborhood in Vermeer's time.
Another theory, detailed in a paper, is that the house is actually the one just next to the present-day church. It seems the thing we can be most certain about is the alleyway between the two locations.
View of the two possible locations of Vermeer's adult home from atop the New Church in the market square and a view from the street where the two buildings share an alleyway. The plaque on the church can be seen in the second photo.Painting Views
View of Delft, Little Street
There are two (known) outdoor scenes of Delft painted by Vermeer. One is easy to locate and the other, Little Street, has a disputed location, and I've included both possibilities here.
View of Delft
The Painting, View of Delft, was painted from the southwest entry into the city. A lot has changed but the steeple of the New Church can be seen in both his mid-17th century view and ours today.
This painting is in the permanent collection of the Maurtishuis in The Hague. Notes from my visit.
The painting, View of Delft, and the view from the same location today.Personal note—look at how we both got those grey clouds! When I visited it was early in the morning, lots of people biking to work and to the Delft Technical University, and it had just started to sprinkle.
The Little Street
The painting, Little Street, gives a look into domestic life from the outside. We see two of Delft's small alleys between houses and into the doorway of a house. There are two possible locations for where this scene was painted by Vermeer.
One location, documented in Delft, is along Vlamingstraat. Today there is only one alley but in Vermeer's time there were two. You can read about this location from the Rijksmuseum.
The other possible location is where the Vermeer Center stands today, which once was the St. Luke's Guild for artisits that Vermeer belonged to. This view would have been possible to see from the back of the Mechelen inn owned by Vermeer's family, which is now open space (see Homes section above). You can read the case for this location.
The Little Street painting is in the permanent collection of Rijksmuseum in Amsterdam. Notes on my visit.
The Little Street Painting and the two possible views it captures, the second being of the location of the artists' guild Vermeer belonged to, St. Luke's.Burial
Oude Kerk
When Vermeer died in 1675 he was buried at the Oude Kerk (Old Church). It's (of course) not clear exactly where he was burried within the church and there are two grave markers. We do know that the plot was purchased earlier by his Mother-in-law and two of his children that passed away very young are also burried here.
Oude Kerk & Grave Markers
The exterior the Old Church and the two grave markers for Vermeer inside. The larger grave marker is the newest of the two.Map
Below is a Google Map with the Vermeer-related locations described here saved. Use if you visit Delft!


SQL Injection
SQL Injection is a form of web attack in which the attacking software (bot) attempts to learn about the database of a website, or to alter the database or data, by passing extra SQL commands as part of data being sent to a web server by a web page. Most commonly, this works by the bot appending SQL commands to a form field that is then sent and executed against a database as in this example from Wikipedia. An innocent select statement can be altered into something malicious.
# our innocent select statement. Probably part of an HTTP GET call.
statement = "SELECT * FROM users WHERE name ='" + userName + "';"
# the attacking bot puts this into our userName field
a';DROP TABLE users; SELECT * FROM userinfo WHERE 't' = 't
# This then becomes
SELECT * FROM users WHERE name = 'a';DROP TABLE users; SELECT * FROM userinfo WHERE 't' = 't';
I first learned of SQL Injection attacks several years ago by attending a talk given by OWASP. They are an organization that seeks to educate about such threats and come up with defenses against them. The talk went through what SQL intrusion was and how to defend against it. Among the things they recommend was scrubbing the data or using parametized input in stored procedures.
When I presented what I learned from OWASP to my management, I was told that they were not interested in this, as it was an unlikely issue and besides, there was a back up of the database made each night. When the attack came 2 or 3 weeks later, it was discovered that the back up software could not back up any file that was in use when the backup ran and since the database was always in use, there was no back up. We were lucky, in that the only damage done was that the data of one column of one table was changed to something like "Kilroy has hacked this site". We were able to restore that data manually, and we were then given permission to start protecting the site from further attacks.
Initially, we took two approaches to defend against these attacks. First, all numeric HTTP POST form input and HTTP GET parameters were converted to real number data types before being used in SQL queries or commands. Second, all text data passed in requests, were scrubbed by replacing all single quotes with two single quotes. These changes eliminated the threat from a bot stringing multiple commands into one form field. Parametized input was not a good option for us, as the system was constantly changing.
As I worked to prevent future attacks, I became interested in what these attacks were, and how often did we get hit with a probe or attack. I put logging in place where I could catch them, and the defense of converting numbers in requests caused a lot of errors, which where caught and logged in detail. I was surprised that our site was either being probed for an attack, or attacked, constantly, at least once a minute around the clock. Sometimes these attacks would increase in intensity to dozens or more per second for periods of 10 or 15 minutes. I also observed that the bots techniques change over time, altering their attack strategy. And that they gave more of their attention to pages that generate errors than those that act like nothing happened. I also saw that they strip out all JavaScript, so nothing could be done with that to impact the attacks.
Today, we defend against the bots with some additional defenses. In addition to sanitizing the numbers and text, we also gracefully handle the data that would have generated an error in the past. We catch that bad input and then send them to a safe page without generateing any error, or running any SQL scripts. We also put hidden fields on the forms. With JavaScript, we can catch anything a person might put in a hidden field and ask them to remove it, but since the field is hidden, people do not see it, so no problem. But the bots do see them and they always fill in every field. So we catch that on the server side of a POST, and redirect them to another safe page. We are also starting to use more JavaScript and AJAX driven frameworks, like Backbone.js, and since the bots strip out the JavaScript, those pages probably offer nothing to the bots. I have seen no probes or attacks on these pages, yet.
SQL Intrusion is a significant threat that must be defended against. I outlined some defenses you can use above. I strongly recommend you use them at the start of a project, not after you get hacked. It's worth the extra time it takes to build in these defenses to prevent the catastrophic hacking of your database. Want more encouragement, on a new site, you can expect your first attacks to start arriving within 30 minutes of taking it live, so why not prepare for that up front.


|
SUBJECT INDEX Anthropology Architecture Art Black Studies Business Ecology Economics Education Film Healthcare History Law Linguistics Literature Mass Media Medicine Music Philosophy Political Science Psychology Religion Science Shakespeare Sociology Sports Recreation Urban Studies Women's Studies |
Literature: NonfictionTo order a specific paper, click the Catalog Number button next to the Paper Title of interest. Send comments to<EMAIL_ADDRESS>Last Updated: 12/21/96 Copyright ©1996 ASM Communications, Inc. All Rights Reserved. |


News & Events
{{/* convoluted nested where clause... */}}
{{/* checks for:
1) article has a thumbnail
2) article is not expired
3) article has a "news" type
*/}}
{{ range first 2 (where (where (where .Site.RegularPages ".Params.imagethumb" "!=" nil) ".Params.expired" false) ".Params.type" "news") }}
{{ partial "homepage/news/big-story.html" . }}
{{ end }}
{{ range first 4 (after 2 (where (where (where .Site.RegularPages ".Params.imagethumb" "!=" nil) ".Params.expired" false) ".Params.type" "news")) }}
{{ partial "homepage/news/little-story.html" . }}
{{ end }}


All {{company.name|capfirst}} Jobs Latest post about {{posts.0.created_on|timesince}} ago {% include "jobs/job_posts.html" %}


SBATrackingDataSource
open class SBATrackingDataSource : NSObject, RSDTableDataSource
SBATrackingDataSource
is an abstract class for handling shared data tracking.
-
The delegate associated with this data source.
Declaration
Swift
open weak var delegate: RSDTableDataSourceDelegate?
-
The step associated with this data source.
Declaration
Swift
public var step: RSDStep { get }
-
The current task path.
Declaration
Swift
public private(set) var taskPath: RSDTaskPath!
-
The table sections for this data source.
Declaration
Swift
public var sections: [RSDTableSection] { get }
-
The list of item groups.
Declaration
Swift
public private(set) var itemGroups: [RSDTableItemGroup]
-
The initial result when the data source was first displayed.
Declaration
Swift
public let initialResult: SBATrackedItemsResult?
-
Initialize a new
RSDFormStepDataSourceObject
.Declaration
Swift
public init(step: SBATrackedItemsStep, taskPath: RSDTaskPath)
Parameters
step
The RSDTrackedSelectionStep for this data source.
taskPath
The current task path for this data source.
-
Reload the sections and groups for this table.
Declaration
Swift
public func reloadDataSource(with selectionResult: SBATrackedItemsResult) -> (addedRows: [IndexPath], removedRows: [IndexPath])
Parameters
selectionResult
The updated selection result.
-
Overridable class function for building the sections of the table.
Declaration
Swift
open class func buildSections(step: SBATrackedItemsStep, initialResult: SBATrackedItemsResult?) -> (sections: [RSDTableSection], itemGroups: [RSDTableItemGroup])
Parameters
step
The RSDTrackedSelectionStep for this data source.
initialResult
The initial result (if any).
Return Value
- sections: The built table sections.
- itemGroups: The associated item groups.
-
The tracking result associated with this data source. The default implementation is to search the
taskPath
for a matching result and if that fails to return a new instance created usinginstantiateTrackingResult()
.Declaration
Swift
open func trackingResult() -> SBATrackedItemsResult
Return Value
The appropriate tracking result.
-
Instantiate a tracking result of the appropriate object type for this data source. The default implementation returns a new instance of
RSDTrackedItemsResultObject
.Declaration
Swift
open func instantiateTrackingResult() -> SBATrackedItemsResult
Return Value
The appropriate tracking result.
-
Retrieve the ‘RSDTableItemGroup’ for a specific IndexPath.
Declaration
Swift
open func itemGroup(at indexPath: IndexPath) -> RSDTableItemGroup?
Parameters
indexPath
The index path that represents the item group in the table view.
Return Value
The requested
RSDTableItemGroup
, or nil if it cannot be found. -
Determine if all answers are valid. Also checks the case where answers are required but one has not been provided.
Declaration
Swift
open func allAnswersValid() -> Bool
Return Value
A
Bool
indicating if all answers are valid. -
Save an answer for a specific IndexPath.
Throws
RSDInputFieldError
if the answer is invalid.Declaration
Swift
open func saveAnswer(_ answer: Any, at indexPath: IndexPath) throws
Parameters
answer
The object to be save as the answer.
indexPath
The
IndexPath
that represents theRSDTableItem
in the table view. -
Select or deselect the answer option for a specific IndexPath.
Throws
RSDInputFieldError
if the selection is invalid.Declaration
Swift
open func selectAnswer(item: RSDChoiceTableItem, at indexPath: IndexPath) throws -> (isSelected: Bool, reloadSection: Bool)
Parameters
indexPath
The
IndexPath
that represents theRSDTableItem
in the table view.Return Value
- isSelected: The new selection state of the selected item.
- reloadSection:
true
if the section needs to be reloaded b/c other answers have changed, otherwise returnsfalse
.


Ganesh Man Singh (Nepali:गणेशमान सिंह) was the leader of the democratic movement of 1990 in Nepal. He is revered as the Father of Democracy and the Iron-man of Nepali Politics. He joined Praja Parishad to protest against the autocratic rule of the Ranas.
Ganesh Man Singh was born on November 9, 1915in Itum Bahal, Kathmandu. His father was Gyan Man Singh and mother Sanunani Shrestha Singh. His father died when he was young, so his grandfather, Ratna Man Singh (who was Badakaji in Rana regime), took care of him.
He studied in Durbar High School till class 6 when he was rusticated from the school for not respecting his fellow Rana students. He then went to Calcutta to study where he completed his matriculation from Vidyasagar Collegein first division.He studied until ISc (Intermediate of Science) then returned to Nepal in 1938.
Ganesh Man Singh was the main leaders of Nepali Congress Movement in 2007 B.S., which was able to overthrow the Rana Regime. In 2015 B.S., he was elected as Member of Parliament from Kathmandu and later became a Cabinet Minister. After coup d'état by King Mahendra, Singh became one of the main leaders advocating for democracy in Nepal.
He ultimately became the Supreme leader of Nepali Congress, the title he held throughout his life. He entered into politics formally by joining Praja Parisad, the first political party of Nepal. in 1997 B.S.
Only after three months into married life with Mangala Devi Singh, he was handed life imprisonment by Ranas for waging revolution against their autocratic rule. He successfully escaped from the prison and continued his struggle against the Ranas with Krishna Bahadur Pradhan as his pseudonym.
After the coup of 1960, Singh was held without trial for eight years at the Sundarijal Military Detention Camp. Recognizing his outstanding contribution in the field of Human Rights, Mr. Singh was honored by the United Nations with “Human Rights Award” in 1993. He is the first Statesman from South Asia to receive this prestigious award.
Singh had received the “United States Peace Run Prize” in 1990 for his contribution to peace in Nepal and the world and his leadership quality. He was also decorated by the “U Thant Peace Award”.


Half price Converse sale has everything you need for a cool look this winter
High-tops, low-tops and everything in between are included in the online sale with prices starting from £9.99
by Linda HowardIf you've already shopped the huge sale on at Footlocker and need some more bargains, there's up to 50% off at Converse on classic styles like Chuck Taylor All Star high-tops, low-tops, slip ons, platforms and more.
And it’s not just cool, trendy footwear included in the sale - there’s also huge discounts on clothing and accessories including hats, bags and backpacks.
And there’s more.
If you sign up to the newsletter BEFORE you start shopping the sale, you'll get a 15% discount code delivered instantly to your inbox which you can use against discounted items - we've successfully, tried and tested this!
Standard delivery (3-4 working days) is free.
Here are a few highlights from the sale
Chuck Taylor All Star Lift Low-Top, now £49.99 (was £100)
Converse x Tinker Hatfield Star Series Tee, now £14.99 (was £25)
Chuck Taylor All Star Paradise Prints Lift Low-Top, now £34.99 (was £60)
Cordura Street 22 Backpack, now £24.99 (was £50)
One Star Moonshot Low Top, now £39.99 (was £60)
Converse Pride Crew Fleece Sweatshirt, now £19.99 (was £40)
Shop the Converse sale here


This section will only be useful if you plan on customizing help for your application. Nearly all of what you need for creating normal help files and adding help to your application is described in the previous sections. The following is detailed reference information for
HelpControlClass
(shown in HelpControlClass
).
Code Display 13-3 HelpControlClass
@instance HelpType HCI_helpType; /* See HelpType, below */ @instance MemHandle HCI_curFile; /* Internal */ @instance MemHandle HCI_historyBuf; /* Internal */ @instance word HCI_nameArrayVM; /* Internal */ @instance GeodeHandle HCI_compressLib; /* Internal */ @default GII_attrs = (@default | GIA_NOT_USER_INITIATABLE); @default GII_visibility = GIV_DIALOG;
@vardata void ATTR_HELP_SUPPRESS_INITIATE; @vardata char[] ATTR_HELP_INITIAL_HELP; @vardata optr ATTR_HELP_CUSTOM_POINTER_IMAGE; @vardata CompSizeHintArgs HINT_HELP_TEXT_FIXED_SIZE; @vardata void HINT_HELP_NOT_RESIZABLE; @vardata char[] ATTR_HELP_INITIAL_HELP_FILE;
typedef ByteEnum HelpType; #define HT_NORMAL_HELP 0 #define HT_FIRST_AID 1 #define HT_STATUS_HELP 2 #define HT_SIMPLE_HELP 3 #define HT_SYSTEM_HELP 4 /* Reserved for system use */
/* Internal Vardata fields--do not use these. */ @vardata char[] TEMP_HELP_ERROR_FILENAME; @vardata char[] TEMP_HELP_TOC_FILENAME; @vardata void TEMP_HELP_DETACH_RECEIVED;
HelpControlClass
is a subclass of
GenControlClass
and, as such, inherits the feature management attributes and messages thereof. For complete information on feature and tool sets, see the Controllers chapter. The HelpControl object has features but no tools. The feature set of HelpControlClass
is shown in HelpControl Features
.
Code Display 13-4 HelpControl Features
/* These features can be turned on or off with ATTR_GEN_CONTROL_REQUIRE_UI and * ATTR_GEN_CONTROL_PROHIBIT_UI. They can be turned on or off dynamically with * MSG_GEN_CONTROL_ADD_FEATURE and MSG_GEN_CONTROL_REMOVE_FEATURE. */
typedef WordFlags HPCFeatures; #define HPCF_HELP 0x0100 /* has a "help on help" trigger */ #define HPCF_TEXT 0x0080 /* has text */ #define HPCF_CONTENTS 0x0040 /* has "Contents" button */ #define HPCF_HISTORY 0x0020 /* has "History" button */ #define HPCF_GO_BACK 0x0010 /* has "Go Back" button */ #define HPCF_CLOSE 0x0008 /* has "Close" button */ #define HPCF_INSTRUCTIONS 0x0004 /* has "Instructions" button */ #define HPCF_FIRST_AID_GO_BACK 0x0002 /* has "Go Back" button for * First Aid */ #define HPCF_FIRST_AID 0x0001 /* has First Aid configuration */
HelpControlClass
, as a GenControl subclass, receives notification when the controlled item changes. For example, a change in help context will cause the HelpControl object to display the new context page. The HelpControl object must be put on the
GAGCNLT_NOTIFY_HELP_CONTEXT_CHANGE notification list. When a context change occurs, the help controller will receive
MSG_META_NOTIFY_WITH_DATA_BLOCK
, with the notification type GWNT_HELP_CONTEXT_CHANGE
. This notification type passes a data block containing a
NotifyHelpContextChange
structure, which is shown below.
Code Display 13-5 Help Notification Structure
/* This data structure is passed in MSG_META_NOTIFY_WITH_DATA_BLOCK to the help * controller when a change in the help context occurs. This structure can be * generated by calling HelpSendHelpNotification(). This structure uses the * following constant and type. */
#define MAX_CONTEXT_NAME_SIZE 22
typedef char ContextName[MAX_CONTEXT_NAME_SIZE];
typedef struct { HelpType NHCC_type; /* HelpType involved in change */ ContextName NHCC_context; /* New context to link to */ FileLongName NHCC_filename; /* New file name to link to */ FileLongName NHCC_filenameTOC; /* File name to get TOC from */ } NotifyHelpContextChange;
HelpControlClass
has two exported messages that subclasses may intercept. These are not often intercepted by subclasses. Their reference information is presented below.
Cause the HelpControl object to follow the specified link in the help file.
Source: Unrestricted; typically internal to the controller.
Destination: The HelpControl object to follow the link.
Parameters:
link name
16-bit token of the link name.
link file
Return: Nothing.
Interception: Not generally intercepted.
Return the pointer image to be used when the pointer is over a link in the help text. It looks for
ATTR_HELP_CUSTOM_POINTER_IMAGE
and returns the pointer stored there; if no custom pointer exists, the default is returned.
Source: Unrestricted; typically internal to the controller.
Destination: The HelpControl object using the custom pointer.
Parameters:
not over link
Pass FALSE if the pointer is
not
over a link, TRUE if it is. (Must pass TRUE, not just non-zero).
Return: A word of
MouseReturnFlags
. If MRF_SET_POINTER_IMAGE is set in this record, the optr of the pointer image will also be returned. Otherwise, the optr will be NullOptr.
Interception: A "viewer" application may subclass this and return its own pointer images if they are dynamic. If static pointer images are used, the application should use
ATTR_HELP_CUSTOM_POINTER_IMAGE
instead. There is no need to call the superclass with this message
.


Hackathon Dev
Starlightknown | Community Starlight | Hackathoner
SocialsHackathon Dev
Open-source Enthusiast | Man who dreams in code | Blogger
SocialsHackathon Dev
Octocat Lover | Open-source Contributor | Community guy
SocialsHackathon Dev
Open-sourcerer | Blogger | The JavaScript friendster
Socials


Please log in to submit a rating
Please go to settings and create a category and a person
Login:
You must enter at least one category
You must enter at least one person
End Date:
You must select a begining date
End Date:
You must select an end date
[[beginDateDisplay]] - [[endDateDisplay]]
Name: [[selectedSummaryPerson.value.value]]
Issue: [[selectedSummaryCategory.value.value]]
Total Incidents: [[summarizedData.length]]
Time: [[formatTime( item.timestamp )]]
Rating: [[item.rating]]
Notes: [[item.notes]]
Pain Rater
What is pain rater?
For several years my daughter has been experiencing hip pain. After seeing the family doctor, getting x-rays, and seeing a speicialist, we were told that it was likely juvenile arthritis. The specialist advised my wife and I to keep a diary of her pain, so that we could let him know the frequency of it at each check up. As a web developer I felt like we could do a bit better than keeping a paper diary, and thus pain rater was born.
How do I submit a rating?
To submit a rating you must have added a category and a person. You can do this on the settings tab. For me a category could be 'Hip Pain' and the person I am tracking this for could be 'Elliot'. Once this is done you may submit a rating by selecting a category and person in the dropdowns, and selecting a pain rating of 1 - 10 where 1 is the least pain and 10 is the greatest. Optionally you may add a note. The time will also be recorded at the moment the rating is submitted.
Pain Rater
How do I create a summary?
A summary is a break down of pain incidents. You simply select a category and person associated with the pain incidents you would like to see, then select the beginning and ending date range. You will then be directed to another screen with the total and each pain incident listed.


WITNESS LIST Transportation Committee February 17, 1997-3:00P HB 327 For: Bosse, Hon. Fred (Author of H.B. 327) Wellborn, Earl (Windermere Homeowners) HB 979 For: Clayton, Bill (Aircraft Pooling Board) Garza, Jesus (City of Austin) Junell, Hon. Rob (Author of H.B. 979) HB 981 For: Alexander, Hon. Clyde (Author of H.B. 981) Callaway, Keith (TX-ATSSA) Johnson, Tom (AGC of Texas) On: Burnett, Bill G. (TxDOT) Church-Abreo, Rosanna (Texas DPS) HCR 38 For: Alexander, Hon. Clyde (Author of H.C.R. 38) McCarley, James (Dallas Reg. Mobility Co) Olsen, Lawrence (Texas Good Roads Assn.) On: Burnett, Bill G. (TxDOT) Registering, but not testifying: For: Spearman, Leonard (Harris Co. Judge Eckels)


--- layout: default title: Photography description: Photography has become a main source of creativity for me. Most importantly, photography has a way of making me fall in love with life over & over again. permalink: /photography/ ---
{{ page.description }}


--- layout: page weight: 500 title: Recipient Lists breadcrumbs: true navigation: show: true ---
Anisha provides a foundation for creating recipient lists. You can also find more details, including adding custom variables, in Kyle’s video, “Create a Marketing Email and Add Custom Variables.”


this site contains basic things to add to your site to enable Web Monetization
to see how this site is monetized, peek at the code via inspect/view source or view the code on GitHub here!
you'll see a "thank you" note below if you have a Web Monetization Provider installed in your browser and you are sending payment.
beginner-friendly drag and drop tutorial on Web Monetization
more info on getting started with Web Monetization here


Sharing Functions
Once we have defined a set of object properties in the constructor, we can write functions designed to operate on those properties. These functions are attached to any object created with our constructor.
function ShoppingListItem(itemName, quantity) { this.itemName = itemName || ""; this.quantity = quantity || 1; this.complete = false; } ShoppingListItem.prototype.getQuantity = function () { return this.quantity; } ShoppingListItem.prototype.isComplete = function () { return this.complete; }
Prototype functions are accessible from any object that was created with the prototype's constructor function. Prototype functions are accessed just like functions that are attached as properties of an object.
var item = new ShoppingListItem("socks", 2); var quantity = item.getQuantity(); var complete = item.isComplete();
Inside the prototype function, this
references the object
that was used to call the function.


class asIBinaryStream { public: void Read(void *ptr, asUINT size); void Write(const void *ptr, asUINT size); };
void Read(void *ptr, asUINT size);
Read is used to read data from the stream.
ptr |
Pointer to the memory location where the data should be put. |
size |
Size of the wanted data in bytes. |
void Write(const void *ptr, asUINT size);
Write is called to send data to the stream.
ptr |
Pointer to the data that should be written to the stream. |
size |
Size of the data to write in bytes. |


{% import './components/user_layout.html' as macroUserComponents %}
Quitter
Logout
{{ macroUserComponents.displayUser(user_data) }}
Make a publication
Images
post
Upload image
post
Share
Public
Friends
Just me


hello world. My name is renjiaxin.
npm init
name: renjiaxin
version: 1.0.0
entry point:SYSU SDCS
git repository: Guangzhou, China
description: ###
contacts<EMAIL_ADDRESS>keywords: geeker algorithm programmer
y
npm install --save maoxiaoke
Successfully installed maoxiaoke
node
Have a nice day!!!


Located in /route.php (line 45)
Try to map browser request to one of the defined routes
Documentation generated on Sun, 19 Dec 2010 22:42:56 +0100 by phpDocumentor 1.4.3


| Add new list |
You have lists. Click one of the lists to see the products on the list.
| Name | Published | Published to | Products amount | Edit/Remove |
|---|---|---|---|---|
| Edit list Remove list |
| This list is published |
| Unpublish Edit list |
| Your list is private. If you publish your list you are able to send the list to family and friends. |
| Publish Edit list |
| Quantity | Price | Add/Remove | |
|---|---|---|---|
| No products in the list... | |||
|
|
Add to cart
Remove from list |
||
| Page of |


Currently v{{ site.version }}
FritzBox.js is an open-source asynchronous JavaScript implementation of the non-public API of AVM's Fritz!Box.
The goal of this project is to create an easy to use and open way to communicate with Fritz!Box. Help by making pull requests and opening issues on GitHub. All code is documented with Documentation.js
FritzBox.js is future-proof and uses async/await promises. This means that you need to run NodeJS version
7.6.0 or newer.
If your NodeJS version is between 7.0.0 and 7.5.0 you can use the harmony
flag --harmony-async-await
to make use of the async/await promises.
{% highlight javascript %}npm install fritzbox.js{% endhighlight %}
This package was tested on Fritz!Box 7390 and 7490, with firmware versions 6.53, 6.51 and 6.83.
Take a look at the test files for some examples.