../vignettes/analysing_people_survey_data.Rmd
analysing_people_survey_data.Rmd
This vignette describes how the orgsurveyr
package can be used to analyse data from the UK Civil Service People Survey. Note that because the People Survey data for government departments is not in the public domain, it is not possible to provide a fully reproducible analysis. However, the code included here was used to analyse real data and can be used to understand the analysis as a general recipe.
The following data files are the start point for the people survey. In this example, data for the Ministry of Silly Walks is provided:
org2017_MSW.sav
An SPSS file containing the individual level responses for questions and combined variables. This file has one row per individual and one column per variable.
org2017_MSW_hierarchy.sav
As SPSS file containing one row per organisational unit that an individual is a member of. For example, all individuals will have an entry for MSW0000 which is the department code for the Ministry of Silly Walks. If this Ministry has an HR department, and a recruiting team within that, then an individual within this team would have 3 rows in this file:
#> # A tibble: 3 x 5
#> ResponseID DeptCode OUCode Returns Population
#> <dbl> <chr> <dbl> <dbl> <dbl>
#> 1 123456 MSW0000 4 1234 1345
#> 2 123456 MSW1234 4 123 123
#> 3 123456 MSW1235 4 12 13
Hierarchy Survey.xlsx
An MS Excel file containing information about the organisational units within the department, with one row per organisational unit. Taking the Ministry of Silly Walks as our example, it might look like this:
#> # A tibble: 3 x 4
#> DeptCode Tier Parent UnitName
#> <chr> <int> <chr> <chr>
#> 1 MSW0000 2 MSW Ministry of Silly Walks
#> 2 MSW1234 3 MSW0000 MSW Human Resources
#> 3 MSW1235 4 MSW1234 MSW HR Recruiting Team
The key information in this file is the link between a department and its parent since this lets us represent the Ministry as a network.
Data can be imported using the haven
and readxl
R packages. For example:
datapath <- 'path/to/files'
df_survey <- haven::read_sav(file.path(datapath, 'org2017_MSW.sav'))
df_depts <- readxl::read_excel(file.path(datapath, 'Hierarchy Survey.xlsx'),
col_names = c('DeptCode', 'Tier', 'Parent', 'UnitName'), skip = 1)
It is worth explicitly typing the imported data to avoid problems further along the line, especially from SPSS files:
df_org <- df_org %>%
mutate_at(vars(OUCode, Returns, Population), as.integer) %>%
mutate_at(vars(ResponseID, DeptCode), as.character)
df_depts <- df_depts %>%
mutate_at(vars(Tier), as.integer) %>%
mutate_at(vars(-Tier), as.character)
Now that the data has been loaded into R, the next step is to reformat it into one of the data formats required by the orgsurveyr
package. This can be accomplished using a fairly standard ‘tidyverse’ workflow. To read more about the tidyverse suite of R packages the tidyverse website is very useful. There are also a number of DataCamp courses (some of which are free) which are worth following to get quickly up to speed, for example Introduction to the Tidyverse.
To read more about the data formats used in the orgsurveyr
package see orgsurveyr-data-formats.
First define the numeric values in the survey that we are interested in:
metric_colnames <- c('ees', 'mw_p', 'op_p', 'lm_p', 'mt_p',
'ld_p', 'if_p', 'rw_p', 'pb_p', 'lc_p',
'eef', 'f1_mw', 'f2_op')
Next we select just these columns from the survey data, make them numeric, and un-pivot using the tidyr::gather
function to make a long/skinny dataframe with one row per metric/individual combination.
df_metrics <- df_survey %>%
dplyr::select(ResponseID, metric_colnames) %>%
dplyr::mutate_at(vars(metric_colnames), as.numeric) %>%
dplyr::mutate_at(vars(ResponseID), as.character) %>%
dplyr::rename(individual_id = ResponseID) %>%
tidyr::gather( 'metric_id', 'value', -individual_id)
This is the indiv_tall_df
format that the orgsurveyr
package requires. It is an example of a tidy data frame since each row represents one observation per individual/metric combination. It is extensible no matter how many individuals or metrics are considered since there are only three columns. The example data for this format is below:
tg_org_indiv_tall_df
#> # A tibble: 292 x 3
#> individual_id metric_id value
#> <chr> <chr> <dbl>
#> 1 1 test_var 7.27
#> 2 2 test_var 8.53
#> 3 3 test_var 9.21
#> 4 4 test_var 12.9
#> 5 5 test_var 5.02
#> 6 6 test_var 11.0
#> 7 7 test_var 6.33
#> 8 8 test_var 13.8
#> 9 9 test_var 7.48
#> 10 10 test_var 11.7
#> # ... with 282 more rows
We can also use the get_df_format
function to confirm this:
get_df_format(tg_org_indiv_tall_df)
get_df_format(df_metrics)
In this section we want to generate an individual to organisational unit mapping data frame. The data format is very simple, and is represented in the example below:
tg_org_indiv_minimal_df
#> # A tibble: 146 x 2
#> individual_id unit_id
#> <chr> <chr>
#> 1 1 1
#> 2 2 1
#> 3 3 1
#> 4 4 3
#> 5 5 3
#> 6 6 4
#> 7 7 4
#> 8 8 4
#> 9 9 5
#> 10 10 5
#> # ... with 136 more rows
This is the indiv_df
format that the orgsurveyr
package requires where each individual is represented by a single row in the data frame. However, the People Survey data doesn’t come in this form directly so we have to convert it, this is done below.
First we join the organisational unit level information in df_depts
with the individual to organisational unit mapping indf_org
.
df_org_depts <- df_org %>%
dplyr::select(ResponseID, DeptCode) %>%
dplyr::inner_join(df_depts, 'DeptCode') %>%
dplyr::select(-UnitName) %>%
dplyr::arrange(ResponseID, desc(Tier))
This lists all organisational units in the heirarchy which an individual is a member of. So next we order by Tier and select the highest value - ie the deepest level in the organisation to which the individual is associated. This can be regarded as the individual’s parent organisational unit.
df_indiv_dept <- df_org_depts %>%
dplyr::group_by(ResponseID) %>%
dplyr::mutate(Tier_zero_indexed = dplyr::row_number(desc(Tier))) %>%
dplyr::ungroup() %>%
dplyr::filter(Tier_zero_indexed == 1) %>%
dplyr::transmute(individual_id=ResponseID, unit_id=DeptCode)
We can use the get_df_format
function to confirm that the data is in the correct format:
get_df_format(tg_org_indiv_minimal_df)
get_df_format(df_indiv_dept)
The organisation is represented as a network, and the data object is a tbl_graph
from the tidygraph
package. This can be created from two data frames, one representing the nodes (organisational units) and the other representing the edges (line management relationship of each organisational unit). Firstly, to create the nodes data frame we slightly modify the df_depts
data frame by adding a unit_id
column and name
column which are required for later operations:
nodes_depts <- df_depts %>%
transmute(name=DeptCode, unit_id=DeptCode, DeptCode, Parent, Tier, UnitName,
DisplayName=paste0(DeptCode, ': ', UnitName))
Next we can adapt this to make the nodes data frame by removing the root node and changing the column names to to
and from
:
edges_depts <- nodes_depts %>%
dplyr::filter(DeptCode != 'MSW0000') %>%
transmute(from=Parent,to=DeptCode)
edges_depts
Now these two data frames can be combined and converted into a tbl_graph
object using the igraph::graph_from_data_frame
and tidygraph::as_tbl_graph
functions:
tidy_org <- igraph::graph_from_data_frame(
edges_depts,
directed=TRUE,
vertices=nodes_depts) %>%
tidygraph::as_tbl_graph()
tidy_org
Finally check that the tbl_graph
object has been created correctly:
check_tbl_graph_is_org(tidy_org)
With the data in the correct format, we can use the calc_summary_function
to calculate organisational unit level summaries for the People Survey data. Below we do this for ees
- the Employee Engagement Score:
org_summary_ees <- calc_summary_df(tidy_org, df=df_indiv_dept, tall_df=df_metrics, selected_vars = 'ees', is_cumulative = TRUE)
This output data frame is in the org_tall_df
format which has one row per organisational unit/metric combination:
tg_org_summarised_df
#> # A tibble: 76 x 3
#> unit_id metric_id value
#> <chr> <chr> <dbl>
#> 1 1 test_var 10.2
#> 2 1 test_var2 20.2
#> 3 10 test_var 10.9
#> 4 10 test_var2 20.2
#> 5 11 test_var 10.4
#> 6 11 test_var2 20.8
#> 7 13 test_var 11.0
#> 8 13 test_var2 19.6
#> 9 14 test_var 10.2
#> 10 14 test_var2 21.1
#> # ... with 66 more rows
Here we have generated cumulative metrics - ie where individuals from all organisation units in the current one and its children are included. To generate non-cumulative metrics the is_cumulative
parameter can be set to FALSE
.
It is also possible to calculate all metrics at once as follows:
org_summary_all <- calc_summary_df(tidy_org, df=df_indiv_dept, tall_df=df_metrics, selected_vars = metric_colnames, is_cumulative = TRUE)
The entire organisation can be visualised as a starburst plot as follows:
plot_org(tidy_org, fill='ees', df=org_summary_all, is_circular = TRUE, is_dendrogram = FALSE) +
scale_fill_gradientn(colours=RColorBrewer::brewer.pal(11, 'PiYG'))
To generate an interactive visualisation call the orgviz
function to launch a shiny app:
orgviz(tg=tidy_org, df=org_summary_all)
In addition to numeric survey responses, the People Survey also includes free text. This can be analysed in a number of different ways to turn it into numeric data which can then be analysed in orgsurveyr
. The simplest analysis would be to calculate the term or bigram frequency for terms of interest, but here Topic Modelling using the stm
package is exemplified as a way to extract useful insight from text data. The approach was inspired by this blog by Julia Silge and her excellent book: Text Mining With R, A Tidy Approach.
Make sure that field names are correct:
comments <- comments_core %>%
dplyr::transmute(ResponseID=`Response ID`, Comment)
Tidy the comments using the tidytext ‘bag of words’ approach by tokenising and then removing stopwords with an anti-join.
tidy_comments <- comments %>%
unnest_tokens(sentence, Comment, token='sentences') %>%
mutate(sid=dplyr::row_number(ResponseID)) %>%
unnest_tokens(word, sentence) %>%
anti_join(stop_words)
We can count the number of words present following tokenisation:
tidy_comments %>%
count(word, sort=TRUE)
Then extract the top 1000 most common words to be used in the analysis:
common_words <- tidy_comments %>%
count(word, sort=TRUE) %>%
top_n(1000, n) %>% dplyr::select(-n)
The tidy comments data frame can be converted into document frequency matrix using the tidytext::cast_dfm
function. The object type is a dfm
object from the quanteda
package. In this analysis we generate the document frequency matrix at the comment level, but an alternative is to generate the matrix at the sentence level instead.
comments_dfm <- tidy_comments %>%
dplyr::inner_join(common_words) %>%
dplyr::count(ResponseID, word) %>%
dplyr::arrange(ResponseID) %>%
tidytext::cast_dfm(ResponseID, word, n)
One of the interesting features of Structure Topic Models is that covariates can be included in the model directly. In this example we only include the ResponseID and original comment in the metadata data frame. Importantly the rownames of the metadata dataframe must be the document id (ie response id in this case).
comments_dfm_meta <- comments %>%
dplyr::filter(ResponseID %in% docnames(comments_dfm)) %>%
dplyr::arrange(ResponseID) %>%
as.data.frame()
rownames(comments_dfm_meta) <- comments_dfm_meta$ResponseID
Here we fit the model with 16 topics, see the stm::searchK
function for more information on optimising the number of clusters.
Use the stm
package to fit a topic model. We don’t include any covariates here, but these could be set with the prevalence
parameter.
topic_model <- stm(comments_dfm,
K=16,
data=comments_dfm_meta,
max.em.its = 20,
verbose=FALSE)
Generate a summary of the topic model. For each topic, the top words according to four different metrics are generated. Top probability is just the most common words, the other metrics use different forms of weighting to pick up words that are more exclusive to the topic. See the stm vignette for more information on the metrics.
summary(topic_model)
In topic modelling, we seek to assign topic proportions (gamma coefficients) to each document. To turn the topics into a metric that is associated with each individual, we therefore have to map the individual id to the topic id. In orgsurveyr parlance, each topic is a metric and the topic proportion for each individual is the value that we will seek to plot. What we are aiming to achieve is a data frame in the indiv_tall_df
where each ‘metric’ is a topic, and each value is the gamma coefficient for that topic for a given individual:
tg_org_indiv_tall_df
#> # A tibble: 292 x 3
#> individual_id metric_id value
#> <chr> <chr> <dbl>
#> 1 1 test_var 7.27
#> 2 2 test_var 8.53
#> 3 3 test_var 9.21
#> 4 4 test_var 12.9
#> 5 5 test_var 5.02
#> 6 6 test_var 11.0
#> 7 7 test_var 6.33
#> 8 8 test_var 13.8
#> 9 9 test_var 7.48
#> 10 10 test_var 11.7
#> # ... with 282 more rows
When we created the document frequency object, the link between the original ResponseID and each piece of text is lost and is instead maintained through the row identifier. We therefore need to create a link between each document and each ResponseID:
stm_responses <- comments_stmc$data %>%
as_tibble() %>%
tibble::rowid_to_column('document') %>%
transmute(document, ResponseID)
Similarly to the individual id, each topic is identified by a numeric id. We can create labels for these using the labelTopics
function:
stm_labels <- labelTopics(topic_model, n=3)$frex %>%
as_tibble() %>%
tibble::rowid_to_column('topic') %>%
transmute(topic, topic_name=paste('t', topic, V1, V2, V3, sep='_'))
stm_labels
Note that there are limitations around the format of the topic names, ie don’t include special characters or include numbers at the start of the topic. This issue will be resolved in future versions of orgsurveyr (0.6.0 at time of writing).
The tidytext
package includes a tidy
function which can extract components of the topic model object from the stm
package (see ?tidytext::stm_tidiers
). For example:
tidytext::tidy(topic_model, matrix='gamma')
For each document, the topic proportion for each topic is returned. We can join the document and topic identifiers with the data frames we generated earlier with topic labels and individual identifiers to give us a data frame in the indiv_tall_df
format of orgsurveyr
:
stm_metrics <- tidy(topic_model, matrix='gamma') %>%
inner_join(stm_responses, by='document') %>%
inner_join(stm_labels, by='topic') %>%
transmute(individual_id=ResponseID, metric_id=topic_name, value=gamma)
Double check that the data frame is in the correct format:
get_df_format(stm_metrics)
orgsurveyr
Once the data frame in indiv_tall_df
format is created, it can be analysed in orgsurveyr
using the approaches described in this and other vignettes. Usefully, the data frame from the survey data and NLP data can be combined using the dplyr::bind_rows
function:
combined_df <- dplyr::bind_rows(df_metrics, stm_metrics)
This vignette contains example code for transforming Civil Service People Survey numerical and text data into the data formats required by orgsurveyr
. This is accomplished using a relatively standard tidyverse workflow. Note that this does not represent the only way in which this data reformatting could be done, data could be transformed with other packages or even outside of R entirely, the orgsurveyr
package’s requirements are just that the data is formated in a particular way, how this is done is left open to the user.
sessionInfo()
#> R version 3.5.1 (2018-07-02)
#> Platform: x86_64-pc-linux-gnu (64-bit)
#> Running under: Debian GNU/Linux 9 (stretch)
#>
#> Matrix products: default
#> BLAS: /usr/lib/openblas-base/libblas.so.3
#> LAPACK: /usr/lib/libopenblasp-r0.2.19.so
#>
#> locale:
#> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
#> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
#> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C
#> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
#> [9] LC_ADDRESS=C LC_TELEPHONE=C
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] orgsurveyr_0.6.0 ggplot2_3.0.0 dplyr_0.7.6
#>
#> loaded via a namespace (and not attached):
#> [1] tidyselect_0.2.4 purrr_0.2.5 colorspace_1.3-2
#> [4] htmltools_0.3.6 viridisLite_0.3.0 yaml_2.2.0
#> [7] utf8_1.1.4 rlang_0.2.2 pkgdown_<IP_ADDRESS>00
#> [10] pillar_1.3.0 later_0.7.5 glue_1.3.0
#> [13] withr_2.1.2 tweenr_1.0.0 bindrcpp_0.2.2
#> [16] bindr_0.1.1 plyr_1.8.4 stringr_1.3.1
#> [19] munsell_0.5.0 commonmark_1.5 gtable_0.2.0
#> [22] memoise_1.1.0 evaluate_0.11 knitr_1.20
#> [25] httpuv_1.4.5 fansi_0.3.0 Rcpp_0.12.18
#> [28] xtable_1.8-3 scales_1.0.0 backports_1.1.2
#> [31] promises_1.0.1 desc_1.2.0 mime_0.5
#> [34] farver_1.0 fs_1.2.6 gridExtra_2.3
#> [37] ggforce_0.1.3 digest_0.6.17 stringi_1.2.4
#> [40] ggrepel_0.8.0 shiny_1.1.0 grid_3.5.1
#> [43] rprojroot_1.3-2 cli_1.0.1 tools_3.5.1
#> [46] magrittr_1.5 lazyeval_0.2.1 tibble_1.4.2
#> [49] ggraph_1.0.2 crayon_1.3.4 pkgconfig_2.0.2
#> [52] MASS_7.3-50 xml2_1.2.0 assertthat_0.2.0
#> [55] rmarkdown_1.10 roxygen2_6.1.0 rstudioapi_0.7
#> [58] viridis_0.5.1 R6_2.2.2 units_0.6-1
#> [61] igraph_1.2.2 compiler_3.5.1


