--- title: The significance of the sector on the salary in Sweden, a comparison between different occupational groups, part 2 author: Mikael Lundqvist date: '2020-02-23' slug: the-significance-of-the-sector-on-the-salary-in-sweden-a-comparison-between-different-occupational-groups-part-2 categories: - R tags: - plot - R Markdown - regression ---
In my last post, I examined the significance of the sector on the salary for different occupational groups using statistics from different regions. In previous posts I have shown a correlation between the salary and experience and also salary and education, In this post, I will examine the correlation between salary and sector using statistics for age.
The F-value from the Anova table is used as the single value to discriminate how much the region and salary correlates. For exploratory analysis, the Anova value seems good enough.
First, define libraries and functions.
library (tidyverse)
## -- Attaching packages --------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.2.1 v purrr 0.3.3
## v tibble 2.1.3 v dplyr 0.8.3
## v tidyr 1.0.2 v stringr 1.4.0
## v readr 1.3.1 v forcats 0.4.0
## -- Conflicts ------------------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library (broom)
library (car)
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
## The following object is masked from 'package:purrr':
##
## some
library (sjPlot)
## Registered S3 methods overwritten by 'lme4':
## method from
## cooks.distance.influence.merMod car
## influence.merMod car
## dfbeta.influence.merMod car
## dfbetas.influence.merMod car
readfile <- function (file1){read_csv (file1, col_types = cols(), locale = readr::locale (encoding = "latin1"), na = c("..", "NA")) %>%
gather (starts_with("19"), starts_with("20"), key = "year", value = salary) %>%
drop_na() %>%
mutate (year_n = parse_number (year))
}
The data table is downloaded from Statistics Sweden. It is saved as a comma-delimited file without heading, 000000D2.csv, http://www.statistikdatabasen.scb.se/pxweb/en/ssd/.
I have renamed the file to 000000D2_sector.csv because the filename 000000D2.csv was used in a previous post.
The table: Average basic salary, monthly salary and women´s salary as a percentage of men´s salary by sector, occupational group (SSYK 2012), sex and age. Year 2014 - 2018 Monthly salary 1-3 public sector 4-5 private sector
In the plot and tables, you can also find information on how the increase in salaries per year for each occupational group is affected when the interactions are taken into account.
tb <- readfile("000000D2_sector.csv") %>%
rowwise() %>%
mutate(age_l = unlist(lapply(strsplit(substr(age, 1, 5), "-"), strtoi))[1]) %>%
rowwise() %>%
mutate(age_h = unlist(lapply(strsplit(substr(age, 1, 5), "-"), strtoi))[2]) %>%
mutate(age_n = (age_l + age_h) / 2)
summary_table = 0
anova_table = 0
for (i in unique(tb$`occuptional (SSYK 2012)`)){
temp <- filter(tb, `occuptional (SSYK 2012)` == i)
if (dim(temp)[1] > 90){
model <- lm(log(salary) ~ poly(age_n, 3) + sex + year_n + sector, data = temp)
summary_table <- rbind (summary_table, mutate (tidy (summary (model)), ssyk = i, interaction = "none"))
anova_table <- rbind (anova_table, mutate (tidy (Anova (model, type = 2)), ssyk = i, interaction = "none"))
model <- lm(log(salary) ~ poly(age_n, 3) * sector + sex + year_n, data = temp)
summary_table <- rbind (summary_table, mutate (tidy (summary (model)), ssyk = i, interaction = "sector and age"))
anova_table <- rbind (anova_table, mutate (tidy (Anova (model, type = 2)), ssyk = i, interaction = "sector and age"))
model <- lm(log(salary) ~ poly(age_n, 3) + sector * sex + year_n, data = temp)
summary_table <- rbind (summary_table, mutate (tidy (summary (model)), ssyk = i, interaction = "sector and sex"))
anova_table <- rbind (anova_table, mutate (tidy (Anova (model, type = 2)), ssyk = i, interaction = "sector and sex"))
model <- lm(log(salary) ~ poly(age_n, 3) + year_n * sector + sex, data = temp)
summary_table <- rbind (summary_table, mutate (tidy (summary (model)), ssyk = i, interaction = "sector and year"))
anova_table <- rbind (anova_table, mutate (tidy (Anova (model, type = 2)), ssyk = i, interaction = "sector and year"))
model <- lm(log(salary) ~ poly(age_n, 3) * sector * sex * year_n, data = temp)
summary_table <- rbind (summary_table, mutate (tidy (summary (model)), ssyk = i, interaction = "sector, year, age and sex"))
anova_table <- rbind (anova_table, mutate (tidy (Anova (model, type = 2)), ssyk = i, interaction = "sector, year, age and sex"))
}
}
## Note: model has aliased coefficients
## sums of squares computed by model comparison
## Note: model has aliased coefficients
## sums of squares computed by model comparison
## Note: model has aliased coefficients
## sums of squares computed by model comparison
## Note: model has aliased coefficients
## sums of squares computed by model comparison
## Note: model has aliased coefficients
## sums of squares computed by model comparison
anova_table <- anova_table %>% rowwise() %>% mutate(contcol = str_count(term, ":"))
summary_table <- summary_table %>% rowwise() %>% mutate(contcol = str_count(term, ":"))
merge(summary_table, anova_table, by = c("ssyk", "interaction"), all = TRUE) %>%
filter (term.x == "year_n") %>%
filter (term.y == "sector") %>%
filter (interaction == "none") %>%
mutate (estimate = (exp(estimate) - 1) * 100) %>%
ggplot () +
geom_point (mapping = aes(x = estimate, y = statistic.y, colour = interaction)) +
labs(
x = "Increase in salaries (% / year)",
y = "F-value for sector"
)
merge(summary_table, anova_table, by = c("ssyk", "interaction"), all = TRUE) %>%
filter (term.x == "year_n") %>%
filter (contcol.y > 0) %>%
# only look at the interactions between all four variables in the case with interaction sector, year, age and sex
filter (!(contcol.y < 3 & interaction == "sector, year, age and sex")) %>%
mutate (estimate = (exp(estimate) - 1) * 100) %>%
ggplot () +
geom_point (mapping = aes(x = estimate, y = statistic.y, colour = interaction)) +
labs(
x = "Increase in salaries (% / year)",
y = "F-value for interaction"
)
The tables with all occupational groups sorted by F-value in descending order.
merge(summary_table, anova_table, c("ssyk", "interaction"), all = TRUE) %>%
filter (term.x == "year_n") %>%
filter (term.y == "sector") %>%
filter (interaction == "none") %>%
mutate (estimate = (exp(estimate) - 1) * 100) %>%
select (ssyk, estimate, statistic.y, interaction) %>%
rename (`F-value` = statistic.y) %>%
rename (`Increase in salary` = estimate) %>%
arrange (desc (`F-value`)) %>%
knitr::kable(
booktabs = TRUE,
caption = 'Correlation for F-value (sector) and the yearly increase in salaries')
| ssyk | Increase in salary | F-value | interaction |
|---|---|---|---|
| 218 Specialists within environmental and health protection | 2.3966875 |<PHONE_NUMBER> | none |
| 261 Legal professionals | 2.6130221 |<PHONE_NUMBER> | none |
| 411 Office assistants and other secretaries | 2.3419860 |<PHONE_NUMBER> | none |
| 222 Nursing professionals | 4.6578230 |<PHONE_NUMBER> | none |
| 515 Building caretakers and related workers | 2.2146338 |<PHONE_NUMBER> | none |
| 819 Process control technicians | 2.5350438 |<PHONE_NUMBER> | none |
| 242 Organisation analysts, policy administrators and human resource specialists | 2.0523696 |<PHONE_NUMBER> | none |
| 251 ICT architects, systems analysts and test managers | 2.3512692 |<PHONE_NUMBER> | none |
| 321 Medical and pharmaceutical technicians | 2.5801263 |<PHONE_NUMBER> | none |
| 333 Business services agents | 2.3936321 |<PHONE_NUMBER> | none |
| 334 Administrative and specialized secretaries | 2.0432078 |<PHONE_NUMBER> | none |
| 243 Marketing and public relations professionals | 1.7547524 |<PHONE_NUMBER> | none |
| 335 Tax and related government associate professionals | 2.4477931 |<PHONE_NUMBER> | none |
| 342 Athletes, fitness instructors and recreational workers | 1.8086152 |<PHONE_NUMBER> | none |
| 962 Newspaper distributors, janitors and other service workers | 1.9900356 |<PHONE_NUMBER> | none |
| 213 Biologists, pharmacologists and specialists in agriculture and forestry | 1.8912397 |<PHONE_NUMBER> | none |
| 265 Creative and performing artists | 2.0992262 |<PHONE_NUMBER> | none |
| 241 Accountants, financial analysts and fund managers | 2.4619072 |<PHONE_NUMBER> | none |
| 351 ICT operations and user support technicians | 2.7045039 |<PHONE_NUMBER> | none |
| 331 Financial and accounting associate professionals | 2.1803329 |<PHONE_NUMBER> | none |
| 264 Authors, journalists and linguists | 2.2865429 | 93.9690111 | none |
| 211 Physicists and chemists | 2.0010438 | 65.4196943 | none |
| 911 Cleaners and helpers | 1.9306757 | 64.9465316 | none |
| 231 University and higher education teachers | 2.3987358 | 58.9926983 | none |
| 541 Other surveillance and security workers | 2.2500326 | 54.4430468 | none |
| 815 Machine operators, textile, fur and leather products | 1.3517419 | 48.6411876 | none |
| 723 Machinery mechanics and fitters | 2.4251751 | 48.2416487 | none |
| 233 Secondary education teachers | 3.0390165 | 38.5627689 | none |
| 422 Client information clerks | 2.4686744 | 37.8718779 | none |
| 228 Specialists in health care not elsewhere classified | 2.1589844 | 36.5601628 | none |
| 941 Fast-food workers, food preparation assistants | 1.9960527 | 18.6514673 | none |
| 216 Architects and surveyors | 2.8323556 | 15.8227312 | none |
| 235 Teaching professionals not elsewhere classified | 1.6582824 | 14.3745577 | none |
| 532 Personal care workers in health services | 3.0076073 | 12.2147525 | none |
| 311 Physical and engineering science technicians | 2.7704145 | 12.1641422 | none |
| 234 Primary- and pre-school teachers | 3.4774983 | 7.3900661 | none |
| 511 Cabin crew, guides and related workers | -0.3443427 | 6.9533625 | none |
| 534 Attendants, personal assistants and related workers | 2.0233419 | 5.1208491 | none |
| 533 Health care assistants | 2.2271720 | 4.8058895 | none |
| 332 Insurance advisers, sales and purchasing agents | 2.2044676 | 4.2832833 | none |
| 531 Child care workers and teachers aides | 1.9105637 | 4.0479235 | none |
| 214 Engineering professionals | 2.7995742 | 2.1850611 | none |
| 341 Social work and religious associate professionals | 2.5651458 | 2.1164875 | none |
| 432 Stores and transport clerks | 1.9337354 | 0.7577500 | none |
| 611 Market gardeners and crop growers | 1.8041743 | 0.0643998 | none |
| 512 Cooks and cold-buffet managers | 2.7942944 | 0.0197082 | none |
merge(summary_table, anova_table, c("ssyk", "interaction"), all = TRUE) %>%
filter (term.x == "year_n") %>%
filter (contcol.y > 0) %>%
filter (interaction == "sector and sex") %>%
mutate (estimate = (exp(estimate) - 1) * 100) %>%
select (ssyk, estimate, statistic.y, interaction) %>%
rename (`F-value` = statistic.y) %>%
rename (`Increase in salary` = estimate) %>%
arrange (desc (`F-value`)) %>%
knitr::kable(
booktabs = TRUE,
caption = 'Correlation for F-value (sector and sex) and the yearly increase in salaries')
| ssyk | Increase in salary | F-value | interaction |
|---|---|---|---|
| 911 Cleaners and helpers | 1.9306757 |<PHONE_NUMBER> | sector and sex |
| 335 Tax and related government associate professionals | 2.4477931 | 70.7824355 | sector and sex |
| 815 Machine operators, textile, fur and leather products | 1.3563289 | 31.8117555 | sector and sex |
| 333 Business services agents | 2.2899853 | 30.4752880 | sector and sex |
| 331 Financial and accounting associate professionals | 2.2023600 | 25.9296892 | sector and sex |
| 342 Athletes, fitness instructors and recreational workers | 1.8086152 | 25.0203935 | sector and sex |
| 241 Accountants, financial analysts and fund managers | 2.4786358 | 24.2528951 | sector and sex |
| 264 Authors, journalists and linguists | 2.2453619 | 21.8740576 | sector and sex |
| 533 Health care assistants | 2.2271720 | 21.5539071 | sector and sex |
| 243 Marketing and public relations professionals | 1.7263442 | 19.6730093 | sector and sex |
| 332 Insurance advisers, sales and purchasing agents | 2.2044676 | 19.3664844 | sector and sex |
| 611 Market gardeners and crop growers | 1.7542849 | 15.6290927 | sector and sex |
| 532 Personal care workers in health services | 3.0076073 | 12.5499477 | sector and sex |
| 213 Biologists, pharmacologists and specialists in agriculture and forestry | 1.8973847 | 11.5413223 | sector and sex |
| 321 Medical and pharmaceutical technicians | 2.5636636 | 9.5201918 | sector and sex |
| 242 Organisation analysts, policy administrators and human resource specialists | 2.0388525 | 7.8030347 | sector and sex |
| 351 ICT operations and user support technicians | 2.7045039 | 7.5568275 | sector and sex |
| 211 Physicists and chemists | 1.9926264 | 7.5217104 | sector and sex |
| 235 Teaching professionals not elsewhere classified | 1.6228416 | 5.7033533 | sector and sex |
| 512 Cooks and cold-buffet managers | 2.7942944 | 5.4926902 | sector and sex |
| 941 Fast-food workers, food preparation assistants | 1.9960527 | 3.8523689 | sector and sex |
| 432 Stores and transport clerks | 1.9247904 | 3.3361868 | sector and sex |
| 218 Specialists within environmental and health protection | 2.3902920 | 3.2726896 | sector and sex |
| 231 University and higher education teachers | 2.4049429 | 3.1968905 | sector and sex |
| 222 Nursing professionals | 4.6527974 | 2.8848508 | sector and sex |
| 265 Creative and performing artists | 2.0908231 | 2.4335097 | sector and sex |
| 962 Newspaper distributors, janitors and other service workers | 1.9900356 | 2.3091055 | sector and sex |
| 233 Secondary education teachers | 3.0478812 | 1.6616950 | sector and sex |
| 228 Specialists in health care not elsewhere classified | 2.2271410 | 1.4295653 | sector and sex |
| 819 Process control technicians | 2.5350438 | 1.1646979 | sector and sex |
| 541 Other surveillance and security workers | 2.2500326 | 1.1488532 | sector and sex |
| 534 Attendants, personal assistants and related workers | 2.0233419 | 1.1344410 | sector and sex |
| 261 Legal professionals | 2.6014900 | 1.1208624 | sector and sex |
| 531 Child care workers and teachers aides | 1.9034289 | 1.0441681 | sector and sex |
| 411 Office assistants and other secretaries | 2.3419860 | 0.8053533 | sector and sex |
| 214 Engineering professionals | 2.7938330 | 0.7610648 | sector and sex |
| 341 Social work and religious associate professionals | 2.5666541 | 0.6898733 | sector and sex |
| 422 Client information clerks | 2.4707255 | 0.4188795 | sector and sex |
| 251 ICT architects, systems analysts and test managers | 2.3512692 | 0.2019761 | sector and sex |
| 234 Primary- and pre-school teachers | 3.4774983 | 0.1910697 | sector and sex |
| 334 Administrative and specialized secretaries | 2.0473936 | 0.1673844 | sector and sex |
| 723 Machinery mechanics and fitters | 2.4270025 | 0.0946975 | sector and sex |
| 216 Architects and surveyors | 2.8323370 | 0.0480519 | sector and sex |
| 515 Building caretakers and related workers | 2.2148711 | 0.0466927 | sector and sex |
| 311 Physical and engineering science technicians | 2.7695781 | 0.0317138 | sector and sex |
| 511 Cabin crew, guides and related workers | -0.3452668 | 0.0263848 | sector and sex |
merge(summary_table, anova_table, c("ssyk", "interaction"), all = TRUE) %>%
filter (term.x == "year_n") %>%
filter (contcol.y > 0) %>%
filter (interaction == "sector and age") %>%
mutate (estimate = (exp(estimate) - 1) * 100) %>%
select (ssyk, estimate, statistic.y, interaction) %>%
rename (`F-value` = statistic.y) %>%
rename (`Increase in salary` = estimate) %>%
arrange (desc (`F-value`)) %>%
knitr::kable(
booktabs = TRUE,
caption = 'Correlation for F-value (sector and age) and the yearly increase in salaries')
| ssyk | Increase in salary | F-value | interaction |
|---|---|---|---|
| 251 ICT architects, systems analysts and test managers | 2.3512692 | 81.293931 | sector and age |
| 534 Attendants, personal assistants and related workers | 2.0233419 | 74.994233 | sector and age |
| 234 Primary- and pre-school teachers | 3.4774983 | 50.554556 | sector and age |
| 511 Cabin crew, guides and related workers | -0.3214703 | 49.726047 | sector and age |
| 331 Financial and accounting associate professionals | 2.1760115 | 43.716282 | sector and age |
| 432 Stores and transport clerks | 1.9372268 | 41.355837 | sector and age |
| 351 ICT operations and user support technicians | 2.7045039 | 37.992660 | sector and age |
| 241 Accountants, financial analysts and fund managers | 2.4925081 | 31.914364 | sector and age |
| 242 Organisation analysts, policy administrators and human resource specialists | 2.0984548 | 31.372391 | sector and age |
| 422 Client information clerks | 2.4763530 | 24.396462 | sector and age |
| 342 Athletes, fitness instructors and recreational workers | 1.8086152 | 21.878170 | sector and age |
| 332 Insurance advisers, sales and purchasing agents | 2.2044676 | 20.887588 | sector and age |
| 333 Business services agents | 2.5711782 | 20.728956 | sector and age |
| 261 Legal professionals | 2.6542145 | 19.114710 | sector and age |
| 233 Secondary education teachers | 3.1089611 | 18.460571 | sector and age |
| 541 Other surveillance and security workers | 2.2500326 | 18.166197 | sector and age |
| 243 Marketing and public relations professionals | 1.8298739 | 16.372110 | sector and age |
| 231 University and higher education teachers | 2.5000216 | 15.799814 | sector and age |
| 411 Office assistants and other secretaries | 2.3419860 | 15.436701 | sector and age |
| 235 Teaching professionals not elsewhere classified | 1.8467331 | 15.280487 | sector and age |
| 211 Physicists and chemists | 1.9949354 | 11.545117 | sector and age |
| 213 Biologists, pharmacologists and specialists in agriculture and forestry | 1.8835767 | 11.142152 | sector and age |
| 228 Specialists in health care not elsewhere classified | 2.0243679 | 10.920972 | sector and age |
| 335 Tax and related government associate professionals | 2.4477931 | 10.914843 | sector and age |
| 941 Fast-food workers, food preparation assistants | 1.9960527 | 10.718505 | sector and age |
| 341 Social work and religious associate professionals | 2.5816295 | 9.475763 | sector and age |
| 216 Architects and surveyors | 2.7872555 | 9.229637 | sector and age |
| 321 Medical and pharmaceutical technicians | 2.5872747 | 8.122166 | sector and age |
| 911 Cleaners and helpers | 1.9306757 | 8.084293 | sector and age |
| 815 Machine operators, textile, fur and leather products | 1.3751133 | 7.636766 | sector and age |
| 334 Administrative and specialized secretaries | 2.1355883 | 7.153296 | sector and age |
| 218 Specialists within environmental and health protection | 2.4620357 | 6.994422 | sector and age |
| 962 Newspaper distributors, janitors and other service workers | 1.9900356 | 6.838603 | sector and age |
| 531 Child care workers and teachers aides | 1.9226126 | 6.070516 | sector and age |
| 515 Building caretakers and related workers | 2.2192760 | 6.005165 | sector and age |
| 311 Physical and engineering science technicians | 2.7875316 | 5.421210 | sector and age |
| 723 Machinery mechanics and fitters | 2.4360682 | 5.406378 | sector and age |
| 819 Process control technicians | 2.5350438 | 5.043236 | sector and age |
| 264 Authors, journalists and linguists | 2.2247505 | 4.044872 | sector and age |
| 512 Cooks and cold-buffet managers | 2.7942944 | 3.928362 | sector and age |
| 533 Health care assistants | 2.2271720 | 3.673529 | sector and age |
| 265 Creative and performing artists | 2.0786906 | 2.538964 | sector and age |
| 214 Engineering professionals | 2.7863137 | 2.497814 | sector and age |
| 532 Personal care workers in health services | 3.0076073 | 2.339712 | sector and age |
| 222 Nursing professionals | 4.6262827 | 2.287950 | sector and age |
| 611 Market gardeners and crop growers | 1.8042107 | 1.716068 | sector and age |
merge(summary_table, anova_table, c("ssyk", "interaction"), all = TRUE) %>%
filter (term.x == "year_n") %>%
filter (contcol.y > 0) %>%
filter (interaction == "sector and year") %>%
mutate (estimate = (exp(estimate) - 1) * 100) %>%
select (ssyk, estimate, statistic.y, interaction) %>%
rename (`F-value` = statistic.y) %>%
rename (`Increase in salary` = estimate) %>%
arrange (desc (`F-value`)) %>%
knitr::kable(
booktabs = TRUE,
caption = 'Correlation for F-value (sector and year) and the yearly increase in salaries')
| ssyk | Increase in salary | F-value | interaction |
|---|---|---|---|
| 222 Nursing professionals | 3.2821623 | 52.9080079 | sector and year |
| 235 Teaching professionals not elsewhere classified | 2.7102815 | 24.3392922 | sector and year |
| 334 Administrative and specialized secretaries | 0.6824704 | 15.9484068 | sector and year |
| 531 Child care workers and teachers aides | 2.3704462 | 13.8844930 | sector and year |
| 422 Client information clerks | 3.2226939 | 12.4412439 | sector and year |
| 962 Newspaper distributors, janitors and other service workers | 2.5465829 | 10.9472608 | sector and year |
| 534 Attendants, personal assistants and related workers | 2.3719311 | 10.1007673 | sector and year |
| 532 Personal care workers in health services | 2.7590988 | 9.0616925 | sector and year |
| 611 Market gardeners and crop growers | 2.4285881 | 9.0355793 | sector and year |
| 233 Secondary education teachers | 3.4681159 | 8.2187247 | sector and year |
| 264 Authors, journalists and linguists | 3.2488108 | 6.2777560 | sector and year |
| 351 ICT operations and user support technicians | 3.4272576 | 4.8822064 | sector and year |
| 214 Engineering professionals | 3.4475215 | 4.3685520 | sector and year |
| 723 Machinery mechanics and fitters | 2.7726800 | 4.0300820 | sector and year |
| 511 Cabin crew, guides and related workers | -1.4636615 | 3.9854827 | sector and year |
| 243 Marketing and public relations professionals | 2.4174309 | 3.9092911 | sector and year |
| 311 Physical and engineering science technicians | 3.2975181 | 3.6534643 | sector and year |
| 533 Health care assistants | 2.0202998 | 3.4258034 | sector and year |
| 216 Architects and surveyors | 3.2766321 | 3.0286083 | sector and year |
| 512 Cooks and cold-buffet managers | 2.4761796 | 2.1189296 | sector and year |
| 231 University and higher education teachers | 2.7564149 | 1.9590690 | sector and year |
| 911 Cleaners and helpers | 2.1080113 | 1.3375758 | sector and year |
| 265 Creative and performing artists | 1.8252102 | 1.3073089 | sector and year |
| 341 Social work and religious associate professionals | 2.7179780 | 1.1525106 | sector and year |
| 332 Insurance advisers, sales and purchasing agents | 2.4698420 | 0.8846941 | sector and year |
| 515 Building caretakers and related workers | 2.0896486 | 0.8721029 | sector and year |
| 251 ICT architects, systems analysts and test managers | 2.1070969 | 0.8453000 | sector and year |
| 242 Organisation analysts, policy administrators and human resource specialists | 2.3074810 | 0.7627131 | sector and year |
| 213 Biologists, pharmacologists and specialists in agriculture and forestry | 2.1515840 | 0.7217108 | sector and year |
| 815 Machine operators, textile, fur and leather products | 1.5169216 | 0.7021796 | sector and year |
| 333 Business services agents | 2.6770984 | 0.6948266 | sector and year |
| 411 Office assistants and other secretaries | 2.4961111 | 0.6866667 | sector and year |
| 261 Legal professionals | 2.9024857 | 0.6474976 | sector and year |
| 342 Athletes, fitness instructors and recreational workers | 2.0356952 | 0.5210552 | sector and year |
| 541 Other surveillance and security workers | 2.1319348 | 0.4764820 | sector and year |
| 941 Fast-food workers, food preparation assistants | 2.1030085 | 0.4107102 | sector and year |
| 241 Accountants, financial analysts and fund managers | 2.1837720 | 0.3653365 | sector and year |
| 335 Tax and related government associate professionals | 2.2476351 | 0.3329319 | sector and year |
| 228 Specialists in health care not elsewhere classified | 2.0215985 | 0.1994037 | sector and year |
| 321 Medical and pharmaceutical technicians | 2.4986510 | 0.1694097 | sector and year |
| 234 Primary- and pre-school teachers | 3.5227087 | 0.0566620 | sector and year |
| 211 Physicists and chemists | 2.0509288 | 0.0256116 | sector and year |
| 819 Process control technicians | 2.5525388 | 0.0089722 | sector and year |
| 432 Stores and transport clerks | 1.9579284 | 0.0058151 | sector and year |
| 331 Financial and accounting associate professionals | 2.1471390 | 0.0023497 | sector and year |
| 218 Specialists within environmental and health protection | 2.3896946 | 0.0012880 | sector and year |
merge(summary_table, anova_table, c("ssyk", "interaction"), all = TRUE) %>%
filter (term.x == "year_n") %>%
filter (contcol.y > 1) %>%
filter (interaction == "sector, year, age and sex") %>%
filter (!(contcol.y < 3 & interaction == "sector, year, age and sex")) %>%
mutate (estimate = (exp(estimate) - 1) * 100) %>%
select (ssyk, estimate, statistic.y, interaction) %>%
rename (`F-value` = statistic.y) %>%
rename (`Increase in salary` = estimate) %>%
arrange (desc (`F-value`)) %>%
knitr::kable(
booktabs = TRUE,
caption = 'Correlation for F-value (sector, year, age and sex) and the yearly increase in salaries')
| ssyk | Increase in salary | F-value | interaction |
|---|---|---|---|
| 214 Engineering professionals | 2.4648855 | 11.6391393 | sector, year, age and sex |
| 342 Athletes, fitness instructors and recreational workers | 2.0991670 | 8.9098726 | sector, year, age and sex |
| 216 Architects and surveyors | 3.2301466 | 7.6322806 | sector, year, age and sex |
| 228 Specialists in health care not elsewhere classified | 1.5176747 | 4.1043437 | sector, year, age and sex |
| 321 Medical and pharmaceutical technicians | 2.2641978 | 3.9184148 | sector, year, age and sex |
| 218 Specialists within environmental and health protection | 2.4573789 | 3.6168903 | sector, year, age and sex |
| 261 Legal professionals | 2.7581752 | 3.2902539 | sector, year, age and sex |
| 235 Teaching professionals not elsewhere classified | 2.4011513 | 3.0277439 | sector, year, age and sex |
| 335 Tax and related government associate professionals | 2.0292874 | 2.6128635 | sector, year, age and sex |
| 341 Social work and religious associate professionals | 2.6319084 | 2.6004044 | sector, year, age and sex |
| 233 Secondary education teachers | 3.5273156 | 2.2615012 | sector, year, age and sex |
| 331 Financial and accounting associate professionals | 2.4662860 | 1.9867325 | sector, year, age and sex |
| 941 Fast-food workers, food preparation assistants | 1.9900178 | 1.9221016 | sector, year, age and sex |
| 512 Cooks and cold-buffet managers | 2.5222219 | 1.9206611 | sector, year, age and sex |
| 962 Newspaper distributors, janitors and other service workers | 2.6603985 | 1.8150814 | sector, year, age and sex |
| 213 Biologists, pharmacologists and specialists in agriculture and forestry | 2.3962841 | 1.7496638 | sector, year, age and sex |
| 911 Cleaners and helpers | 2.1197350 | 1.5815397 | sector, year, age and sex |
| 511 Cabin crew, guides and related workers | -0.6957497 | 1.5410098 | sector, year, age and sex |
| 211 Physicists and chemists | 2.3310509 | 1.5257771 | sector, year, age and sex |
| 333 Business services agents | 2.9306066 | 1.5169994 | sector, year, age and sex |
| 819 Process control technicians | 2.5394398 | 1.4148181 | sector, year, age and sex |
| 723 Machinery mechanics and fitters | 2.9145883 | 1.2913243 | sector, year, age and sex |
| 234 Primary- and pre-school teachers | 3.5373214 | 1.2588294 | sector, year, age and sex |
| 533 Health care assistants | 2.0561764 | 1.1641262 | sector, year, age and sex |
| 222 Nursing professionals | 3.3141175 | 1.1593790 | sector, year, age and sex |
| 515 Building caretakers and related workers | 2.3554368 | 1.0916712 | sector, year, age and sex |
| 334 Administrative and specialized secretaries | -0.4841162 | 0.8627072 | sector, year, age and sex |
| 264 Authors, journalists and linguists | 3.8766371 | 0.8178463 | sector, year, age and sex |
| 541 Other surveillance and security workers | 2.1959143 | 0.8087407 | sector, year, age and sex |
| 531 Child care workers and teachers aides | 2.4624435 | 0.6787061 | sector, year, age and sex |
| 815 Machine operators, textile, fur and leather products | 1.2558500 | 0.6507638 | sector, year, age and sex |
| 242 Organisation analysts, policy administrators and human resource specialists | 2.1412580 | 0.6425880 | sector, year, age and sex |
| 411 Office assistants and other secretaries | 2.4063713 | 0.5077368 | sector, year, age and sex |
| 432 Stores and transport clerks | 2.1618484 | 0.5005162 | sector, year, age and sex |
| 422 Client information clerks | 3.3819183 | 0.4079113 | sector, year, age and sex |
| 265 Creative and performing artists | 1.7171084 | 0.4046591 | sector, year, age and sex |
| 241 Accountants, financial analysts and fund managers | 1.9650332 | 0.3867492 | sector, year, age and sex |
| 311 Physical and engineering science technicians | 3.0661705 | 0.3303477 | sector, year, age and sex |
| 611 Market gardeners and crop growers | 2.1758845 | 0.1794678 | sector, year, age and sex |
| 351 ICT operations and user support technicians | 3.3472478 | 0.1238188 | sector, year, age and sex |
| 332 Insurance advisers, sales and purchasing agents | 2.2161856 | 0.1214610 | sector, year, age and sex |
| 251 ICT architects, systems analysts and test managers | 2.1371036 | 0.1080593 | sector, year, age and sex |
| 534 Attendants, personal assistants and related workers | 2.3576411 | 0.0748416 | sector, year, age and sex |
| 532 Personal care workers in health services | 2.6448524 | 0.0675532 | sector, year, age and sex |
| 231 University and higher education teachers | 2.5212252 | 0.0231719 | sector, year, age and sex |
| 243 Marketing and public relations professionals | 2.1626640 | 0.0083390 | sector, year, age and sex |
Let’s check what we have found.
temp <- tb %>%
filter(`occuptional (SSYK 2012)` == "218 Specialists within environmental and health protection")
model <- lm (log(salary) ~ year_n + poly(age_n, 3) + sector + sex, data = temp)
plot_model(model, type = "pred", terms = c("age_n", "sector"))
## Model has log-transformed response. Back-transforming predictions to original response scale. Standard errors are still on the log-scale.
temp <- tb %>%
filter(`occuptional (SSYK 2012)` == "512 Cooks and cold-buffet managers")
model <-lm (log(salary) ~ year_n + poly(age_n, 3) + sector + sex, data = temp)
plot_model(model, type = "pred", terms = c("age_n", "sector"))
## Model has log-transformed response. Back-transforming predictions to original response scale. Standard errors are still on the log-scale.
temp <- tb %>%
filter(`occuptional (SSYK 2012)` == "911 Cleaners and helpers")
model <- lm (log(salary) ~ year_n + poly(age_n, 3) + sector * sex, data = temp)
plot_model(model, type = "pred", terms = c("age_n", "sex", "sector"))
## Model has log-transformed response. Back-transforming predictions to original response scale. Standard errors are still on the log-scale.
temp <- tb %>%
filter(`occuptional (SSYK 2012)` == "511 Cabin crew, guides and related workers")
model <- lm (log(salary) ~ year_n + poly(age_n, 3) + sector * sex, data = temp)
plot_model(model, type = "pred", terms = c("age_n", "sex", "sector"))
## Model has log-transformed response. Back-transforming predictions to original response scale. Standard errors are still on the log-scale.
temp <- tb %>%
filter(`occuptional (SSYK 2012)` == "251 ICT architects, systems analysts and test managers")
model <- lm (log(salary) ~ year_n + poly(age_n, 3) * sector + sex, data = temp)
plot_model(model, type = "pred", terms = c("age_n", "sector"))
## Model has log-transformed response. Back-transforming predictions to original response scale. Standard errors are still on the log-scale.
temp <- tb %>%
filter(`occuptional (SSYK 2012)` == "611 Market gardeners and crop growers")
model <- lm (log(salary) ~ year_n + poly(age_n, 3) * sector + sex, data = temp)
plot_model(model, type = "pred", terms = c("age_n", "sector"))
## Model has log-transformed response. Back-transforming predictions to original response scale. Standard errors are still on the log-scale.
temp <- tb %>%
filter(`occuptional (SSYK 2012)` == "222 Nursing professionals")
model <- lm (log(salary) ~ year_n * sector + poly(age_n, 3) + sex, data = temp)
plot_model(model, type = "pred", terms = c("age_n", "year_n", "sector"))
## Model has log-transformed response. Back-transforming predictions to original response scale. Standard errors are still on the log-scale.
temp <- tb %>%
filter(`occuptional (SSYK 2012)` == "218 Specialists within environmental and health protection")
model <- lm (log(salary) ~ year_n * sector + poly(age_n, 3) + sex, data = temp)
plot_model(model, type = "pred", terms = c("age_n", "year_n", "sector"))
## Model has log-transformed response. Back-transforming predictions to original response scale. Standard errors are still on the log-scale.
temp <- tb %>%
filter(`occuptional (SSYK 2012)` == "214 Engineering professionals")
model <- lm (log(salary) ~ year_n * poly(age_n, 3) * sector * sex, data = temp)
plot_model(model, type = "pred", terms = c("age_n", "year_n", "sex", "sector"))
## Model has log-transformed response. Back-transforming predictions to original response scale. Standard errors are still on the log-scale.
## TableGrob (2 x 1) "arrange": 2 grobs
## z cells name grob
## 1 1 (1-1,1-1) arrange gtable[layout]
## 2 2 (2-2,1-1) arrange gtable[layout]
temp <- tb %>%
filter(`occuptional (SSYK 2012)` == "243 Marketing and public relations professionals")
model <- lm (log(salary) ~ year_n * poly(age_n, 3) * sector * sex, data = temp)
plot_model(model, type = "pred", terms = c("age_n", "year_n", "sex", "sector"))
## Model has log-transformed response. Back-transforming predictions to original response scale. Standard errors are still on the log-scale.
## TableGrob (2 x 1) "arrange": 2 grobs
## z cells name grob
## 1 1 (1-1,1-1) arrange gtable[layout]
## 2 2 (2-2,1-1) arrange gtable[layout]