compress / decompress data segments, used for RLE compression More...
#include <RunLengthEncoding.h>
Inherits dpx::Codec.
Public Member Functions | |
| RunLengthEncoding () | |
| constructor | |
| virtual | ~RunLengthEncoding () |
| destructor | |
| virtual void | Reset () |
| reset instance | |
| virtual bool | Read (const dpx::Header &dpxHeader, ElementReadStream *fd, const int element, const Block &block, void *data, const DataSize size) |
| read data | |
Protected Attributes | |
| U8 * | buf |
| intermediate buffer | |
| U32 * | scanline |
| single scanline |
compress / decompress data segments, used for RLE compression
| dpx::RunLengthEncoding::RunLengthEncoding | ( | ) |
constructor
| dpx::RunLengthEncoding::~RunLengthEncoding | ( | ) | [virtual] |
destructor
| bool dpx::RunLengthEncoding::Read | ( | const dpx::Header & | dpxHeader, | |
| ElementReadStream * | fd, | |||
| const int | element, | |||
| const Block & | block, | |||
| void * | data, | |||
| const DataSize | size | |||
| ) | [virtual] |
read data
| dpxHeader | dpx header information | |
| fd | field descriptor | |
| element | element (0-7) | |
| block | image area to read | |
| data | buffer | |
| size | size of the buffer component |
Reimplemented from dpx::Codec.
| void dpx::RunLengthEncoding::Reset | ( | ) | [virtual] |
reset instance
Reimplemented from dpx::Codec.
U8* dpx::RunLengthEncoding::buf [protected] |
intermediate buffer
U32* dpx::Codec::scanline [protected, inherited] |
single scanline


Home
Menu
Feed-back
★彡 ρℓαиєт ριzzα 彡★
MENU
HAWAIIAN
BUFFALO
MEAT
VEGGIE
CHEESE
PEPPERONI
Order now
Order
Pizza size:
Large-1200/=
Medium-800/=
Small-500/=
Pizza Crust:
Hawaiian pizza-200/=
Buffalo pizza-300/=
Meat pizza-300/=
Veggie pizza-100/=
Cheese pizza-200/=
Pepperoni pizza-200/=
Select toppings:
Extra-cheese-50/=
Bacon-50/=
Sausage-40/=
Mushroom-50/=
Fresh-garlic-30/=
Quantity:
Order!!
Delivery


Rianne Valkenburg and Kees Dorst,
Partly harvested, Worthy.
Focuses on reflective practice, and the analysis of the activity of collaborative design teams. Offers a number of insights which could be immediately used to structure evidence gathering within collaborative firmware design.
"For team designing to be effective we rely on team members to support
each other in answering questions that arise and in picking up
lines of thought from each other to build on. This should give an added
value compared to individual designing, where the designer creates
his/her own private understanding of the design problem and the design
solution. But by introducing several designers we also introduce the
difficulties of team designing. These lie in synchronising the thoughts
and activities of the team members. Judging from team observations this
can cause serious problems for team members in interactions and
conversations and lead to misunderstanding and uncoordinated actions."
"Schon’s theory is based on a constructionist view of human perception
and
thought processes: through the execution of ‘move-testing
experiments’
(involving action and reflection), a designer is actively constructing a
view
of the world based on his/her experiences....In this paradigm, the basic
elements of design activities are actions, and
the kernel of the design ability is to make intelligent decisions about
those
actions. The results of these experimental actions are scrutinised by
the
designer, who reacts to this new state of his/her own making. The
final
design is a result of this interaction."
"The designers start by
naming
the relevant
issues in the design situation,
framing
the
problem
in a certain way,
making
moves towards a
solution, and
reflecting
on those
moves and the current frame."


SDF tops poll for trustworthiness as lawmakers and the media rank near the bottom
The Self-Defense Forces and medical institutions are the most trusted organizations in Japan according to a poll released Friday, while lawmakers were ranked at the other end of the spectrum, alongside the media and bureaucrats.
In the survey, conducted by the Jiji Press-affiliated Central Research Services Inc., respondents were asked to rank the three institutions or organizations that they wanted to see make efforts to improve public trust. Lawmakers were picked first, by 60.7 percent, leading bureaucrats by more than 50 percentage points. A total of 80.6 percent of respondents ranked lawmakers in their top three.
The nationwide survey, the 10th of its kind, was held from Oct. 4 to 14 and received valid responses from 1,204 people age 20 or older.
On a question asking respondents to evaluate the trustworthiness of institutions and organizations on a scale of one to five, with five being very trustworthy, the Self-Defense Forces were awarded the highest average, at 3.8.
Medical institutions followed with 3.7 and the police with 3.4.
Lawmakers were given the lowest average, at 2.5. Mass media and news organizations and the bureaucracy were tied at 2.6.
Asked to select two institutions or organizations that they think are closed off and slow in efforts to disclose information, 46.5 percent chose the bureaucracy and 43.5 percent selected lawmakers. The police were picked by 18.3 percent while teachers were chosen by 10 percent, up 5 points from the previous poll.
GET THE BEST OF THE JAPAN TIMES IN FIVE EASY PIECES WITH TAKE 5
JOIN THE CONVERSATION