Smuggler’s Eye-Opener Cocktail
2 shots Old Duff Genever 40% abv
1 shot gin
½ barspoon (2½ml) rich sugar syrup
4 dashes of Angostura aromatic bitters
Shake with crushed ice
Pour contents of shaker including ice into a short glass
Baker attributes this to “bar maestro” Señor Bode of Café Plaza in Maracaibo, Venezuela. Bode’s recipe called for a cinnamon dusting as garnish which Baker doesn’t recommend, but he does recommend adding half a shot of fresh lime juice to the recipe and an extra dash of Angostura, to bring it closer to the Death in the Gulfstream. Oddly, Baker also recommend what is called a “dirty dump”: shaking the cocktail and then pouring the whole contents, ice and all, into an empty glass.
2 shots Old Duff Genever 40% abv
1 shot gin
½ barspoon (2½ml) rich sugar syrup
4 dashes of Angostura aromatic bitters
Shake with crushed ice
Pour contents of shaker including ice into a short glass


About
Hey there! This page is included as an example. Feel free to customize it for your own use upon downloading. Carry on!
- Built for Jekyll
- Developed on GitHub and hosted for free on GitHub Pages
- inspired by Cody House’s Reading Progress Indicator.
- Coded with Sublime Text 2, an amazing code editor
- Designed and developed in an afternoon.
Progress
Progress was built and inspired by Cody House’s Reading Progress Indicator. The folks over at Cody House are pretty fantastic and are making some awesome things. They’re also super responsive to comments, so head on over there and check out what they’ve been doing.
Progress features quick and simple environment is set up so users can input all the necesarry info in the config file and start blogging. Further reiterations are in progress to turn this into a Wordpress theme or make it fully editable with Cloudcannon CMS. I cannot let you resell this unless you contact me
If you’d like give credit somewhere on your blog or tweet a shout out to @alexanderussell, that would be pretty sweet.
If you feel like donating — Give it a thought.
Basic Setup
- Install Jekyll if you haven’t already.
- Download this bad boy.
- Fork the Progress repo
- Twerk it out so it’s just for you.
- ???
- Profit
Have questions or suggestions? Feel free to open an issue on GitHub or ask me on Twitter.
Thanks!


Black cat announced as a starter for the Dallas Cowboys a week after halting a game
by CNNLast week, no one knew the random black cat that delayed Monday's NFL game . This week, the cat's been announced as a starter for the Dallas Cowboys.
The Cowboys listed the black cat as "MVP Rally Cat" in a tweet announcing this week's starting lineup against the Minnesota Vikings. The graphic also included the blue Cowboys star in the pupil of the cat.
The frantic feline took to the field during the second quarter Monday when the Cowboys were playing the New York Giants at MetLife Stadium. Evading New Jersey state troopers, the cat scored its own touchdown and the crowd -- Cowboys and Giants fans alike -- erupted in cheers. The cat then disappeared into a tunnel and into the night.
The cat was bad luck for the Giants, but good luck for the Cowboys, who won 37-18.
Seems the cat's luck ran out for the Cowboys this week, the Vikings won 28-24.


Lab queue
CURRENT
YOLO
NEXT
SWAG
Error!
Change a few things up and try submitting again.
Help me!
Don't help me!
Remove
Undo removal
#
Computer


Paragraph about how what we are trying to accomplish. about us the delvelopers and how to contribute to the site(link to git repo)


Psalms 64:4
That they may shoot in secret at the perfect: suddenly do they shoot at him, and fear not.


Long day wrestling with complicated code. Once I managed to simplify it, several tough to trace bugs vanished. Simplicity is the way.
9/17/2009, 5:05:12 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
Long day wrestling with complicated code. Once I managed to simplify it, several tough to trace bugs vanished. Simplicity is the way.
9/17/2009, 5:05:12 PM
Favs: 0
Retweets: 0
link