Connected to server
×
Alert!
Please wait until some data will appear in queue.
sending
0
last 24 hours
0
last 7 days
0
last 30 days
0
last 12 months
0
Queue
History
Send SMS
Date&Time In
Date&Time Out
Sender
Receiver
Phone
Status
To do.
Sender name:
Recipient name:
Recipient phone:
Text:
Send fake SMS
Clear form


This book is licensed under a Creative Commons License.
You can buy this book as a PDF file in A4 and US Letter format or as an ePub file for eBook readers.
This book has been translated from German to English by Andreas Masur (Homepage).
This book is an introduction to the Boost C++ Libraries which complement the C++ standard by adding functions helpful in practice. As the Boost C++ Libraries are based on the C++ standard, they are implemented using state-of-the-art C++. They are platform independent and are supported on many operating systems including Windows and Linux by a large developer community.
The Boost C++ Libraries enable you to boost your productivity as a C++ developer. For example, you can benefit from smart pointers which help you to write more reliable code or use one of the many libraries to develop platform independent network applications. Since many Boost C++ Libraries are going to be incorporated into the next version of the C++ standard, you can prepare yourself starting today.
Since the Boost C++ Libraries are based on as well as extending the C++ standard, you should know the C++ standard well. You should understand and be able to use containers, iterators and algorithms and ideally should have heard of concepts such as RAII, function objects or predicates. The better you know the C++ standard, the more you are able to benefit form the Boost C++ Libraries.
Copyright © 2008-2010
Boris Schäling
Version
1.0
/
01 April 2010
http://en.highscore.de/cpp/boost/


js-hat: A Hat Interpreter in JavaScript
js-hat is an interpreter for
the Hat programming language
written in JavaScript.
Usage
Design
Tutorial


Your regular expression
/
/
Your test string
Match result
| \b | Any word boundary character | . | Any single character | (a|b) | a or b |
| \s | Any whitespace character（[ \f\n\r\t\v]） | ^ | Start of line | a? | Zero or one of a |
| \d | Any digit（[0-9]） | $ | End of line | a* | Zero or more of a |
| \D | Any non-digit（[^0-9]） | [abc] | A single character | a+ | One or more of a |
| \w | Any word character（[A-Za-z0-9_]） | [^abc] | Any single character | a{3} | Exactly 3 of a |
| \W | Any non-word character | [a-z] | Any single character in the range a-z | a{3,6} | Between 3 and 6 of a |


Political offices available
Governor/ Kigali City
Type: Local Government
Mayor/ Gasabo District
Type: Local Government
Mayor/ Kicukiro District
Type: Local Government
Head of Business
Type: Federal
Head of Agriculture
Type: Federal
Head of ICT
Type: Federal


Returns detailed metadata about the specified ACM Certificate.
See also: AWS API Documentation
describe-certificate
--certificate-arn <value>
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
The Amazon Resource Name (ARN) of the ACM Certificate. The ARN must have the following form:
arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces .
--cli-input-json (string) Performs service operation based on the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, the CLI values will override the JSON-provided values.
--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.
To retrieve the fields contained in an ACM certificate
The following describe-certificate command retrieves all of the fields for the certificate with the specified ARN:
aws acm describe-certificate --certificate-arn arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012
Output similar to the following is displayed:
{
"Certificate": {
"CertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012",
"CreatedAt":<PHONE_NUMBER>.0,
"DomainName": "www.example.com",
"DomainValidationOptions": [
{
"DomainName": "www.example.com",
"ValidationDomain": "www.example.com",
"ValidationEmails": [
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>]
},
{
"DomainName": "www.example.net",
"ValidationDomain": "www.example.net",
"ValidationEmails": [
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>]
}
],
"InUseBy": [],
"IssuedAt":<PHONE_NUMBER>.0,
"Issuer": "Amazon",
"KeyAlgorithm": "RSA-2048",
"NotAfter":<PHONE_NUMBER>.0,
"NotBefore":<PHONE_NUMBER>.0,
"Serial": "0f:ac:b0:a3:8d:ea:65:52:2d:7d:01:3a:39:36:db:d6",
"SignatureAlgorithm": "SHA256WITHRSA",
"Status": "ISSUED",
"Subject": "CN=www.example.com",
"SubjectAlternativeNames": [
"www.example.com",
"www.example.net"
]
}
}
Certificate -> (structure)
Metadata about an ACM certificate.
CertificateArn -> (string)
The Amazon Resource Name (ARN) of the certificate. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference .DomainName -> (string)
The fully qualified domain name for the certificate, such as www.example.com or example.com.SubjectAlternativeNames -> (list)
One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate. The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website.
(string)
DomainValidationOptions -> (list)
Contains information about the initial validation of each domain name that occurs as a result of the request-certificate request. This field exists only when the certificate type is AMAZON_ISSUED .
(structure)
Contains information about the validation of each domain name in the certificate.
DomainName -> (string)
A fully qualified domain name (FQDN) in the certificate. For example, www.example.com or example.com .ValidationEmails -> (list)
A list of email addresses that ACM used to send domain validation emails.
(string)
ValidationDomain -> (string)
The domain name that ACM used to send domain validation emails.ValidationStatus -> (string)
The validation status of the domain name.Serial -> (string)
The serial number of the certificate.Subject -> (string)
The name of the entity that is associated with the public key contained in the certificate.Issuer -> (string)
The name of the certificate authority that issued and signed the certificate.CreatedAt -> (timestamp)
The time at which the certificate was requested. This value exists only when the certificate type is AMAZON_ISSUED .IssuedAt -> (timestamp)
The time at which the certificate was issued. This value exists only when the certificate type is AMAZON_ISSUED .ImportedAt -> (timestamp)
The date and time at which the certificate was imported. This value exists only when the certificate type is IMPORTED .Status -> (string)
The status of the certificate.RevokedAt -> (timestamp)
The time at which the certificate was revoked. This value exists only when the certificate status is REVOKED .RevocationReason -> (string)
The reason the certificate was revoked. This value exists only when the certificate status is REVOKED .NotBefore -> (timestamp)
The time before which the certificate is not valid.NotAfter -> (timestamp)
The time after which the certificate is not valid.KeyAlgorithm -> (string)
The algorithm that was used to generate the key pair (the public and private key).SignatureAlgorithm -> (string)
The algorithm that was used to sign the certificate.InUseBy -> (list)
A list of ARNs for the AWS resources that are using the certificate. A certificate can be used by multiple AWS resources.
(string)
FailureReason -> (string)
The reason the certificate request failed. This value exists only when the certificate status is FAILED . For more information, see Certificate Request Failed in the AWS Certificate Manager User Guide .Type -> (string)
The source of the certificate. For certificates provided by ACM, this value is AMAZON_ISSUED . For certificates that you imported with import-certificate , this value is IMPORTED . ACM does not provide managed renewal for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see Importing Certificates in the AWS Certificate Manager User Guide .RenewalSummary -> (structure)
Contains information about the status of ACM's managed renewal for the certificate. This field exists only when the certificate type is AMAZON_ISSUED .
RenewalStatus -> (string)
The status of ACM's managed renewal of the certificate.DomainValidationOptions -> (list)
Contains information about the validation of each domain name in the certificate, as it pertains to ACM's managed renewal . This is different from the initial validation that occurs as a result of the request-certificate request. This field exists only when the certificate type is AMAZON_ISSUED .
(structure)
Contains information about the validation of each domain name in the certificate.
DomainName -> (string)
A fully qualified domain name (FQDN) in the certificate. For example, www.example.com or example.com .ValidationEmails -> (list)
A list of email addresses that ACM used to send domain validation emails.
(string)
ValidationDomain -> (string)
The domain name that ACM used to send domain validation emails.ValidationStatus -> (string)
The validation status of the domain name.


{% extends "base.html"%} {% load crispy_forms_tags %} {% load i18n %} {% block content%} {% block home-inner %} {% endblock home-inner %}
Already have an account? Then please Log in.
By clicking Register, you agree to terms of use and privacy policy.


Font Effect
Experiment with different font effects from Google Fonts. Find more Google font effect classes in enabling font effects (Beta).
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:900&effect=anaglyph|destruction|shadow-multiple" rel="stylesheet">
Place the above link in your document
and don't forget to append the link with your code effect such as &effect=shadow-multiple
. Effects require google fonts, and work better with heavier weights.
Create an HTML tag suitable for displaying text such as

or

, and apply a font-effect-[name]
class such as font-effect-shadow-multiple
.
font-effect-[name] experimental
Especially in technology, we need revolutionary change, not incremental change.
font-effect-anaglyph

Especially in technology, we need revolutionary change...

Especially in technology, we need revolutionary change, not incremental change.
font-effect-destruction

Especially in technology, we need revolutionary change...

Especially in technology, we need revolutionary change, not incremental change.
font-effect-shadow-multiple

Especially in technology, we need revolutionary change...


WAResultContinuation Class Reference
| Inherits from | NSObject |
| Declared in | WAResultContinuation.h |
Overview
A class that represents continuation token information used with paging Windows Azure data.
Tasks
-
nextPartitionKey
The next partition key to be returned in a subsequent query against the table.
property -
nextRowKey
The next row key to be returned in a subsequent query against the table.
property -
nextTableKey
If the list of tables returned is not complete, the name of the next table in the list.
property -
nextMarker
A value that identifies the portion of the list to be returned with the next list operation if the list returned was not complete. The marker value may then be used in a subsequent call to request the next set of list items.
property -
continuationType
The type of continuation token.
property -
hasContinuation
Determines if there is a continuation. The default is WAContinuationNone.
property -
– initWithNextParitionKey:nextRowKey:
Initializes a newly created WAResultContinuation with a parition key and row key. The continuationType will be WAContinuationEntity.
-
– initWithNextTableKey:
Initializes a newly created WAResultContinuation with a table key. The continuationType will be WAContinuationTable.
-
– initWithContainerMarker:continuationType:
Initializes a newly created WAResultContinuation with a marker and continuation type.
Properties
continuationType
The type of continuation token.
@property (nonatomic, readonly) WAContinuationType continuationType
Declared In
WAResultContinuation.h
hasContinuation
Determines if there is a continuation. The default is WAContinuationNone.
@property (nonatomic, readonly) BOOL hasContinuation
Declared In
WAResultContinuation.h
nextMarker
A value that identifies the portion of the list to be returned with the next list operation if the list returned was not complete. The marker value may then be used in a subsequent call to request the next set of list items.
@property (nonatomic, readonly) NSString *nextMarker
Declared In
WAResultContinuation.h
nextPartitionKey
The next partition key to be returned in a subsequent query against the table.
@property (nonatomic, readonly) NSString *nextPartitionKey
Declared In
WAResultContinuation.h
Instance Methods
initWithContainerMarker:continuationType:
Initializes a newly created WAResultContinuation with a marker and continuation type.
- (id)initWithContainerMarker:(NSString *)marker continuationType:(WAContinuationType)continuationType
Parameters
- marker
The marker of the next item in the list operation.
- continuationType
The type of list operation.
Return Value
The newly initialized WAResultContinuation object.
Declared In
WAResultContinuation.h
initWithNextParitionKey:nextRowKey:
Initializes a newly created WAResultContinuation with a parition key and row key. The continuationType will be WAContinuationEntity.
- (id)initWithNextParitionKey:(NSString *)nextParitionKey nextRowKey:(NSString *)nextRowKey
Parameters
- nextParitionKey
The next partition key.
- nextRowKey
The next row key.
Return Value
The newly initialized WAResultContinuation object.
Declared In
WAResultContinuation.h
initWithNextTableKey:
Initializes a newly created WAResultContinuation with a table key. The continuationType will be WAContinuationTable.
- (id)initWithNextTableKey:(NSString *)nextTableKey
Parameters
- nextTableKey
The next table key.
Return Value
The newly initialized WAResultContinuation object.
Declared In
WAResultContinuation.h