Habitat
The Golem can be found in the mountains or where there are volcanoes. The Alolian form is found only on Alol.


I am currently in my last year of working towards my Bachelor of Computer and Information Science majoring in Software Development. Overall I have found the course an interesting experience and learnt a large number of different programming languages some of these languages include Java, Dart, SQL and PHP as well as many other languages and key programs which will I feel will definitely support me in the careers.
I have found that doing this paper, Human-Computer Interactions has provided me with a different more design based view of User Interface development as well as how users can interact with a computing system. This makes me feel more confident and obligated to question and review my development processes when it comes to creating user interfaces.
With assignment 2 the team decided to test the Xiaomi Smart-Lamp and its corresponding mobile application ‘Xiaomi Home’. This was an interesting technology to trial because it is a recent technology that can be linked to smart devices like Alexia and Google Home as well as the recent insurgence of the technology means that it is being used by more and more people.
Personally, I have very limited experience in using smart technology or phone application linked phones however recently after a few other friends have picked up other brands of smart light bulbs I thought I would give on a go. Therefore I only have around one to two week with using the Xiaomi Smart lamp however I have found that this lamp is very fun to use and useful. Especially with the blue light limiter light which I use while on my PC. When I use this setting I have found that it has been helping me with getting to sleep directly after using my computer.
The whole team worked on everything together. I was responsible for creating the google forms survey as well as setting up and recording the test. We then as a team wrote up the results and gave all our impressions. I found that while doing this experiment that it was interesting how hard some subjects found using Xiaomi home which I found really easy to use and learn. Another interesting point which only came to me after the testing was how the subjects all seemed unaware of possible security risks having a technology which connects to your internet can be and could be a backdoor into a network. This is something that if I was to complete this experiment again I would like to look into more.
While I feel overall the experiment was an interesting test which gave some interesting results I think that there are definitely lots of places where the team and myself could improve to make the assignment easier to complete and possibly give better more valid results.
The first aspect is being that we should have started to gather results and planning the tests earlier. The team was formed around 2-3 Weeks into semester 2 as I initially wanted to try the assignment by myself, However, the more I saw the workload the more I thought a group would be better.
Next, the team needed better communication. I should also be considered part of this fault as well as there would be weeks where the team would have 0 communication in the group chat and I feel that this may have slightly affected our experiment and approach by delaying time. If I was to do this again I think that I should maybe initiate more conversations and messages among the group so everyone is on the same page. I started doing this near the end of the project however I still feel it may have been too late.
Overall though, The team has been able to provide results and experiment which I am happy with, besides the improvements which could have been made I feel that this paper and assignment has given me a very interesting learning experience which I feel will help me later on in my career depending on where I end up.


Glossary
General
Client
A system that is using the External API, making requests and consuming responses.
Data
Event
A recording that is either going to take place, has been recorded using Opencast scheduling or has been uploaded either using the External API or the Opencast administrative user interface. A collection of events may be grouped using a series.
Series
A collection of events.
Users and Groups
User
A person accessing data provided by the External API.
Producer
A user that is managing individual recordings or groups of recordings. The producer uses the External API to create, curate, publish, retract recordings.
Spectator
A spectator accesses a subset of recordings that has been published by a producer.


Hideo Kojima hints next game could be ‘the scariest horror game’
The follow-up to Death Stranding could end up being a horror game in the vein of P.T. and Silent Hills, according to a new hint form Kojima.
It’s very common that when a developer leaves a larger company to set up their own studio they end up making something very similar to the games they’re already known for. But while Death Stranding did have a similar open world to Metal Gear Solid 5 the two games don’t really have much else in common.
But the game Hideo Kojima was working on before he left Konami wasn’t anything to do with Metal Gear, but was instead horror game revival Silent Hills, which got as far as the infamous P.T. demo.
He was even working on it with Death Stranding stars Norman Reedus and Guillermo del Toro, and now it seems his thoughts may be returning to making a new survival horror game of his own.
Advertisement Advertisement
The tweet above is somewhat ambiguous, especially given Kojima’s broken English, but it seems to suggest that he is thinking about making a new horror title.
The movie he’s talking about is 2002 film The Eye, which is set in Thailand. There was also an American remake in 2008 starring, Jessica Alba, which was, predictably, terrible.
Although Kojima doesn’t specifically say that he wants to make a horror game next that’s certainly the implication, although the chances of Konami subcontracting him to make a Silent Hill title seems remote.
Whether Reedus and del Toro would also work on Kojima’s next game is hard to say but more recently it was revealed that acclaimed manga artist Junji Ito, known for the likes of Gyo and Hellstar Remina, was also to be involved in Silent Hills.
If Kojima could manage to enlist him again then that would be even more interesting, although when we might hear about his next game – whatever it is – is impossible to guess.
Email<EMAIL_ADDRESS>leave a comment below, and follow us on Twitter


|
| Local Methods | ||
| Managed Object Types | Data Object Types | All Properties | All Methods |
Properties
| Name | Type | Description |
|---|---|---|
| None |
Methods
| Methods defined in this Managed Object |
|---|
| DeleteHostSpecification, DeleteHostSubSpecification, HostSpecGetUpdatedHosts, RetrieveHostSpecification, UpdateHostSpecification, UpdateHostSubSpecification |
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the HostSpecificationManager used to make the method call. |
| host | ManagedObjectReference
to a HostSystem |
The specified host for which the specification will be
deleted.
|
Return Value
| Type | Description |
|---|---|
| None |
Faults
| Type | Description |
|---|---|
| HostSpecificationOperationFailed | Thrown if the method fails when delete the spec. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
subSpecname
of the specified host.
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the HostSpecificationManager used to make the method call. |
| host | ManagedObjectReference
to a HostSystem |
The specified host for which the sub specification will be
deleted.
|
| subSpecName | xsd:string |
The name of the host sub specification to be deleted.
|
Return Value
| Type | Description |
|---|---|
| None |
Faults
| Type | Description |
|---|---|
| HostSpecificationOperationFailed | Thrown if the method fails when delete the sub spec. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
startChangeID
isn't provided, it will
return all the host updated before the endChangeID
. When the
endChangeID
isn't provided, it will return all the hosts
updated after startChangeID
. If both aren't provided, all
hosts having host spec will be returned.
The format of the change ID is defined at
changeID.
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the HostSpecificationManager used to make the method call. |
| startChangeID* | xsd:string |
The beginning of the time period.
|
| endChangeID* | xsd:string |
The ending of the time period.
|
Return Value
| Type | Description |
|---|---|
| ManagedObjectReference[]
to a HostSystem[] | The queried host list. |
Faults
| Type | Description |
|---|---|
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
fromHost
is true
, the host specification is retrieved from the host;
otherwise, it is from the host specification "database" for this manager.
When retrieved from host, the copy in host specification "database" will
be updated. On success, it will fire a
HostSpecificationChangedEvent
.
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the HostSpecificationManager used to make the method call. |
| host | ManagedObjectReference
to a HostSystem |
The specified host whose host specification will be retrieved.
|
| fromHost | xsd:boolean |
Whether retrieve from the host.
|
Return Value
| Type | Description |
|---|---|
| HostSpecification | The host specification of the specified host. |
Faults
| Type | Description |
|---|---|
| HostSpecificationOperationFailed | Thrown if the method fails when retrieve from host. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
HostSpecificationChangedEvent
.
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the HostSpecificationManager used to make the method call. |
| host | ManagedObjectReference
to a HostSystem |
The host whose specification will be updated.
|
| hostSpec | HostSpecification |
The new host specification to be updated with.
|
Return Value
| Type | Description |
|---|---|
| None |
Faults
| Type | Description |
|---|---|
| HostSpecificationOperationFailed | Thrown if the method fails. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
HostSpecificationChangedEvent
.
Parameters
| Name | Type | Description |
|---|---|---|
| _this | ManagedObjectReference | A reference to the HostSpecificationManager used to make the method call. |
| host | ManagedObjectReference
to a HostSystem |
The host whose specification will be updated.
|
| hostSubSpec | HostSubSpecification |
The data object for the new host sub specification.
|
Return Value
| Type | Description |
|---|---|
| None |
Faults
| Type | Description |
|---|---|
| HostSpecificationOperationFailed | Thrown if the method fails. |
| RuntimeFault | Thrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error. |
Events
| Type | |
|---|---|
| None |
| Top of page | Local Methods | ||
| Managed Object Types | Data Object Types | All Properties | All Methods |