{% extends "content_template.html" %} {# Used by the content_template.html layout, prefixes the "navigation" accessible name #} {% set navigation_label_prefix = 'Using Notify' %} {% block per_page_title %} Using Notify {% endblock %} {% block content_column_content %}
This information is for teams using GOV.UK Notify to send emails, text messages and letters.
Contact us if you cannot find what you’re looking for.
The GOV.UK Service Manual has advice on:
{% endblock %}


--- layout: page title: contact ---
If you would like to find out more about my work, or are interested in arranging a workshop, training or private session, please get in touch: contactkittymay (at) gmail.com.
I'd be happy to answer questions by email, and/or provide a free consultation to discuss what I can offer you or your organisation.
To stay updated about my upcoming events and workshops, please sign up for my newsletter.


SCPTerminal
@interface SCPTerminal : NSObject
The Terminal object that is made available by the Stripe Terminal SDK exposes a generic interface for discovering readers, connecting to a reader, and creating payments.
Note: You should only initialize a Terminal once in your app. Behavior is undefined if you create multiple Terminal instances.
-
Sets the token provider for the shared (singleton) Terminal instance.
You must set a token provider before calling
shared
to initialize the Terminal singleton.Note that you may only set a token provider before requesting the shared Terminal instance for the first time. In order to switch accounts in your app, e.g. to switch between live and test Stripe API keys on your backend, refer to the documentation for the
clearCachedCredentials
method on the shared Terminal instance.See
SCPConnectionTokenProviderDeclaration
Objective-C
+ (void)setTokenProvider:(nonnull id<SCPConnectionTokenProvider>)tokenProvider;
-
Sets a block to listen for logs from the shared Terminal instance (optional).
You can use this optional method to listen for logs from the Stripe Terminal SDK and incorporate them into your own remote logs. Note that these logs are subject to change, and provided for informational and debugging purposes only. You should not depend on them for behavior in your app. Also note that the block you provide may be called from any thread.
To print internal logs from the SDK to the console, you can set logLevel to
.verbose
on the Terminal instance.Declaration
Objective-C
+ (void)setLogListener:(nonnull SCPLogListenerBlock)listener;
Swift
class func setLogListener(_ listener: @escaping LogListenerBlock)
-
Returns the shared (singleton) Terminal instance.
Before accessing the singleton for the first time, you must first call
setTokenProvider
andsetDelegate
.Declaration
Objective-C
@property (readonly, nonatomic, class) SCPTerminal *_Nonnull shared;
Swift
class var shared: Terminal { get }
-
The terminal’s delegate (optional).
Set this to handle events from the Terminal instance.
Declaration
Objective-C
@property (assign, readwrite, nonatomic, nullable) id<SCPTerminalDelegate> delegate;
-
Deprecated
terminalDelegate has been renamed to delegate
Deprecated: terminalDelegate has been renamed to delegate
Declaration
Objective-C
@property (assign, readwrite, nonatomic, nullable) id<SCPTerminalDelegate> terminalDelegate;
-
The terminal’s current connection status.
Declaration
Objective-C
@property (readonly, nonatomic) SCPConnectionStatus connectionStatus;
Swift
var connectionStatus: ConnectionStatus { get }
-
The log level for the SDK. The default value is None.
Declaration
Objective-C
@property (assign, readwrite, nonatomic) SCPLogLevel logLevel;
Swift
var logLevel: LogLevel { get set }
-
The terminal’s current payment status.
Declaration
Objective-C
@property (readonly, nonatomic) SCPPaymentStatus paymentStatus;
Swift
var paymentStatus: PaymentStatus { get }
-
Clears the current connection token, saved reader sessions, and any other cached credentials. You can use this method to switch accounts in your app, e.g. to switch between live and test Stripe API keys on your backend.
In order to switch accounts in your app:
- if a reader is connected, call
disconnect
- configure the
tokenProvider
to return connection tokens for the new account - call
clearCachedCredentials
- call
discover
andconnect
to connect to a reader. Theconnect
call will request a new connection token from your backend server via the token provider.
An overview of the lifecycle of a connection token under the hood:
- When a Terminal is initialized, the SDK attempts to proactively request a connection token from your backend server.
- When
connect
is called, the SDK uses the connection token and reader information to create a reader session. - Subsequent calls to
connect
will re-use the reader session if thisSCPTerminal
has successfully connected to the reader already. Otherwise, it will require a new connection token when you callconnect
again.
Declaration
Objective-C
- (void)clearCachedCredentials;
Swift
func clearCachedCredentials()
- if a reader is connected, call
-
Deprecated
clearConnectionToken has been renamed to clearCachedCredentials
clearConnectionToken
has been renamed toclearCachedCredentials
Declaration
Objective-C
- (void)clearConnectionToken;
Swift
func clearConnectionToken()
-
Begins discovering readers matching the given configuration.
When
discover
is called, the terminal begins scanning for readers using the settings in the given DiscoveryConfiguration. You must implementDiscoveryDelegate
to handle displaying discovery results to your user and connecting to a selected reader.The discovery process will stop on its own when the terminal successfully connects to a reader, if the command is canceled, or if a discovery error occurs.
Note that if
discoverReaders
is canceled, the completion block will be called with nil (rather than aCanceled
error).Declaration
Objective-C
- (nullable SCPCancelable *) discoverReaders:(nonnull SCPDiscoveryConfiguration *)configuration delegate:(nonnull id<SCPDiscoveryDelegate>)delegate completion:(nonnull SCPErrorCompletionBlock)completion;
Parameters
configuration
The configuration for reader discovery.
delegate
Your delegate for reader discovery.
completion
The completion block called when the command completes.
-
Attempts to connect to the given reader.
If the connect succeeds, the completion block will be called with the connected reader, and the terminal’s
connectionStatus
will change toConnected
.If the connect fails, the completion block will be called with an error.
The terminal must be actively discovering readers in order to connect to one. The discovery process will stop if this connection request succeeds, otherwise the terminal will continue discovering.
Under the hood, the SDK uses the
fetchConnectionToken
method you defined to fetch a connection token if it does not already have one. It then uses the connection token and reader information to create a reader session.Declaration
Objective-C
- (void)connectReader:(nonnull SCPReader *)reader completion:(nonnull SCPReaderCompletionBlock)completion;
Swift
func connectReader(_ reader: SCPReader, completion: @escaping ReaderCompletionBlock)
Parameters
reader
The reader to connect to. This should be a reader recently returned to the
didUpdateDiscoveredReaders:
method.completion
The completion block called when the command completes.
-
Attempts to disconnect from the currently connected reader.
If the disconnect succeeds, the completion block is called with nil. If the disconnect fails, the completion block is called with an error.
Declaration
Objective-C
- (void)disconnectReader:(nonnull SCPErrorCompletionBlock)completion;
Swift
func disconnectReader(_ completion: @escaping ErrorCompletionBlock)
Parameters
completion
The completion block called when the command completes.
-
Creates a new PaymentIntent with the given parameters.
Note: If the information required to create a PaymentIntent isn’t readily available in your app, you can create the PaymentIntent on your server and use the
retrievePaymentIntent
method to retrieve the PaymentIntent in your app.Declaration
Objective-C
- (void)createPaymentIntent:(nonnull SCPPaymentIntentParameters *)parameters completion:(nonnull SCPPaymentIntentCompletionBlock)completion;
Swift
func createPaymentIntent(_ parameters: SCPPaymentIntentParameters, completion: @escaping PaymentIntentCompletionBlock)
Parameters
parameters
The parameters for the PaymentIntent to be created.
completion
The completion block called when the command completes.
-
Retrieves a PaymentIntent with a client secret.
If the information required to create a PaymentIntent isn’t readily available in your app, you can create the PaymentIntent on your server and use this method to retrieve the PaymentIntent in your app.
Declaration
Objective-C
- (void)retrievePaymentIntent:(nonnull NSString *)clientSecret completion: (nonnull SCPPaymentIntentCompletionBlock)completion;
Swift
func retrievePaymentIntent(clientSecret: String, completion: @escaping PaymentIntentCompletionBlock)
Parameters
clientSecret
The client secret of the PaymentIntent to be retrieved.
completion
The completion block called when the command completes.
-
Collects a payment method for the given PaymentIntent.
If collecting a payment method fails, the completion block will be called with an error. After resolving the error, you may call collectPaymentMethod again to either try the same card again, or try a different card.
If collecting a payment method succeeds, the completion block will be called with a PaymentIntent with status RequiresConfirmation, indicating that you should call confirmPaymentIntent to finish the payment.
Note that if
collectPaymentMethod
is canceled, the completion block will be called with aCanceled
error.Declaration
Objective-C
- (nullable SCPCancelable *) collectPaymentMethod:(nonnull SCPPaymentIntent *)paymentIntent delegate:(nonnull id<SCPReaderInputDelegate>)delegate completion:(nonnull SCPPaymentIntentCompletionBlock)completion;
Swift
func collectPaymentMethod(_ paymentIntent: SCPPaymentIntent, delegate: ReaderInputDelegate, completion: @escaping PaymentIntentCompletionBlock) -> SCPCancelable?
Parameters
paymentIntent
The PaymentIntent to collect a payment method for.
delegate
Your delegate for handling reader input events.
completion
The completion block called when the command completes.
-
Confirms a PaymentIntent. Call this immediately after receiving a PaymentIntent from collectPaymentMethod.
When confirming a PaymentIntent fails, the SDK returns an error that includes the updated PaymentIntent. Your app should inspect the updated PaymentIntent to decide how to retry the payment.
If the updated PaymentIntent is
nil
, the request to Stripe’s servers timed out and the PaymentIntent’s status is unknown. We recommend that you retry confirming the original PaymentIntent. If you instead choose to abandon the original PaymentIntent and create a new one, do not to capture the original PaymentIntent. If you do, you might charge your customer twice.If the updated PaymentIntent’s status is still
requires_confirmation
(e.g., the request failed because your app is not connected to the internet), you can callconfirmPaymentIntent
again with the updated PaymentIntent to retry the request.If the updated PaymentIntent’s status changes to
requires_source
(e.g., the request failed because the card was declined), callcollectPaymentMethod
with the updated PaymentIntent to try charging another card.If confirming the PaymentIntent succeeds, the completion block will be called with a PaymentIntent object with status RequiresCapture,
Stripe Terminal uses two-step card payments to prevent unintended and duplicate payments. When the SDK returns a confirmed PaymentIntent to your app, a charge has been authorized but not yet settled, or captured. On your backend, capture the confirmed PaymentIntent.
Declaration
Objective-C
- (void)confirmPaymentIntent:(nonnull SCPPaymentIntent *)paymentIntent completion:(nonnull SCPConfirmPaymentIntentCompletionBlock) completion;
Swift
func confirmPaymentIntent(_ paymentIntent: SCPPaymentIntent, completion: @escaping ConfirmPaymentIntentCompletionBlock)
Parameters
paymentIntent
The PaymentIntent to confirm.
completion
The completion block called when the confirm completes.
-
Cancels a PaymentIntent.
If the cancel request succeeds, the completion block will be called with the updated PaymentIntent object with status Canceled. If the cancel request fails, the completion block will be called with an error.
Declaration
Objective-C
- (void)cancelPaymentIntent:(nonnull SCPPaymentIntent *)paymentIntent completion:(nonnull SCPPaymentIntentCompletionBlock)completion;
Swift
func cancelPaymentIntent(_ paymentIntent: SCPPaymentIntent, completion: @escaping PaymentIntentCompletionBlock)
Parameters
paymentIntent
The PaymentIntent to cancel.
completion
The completion block called when the cancel completes.
-
Reads a payment method with the given parameters and returns a source.
NOTE: Most integrations should **not use
readSource
.**You should create a
PaymentIntent
and use the associatedcollectPaymentMethod
andconfirmPaymentIntent
methods if you are simply collecting a payment from a customer.You can use
readSource
to read payment details and defer payment for later. To do this, you will need to turn thecard present
source into acard not present
source, which you can use to charge the customer online.Note that if you use this method to defer a payment, the transaction will not receive the beneficial rates and liability shift associated with card present transactions.
If reading a source fails, the completion block will be called with an error containing details about the failure. If reading a source succeeds, the completion block will be called with a
CardPresentSource
. You should send the ID of the source to your backend for further processing. For example, you can use source’s fingerprint to look up a charge created using the same card.Declaration
Objective-C
- (nullable SCPCancelable *) readSource:(nonnull SCPReadSourceParameters *)parameters delegate:(nonnull id<SCPReaderInputDelegate>)delegate completion:(nonnull SCPCardPresentSourceCompletionBlock)completion;
Swift
func readSource(_ parameters: SCPReadSourceParameters, delegate: ReaderInputDelegate, completion: @escaping CardPresentSourceCompletionBlock) -> SCPCancelable?
Parameters
parameters
The parameters for reading the source.
delegate
Your delegate for handling reader input events.
completion
The completion block called when the command completes.
-
Checks for a reader software update, and prompts your app to begin installing the update if one is available.
If an update is available, the completion block will be called with nil, indicating that checking for a software update succeeded. Your delegate’s
readerSoftwareUpdateAvailable:
method will be called, and you will have the opportunity to notify your user, and then begin or cancel the update.If an error occurs checking for an update (e.g. because no software update is available), the completion block will be called with an error.
You must implement the ability to update your reader’s software in your app. Though we expect required software updates to be very rare, by using Stripe Terminal, you are obligated to include this functionality.
Declaration
Objective-C
- (nullable SCPCancelable *) checkForReaderSoftwareUpdate: (nonnull id<SCPReaderSoftwareUpdateDelegate>)delegate completion:(nonnull SCPErrorCompletionBlock)completion;
Parameters
delegate
Your delegate for handling update events.
completion
The completion block called when checking for an update completes.
-
Returns an unlocalized string for the given reader input options, e.g.
Swipe / Insert
Declaration
Objective-C
+ (nonnull NSString *)stringFromReaderInputOptions: (SCPReaderInputOptions)options;
Swift
class func stringFromReaderInputOptions(_ options: ReaderInputOptions = []) -> String
-
Returns an unlocalized string for the given reader input prompt, e.g.
Retry Card
Declaration
Objective-C
+ (nonnull NSString *)stringFromReaderInputPrompt:(SCPReaderInputPrompt)prompt;
Swift
class func stringFromReaderInputPrompt(_ prompt: ReaderInputPrompt) -> String
-
Returns an unlocalized string for the given reader event, e.g.
Card Inserted
Declaration
Objective-C
+ (nonnull NSString *)stringFromReaderEvent:(SCPReaderEvent)event;
Swift
class func stringFromReaderEvent(_ event: ReaderEvent) -> String
-
Returns an unlocalized string for the given connection status, e.g.
Connecting
Declaration
Objective-C
+ (nonnull NSString *)stringFromConnectionStatus:(SCPConnectionStatus)status;
Swift
class func stringFromConnectionStatus(_ status: ConnectionStatus) -> String
-
Returns an unlocalized string for the given payment status, e.g.
Not Ready
Declaration
Objective-C
+ (nonnull NSString *)stringFromPaymentStatus:(SCPPaymentStatus)status;
Swift
class func stringFromPaymentStatus(_ status: PaymentStatus) -> String
-
Returns an unlocalized string for the given device type.
Declaration
Objective-C
+ (nonnull NSString *)stringFromDeviceType:(SCPDeviceType)deviceType;
Swift
class func stringFromDeviceType(_ deviceType: DeviceType) -> String
-
Returns an unlocalized string for the given discovery method.
Declaration
Objective-C
+ (nonnull NSString *)stringFromDiscoveryMethod:(SCPDiscoveryMethod)method;
Swift
class func stringFromDiscoveryMethod(_ method: DiscoveryMethod) -> String
-
Unavailable
Use
initWithConfiguration:tokenProvider:delegate:
Declaration
Objective-C
- (nonnull instancetype)init;
-
Unavailable
Use
initWithConfiguration:tokenProvider:delegate:
Declaration
Objective-C
- (nonnull instancetype) new;


Ready to connect...
Note: When connected to the default server (i.e. the server in the address bar ;)), the message "ServerClose" will cause the server to close the connection. Similarly, the message "ServerAbort" will cause the server to forcibly terminate the connection without a closing handshake
| From | To | Data |


Recently added
Science fiction
Satire
Action and Adventure
Drama
Romance
Mystery
Horror
Self help
Health
Guide
Others


[§195D-4.5] Taking a monk seal prohibited. (a) A person commits the offense of taking a monk seal if the person intentionally or knowingly takes a Hawaiian monk seal (Monachus schauinslandi).
(b) Any person convicted of taking a monk seal shall be guilty of a class C felony; provided that in addition to any other sentence, the environmental court may impose a fine up to $50,000. [L 2010, c 165, §2; am L 2014, c 218, §8]


Composite types, domains and types not listed here are currently returned as NSData. Array types are returned as NSArrays of the respective type or NSArrays of NSData objects.
| PostgreSQL type | Cocoa type |
|---|---|
| aclitem | (A private class) |
| bigint, bigserial | NSNumber |
| bit | NSString |
| boolean | NSNumber |
| bytea | NSData |
| char, bpchar | NSString |
| date | NSDate |
| decimal, numeric | NSDecimalNumber |
| double precision | NSNumber |
| int2vector | NSArray of NSNumbers |
| integer, serial | NSNumber |
| name | NSString |
| oid | NSNumber |
| point | NSValue |
| real | NSNumber |
| smallint | NSNumber |
| text | NSString |
| time | NSDate |
| time with time zone | NSDate |
| timestamp | NSDate |
| timestamp with time zone | NSDate |
| varbit | NSString |
| varchar | NSString |
| uuid | NSString |
| xml | NSData or NSXMLDocument |
When NSStrings are passed to the database, they are normalized to Unicode NFD. In case the database's encoding isn't Unicode (UTF-8), PostgreSQL will handle the conversion.
Even if the database's encoding is Unicode, PostgreSQL compares bytes, not Unicode characters, in strings as of version 8.3. Thus, comparison within the database could fail when done with non-normalized strings or strings in NFC.
Cocoa's and Core Foundation's date classes store the date as seconds from a reference date, 2001-01-01 00:00:00 UTC. SQL times and timestamps, on the other hand, might have an associated time zone specified as an offset to GMT. In PostgreSQL 8.3, removing the time zone information by casting truncates the value. Casting a time or a timestamp lacking a time zone assigns the current time zone to it instead of converting.
BaseTen does several things to cope with this:
Therefore, NSDates received from the server should in fact contain the offset from their point in time to the reference date. To ease handling, the date is set to 2001-01-01 in case of time types. This allows -[NSDate timeIntervalSinceReferenceDate] to return the time's difference to midnight in seconds.
NSDates are converted to their date representation using NSCalendar and its underlying ICU library. ICU specifies a single cut-over date for the switch from Julian to Gregorian calendar, which is 1582-10-04. (It isn't currently possible to specify a different cut-over date to NSCalendar.) NSDates before this point will be converted to Julian calendar dates. The rationale for this is that timestamps can't be passed directly to PostgreSQL, and NSCalendar seems to be the best option for representing timestamps as dates. PostgreSQL, on the other hand, uses Julian days (number of days since January 1, 4713 BCE with fraction, length of the year specified as 365.2425 days) for date calculations, and most likely converts them to Gregorian calendar dates for presentation. Thus, your mileage may vary when calculating dates within the database.
PostgreSQL's xml data type handles both XML documents and content fragments. BaseTen creates NSData objects from them by default, but if the table also has a constraint like CHECK (xml_column IS DOCUMENT), NSXMLDocuments will be created instead. The constraint mustn't contain any other conditions, but there may be additional CHECK constraints.
In case of BaseTen-enabled tables, column contents are compared on update to determine, which columns did actually change. Thus, any custom base data types (created with CREATE TYPE) used in these tables need to have the equality operator =. Currently, the operator needs to be accessible using the default search path. In case the custom type is such that the concept of equality doesn't apply, the operator may always return false. In this case the value for the column will always be fetched when the corresponding row changes.
BaseTen provides custom equality operators for PostgreSQL's geometric types, for which the default equality operator would only compare equal areas.


{% extends 'base.html' %} {% block extra_head %} {% end %} {% block content %}
Hi {{ current_user }},
Welcome to the after party. You'll find spectator gaming for adults here. We're giving you 5,000 draft points to play with just for signing up. We're going to start tracking your League of Legends game stats and award you with additional draft points as you win more League matches now. The best way to make more draft points is to win with wagers on games.
Yours Truly,
Mocha Dick
Wager your draft points as you like on the team you think will win based on the champion picks. Rack up some draft points and unlock the ability to start making wagers on professional tournament games for greater rewards. Know some good players? Save enough draft points to purchase career contracts on some of them and you'll earn draft points everytime they win.


notes
About
Contact
Nov 5, 2014
ROLC techarts
Nov 4, 2014
(field 1)
Nov 4, 2014
(field 1)
Nov 4, 2014
‘Teenage Mutant Ninja Turtles’ Review: Not the Travesty Some Feared | Variety
Nov 3, 2014
Staff 2014-11-03
Nov 3, 2014
Staff 2014-11-03
Nov 3, 2014
Did You Know - Campaign
Nov 3, 2014
(field 1)
Oct 29, 2014
Creating Apple Store iOS App Previews using Final Cut Pro X feedly
Oct 29, 2014
Potential Changes in Proposed Media Services Changeover
Newer
Older


The Dude Abides!
Lebowski ipsum. The Dude abides. And so, Theodore Donald Karabotsos, in accordance with what we think your dying wishes might well have been, we commit your mortal remains to the bosom of the Pacific Ocean, which you loved so well. Yeah man. Call the medics, Dude. HERE'S WHAT HAPPENS, LARRY! No, the, uh, police chief of Malibu. A real reactionary.
LOGJAMMIN'. You're going to enter a world of pain, son. We know that this is your homework. We know you stole a car. How come you don't roll on Saturday, Walter? Thankie… Just one thing, Dude. D'ya have to use s'many cuss words? This kid is in the ninth grade, Dude, and his father is—are you ready for this? —Arthur Digby Sellers.
Since you have failed to achieve, even in the modest task that was your charge, since you have stolen my money, and since you have unrepentantly betrayed my trust. Ja, vee could really do it, Lebowski. Your "revolution" is over, Mr. Lebowski! Condolences! The bums lost! I don't see any connection to Vietnam, Walter. Uh, yeah. Probably a vagrant, slept in the car.
No ma'am, I didn't mean to give the impression that we're police exactly. We're hoping that it will not be necessary to call the police. D'ya have a good sarsaparilla? Walter, this isn't a First Amendment thing. I like your style, Dude. Dieter doesn't care about anything. He's a nihilist. Hey! This is a private residence, man!
Vee belief in nossing, Lebowski! That is our most modestly priced receptacle. Hardly Dude, a new 'vette? The kid's still got, oh, 96 to 97 thousand, depending on the options. I'm unemployed. He lives in North Hollywood on Radford, near the In-and-Out Burger. Fine, Dude. As if it's impossible to get some nail polish, apply it to someone else's toe.
These men are nihilists, Donny, nothing to be afraid of. Near the In-and-Out Burger. WE HAVE BUNNY. GATHER ONE MILLION DOLLARS IN UNMARKED NON-CONSECUTIVE TWENTIES. AWAIT INSTRUCTIONS. NO FUNNY STUFF.  They're nihilists. Hey, relax man, I'm a brother shamus.
Our basic freedoms. Ja, it seems you forgot our little deal, Lebowski. If the plan gets too complex something always goes wrong. If there's one thing I learned in Nam—. Over the line! And let me tell you something: I dig your work. Playing one side against the other —in bed with everybody— fabulous stuff, man. You know, little of this, little of that.
Sure you'll see some tank battles. But fighting in desert is very different from fighting in canopy jungle. Would it be possible for me to get my twenty grand in cash? I gotta check this with my accountant of course. Is this your homework, Larry? I'll get you a toe by this afternoon —with nail polish. Another Caucasian, Gary. Ever hear of the Seattle Seven? Sir, this is a mortuary, not a rental house.


WQMY
FORGED BRASS & STEEL FITTINGS "NPT" and ... - ITE-Tools.com
These FLARE SAE 45° fittings may be used with copper, brass, aluminium, steel . MALE FLARE x MALE NPT PIPE ADAPTER . REDUCING FLARE UNION .
http://www.ite-tools.com/uploads/English/ITE_Forged_brass_steel%20fittings.pdf
| longitude latitude maps for teachers/star tribune interview skills behavior questions/ hotel review hilton garden inn norman |
|
|---|---|
| best supercharger for ls1 f-body | Williamsport |
| Branding | MyNetworkTV copper x male npt adapter union |
| human remains found in ny | rice tree service maine: 29 (stroke in the ear) & bankruptcy david hunt jersey new-DT 45.3 (UHF) |
| on line refrigeration supplies | see article |
| Owner | New Age Media, LLC COPPER PRESSURE FITTINGS - Argco |
| First air date | December 30, 1988 |
| aromatic bitters not available | MYNetworkTV |
| free bb screen lock | WOLF-TV, director and zombie movie |
| e-machine t2824 motherboard fuse location | WILF (1988-2006) |
| Former channel number(s) | EATON Hose Adapter, Male NPT to Male JIC, Elbow - Hydraulic ... |
| last minute valentine's day gifts | oreo and black stools (1988-1998) marc's cafe coffee mill / pantiless pictures of britany spears (1998-2006) |
| muscle cars 1972 dodge challenger | 50 rcbs no 14 rotor 420 kW (WOLF-DT3) |
| head and tail game free strategy | 243 m 488 m (WOLF-DT3) |
| elders of eastern kalimdor | 52075 73375 (WOLF-DT3) |
| Transmitter coordinates | animals per acre rules in texas classifieds for old tractors new york (WOLF-DT3) |
Copper x Male Adapters - PexSupply.com
47 products . Copper Pipe Fittings - Copper Fittings - Copper Male Adapters.
http://www.pexsupply.com/Copper-x-Male-Adapters-138000
Copper Fittings - Fittings - Grainger Industrial Supply
595 Products . 90 Degrees Union Elbow (2) . 5/8 In., Connection C x C, Material of Construction Wrot Copper . Adapter,CxMNPT,Wrot Cu,3/4 In,7/8 In OD .
http://www.grainger.com/Grainger/copper-fittings/fittings/plumbing/ecatalog/N-bm1
Contents |
[clanton malphus hodges vet] History
Brass Pipe Fittings - Fittings - Grainger Industrial Supply
1567 Products . 1-1/2" Male NPT x 1-1/2" Male NST (1) . Reducer Adapter (6) .
http://www.grainger.com/Grainger/brass-pipe-fittings/fittings/plumbing/ecatalog/N-by2
MUELLER INDUSTRIES Adapter, Male Solder to MNPT, Pipe 3/4 In ...
Shop for MUELLER INDUSTRIES Adapter, Male Solder to MNPT, Pipe 3/4 In, # 5UGC7 at Grainger. Over 900000 . 7/8 In., Connection FTG x MNPT, Material of Construction Wrot Copper, Temp. Range -20 to . View Larger. Adapter, CxMNPT , Wrot Cu, 3/4 In, 7/8 In OD . Union, C x C Connection, 1 In, Wrot Copper. Brand: .
http://www.grainger.com/Grainger/MUELLER-INDUSTRIES-Adapter-5UGC7
Npt Male Adapter - Alibaba.com
1538 Products . Npt Male Adapter, Source Npt Male Adapter Products at Pipe .
http://www.alibaba.com/showroom/npt-male-adapter.html
COPPER FITTINGS - PlumbMaster
1. 2". #606-2 Wrot 45? Street Elbows. FTG x C. USA. Pkg. Import Pkg. Cat. No. Qty . Cat. No. Qty. Size. 97988. 50 . #604-R Wrot Male Reducing Adapters. C x MPT. USA . 2" x 1-1/2". #633W Wrot Unions. C x C . MPT - Male NPT Threads ?
http://www.plumbmaster.com/products/copper-fittings.pdf
LARGE SELECTION OF COPPER FITTINGS - PlumbingSupply.com®
Copper plumbing fittings brought to you by famous .
http://www.plumbingsupply.com/copper.html
View All Parts
The GRINNELL G-PRESS Copper Fittings provide a complete line of mechanically . (Press x Female NPT) . 6638: Reducing Adapter . (Press x Male NPT) .
http://grinnell.com/index.php?section=Copper_G-PRESS
PUREFLOW Adapter, Press, PEX x Copper, 3/4 x 1/2 In - Bronze ...
Shop for PUREFLOW Adapter, Press, PEX x Copper, 3/4 x 1/2 In, #1WPY7 at Grainger. Over 900000 MRO . Male Connector, 1/4 In OD, 290 PSI, PK 10. Brand: LEGRIS . Union, 2 In, NPT, Galvanized Malleable Iron. Brand: APPROVED .
http://www.grainger.com/Grainger/PUREFLOW-Press-Adapter-1WPY7
Weld x Male NPT Adapter - Smith-Cooper International
304 Stainless Steel Sanitary Weld x Male NPT Adapter. Product Code: S7719WB4010. More info>. Catalogs & Price Sheets >. Catalogs. SCI Stainless Catalog .
http://www.smithcooper.com/catalogue/group/2788/nameblock/Weld-x-Male-NPT-Adapter
WPEX FITTINGS - Boston Metal Products
1/2 x 3/4 NPT. 1404064. 3/4 x 1/2 NPT. 1404066. 3/4 x 3/4. 1404076. 1 x 3/4 NPT . 1404077 . MALE NPT ADAPTER. ELBOW . BLACK COPPER CRIMP RING .
http://www.bostonvalve.com/pdf/wpex_fit%20p1&2.pdf
Brass Fittings, Valves, Brass Nipples, Disposable Cylinder Adapter ...
3/8" Female SAE Gas Flare x 1/4" Male NPT Adapter, Wt. 1.5 oz., Free Shipping . 1/2" Swivel SAE Gas Flare Swivel Coupling Union, Wt. 2.8 oz., Free Shipping, 34-8 . It is a sensitive, accurate test gauge, fabricated with a beryllium copper .
http://www.tejassmokers.com/products/brassfittings.htm
Below $20 - Search Results - Valley Hydraulic Service, Inc.
25 products. Compression - Unions (8 products found); DOT Air Brake for Copper - 45 degree Male . (2 products found); Rubber Air Brake - Male Hose End.(body only ) (2 products . Female SAE Flare Adapter- 3/8 Flare x 1/4" Male Npt.
http://www.valleyhydraulic.com/store/pc/showsearchresults.asp?priceFrom=0&priceUntil=20
[chemical structure of germanium] Digital channels
| Channel | Name | zip code ook up | bt yahoo premium mail | Programming |
|---|---|---|---|---|
| 53.1 | copper x male npt adapter union DT | apartment guide toledo ohio | winnipeg free press birth announcements | Main copper x male npt adapter union programming / MyNetworkTV |
| 53.2 | WOLF DT | bsa and video games | web page file tree | Simulcast of trnsmission adpaters for plymouth 218 motor |
| 53.3 | WSWB DT | 480i | 4:3 | Simulcast of boy haircut styles for 2008 |
Cajon® VCR® Fittings
204º C with copper gaskets). Compatible with . Female Union. ? Male Tee. Unions. ? Male Cross. Unions. Description . Swagelok to Male NPT Adapters .
http://www.lesker.com/newweb/flanges/pdf/kjlced09_sec01_pages154-158_cajon&swagelokfittings.pdf
[quiet life blog grey haze] References
[china's electric car 2007] External links
- intel's matrix storage technology
- chirurgie paupi res paris
- some el prado hangings
- ireland automatic doors service
- what wrong me tired irritable
- camera cannon digital lens
|
|


This is an interlude from my series TensorFlow From The Ground Up.
In a previous post, Learning to Add I showed simple code to run & train a neural network. That code example trains “one example at a time”. This is generally not how you implement a typical large ML training system.
Its much more typical to train in batches. Batches are a way to pass a medium to large collection of training examples to our network, run the expensive calculations just once on the entire batch, then update the gradients and train on the next batch. Because everything in TensorFlow is a tensor (a multi-dimensional array), the process of batching is nothing more than adding an extra dimension to all the tensors used in the system. In fact, there are several parts of TensorFlow that assume that the first dimension of a tensor is the size of a batch. Here is an example using an unknown batch size:
import tensorflow as tf
# This declares a batch of unknown size, of tensors of size 4.
ins = tf.placeholder(dtype=tf.float32, shape=(None, 4))
# Our weights and biases are declared as usual. The batch size does
# not effect their declaration.
w = tf.Variable(
expected_shape=(4, 3), dtype=tf.float32,
initial_value=tf.ones(shape=(4, 3)))
b = tf.Variable(
expected_shape=(3,), dtype=tf.float32,
initial_value=tf.ones(shape=(3,)))
# We compute "out = ins * w + b" without worrying what the first dimension of
# these tensors are.
out = tf.add(tf.matmul(ins, w), b)
# When we print the shape of the final output, it has an unknown
# size for the first dimension as well.
print "Shape of intermediate =", out.get_shape()
Shape of intermediate = (?, 3)
Additional benefits of batching
Batching our training data can actually make training faster as well, and not just because the computation is more efficient. Remember that we’re training via GradientDescent (and similar algorithms). These algorithms look at the current set of inputs, and decide how to tweak internally stored parameters to minimize the loss function.
But, there are lots of cases where optimizing one training example has the opposite effect on other training examples. These examples can tend to “See-saw” back and forth between two not very optimial sets of parameters during training. You can think of each example as pulling the parameters in opposite directions.
When we batch, we give multiple training examples to the optimizer. If two examples pull parmeters in opposite directions, then they will end up cancelling each other out, and other solutions will be tried.
There are several library functions within TensorFlow itself to facilitate batching, but here, I’m going to be doing the work myself, to make it more clear how batching really works.
Examples
The example that I’m going to use an example is a 4-bit parity problem. My input is going to be a Tensor of shape (4), with each value being either 0.0 or 1.0. Expressed as a mathematical function, what I’d like to compute is:
The network we’ll use will be a one-layer network with 16 nodes in the middle layer.
So, here we go:
import tensorflow as tf
import random
inputs = tf.placeholder(shape=(4,), dtype=tf.float32, name='y')
expected = tf.placeholder(shape=(1,), dtype=tf.float32, name='expected')
# We are constructing a middle layer of 2 perceptron nodes. Weights and biases
# are our w_i and v_i from the above equations.
input_weight = tf.Variable(expected_shape=(4, 16),
initial_value=tf.truncated_normal((4, 16), mean=0, stddev=0.1))
input_bias = tf.Variable(expected_shape=(1, 16),
initial_value=tf.truncated_normal((1, 16), mean=0, stddev=0.1))
mid_layer = tf.nn.sigmoid(tf.add(tf.matmul(inputs, input_weight), input_bias))
out_weight = tf.Variable(expected_shape=(16, 1),
initial_value=tf.truncated_normal((16, 1), mean=0, stddev=0.1))
out_bias = tf.Variable(expected_shape=(1, 1),
initial_value=tf.truncated_normal((1, 1), mean=0, stddev=0.1))
# Perceptron formula again, and the squeeze to get a single value.
output = tf.squeeze(tf.add(tf.matmul(mid_layer, out_weight), out_bias))
# Our error function is computed as "Squared Difference" between the computed output
# and the expected value.
loss = tf.pow(output - expected, 2)
# Learning rate and optimizer similar to our previous examples.
learning_rate = 0.001
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss)
def f(x,y): return x + y
with tf.Session() as sess:
sess.run([tf.local_variables_initializer(),
tf.global_variables_initializer()])
# Training:
#
# Iterate many times with random inputs to "learn" the parameters
# stored in input_wegiht, input_bias, out_weight, out_bias Variables above.
# For this example, we only pass in **even** numbers in the range [0,20]
#
# We will use odd values during our validation phase below to ensure that
# we never validate on any of the inputs that were in the training set.
print "TRAIN"
train_iterations = 10000
for i in xrange(train_iterations):
ix = [random.randrange(0, 10) * 2,]
iy = [random.randrange(0, 10) * 2,]
e = [f(ix[0],iy[0]),]
_, l = sess.run([optimizer, loss], feed_dict={x:ix, y:iy, expected:e})
if i % 1000 == 0:
print "i=",i," loss=", l
# Once we have learned the parameters, we can validate by passing inputs
# never seen before. For this case, we expand the range of our inputs
# to include all odd numbers in the range [-40,40].
print "VALIDATE"
validate_iterations = 10
for i in xrange(validate_iterations):
ix = [random.randrange(-20, 20) * 2 + 1,]
iy = [random.randrange(-20, 20) * 2 + 1,]
e = [f(ix[0], iy[0]),]
out, l = sess.run([output, loss], feed_dict={x:ix, y:iy, expected:e})
print "x=",ix[0], " y=",iy[0], " out=", out, " loss=", l
# Print out the computed weights and bisaes for inspection.
print sess.run([input_weight, input_bias, out_weight, out_bias])
TRAIN
i= 0 loss= [<PHONE_NUMBER>2]
i= 1000 loss= [ 0.00222525]
i= 2000 loss= [ 9.52743212e-05]
i= 3000 loss= [ 7.60952462e-05]
i= 4000 loss= [ 2.87974472e-05]
i= 5000 loss= [ 2.28197314e-06]
i= 6000 loss= [ 6.43522071e-08]
i= 7000 loss= [ 3.78495315e-08]
i= 8000 loss= [ 1.07751148e-05]
i= 9000 loss= [ 5.25324140e-09]
VALIDATE
x= -15 y= 29 out= 14.0 loss= [ 1.78260962e-10]
x= -19 y= -11 out= -29.9999 loss= [ 1.88592821e-08]
x= 7 y= 9 out= 16.0 loss= [ 0.]
x= 3 y= 9 out= 12.0 loss= [ 9.09494702e-11]
x= -1 y= -35 out= -35.9998 loss= [ 2.94676283e-08]
x= 21 y= -13 out= 8.00004 loss= [ 1.60434865e-09]
x= -39 y= 7 out= -31.9999 loss= [ 1.63308869e-08]
x= -3 y= 17 out= 14.0 loss= [ 3.63797881e-12]
x= 21 y= 29 out= 49.9999 loss= [ 1.14087015e-08]
x= -33 y= 3 out= -29.9999 loss= [ 1.53704605e-08]
[array([[-0.73145592, 0.41055757],
[-0.71037835, 0.44684216]], dtype=float32), array([[ 0.12508716, 0.19557403]], dtype=float32), array([[-1.03099132],
[ 0.59887499]], dtype=float32), array([[ 0.01188867]], dtype=float32)]
You should play with this code a little bit.
Here’s a collection of random ideas for how to play around with the code example above and gain some insights:
- Modify the “f()” function to try other linear combinations of x & y. Can it learn \(x-y\)? Can it learn \(0.5x + 0.75y - 0.33\)?
- Modify the size of the middle layer. We use 2 middle layer nodes. What if you use 200? How does that impact learning rate?
- Modify the size of the middle layer, and have it try to learn something “Hard” like \(x\cdot y\). Did it work? Do you have any thoughts about why or why not?


--- layout: bootstrap ---
Here are all of the jobs that have been posted to our board. To submit a job to the board, contact us via email.


Class WTProfile
Inheritance
System.Object
WTProfile
Implements
System.ComponentModel.INotifyPropertyChanged
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Assembly: Hypar.Elements.dll
Syntax
public class WTProfile : ParametricProfile, INotifyPropertyChanged, IEquatable<Profile>
Constructors
WTProfile()
Declaration
WTProfile(Polygon, IList<Polygon>, Guid, String)
Declaration
[JsonConstructor]
public WTProfile(Polygon perimeter, IList<Polygon> voids, Guid id = default(Guid), string name = null)
Parameters
| Type |
Name |
Description |
| Polygon |
perimeter |
|
| System.Collections.Generic.IList<Polygon> |
voids |
|
| System.Guid |
id |
|
| System.String |
name |
|
Fields
A
Declaration
Field Value
| Type |
Description |
| System.Double |
|
bf
Declaration
Field Value
| Type |
Description |
| System.Double |
|
bf_2tf
Declaration
Field Value
| Type |
Description |
| System.Double |
|
bfdet
Declaration
Field Value
| Type |
Description |
| System.Double |
|
Cw
Declaration
Field Value
| Type |
Description |
| System.Double |
|
d
Declaration
Field Value
| Type |
Description |
| System.Double |
|
D_t
Declaration
Field Value
| Type |
Description |
| System.Double |
|
ddet
Declaration
Field Value
| Type |
Description |
| System.Double |
|
H
Declaration
Field Value
| Type |
Description |
| System.Double |
|
Ix
Declaration
Field Value
| Type |
Description |
| System.Double |
|
Iy
Declaration
Field Value
| Type |
Description |
| System.Double |
|
J
Declaration
Field Value
| Type |
Description |
| System.Double |
|
kdes
Declaration
Field Value
| Type |
Description |
| System.Double |
|
kdet
Declaration
Field Value
| Type |
Description |
| System.Double |
|
PA
Declaration
Field Value
| Type |
Description |
| System.Double |
|
PB
Declaration
Field Value
| Type |
Description |
| System.Double |
|
PC
Declaration
Field Value
| Type |
Description |
| System.Double |
|
PD
Declaration
Field Value
| Type |
Description |
| System.Double |
|
ro
Declaration
Field Value
| Type |
Description |
| System.Double |
|
rx
Declaration
Field Value
| Type |
Description |
| System.Double |
|
ry
Declaration
Field Value
| Type |
Description |
| System.Double |
|
Sx
Declaration
Field Value
| Type |
Description |
| System.Double |
|
Sy
Declaration
Field Value
| Type |
Description |
| System.Double |
|
tf
Declaration
Field Value
| Type |
Description |
| System.Double |
|
tfdet
Declaration
Field Value
| Type |
Description |
| System.Double |
|
tw
Declaration
Field Value
| Type |
Description |
| System.Double |
|
twdet
Declaration
Field Value
| Type |
Description |
| System.Double |
|
twdet_2
Declaration
Field Value
| Type |
Description |
| System.Double |
|
W
Declaration
Field Value
| Type |
Description |
| System.Double |
|
WGi
Declaration
Field Value
| Type |
Description |
| System.Double |
|
y
Declaration
Field Value
| Type |
Description |
| System.Double |
|
yp
Declaration
Field Value
| Type |
Description |
| System.Double |
|
Zx
Declaration
Field Value
| Type |
Description |
| System.Double |
|
Zy
Declaration
Field Value
| Type |
Description |
| System.Double |
|
Implements
System.ComponentModel.INotifyPropertyChanged
System.IEquatable<T>
Extension Methods


Class hscstudio\heart\helpers\DateTimeCompareValidator
| Inheritance | hscstudio\heart\helpers\DateTimeCompareValidator » yii\validators\Validator |
|---|---|
| Available since version | 2.0 |
CompareValidator compares the specified attribute value with another value.
The value being compared with can be another attribute value (specified via $compareAttribute) or a constant (specified via $compareValue. When both are specified, the latter takes precedence. If neither is specified, the attribute will be compared with another attribute whose name is by appending "_repeat" to the source attribute name.
CompareValidator supports different comparison operators, specified via the $operator property.
Public Properties
| Property | Type | Description | Defined By |
|---|---|---|---|
| $compareAttribute | string | The name of the attribute to be compared with. | hscstudio\heart\helpers\DateTimeCompareValidator |
| $compareValue | mixed | The constant value to be compared with. | hscstudio\heart\helpers\DateTimeCompareValidator |
| $message | string | The user-defined error message. | hscstudio\heart\helpers\DateTimeCompareValidator |
| $operator | string | The operator for comparison. | hscstudio\heart\helpers\DateTimeCompareValidator |
Public Methods
| Method | Description | Defined By |
|---|---|---|
| init() | hscstudio\heart\helpers\DateTimeCompareValidator | |
| validateAttribute() | hscstudio\heart\helpers\DateTimeCompareValidator |
Protected Methods
| Method | Description | Defined By |
|---|---|---|
| compareValues() | Compares two values with the specified operator. | hscstudio\heart\helpers\DateTimeCompareValidator |
Property Details
The name of the attribute to be compared with. When both this property and $compareValue are set, the latter takes precedence. If neither is set, it assumes the comparison is against another attribute whose name is formed by appending '_repeat' to the attribute being validated. For example, if 'password' is being validated, then the attribute to be compared would be 'password_repeat'.
See also $compareValue.
The constant value to be compared with. When both this property and $compareAttribute are set, this property takes precedence.
See also $compareAttribute.
The user-defined error message. It may contain the following placeholders which will be replaced accordingly by the validator:
{attribute}
: the label of the attribute being validated{value}
: the value of the attribute being validated{compareValue}
: the value or the attribute label to be compared with{compareAttribute}
: the label of the attribute to be compared with
The operator for comparison. The following operators are supported:
==
: check if two values are equal. The comparison is done is non-strict mode.===
: check if two values are equal. The comparison is done is strict mode.!=
: check if two values are NOT equal. The comparison is done is non-strict mode.!==
: check if two values are NOT equal. The comparison is done is strict mode.>
: check if value being validated is greater than the value being compared with.>=
: check if value being validated is greater than or equal to the value being compared with.<
: check if value being validated is less than the value being compared with.<=
: check if value being validated is less than or equal to the value being compared with.
Method Details
Compares two values with the specified operator.
| boolean compareValues( $operator, $value, $compareValue ) | ||
| $operator | string | The comparison operator |
| $value | mixed | The value being compared |
| $compareValue | mixed | Another value being compared |
| return | boolean | Whether the comparison using the specified operator is true. |
|---|
| void init( ) |
| void validateAttribute( $object, $attribute ) | ||
| $object | ||
| $attribute |


This is my first Django app, it's something that counts the number of words in the given text and then sorts that by the number of times a word is used.


Return Value
a LiftMiddleware
that knows how to translate Whole
to Part
and vice-versa. To the external world this resulting middleware will “speak” global types to be plugged into the main Store. Internally it will “speak” the types of the wrapped middleware.
Discussion
struct Location {
let latitude: Double
let longitude: Double
}
Let’s call it Part
. Both, this state and its middleware will be part of an external framework, used by dozens of apps. Internally probably the Middleware
will use CoreLocation
to fetch the GPS changes, and triggers some actions. On the main app we have a global state, that we now call Whole
.
struct MyGlobalState {
let title: String?
let listOfItems: [Item]
let currentLocation: Location
}
As expected, Part
is a property of Whole
, maybe not directly, it could be several nodes deep in the tree.
Because our Store
understands Whole
and our GPSMiddleware
understands Part
, we must lift(_:)
the middleware to the Whole
level, by using:
let globalStateMiddleware = gpsMiddleware.lift(state: \MyGlobalState.currentLocation)
Now this middleware can be used within our Store
or even composed with others. It also can be used in other apps as long as we have a way to lift it to the world of Whole
.


Registry
We consider ourselves fortunate to have what we have.  Thank you to all who generously contributed to our honeymoon fund or otherwise honored us with one-of-a-kind gifts we will cherish for a long time. As promised, we donated over 10% of our cash gifts to our favorite charities below.


Get the best offers first!
Rooms
Make yourself at home is our slogan. We offer the best beds in the industry. Sleep well and rest well.
Standard Twin
From RM168
Single bed x2
15m2
Standard Queen
From RM168
Queen-size bed
25m2
Family Room
From RM208
Queen-size bed x2
40m2
On demand, we can offer playstation, babycall, children care, dog equipment, etc.


Hello, everyone!
Most of us spent about 2 decades in the school, I believe you must know the school very well, and you have something to say. So, let's talk about the school and education. Do schools kill creativity? | Sir Ken Robinson | TED
As you are an adult now, you must recognize that those years means a lot to you for now. First part we will walk through your past to know the “old school”, also to find out what is your school?
獨立特派員 第426集 (奧地利‧天賦) , How to escape education's death valley | Sir Ken Robinson I think we should start this part with one question, “ What is education? ”. The answer may be teach them how to survive in the world, pass some value like respect, being brave, sharing, love...etc. Or we should help this young people to develop their talent, to find out who they are, what they really like to do.
Turns out, in this world, it seems like there are two parts, one is for the young human being, the other one is for the adult. but then, I feel it's a whole, though we separte these, but they influence each other.
What is the purpose? and, should the education server the people or the country? we choose the personal will and the freedom, or the country make the decision for the young people, though in the democracy society, it's people's will choose the path.
If the right of education is private property, young people may allow to make their own choice besed on their needs. Since it's property, it means not everyone can access education or they can only learn from the society. is it a disadvantage? even the greatest scientist learned from the nature.
If it's a human right. The country should use their national resource to ensure everyone can have education. then it's not just a right but also an obligation, a rule! young people lost the freedom to choose, they have to follow the rule, they must accept the duty from the country. Nobody can escape from the system.
I am thinking about those questions.
people who livied in taiwan, who are they? where do they belong? in the past they were Ming dynasty, then Qing dynasty, then Japanese(Second-class citizen), then chinese(ROC), then Taiwanese, then chinese(ROC), then Taiwanese.
Every kid needs a champion | Rita Pierson , Rita Pierson: Teaching Tips (Win-Win Conversations) After go through the above issue, right now, let's deal with the reality. What should we do to achieve the Education?
Sometimes I found people just getiing old, but they don't become a better person or mature.
Also we can get a lot information through the internet now, but not everyone has the ability to choose what to believe.
Time flies, things change. But some people do not change the way of living. eg: because of the technology, we can catch more fish than we used to, but we catch too much, people knew it, but they don't change. I remember a interview form a fishman, he said even he does not catch those fish, other people will still catch the fish. I can't understand about this.
Some people only use the old rule or tradition to face the new world, eg:Teacher is always right, or parents are always right, we should respect old man...etc The society is picky about some specific people, eg: teacher must be perfect person, girl should not be topless, even more, mask women. family:one wife and one husband and some children, you must have a job, you can not be a homeless, dumpster diving is not right...etc
Justice: What's The Right Thing To Do? Episode 01 "THE MORAL SIDE OF MURDER" . the video is a Harvard open class about justice. I felt that this class should not be just isolated in the school, if everyone in the world can access this kind of interaction, make people think more, is it good?
Right now, the knowledge is not privilege of some people, everyone can access whatever they want via Internet.
We ask people "How old are you?" and the response "I am 10 years old". But in Spanish, they say "Cuantos años tiene?",and the response "tengo 10 años." in English is "How many years do you have?", "I have 10 years." which make me feel two idea, it seems like we own the time, i have 10 years of time. another sense is I have 10 years experience about living in the world. So...
if these people changed, it's like they abandoned their belief, their core value. they can't accept that, coz it means they were wrong, and for a very long time. somebody lied to them, or themself, it's a total failure. the whole life is a joke.  "Who am I?" they must to ask the question to themself. Or just coz they use those opinion and then succeed, they get benefit from the old thoughts...
It's getting cold now, I will prepared hot bervage for whom show up.


Feb. 27, 2020
This a simple proof-of-concept for now, with limited functionality. It’s not actively being worked on, but can be found on CodePen. It deals cards correctly, but none of the underly game functionality is present yet. It uses the Deck of Cards API.
Jan. 8, 2020
This game is fully-functioning, and is hosted on CodePen. It uses the Open Trivia Database, which is a super easy API to work with, but the difficulty settings are a little wacky. Enjoy!
 Hosted on CodePen, it is exactly what you would expect.
Dec. 14, 2019
This game can be found on CodePen, and is based on a mini-game from the Jackbox Party Pack game Trivia Murder Party. Each player takes turns rolling. The first player to get to 21 wins!
Nov. 19, 2019
There’s not much to see here. This little app, hosted on CodePen, is a fully-functioning Tic Tac Toe game. It can be played alone (but why?) or with a friend. A left-click (or tap) is X, and a right-click (or long tap) is O.
Nov. 12, 2019
This a simple proof-of-concept for now, with limited functionality. It’s not actively being worked on, but can be found on CodePen. It deals cards correctly, but none of the underly game functionality is present yet. It uses the Deck of Cards API.
Jan. 21, 2018
This tool, first developed in 2018, is a proof of concept for a pictionary app I’d like to further develop. It is fully featured, but lacks any current practical application. The tool is currently hosted on CodePen.


{{ message }}
{% if results %} {% if results['agreed'] == false %}Sorry, you were not able to agree on a deal :(
{% elif results['valid_deal'] == false %}Either you or your partner entered in a number of items that did not add up to the total number of items available. Please try again.
{% else %}You recieved {{ results['item_split'][agent_idx]['book'] }} books, {{ results['item_split'][agent_idx]['hat'] }} hats and {{ results['item_split'][agent_idx]['ball'] }} balls for a total of {{ results['reward'][agent_idx] }} points.
Your partner recieved {{ results['item_split'][1 - agent_idx]['book'] }} books, {{ results['item_split'][1 - agent_idx]['hat'] }} hats and {{ results['item_split'][1- agent_idx]['ball'] }} balls for a total of {{ results['reward'][1 - agent_idx] }} points.
Recall these points do not add up because the value of each item for you is different than the value of each item for your partner.
{% endif %} {% endif %}In order to complete this HIT, please answer the following questions about your partner in the dialogue that you just completed.
Do you think your partner demonstrated reasonable human behavior? I.e. Were they coherent in what they are saying and did they understood what you said?
(optional) Please add any comments/feedback related to the dialogue below. (for e.g., comments on how we can improve this platform, why you made the above ratings, etc.)