Ayush Sharma posted an update
After several plans being cancelled finally, we are here at Otty
#Ootydairies #travel
Like
Comment
Ayush Sharma shared RVCJ's post
Like
Comment
Aniket shared Despacito ft. Daddy Yankee
Like
Comment


SDK for OfflineList
1. Plugin
1.1. Some declaration
1.2. Function
summary
2. Module
2.1. Some declaration
2.2. Function summary
Plugin
Some declaration
Functions for launch the emulator:
C++: typedef void
(__stdcall FLaunchEmulatorFile)(char *fileName);
Delphi: type
FLaunchEmulatorFile = procedure(fileName:PChar); stdcall;
fileName : indicate the complete path of the rom (archived or not).
C++: typedef void
(__stdcall FLaunchEmulatorCRC)(char *crc);
Delphi: type
FLaunchEmulatorCRC = procedure(crc:PChar); stdcall;
crc : indicate the crc of the file you want launch with the emulator.
Function for add files:
C++: typedef void
(__stdcall FAddRoms)(char *files);
Delphi: FAddRoms =
procedure(files:PChar);
files is a string representing the files names separated by the char
"\0" (#0 in delphi) and terminated by a doble "\0".
The files can be archives or simple files.
Exemple:
- for one file: "C:\\foo.zip\0\0" (or 'C:\foo.zip'
+ #0#0 in delphi)
- for more than one files:
"C:\\foo.zip\0D:\\foo2.gba\0 ... D:\\foox.gba\0\0"
Function for get the
unknows files
folder:
C++: typedef char
*(__stdcall FGetUnknownROMSDir)();
Delphi: FGetUnknownROMSDir
= function(): pchar; stdcall;
Return the path of the unknown files folder.
Fonction for extracting files:
C++: typedef INT32
(__stdcall FExtractRom)(char *crc, char *folder, INT32 patch, INT32
overwrite);
Delphi: FExtractRom =
function(crc:PChar; folder: PChar; patch:Integer; overwrite:Integer):
Integer; stdcall;
crc: extract file with the correponding crc.
folder: the folder to extract files.
patch: specify if the files must be patched by the modules activated (0
for not patch, other values to patch).
overwrite: specify if the extraction can overwrite existing files.
Structure for files info:
C++:
typedef
struct s_info{
s_info *nextInfo; // the next game selected.
char *crc; // indicate the crc of the rom file.
char *name; // indicate the name of the game.
char *named; // indicate the rom naming.
long num; // indicate the release number of the rom.
long size; // indicate the size of the rom.
INT32 location; // indicate the location of the rom.
INT32 language; // indicate the Language(s) of the rom.
char *save; // indicate the save type of the rom.
char *publisher; // this is the publisher of the game.
char *sourceItem; // this is the group who release the first dump
available for the rom.
char *comment; // this is the comment available for this rom.
char *fileExtention; // the file extention of the rom.
char *system; // the system of the dat file who contains this rom.
char *fileName;
}
s_info;
Delphi:
type
PInfo
= ^TInfo;
TInfo
= record
nextInfo: PInfo;
crc: PChar;
name: PChar;
named: PChar;
num: Integer;
size: Integer;
location:Integer;
language:Integer;
save: PChar;
publisher: PChar;
sourceItem: PChar;
comment: PChar;
fileExtention: Pchar;
system: Pchar;
fileName: PChar;
end;
nextInfo: the next item selected.
location: the item location, the values are:
0 = Europe
1 = USA
2 = Germany
3 = China
4 = Spain
5 = France
6 = Italy
7 = Japan
8 = Netherlands
9 = England
10 = Denmark
11 = Finland
12 = Norway
13 = Poland
14 = Portugal
15 = Sweden
16 = Europe USA
17 = Europe USA Japan
18 = USA Japan
19 = Australia
20 = North Korea
21 = Brazil
22 = South Korea
23 = Europe Brazil
24 = Europe USA Brazil
25 = USA Brazil
language: the item language(s), the individual values are:
1 = French
2 = English (US)
4 = Chinese
8 = Danish
16 = Dutch
32 = Finland
64 = German
128 = Italian
256 = Japanese
512 = Norwegian
1024 = Polish
2048 = Portuguese
4096 = Spanish
8192 = Swedish
16384 = English (UK) (only if English (US) already
exist)
32768 = Portuguese (BR)
65536 = Korean
Structure for functions:
C++:
typedef
struct {
FExtractRom *extractRom;
FLaunchEmulatorFile *launchEmulatorFile;
FLaunchEmulatorCRC *launchEmulatorCRC;
FAddRoms *addRoms;
FGetUnknownROMSDir *getUnknownROMSDir;
} s_functions;
Delphi:
type
TFunctions=record
extractRom: FExtractRom;
launchEmulatorFile: FLaunchEmulatorFile;
launchEmulatorCRC: FLaunchEmulatorCRC;
addRoms: FAddRoms;
getUnknownROMSDir: FGetUnknownROMSDir;
end;
Function summary
C++: void __stdcall
closePlugin()
Delphi: procedure
closePlugin; stdcall;
This function is called when the plugin is deactivated.
C++: char *__stdcall
getAuthor()
Delphi: function
getAuthor: PChar; stdcall;
Return the plugin author.
C++: char *__stdcall
getName()
Delphi: function getName:
PChar; stdcall;
Return the plugin name.
C++: char *__stdcall
getSDKVersion()
Delphi: function getSDKVersion: PChar; stdcall;
Return the SDK plugin version. NEEDED (the
SDK version 0.1 to 0.6 are not used anymore)
C++: char *__stdcall
getSmallComment()
Delphi: function getSmallComment: PChar; stdcall;
Return the small comment for describe the plugin.
C++: char *__stdcall
getVersion()
Delphi: function
getVersion: PChar; stdcall;
Return the plugin version.
C++: void __stdcall
initPlugin(s_functions functions, char *folder)
Delphi: procedure initPlugin(functions:
TFunction; folder:PChar); stdcall;
This function is called when the plugin is activated. NEEDED
functions: The functions structure.
folder: The folder where the plugin can store data.
C++: char *__stdcall
inMenu()
Delphi: function inMenu: PChar; stdcall;
If there are only one menu it will be displayed directly else if there are at least 2
menus there will be sub-menu of a menu named like the plugin.
Return the list of menu
which should be desplayed in the plugin menu.
The menus must be separated
by "\0" and the string must be finished by "\0\0"
You can add a separator by
naming a menu "-".
C++: char *__stdcall
inPopupMenu()
Delphi: function inPopupMenu: PChar; stdcall;
If there are only one menu it will be displayed directly else if there
are at least 2 menus there will be sub-menu of a menu named like the
plugin.
Return the list of menu
which sould be displayed in context menu in the list of item.
The menus must be separated by "\0" and the string must be finished by
"\0\0"
You can add a separator by
naming a menu "-".
C++: char *__stdcall
inPopupMenuHave()
Delphi: function inPopupMenuHave: PChar; stdcall;
If there are only one menu it will be displayed directly else if there
are at least 2 menus there will be sub-menu of a menu named like the
plugin.
Return the list of menu
which sould be displayed in context menu in the list of item. (for
available item)
The menus must be separated by "\0" and the string must be finished by
"\0\0"
You can add a separator by
naming a menu "-".
C++: char *__stdcall inPopupMenuMiss()
Delphi: function inPopupMenuMiss: PChar; stdcall;
If there are only one menu it will be displayed directly else if there
are at least 2 menus there will be sub-menu of a menu named like the
plugin.
Return the list of menu
which sould be displayed in context menu in the list of item. (for
missing item)
The menus must be separated by "\0" and the string must be finished by
"\0\0"
You can add a separator by
naming a menu "-".
C++: boolean __stdcall
isCompatible(char *system)
Delphi: function : PChar;
stdcall;
This function is called for know if the data file is supported by the
plugin.
C++: void __stdcall
onMenuClick(INT32 action)
Delphi: procedure onMenuClick(action:
Integer); stdcall;
This function is called when the user click on the context menu of the
list of item.
The "action" integer
indicate wich menu is clicked 0 for the first menu, 1 for the second,
...
C++: void __stdcall
onPopupMenuClick(INT32 action, s_info itemInfo)
Delphi: procedure onPopupMenuClick(action:
Integer; itemInfo: PInfo); stdcall;
This function is called when the user click on the context menu of the
list of item.
The "action" integer
indicate wich menu is clicked 0 for the first menu, 1 for the second, ...
C++: void __stdcall onPopupMenuHaveClick(INT32 action,
s_info itemInfo)
Delphi: procedure onPopupMenuHaveClick(action: Integer;
itemInfo: PInfo); stdcall;
This function is called
when the user click on the context menu of the list of item (for available item).
The "action" integer
indicate wich menu is clicked 0 for the first menu, 1 for the second, ...
C++: void __stdcall onPopupMenuMissClick(INT32 action,
s_info itemInfo)
Delphi: procedure onPopupMenuMissClick(action: Integer;
itemInfo: PInfo); stdcall;
This function is called
when the user click on the context menu of the list of item (for missing item).
The "action" integer
indicate wich menu is clicked 0 for the first menu, 1 for the second, ...
C++: void __stdcall
rename(INT32 language)
Delphi: procedure
rename(language: Integer); stdcall;
This function is called at startup of OfflineList and when the user
change the selected language.
The language value:
- 0 : English
- 1 :
French
- 2 : Chinese (Simp)
- 3 : Chinese (Trad)
- 4 : German
- 5 :
Dutch
- 6 : Italian
- 7 : Japanese
- 8 : Norwegian
- 9 :
Polish
- 10 : Portuguese (Brazil)
- 11 : Spanish
- 12 : Spanish (Mexico)
- 13
: Swedish
- 14 : Danish
- 15 : Czech
- 16 : ... .
Module
Some declaration
C++:
typedef
struct {
char *filePath;
char *crc; // indicate the crc of the rom file.
char *name; // indicate the name of the game.
char *named; // indicate the rom naming.
INT32 num; // indicate the release number of the rom.
} s_item;
Delphi:
type
TItem
= record
filePath : PChar;
crc: PChar;
name: PChar;
named: PChar;
num: Integer;
end;
filePath: the path of the file to modify
crc: the item/file crc
name: the item name
named: the item "naming"
num: the item number
Function summary
C++: void __stdcall
closeModule()
Delphi: procedure
closeModule; stdcall;
This function is called when the module is deactivated.
C++: void __stdcall editRom(s_item *item)
Delphi: procedure
editRom(item: TItem); stdcall;
Function for edit an item.
C++: char *__stdcall
getAuthor()
Delphi: function
getAuthor: PChar; stdcall;
Return the module author.
C++: char *__stdcall
getName()
Delphi: function getName:
PChar; stdcall;
Return the module name.
C++: char *__stdcall
getSDKVersion()
Delphi: function getSDKVersion: PChar; stdcall;
Return the SDK module version. NEEDED (the
SDK version 0.1 to 0.6 are not used anymore)
C++: char *__stdcall
getSmallComment()
Delphi: function getSmallComment: PChar; stdcall;
Return the small comment for describe the module.
C++: char *__stdcall
getVersion()
Delphi: function
getVersion: PChar; stdcall;
Return the module version.
C++: void __stdcall
initModule(char *folder)
Delphi: procedure initModule(folder:PChar);
stdcall;
This function is called when the module is activated. NEEDED
folder: The folder where the module can store data.
C++: boolean __stdcall
isCompatible(char *system)
Delphi: function : PChar;
stdcall;
This function is called for know if the data file is supported by the
module.
C++: void __stdcall
rename(INT32 language)
Delphi: procedure
rename(language: Integer); stdcall;
This function is called at startup of OfflineList and when the user
change the selected language.
The language value:
- 0 : English
- 1 :
French
- 2 : Chinese (Simp)
- 3 : Chinese (Trad)
- 4 : German
- 5 :
Dutch
- 6 : Italian
- 7 : Japanese
- 8 : Norwegian
- 9 :
Polish
- 10 : Portuguese (Brazil)
- 11 : Spanish
- 12 : Spanish (Mexico)
- 13
: Swedish
- 14 : Danish
- 15 : Czech
- 16 : ... .


First name:
Last Name:
Company:
Address:
City/Town:
State/Province:
Alabama
Alaska
Arizona
Arkansas
California
Colorado
Connecticut
--- continue here ---
Washington
West Virginia
Wisconsin
Wyoming
Postal/Zip code:


Lionel Messi in Israel despite rockets and boycott threats
by ARON HELLERTEL AVIV, Israel (AP) - International soccer superstar Lionel Messi has arrived in Israel for a much-anticipated match, despite calls for boycott and the threat of rocket fire.
The Argentinian national team landed Sunday in Israel for an international friendly match against Uruguay in Tel Aviv.
A Palestinian protest campaign derailed a planned visit by Messi last year for a World Cup warmup match, and last week’s violence in Gaza threatened to cancel the exhibition match set for Monday.
TOP STORIES
Biden trolls Trump after Stone verdict: 'Zero criminal convictions' for Team Obama
Woman fatally shot during party at business park
Accused thieves, child-porn suspects, suspected murderers among DACA recipients: Report
Messi and the Argentinians will face his Barcelona teammate Luis Suarez and the Uruguayans in a game as eagerly anticipated for its political ramifications as its sporting star power.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


- GeneralPathWrapper - Class in edu.ucsb.cs56.drawings.utilities
-
Because GeneralPath is declared as "final", we can't extend it.
- GeneralPathWrapper() - Constructor for class edu.ucsb.cs56.drawings.utilities.GeneralPathWrapper
-
- GeneralPathWrapper(GeneralPath) - Constructor for class edu.ucsb.cs56.drawings.utilities.GeneralPathWrapper
-
If we already have a GeneralPath, we can wrap it.
- get() - Method in class edu.ucsb.cs56.drawings.utilities.GeneralPathWrapper
-
Tests if the specified coordinates are inside the boundary of the
Shape.
- getBounds() - Method in class edu.ucsb.cs56.drawings.utilities.GeneralPathWrapper
-
Returns an integer Rectangle that completely encloses the
Shape.
- getBounds2D() - Method in class edu.ucsb.cs56.drawings.utilities.GeneralPathWrapper
-
Returns a high precision and more accurate bounding box
of the Shape than the getBounds method.
- getPathIterator(AffineTransform) - Method in class edu.ucsb.cs56.drawings.utilities.GeneralPathWrapper
-
Returns an iterator object that iterates along the
Shape boundary and provides access to the geometry of
the Shape outline.
- getPathIterator(AffineTransform, double) - Method in class edu.ucsb.cs56.drawings.utilities.GeneralPathWrapper
-
Returns an iterator object that iterates along the
Shape boundary and provides access to a flattened view
of the Shape outline geometry.


Values
September 13, 2015
This article is about values that are important to me. See my top six values below. I labled them with numbers that give the amount of how strongly I agree with living up to these values (1=disagree, 5=agree).
- Freedom: 4
- Independence: 4
- Inner harmony: 5
- Meaningful work: 5
- Mentorship: 4
- Wisdom: 4
Independence
Independence is one of the most important values to me. Why? I think it is very valuable to have your own thoughts and not always being influenced by what other people think or ask you to do. Get inspired by others but make up your own mind, be reflective, be brave and come up with new solutions instead of just fulfilling what is asked from you to do.
Values, Advice and Stereotype threat
I try to stick to my values at any time. They might be especially influencal in situations when you have to give advice or when you're challenged to deal with strerotype threat. Sometimes you forget about them but still, I, personally try to think about my true values are from time to time in order to have them as present as possible and rely on them as often as possible - in any kind of situation.


2017 SWAPO congress outcome challenge dismissed with cost
The 2017 SWAPO congress challenge has been dismissed with cost by High Court Judge, Thomas Masuku.
This is after two members, Mirjam Shituula and Selma Namboga took the ruling party to court over alleged irregularities and asked the outcome of the congress to be declared null and void.


I wrote a simple cryptographic algorithm this evening. Specifically it is meant to encrypt passwords into cookies, to allow for persistent logins. These were some of the requirements that made me want to roll my own:
Maybe this already exists, but most of the algorithms I've seen either aren't secure (e.g., rotor) or aren't compact. And anyway, it seemed fun. I'd be very curious if anyone sees particular vulnerabilities with this algorithm (besides the fact that it should only encrypt short plaintexts). The code is in simplecrypt.py. The algorithm:
First take the plaintext and encode it so that it is of minimum length and aligned in some way. By default it must be 10 characters long, and aligned to the next 5 characters (e.g., a 12 byte string becomes 15 bytes). Random characters are added to the end, and at least one random character is always used. We add a leading character telling what the actual length of the string is. (This way a very short password will not appear particularly short when encrypted.) This is the encoded plaintext.
Take a hash of the encoded plaintext and the key, possibly truncating it to save space. We will call this hash the signature.
Take an sha hash of the signature and the key. This hash will be the encoding key.
XOR the encoding key with the encoded plaintext. Prepend the signature. This is the full ciphertext.
Reverse the steps to decrypt. I use the SHA hash, which is 20 characters long. I think any plaintext over 20 characters could be vulnerable, since we have to reuse the encoding key when XORing it with the plaintext, and patterns may emerge.
Anyway, this seemed pretty simple, and seems to fit the bill. Am I missing anything?
Remember that (A XOR C) XOR (B XOR C) is A XOR B, so yes, even a little bit of key reuse is bad.
Why aren't you just using HMAC? You probably already have a library for it...
I notice that I've acquired the habit of twitching violently when anyone says something like "homebrew encryption." I wonder where I picked that up.
import hmac
Python 2.2 does indeed have an hmac library -- I hadn't noticed it before. But I don't see how it changes much -- HMAC just seems to be a way to sign things, and an HMAC is not noticeably different than hashing the concatenation of the key and plaintext (except it standardizes aspects). Standardizing my homebrew encryption isn't that important ;)
Note that the key is in all cases secret, and is not reused. So (A XOR C) XOR (B XOR C) wouldn't happen -- i.e., someone couldn't submit a known plaintext (B), and use that to decode (A XOR C), since the two messages would actually be (A XOR C1) and (B XOR C2). But I think if, say, you had a 200 character plaintext, and a 20 character hash, you could potentially find out what the hash is, since character 1, 21, 41, 61, 81, 101, 121, 141, 161, and 181 would have been XORed with the same value, and you could start to guess (using knowledge about the likely distribution of characters) what that value of the key/mask had been. This would still only allow you to break that one message -- the key would remain secret even after a successful brute-force attack of this style.# Ian Bicking
A SHA hash is a one way function. Why go through an encryption scheme, when no one can really get back to the original password? Use a SHA1 hash of the password and be done with it.
Because hashed passwords are hard to work with. Frequently a password is stored in a hashed form, so you'd have to be sure to hash the cookie in the exact same way, or do some sort of double-hashing. There are also many situations where you need the actual password to authenticate the person.
I have thought about storing some more arbitrary authentication, though -- basically hashing the username with a secret key. Then this would take the place of a password -- we'd rely on the fact that sometime in the past (when we originally set the cookie) the user had authenticated themself, and this the signed hash proves it is the same user. (Well, actually just the same browser, but that's a different issue)
If you store the password you also allow a person to implicitly invalidate persistent logins by changing the account's password.# Ian Bicking
google for python crypto oneliners. There is ARC4 as line or two.# Niki Spahiev
Never, ever, write your own encryption algorithm and assume it's secure. It never is. Try using one of the existing, proven ones. And keep the key secure. Blowfish might be a good bet. It's faster than AES/rijndael, and pretty secure.# Frederik De Bleser
But Blowfish turns my iddy bitty 8-character password into 118 characters! Looking at the cookie standards, that's still well within the size limit, so maybe that's not so bad. Well, maybe that's not even true, it seems to be a particular implementation of Blowfish, which may be adding filename, a hash, and other information to the encrypted stream. The raw algorithm seems to cause little expansion (using this module: http://bofh.concordia.ca/blowfish.py )# Ian Bicking
It might make it a bit more secure if you put the random chars at the begining instead of at the end.
But I think for any real security, one should use a proven algorythm.
I like this though because its light weight and would provide enough security as needed non widespread use, certain situations.
I tried to make one similar myself for storing passwords in inifiles, but I couldn't make it as secure as I wanted, so I just stored them xored with the repeating username then base64 encoded. (Oh no now my secrets out!)
No flames for the above insecure algorythm please, its just a step up from plain text It's just to protect against nosey pc repair guys. Even if they get the password, they have to build a twisted PB program to use it, and as soon as they do we'll know and change it.
Now that I've shared this info, I think I'll have to start using blowfish or something!. I think I'll use the hash of the username appended with a hardcoded key.
Thanks for sharing your algorythm.
I've found that security via obscurity seems to be the only way to deal with some situations, particularly when you have a program that stores a password and needs to be able to get the plaintext password on its own, as in a client that does something on behalf of some user. You can use whatever encryption, but it doesn't really matter, because on some level you have a plaintext key.
This is why DRM schemes are breakable -- it's certainly not that the designers don't understand encryption algorithms (DVD's CSS aside).# Ian Bicking
Speed should not be an important requirement especially for small messages of the kind found in cookies. For less than a couple hundred bytes... speed won't matter.# Larry
I've seen performance issues when encrypting credit card numbers, so speed is definitely a concern. That was public-key encryption, which is typically much slower, but I've noticed similar issues with the pure-Python AES implementation.# Ian Bicking
BUT why send the password in the cookie in the first place. It is so much easier (and IMHO more secure) to just store the password locally and send a session id in the cookie. That way you have the possibility to add more 'cookie' data as you go along without having to send it all in a cookie.
Beats encryption anytime.
# Rob
Please do yourself a favor and read Applied Cryptography.


Before you embark: Since this is a challenge mode intended for experienced players, there is not much to say. You can take as many items as you like, making it harder or easier for your start.
After the embark: At the beginning the game will look like normal dwarf mode. The only change is one new workshop, !Start Hermit Mode!, build it and run the reaction to start playing properly, kill the dwarves and select your hermit.
Since you play as a single person, security is important more than ever, so get a pick and build your home quickly.
Late-Game: Thats all yours. Dig to hell, open a tavern for mercs and bards, rob caravans, be a loner in a forest, or create the most amazing masterpiece gear of all times, for your adventurer to find.


--- layout: post title: The WASABI Principle date: 2009-10-30 01:06:54.000000000 -07:00 categories: [] tags: [] status: publish type: post published: true ---
Joel Spolsky got something right when he says If it's a core business function -- do it yourself, no matter what.
When code generation technology (think community projects like AppFuse and Grails) are becoming mainstream, comprehensive and open source, some companies will still find reasons not to adopt them for side projects that are non-critical to the core business. Some reasons that I have heard:
* Organizational Knowledge: "we don't have anyone else who knows that open source project if you leave"
* They'll break us: "what if the release a new non-backward compatible version?"
* Optimistic NIH Syndrome: "we have half the features implemented in house already - can't we just build the rest ourselves?"
Now sometimes, these reasons for not adopting a side-technology may be relevant, if we think that the side technology may be a core technology in the future, or if it is a non-mainstream technology.
But I think many seasoned developers make the mistake of thinking "how am I going to build it" rather than "who has built this before" as a first line of thinking, especially for non business-critical projects.
So I'll put a twist on Spolsky and YagNi: -
If it ain't core business, think WASABI - "We always should avoid building it".


| PostgreSQL 9.0.10 Documentation | ||||
|---|---|---|---|---|
| Prev | Up | Chapter 40. PL/Tcl - Tcl Procedural Language | Next |
The following commands are available to access the database from the body of a PL/Tcl function:
spi_exec
?-count n? ?-array name? command ?loop-body? Executes an SQL command given as a string. An error in the command
causes an error to be raised. Otherwise, the return value of spi_exec
is the number of rows processed (selected, inserted, updated, or
deleted) by the command, or zero if the command is a utility
statement. In addition, if the command is a SELECT statement, the
values of the selected columns are placed in Tcl variables as
described below.
The optional -count value tells
spi_exec
the maximum number of rows
to process in the command. The effect of this is comparable to
setting up a query as a cursor and then saying FETCH n.
If the command is a SELECT statement, the values of the result columns are placed into Tcl variables named after the columns. If the -array option is given, the column values are instead stored into the named associative array, with the column names used as array indexes.
If the command is a SELECT statement and no loop-body
script is given, then only the first row of results are stored into
Tcl variables; remaining rows, if any, are ignored. No storing occurs
if the
query returns no rows. (This case can be detected by checking the
result of spi_exec
.) For example:
spi_exec "SELECT count(*) AS cnt FROM pg_proc"
will set the Tcl variable $cnt to the number of rows in the pg_proc system catalog.
If the optional loop-body argument is given, it is a piece of Tcl script that is executed once for each row in the query result. (loop-body is ignored if the given command is not a SELECT.) The values of the current row's columns are stored into Tcl variables before each iteration. For example:
spi_exec -array C "SELECT * FROM pg_class" { elog DEBUG "have table $C(relname)" }
will print a log message for every row of pg_class. This feature works similarly to other Tcl looping constructs; in particular continue and break work in the usual way inside the loop body.
If a column of a query result is null, the target variable for it is "unset" rather than being set.
spi_prepare
query typelistPrepares and saves a query plan for later execution. The saved plan will be retained for the life of the current session.
The query can use parameters, that is, placeholders for values to be supplied whenever the plan is actually executed. In the query string, refer to parameters by the symbols $1 ... $n. If the query uses parameters, the names of the parameter types must be given as a Tcl list. (Write an empty list for typelist if no parameters are used.)
The return value from spi_prepare
is a query ID
to be used in subsequent calls to spi_execp
. See
spi_execp
for an example.
spi_execp
?-count n? ?-array name? ?-nulls string? queryid ?value-list? ?loop-body? Executes a query previously prepared with spi_prepare
.
queryid is the ID returned by
spi_prepare
. If the query references parameters,
a value-list must be supplied. This
is a Tcl list of actual values for the parameters. The list must be
the same length as the parameter type list previously given to
spi_prepare
. Omit value-list
if the query has no parameters.
The optional value for -nulls is a string of spaces and
'n' characters telling spi_execp
which of the parameters are null values. If given, it must have exactly the
same length as the value-list. If it
is not given, all the parameter values are nonnull.
Except for the way in which the query and its parameters are specified,
spi_execp
works just like spi_exec
.
The -count, -array, and
loop-body options are the same,
and so is the result value.
Here's an example of a PL/Tcl function using a prepared plan:
CREATE FUNCTION t1_count(integer, integer) RETURNS integer AS $$ if {![ info exists GD(plan) ]} { # prepare the saved plan on the first call set GD(plan) [ spi_prepare \ "SELECT count(*) AS cnt FROM t1 WHERE num >= \$1 AND num <= \$2" \ [ list int4 int4 ] ] } spi_execp -count 1 $GD(plan) [ list $1 $2 ] return $cnt $$ LANGUAGE pltcl;
We need backslashes inside the query string given to
spi_prepare
to ensure that the
$n markers will be passed
through to spi_prepare
as-is, and not replaced by Tcl
variable substitution.
spi_lastoid
Returns the OID of the row inserted by the last
spi_exec
or spi_execp
, if the
command was a single-row INSERT and the modified
table contained OIDs. (If not, you get zero.)
quote
string Doubles all occurrences of single quote and backslash characters
in the given string. This can be used to safely quote strings
that are to be inserted into SQL commands given
to spi_exec
or
spi_prepare
.
For example, think about an SQL command string like:
"SELECT '$val' AS ret"
where the Tcl variable val actually contains doesn't. This would result in the final command string:
SELECT 'doesn't' AS ret
which would cause a parse error during
spi_exec
or
spi_prepare
.
To work properly, the submitted command should contain:
SELECT 'doesn''t' AS ret
which can be formed in PL/Tcl using:
"SELECT '[ quote $val ]' AS ret"
One advantage of spi_execp
is that you don't
have to quote parameter values like this, since the parameters are never
parsed as part of an SQL command string.
elog
level msgEmits a log or error message. Possible levels are DEBUG, LOG, INFO, NOTICE, WARNING, ERROR, and FATAL. ERROR raises an error condition; if this is not trapped by the surrounding Tcl code, the error propagates out to the calling query, causing the current transaction or subtransaction to be aborted. This is effectively the same as the Tcl error command. FATAL aborts the transaction and causes the current session to shut down. (There is probably no good reason to use this error level in PL/Tcl functions, but it's provided for completeness.) The other levels only generate messages of different priority levels. Whether messages of a particular priority are reported to the client, written to the server log, or both is controlled by the log_min_messages and client_min_messages configuration variables. See Chapter 18 for more information.


FFL REMEMBERS REMARKABLE PRO-LIFE WOMAN®
AMBASSADOR LINDY BOGGS
&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;
&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;
By Serrin M. Foster, FFL President
Former Congresswoman and Ambassador Lindy Boggs died Saturday July 27, 2013, at
the age of 97. She lived a most remarkable life.
Born Marie Corrine Morrison Claiborne in Louisiana on March 13, 1916, she was later
nicknamed “Rolindy” because she resembled her father Roland, who died when she was
just two years old. But eventually people came to know her as “Lindy.”
Boggs’ ancestors served in Congress during both the 18th and 19th centuries. She
was a descendant of the state’s first governor, William C.C. Claiborne, and second
cousin to deLesseps Story “Chep” Morrison, Sr., Mayor of New Orleans from 1946 to
1961. Politics was in her blood.
Lindy Boggs was a teacher when she married Thomas Hale Boggs, Sr., a lawyer and
former classmate at Tulane University who was first elected to Congress in 1940.
She was just 24 when she arrived in Washington, D.C. She served as his campaign
manager, staffer, and top political advisor. “Early on, Hale established with politicians
at home that I was his direct representative and that they could say anything to
me that they could say to him. Whatever decisions I made, they would be his final
decisions,” she recalled.
In October 1972, House Majority Leader Hale Boggs, along with Representative Nick
Begich, an aide, and their pilot, disappeared while traveling over a remote section
of Alaska en route to a fundraiser for Begich. Three months later, the House declared
his seat vacant. Boggs (and Begich) won election posthumously. On January 12, Lindy
Boggs announced her candidacy for her late husband’s seat saying, “I know the job
and am humbled by its proportions.”
Ten days later, the U.S. Supreme Court would announce its landmark decision, Roe
v. Wade.
“She’s the only widow I know who is really qualified - damn qualified - to take
over,” barked the cantankerous Armed Services Chairman F. Edward Hébert of Louisiana.
Boggs won the special election in a landslide victory. Shortly after the election,
she was asked if she had any doubts about running for her husband’s former office.
She quipped, “The only thing that almost stopped me was that I didn’t know how I
could do it without a wife.”
Boggs became the first woman to represent Louisiana in the House of Representatives.
It was only one of many firsts.
Representative Boggs helped to write the Employment Credit Opportunity Act of 1974
and held seats on the powerful House Appropriations Committee and the Select Committee
on Children, Youth, and Families.
Among her most noted accomplishments was personally marking up the Equal Credit
Opportunity Act of 1974. Representative Boggs appreciated that it prohibited discrimination
on the basis of “race and age, and their status as veterans.” But as a new widow
who had to manage her own finances, she decided to expand protection for women.
Without informing other members on the Committee, she said, “I ran into a room
where there was a copying machine, wrote in ‘sex and marital status’ on the bill,
and made 47 copies.” After distributing the copies, she explained to her colleagues
in her Southern drawl, “Knowing the members composing this committee as well as
I do, I’m sure it was just an oversight that we didn’t have 'sex’ or 'marital status’
included. I’ve taken care of that, and trust it meets with the committee’s approval.”
It passed unanimously, 47-0. She was a freshman legislator at the time.
In 1977, Boggs helped co-found the Congressional Women’s Caucus. She considered
herself a champion of women’s issues. “Almost all women’s issues are economic issues,
a stunning idea to those persons who want to hear about 'Great Women’s Issues’ and
expect us to be preoccupied with the ERA or abortion or sexual harassment.” She
explained, “The major issues of importance that I’ve worked for are economic ones:
equal rights for women in business, banking, and home ownership; the promotion of
women in the workplace; better jobs in government contracts; and equal opportunities
for higher education, especially in science and medicine.”
While Boggs did not see abortion as the top issue for women, the pro-life Democrat
consistently voted against abortion and for women. Most famously, in 1977 she and
five other women out of 18 voted “Aye” for the Hyde Amendment, which to this day
bars Medicaid funding for most abortions.
Few could have predicted that a Louisianan born and raised on a plantation would
become a fierce advocate of civil rights. But Boggs understood that civil rights
were an inseparable part of the political reform movement of the 1940s and '50s.
Among her accomplishments was working for the passage of the Civil Rights Acts
of 1965 and 1968. “You couldn’t want to reverse the injustices of the political
system and not include the blacks and the poor. It was just obvious,” she said.
Boggs was the only white representing a black-majority district in Congress when
she announced her retirement in 1990. “I am proud to have played a small role in
opening doors for blacks and women,” she said at the time.
In another sign of her trailblazing career, Representative Boggs was the first woman
to chair a major political party’s presidential nominating convention. At the 1976
Democratic National Convention in New York, she decreed that she would be addressed
as “Madam Chairwoman,” rather than “Madam Chairman” or “Madam Chairperson.”
“I’m a woman,” she said. “Why should it be neuter?”
In 1984, she was on the shortlist of names considered for Vice President. “[The
party’s] confidence was pleasing, but I knew that my age and feelings regarding
abortion… would preclude any serious consideration of me,” she later recalled.
“I stayed within the mainstream of the consideration and talked to various groups,
never about myself but always about the fact that a woman could be President or
Vice President. I wanted people to remain interested in the possibility.”
During a 1987 National Right to Life Convention, the pro-life feminist invited Feminists
for Life’s leadership to her home in New Orleans.
While a family tragedy marked her start in Congress, another painful loss accompanied
her exit. Lindy Boggs announced her retirement after learning that her daughter
Barbara Boggs Sigmund, mayor of Princeton, N.J., was dying of cancer. Sigmund finally
succumbed to it in October 1990.
A lifelong pro-life Democrat, she retired in 1991, after nine terms in office. She
never faced a serious political challenge for her seat in Congress.
That same year, a reading room set aside for female Members of Congress was named
the Lindy Claiborne Boggs Congressional Women’s Reading Room. According to a U.S.
House historian, it is the only room in the building named for a woman.
Her retirement was premature. Six years later, she answered another call when President
Bill Clinton asked Representative Boggs to serve as the U.S. ambassador to the Vatican.
Her daughter, ABC News journalist Cokie Roberts, described the hearing as a “love
fest,” with friends and colleagues in the Senate filling their time with praise
for the octogenarian.
At age 81, she became the first American woman to hold the diplomatic position.
She served from 1997 until 2001.
Feminists for Life named her a Remarkable Pro-Life Woman® in 1998.
In 2001, Congress honored her for her “extraordinary service” on the occasion of
the 25th anniversary of the Congressional Women’s Caucus.
As a U.S. Senate spouse, Susan Hurley DeConcini traveled in the same political circles
in Washington as Boggs. Later, DeConcini served as a member of Feminists for Life
of America’s Board of Directors, and in anticipation of a 2004 Board meeting in
New Orleans, DeConcini invited her friend Lindy to a private dinner hosted by FFL’s
Board of Directors at Antoine’s Restaurant in New Orleans.
I remember how excited we were when Susie told us that she had accepted our invitation
to hold a dinner in her honor. You knew immediately that Ambassador Boggs was New
Orleans royalty, and if you didn’t know it already, everyone in the restaurant and
on our walk after dinner to her home in the French Quarter made it clear.
As we made our way through the carriage entrance under the house to the center of
the courtyard, she stopped to explain the layout of the grounds. As she stood next
to her fountain, she told us that she inherited the property from an aunt. Soon
after, she arranged for the removal of a dying tree. The landscaper called to assure
her that although he couldn’t find the key to the gate, they scaled the wall and
removed the tree. Horrified, she replied, “But I don’t have a gate!”
The Ambassador gave us a private tour of her historic 18th century Bourbon Street
home and her treasured family and political mementos - many were one and the same.
Her canopied bed rivaled those in palaces in Europe. She was living in a museum.
Ambassador Boggs told us that her children were nervous about her living alone on
Bourbon Street, but it was apparent that the strength of this woman and the genuine
love and admiration felt by the people of New Orleans meant that if anyone should
cause her harm, they should be the ones who should be nervous.
The following year, Ambassador Boggs survived Hurricane Katrina, as did her historic
home. When she decided to relocate closer to family in the Washington, D.C. area,
her daughter Cokie Roberts and son Thomas Hale Boggs, an influential lobbyist and
lawyer, got their wishes.
The recipient of countless local and national honors, she was awarded the Congressional
Distinguished Service Award in 2006 for her time in the House of Representatives.
Most recently, she returned to her beloved city in October 2011 for the funeral
of her longtime friend and colleague, retired Archbishop Philip Hannan, most famous
for “marrying and burying the Kennedys.”

Upon learning of her friend’s passing, former FFL Board member Susan DeConcini said,
“I admired Lindy Boggs because she was a woman who tried to help other women succeed
in the work world and in raising their economic circumstances. In addition to these
causes, she was always pro-life, which I believe is the definition of being a feminist.
What is more feminine than having a baby and nurturing the baby to adulthood? She
and I were on the same page on this subject. She was a role model for many women,
including me.”
In addition to her children, Boggs is survived by eight grandchildren and 19 great-grandchildren.
&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;
Feminists for Life
P.O. Box 320667
Alexandria, Virginia 22320
http://www.feministsforlife.org/support [http://r20.rs6.net/tn.jsp?e=001qP5j3TSU0gDaesAcwAnE4pgiy3b5Tn63X4mDDDm5MXOwThc2NWote5JdGpXkJTnwz3d_1oXJvmxsqQCIgVc8OE4kzXlQIHNE5et9d7zlyp9zFmJU2-LnWy_7j8BhJB3YSky1Q7_3QJE=]
All donations to FFL are tax-deductible to the fullest extent allowed by law.
&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;
&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;&;
Forward this email
<EMAIL_ADDRESS>This email was sent to<EMAIL_ADDRESS>by<EMAIL_ADDRESS>Update Profile/Email Address
http://visitor.constantcontact.com/do?p=oo&mse=001cWKZW7QY-wryAV00X_pJfnp8QMByjjKcvitCHwiZ1A0%3D&t=001J8Ewoz6agMnmeXDiTW_CUA%3D%3D&llr=pm47yidab
Instant removal with SafeUnsubscribe™
http://visitor.constantcontact.com/do?p=un&mse=001cWKZW7QY-wryAV00X_pJfnp8QMByjjKcvitCHwiZ1A0%3D&t=001J8Ewoz6agMnmeXDiTW_CUA%3D%3D&llr=pm47yidab
Privacy Policy:
http://ui.constantcontact.com/roving/CCPrivacyPolicy.jsp
Online Marketing by
Constant Contact®
www.constantcontact.com
Feminists for Life | P.O. Box 320667 | Alexandria | VA | 22320


|
IP/Module
|
Example
| |
|
Name
|
Brief Description
| |
|
AWU
|
AWU_ActiveHaltMode
|
This example provides a short description of how
to use the AWU peripheral:
Pressing
Key button will enter MCU in Halt mode.
The MCU will then exit from halt mode
thanks to the AWU. The wake up time depends
on the AWU peripheral configuration.
| |
|
BEEP
|
BEEP_3SignalsGeneration
|
This example provides a short description of how
to use the BEEP peripheral:
Each time the key button is pressed the Beeper frequency changes and a
corresponding led will be switched on.
| |
|
COMP
|
COMP_Interrupt
|
This
example is demonstrating the comparator interrupt capability on the
detection of an input voltage applied to the COMP2 Channel 3,
higher than its reference .
| |
|
CLK
|
CLK_MasterClock
|
This example demonstrates the different Master Prescaler configuartions, using the joystick available on the evaluation board.
| |
|
EXTI
|
EXTI_IOControl
|
This
example provides a short description of how to use the EXTI peripheral
| |
|
FLASH
|
FLASH_ByteReadWriteOperation
|
This example provides a short description on how
to use FLASH Read/Write/Erase operations on byte
| |
|
FLASH_WriteWordOperation
|
This example provides a short description on how
to use FLASH Program word mode
| |
|
FLASH_DataProgram
|
This example provides a description of how to use
FLASH Write/Erase Block mode on data eeprom memory.
| |
|
GPIO
|
GPIO_IOToggle
|
This example provides a short description of how
to use the GPIO peripheral to toggle Ports Pins infinitely
| |
|
I2C
|
I2C_EEPROM
|
This firmware provides a basic example of how to
use the I2C firmware library and an associate I2C EEPROM driver to
communicate with an I2C EEPROM device
| |
|
I2C_DataExchange
|
This is a typical example of how to use the I2C
software library to ensure the steps of an I2C communication between slave
Receiver/transmitter and master transmitter/receiver using interrupts.
| |
|
ITC
|
ITC_SoftwarePriority
|
This example shows how to change the software
priority of two external interrupt
lines to allow nested interrupt management.
| |
|
IWDG
|
IWDG_Example
|
This example shows how to update at regular period
the IWDG reload counter and how to simulate a software fault generating an
MCU IWDG reset on expiry of a programmed time period.
| |
|
RST
|
RST_IllegalOpcode
|
This example provides a short description of how
to generate detect and manage an illegal opcode reset.
| |
|
SPI
|
SPI_MSD
|
This example provides a short description of how
to make a communication (Write & Read data) between the SPI and a MicroSD
memory card like the one present on the STM8L101-EVAL evaluation board.
| |
|
SPI_FullDuplexUART
|
This example provides a short description of how
to make a master/slave full duplex communication between the SPI and the
UART1, the last is configured in master synchronous mode.
| |
|
SPI_SimplexLCD
|
This example provides a short description of how
to use the SPI firmware library in order to communicate with a monochrome LCD
like the one present on the STM8L101-EVAL eval-board by the mean of the
associated eval LCD driver.
| |
| TIM |
TIM2_InputCapture
|
This example shows how to configure the TIM1 peripheral
to capture the internal clock source (LSI).
| |
|
TIM2_SinewaveGeneration
|
This example shows how to use TIM1 to get the
variation in sine wave frequency from 65Hz to 45Hz.
| |
|
TIM2_OCActiveMode
|
This example shows how to configure the TIM2
peripheral to generate three different signals with three different delays
| |
|
TIM2_OCInactiveMode
|
This example shows how to configure the TIM2 peripheral
to generate 3 different signals with 3 different delays.
| |
|
TIM2_PWM_DutyCycleConfiguration
|
This example shows how to configure the TIM2
peripheral in Pulse Width Modulation mode (PWM).
| |
|
TIM4_TimeBase
|
This
example provides a short description of how to use the TIM4 peripheral to
generate time base equal to 1 ms. In this example a "Delay"
function is implemented based on the TIM4 time base.
| |
|
TIM3_SynchronisationwithTIM4
|
This example provides a short description of how
to use the TIM3 peripheral synchronized by TIM4. TIM3 is configured as a
slave of TIM4.
| |
| USART |
USART_HyperTerminalInterrupt
|
This example provides a description of how to use
the UART1 Transmit and Receive interrupts to communicate with the hyperterminal.
| |
|
USART_MultiProcessor
|
This example provides a description of how to use
the UART1 in multi-processor mode.
| |
|
USART_Printf
|
This example shows how to retarget the C library
printf function to the UART.
This implementation output the printf message on the Hyperterminal using UART.
| |
|
USART_Synchronous
|
This example provides a basic communication
between UART1 (Synchronous mode) and SPI using flags.
| |
|
WFE
|
WFE_WakeUp
|
How the CPU operates when entering in wait for event mode.
| |
| IRTIM | IR_SignalGeneration | How to use the IRTIM peripheral. | |


Permission
These commands require the ADMINISTRATOR permission or higher.
By using the discord server and or bot, you agree to the usage of your publicly avaliable discord account data for issues, abuse, punishment, and blacklists.
Upon joining, you must type !agree
to gain access to the server. If, at any time you disagree to the rules, you may leave the server.
Display a list of commands and required permissions.
!help
View the bot's current uptime.
!uptime
View the bot's contributors
!dev
Make a suggestion
!suggest [Your Suggestion]
These commands require the ADMINISTRATOR permission or higher.
!deny [Suggestion ID] [Reason]
!accept [Suggestion ID] [Reason]
!consider [Suggestion ID] [Reason]
!delete [Suggestion ID]
This command requires the MANAGE_CHANNEL permission or higher.
Set current channel's slowmode in seconds.
!slow [Number]
This command requires the KICK_MEMBERS permission or higher.
Kick a member from the server
!kick @Member [Reason]
This command requires the BAN_MEMBERS permission or higher.
Ban a member from the server
!ban @Member [Reason]