|
EECS 448 Project
4-Final
Spotify Recommendation System
|
Tools and methods for creating, deleting, and interaction with Spotify playlists. More...
Functions | |
| def | PlaylistGenerator.getPlaylist (user, name) |
| getPlaylist More... | |
| def | PlaylistGenerator.addToPlaylist (user, name, songs) |
| addToPlaylist More... | |
| def | PlaylistGenerator.clearPlaylist (user, playlist_id) |
| clearPlaylist More... | |
Tools and methods for creating, deleting, and interaction with Spotify playlists.
| def PlaylistGenerator.addToPlaylist | ( | user, | |
| name, | |||
| songs | |||
| ) |
addToPlaylist
adds a list of songs to a spotify playlist
| user | the spotify username of the user |
| name | the name of the playlist |
| songs | a list of spotify track ids |
gets a playlist matching the name parameter. If none already exist, a new playlist will be created. Then adds the list of songs to the playlist.
| def PlaylistGenerator.clearPlaylist | ( | user, | |
| playlist_id | |||
| ) |
clearPlaylist
removes all songs from a user playlist
| user | the spotify username of the user |
| playlist_id | the id of the spotify playlist |
| songs | a list of spotify track ids |
removes every song from a spotify playlist, leaving it empty. Note, the playlist must be public for it to be found. The resulting playlist is not, removed, just empty.
| def PlaylistGenerator.getPlaylist | ( | user, | |
| name | |||
| ) |
getPlaylist
finds a playlist of a given name, or creates a new playlist if none are found
| user | the spotify username of the user |
| name | the name of the playlist |
searches for a spotify playlist in the users account. Note, it can see public playlists. If it finds a playlist matching the name paramater it will return this playlists id. Otherwise, it will create a new playlist with the name it passed, and return this newly created playlist's id.


McWest public code repos
Angular styleguide
Angular demo app related to styleguide
Team aliases for polyglot developers
These McWest employees also have public code repos
Brian Westrich


Labels are case-sensitive and may be of any reasonable length. Label definitions should start on the beginning of a line, and do not have to be followed by a : (colon). Labels should start with a letter or an _ (underscore). The following characters may be chosen from letters, numbers and the _ (underscore) and . (dot). The '.' is also used to separate module names, labels and local labels, and will be inserted as needed.
Labels are local to the current module if there is a module defined. You can define a module with the MODULE command.
module main label ; main.label module vdp label ; vdp.label
The ENDMODULE command without arguments ends the current module and restores the previous one:
module main label1 ; main.label1 module vdp label2 ; vdp.label2 endmodule label3 ; main.label3
ENDMODULE with an argument ends the named module and all nested ones:
module main label1 ; main.label1 module vdp label2 ; vdp.label2 module sound label3 ; sound.label3 endmodule vdp label4 ; main.label4
When a label does not start with a . (dot), it is a non-local label. When a label does start with a . (dot), it is local to the previous non-local label. The following example defines two labels: label and label.local:
label .local
All labels are local to the current module:
module main label .local
Here the following labels are defined: main.label and main.label.local.
If you start the label with an ! (exclamation mark) the non-local label will not be used as such in the local label system:
label1 !label2 .local
This defines label1, label2 and label1.local as labels, and not label2.local. Use a @ to by-pass the label processor, and use the label as is:
module main label1 @label2 .local
This defines main.label1, label2 and main.label2.local. As you see, label2 will still be used as non-local label. To prevent this you could use !@label2:
module main label1 ; main.label1 !@label2 ; label2 .local ; main.label1.local
When you use a label in an expression the . (dot) and @ operators work the same: . will use the label as local, and @ will use the label as-is:
chicken ld a,(.hop) ; chicken.hop .hop ld<EMAIL_ADDRESS>; ..go
When used inside macros or loops, labels behave somewhat different. See the chapter about macros for more information.
It is possible to use numbers as labels, which can be reused as many times as desired. They may only consist of decimal digits (0-9). These temporary labels can only be used as code locations, and can only be used as operands of jump or call instructions.
To jump to a numbered label, use the number followed by an F for forward branches or a B for backward branches:
1 ; define label 1 jp 1b ; jump to label 1, searching backward 1 jp 2f ; jump to label 2, searching forward jp 1b ; jump to the line with 'jp 2f'. 2 ; define label 2
A defined label will get the value of the current code location, unless one of the following commands is used: =, EQU, := or #.
EQU gives the label a permanent value:
label equ 13
Instead of EQU = (equal) can be used:
label = 13
When you give the label a value with :=, this value can be overwritten later.
label := 13 label := label+1
This is useful when programming loops.
As said before, normally the code location counter is used to assign a value to a label. With the # command it is possible to assign the current map location to a label. Afterwards the map counter is incremented by the given amount.
map 13 label3 # 10 label4 # 5 label5 # 10
label3 will get 13 as value, label4 23, label5 28, and the map location will be 38. You could also use the following to get the same result, but storage maps are easier to read and to update.
label3 = 13 label4 = label3+10 label5 = label4+5
The MAP command stores the current map location and puts a new value in the map location counter. The stored map location can be restored with ENDMAP.
map 100h label1 #| map 200h label2 # endmap label3 #
Here, label1 and label3 will be 100h and label2 200h.
It is possible to align the map counter with the MAPALIGN command. When the alignment value is omitted, 4 is assumed. Instead of MAPALIGN ## can be used:
map 100h label1 # 3 ; 100h ## 2 label2 # 2 ; 104h


Serialization involves the saving of chart properties, usually to disk.
Deserialization involves the retrieval of serialized data, followed by
the loading of this data into the Chart control.
Serialization enables you to persist and reuse a chart's appearance properties and data. This can save you time when you regularly create charts with the same appearance settings or from a specific data set.
Serialization is accomplished using a ChartSerializer object. You can access it via the Chart.Serializer property.
The format of serialized data can be either XML or Binary. The advantage of XML is that serialized data is readable, while the advantage of binary is that the serialized data takes less storage space.
Save chart data by the Save method, and load the the serialized data into a Chart control using the Load method.
When serializing chart data, note that only properties with nvalues are serialized.
There are three methods by which chart data can be marked as serializable:
- Without explicitly specifying any serializable properties. This causes all chart properties with non-default values (including chart data) to be serialized.
- Setting the Content property. This groups the chart properties to be serialized into categories (data, appearance, and so on).
- Set the SerializableContent property, which is a comma-separated list of all chart properties to be serialized.
Non-serializable properties are set using the NonSerializableContent property. This is a comma-separated listing of all chart properties not to be serialized, and wildcards can be used in the string expression (in the same manner as the SerializableContent property).
When chart data is saved, only properties that do not have default values are serialized. This reduces the amount of saved data. Therefore it is possible for a serializable property to not be saved, and during a load operation by default this property will be reset to its default value. Set the ResetWhenLoading property to False if you do not wish to reset non-default data that is serializable but unserialized.


[COVER]
[TITLE]
By [AUTHOR], Release [RELEASE] - [YEAR]
[SOURCELINKS]
Page [PAGENUMBER] of [PAGEEXTENT]
[SOURCE]
[SOURCENOTES]


TSB’s IT boss ‘kept board in dark’ ahead of tech meltdown
by James WarringtonTSB Bank’s head of IT reportedly failed to warn board members about “shortcomings” with the testing of a new technology system days before it suffered a huge meltdown.
TSB is facing a lengthy investigation by City law firm Slaughter and May into the botched rollout of a new IT system that caused nearly 2m customers to lose access to online banking in April last year.
Read more: TSB Bank facing heavy criticism after investigation into IT meltdown
The findings of the probe, due to be published on Tuesday, will accuse IT chief Carlos Abarca of making an “ill-judged” assessment of the company’s readiness to go ahead with the launch, Sky News reported.
Abarca is said to have been named and shamed in the report for failing to escalate concerns about the IT upgrade, which was intended to migrate millions of customers from its old Lloyds Banking Group system to one designed by Spanish owner Sabadell.
Sources said Abarca’s move in March this year from the role of TSB’s chief information officer to chief technology innovation officer was significant because he was no longer subject to the City watchdog’s Senior Managers’ Regime (SMR).
The SMR, introduced by the Financial Conduct Authority in 2016, means executives in banking and insurance can be held personally responsible for their actions.
However, it is not clear whether Abarca’s job move was designed to protect him from the potential consequences of the meltdown, which cost chief executive Paul Pester his job and TSB roughly £370m in compensation and expenses.
It comes amid reports that Sabadell refused to help Slaughter and May with its long-awaited inquiry, meaning the probe only looked into the Spanish firm’s tech subsidiary Sabis.
“Sabadell informed us early on in the process that it would not provide documents to assist our review,” the report states, according to the Sunday Times.
A source close to Sabadell told the newspaper it was “right” that the Spanish firm had steered clear of the investigation, as the migration was Sabis’s responsibility.
The report is said to be highly critical of TSB’s board. It is also thought to criticise the bank and Sabis for being slow to provide documents.
Read more: TSB returns to growth after IT meltdown
“We have now received the review into TSB’s 2018 migration carried out by the law firm Slaughter and May,” a TSB spokesperson said.
“The TSB board is reviewing it, sharing it with UK regulators and will provide a further update in due course.”
Main image credit: Getty


Chapter 2 Lab 2: Descriptive Statistics
Describing comic sensibility is near impossible. It’s sort of an abstract silliness, that sometimes the joke isn’t the star. —Dana Carvey
The purpose of this lab is to show you how to compute basic descriptive statistics, including measures of central tendency (mean, mode, median) and variation (range, variance, standard deviation).
2.1 General Goals
- Compute measures of central tendency using software
- Compute measures of variation using software
- Ask some questions of a data set using descriptive statistics
2.1.1 Important info
We will be using data from the gapminder project. You can download a small snippet of the data in .csv format from this link (note this dataset was copied from the gapminder library for R) gapminder.csv
2.2 R
2.2.1 Descriptives basics in R
We learned in lecture and from the textbook that data we want to use ask and answer questions often comes with loads of numbers. Too many numbers to look at all at once. That’s one reason we use descriptive statistics. To reduce the big set of numbers to one or two summary numbers that tell use something about all of the numbers. R can produce descriptive statistics for you in many ways. There are base functions for most of the ones that you want. We’ll go over some R basics for descriptive statistics, and then use our new found skills to ask some questions about real data.
<IP_ADDRESS> Making numbers in R
In order to do descriptive statistics we need to put some numbers in a variable. You can also do this using the c()
command, which stands for combine
my_numbers <- c(1,2,3,4)
There a few other handy ways to make numbers. We can use seq()
to make a sequence. Here’s making the numbers from 1 to 100
one_to_one_hundred <- seq(1,100,1)
We can repeat things, using rep. Here’s making 10 5s, and 25 1s:
rep(10,5)
## [1] 10 10 10 10 10
rep(1,25)
## [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
all_together_now <- c(rep(10,5),rep(1,25))
<IP_ADDRESS> Sum
Let’s play with the number 1 to 100. First, let’s use the sum()
function to add them up
one_to_one_hundred <- seq(1,100,1)
sum(one_to_one_hundred)
## [1] 5050
<IP_ADDRESS> Length
We put 100 numbers into the variable one_to_one_hundred
. We know how many numbers there are in there. How can we get R to tell us? We use length()
for that.
length(one_to_one_hundred)
## [1] 100
2.2.2 Central Tendency
<IP_ADDRESS> Mean
Remember the mean of some numbers is their sum, divided by the number of numbers. We can compute the mean like this:
sum(one_to_one_hundred)/length(one_to_one_hundred)
## [1] 50.5
Or, we could just use the mean()
function like this:
mean(one_to_one_hundred)
## [1] 50.5
<IP_ADDRESS> Median
The median is the number in the exact middle of the numbers ordered from smallest to largest. If there are an even number of numbers (no number in the middle), then we take the number in between the two (decimal .5). Use the median
function. There’s only 3 numbers here. The middle one is 2, that should be the median
median(c(1,2,3))
## [1] 2
<IP_ADDRESS> Mode
R does not a base function for the Mode. You would have to write one for yourself. Here is an example of writing your own mode function, and then using it. Note I searched how to do this on Google, and am using the mode defined by this answer on stack overflow
Remember, the mode is the most frequently occurring number in the set. Below 1 occurs the most, so the mode will be one.
my_mode <- function(x) {
ux <- unique(x)
ux[which.max(tabulate(match(x, ux)))]
}
my_mode(c(1,1,1,1,1,1,1,2,3,4))
## [1] 1
2.2.3 Variation
We often want to know how variable the numbers are. We are going to look at descriptive statistics to describe this such as the range, variance, the standard deviation, and a few others.
First, let’s remind ourselves what variation looks like (it’s when the numbers are different). We will sample 100 numbers from a normal distribution (don’t worry about this yet), with a mean of 10, and a standard deviation of 5, and then make a histogram so we can see the variation around 10..
sample_numbers <- rnorm(100,10,5)
hist(sample_numbers)
<IP_ADDRESS> range
The range is the minimum and maximum values in the set, we use the range
function.
range(sample_numbers)
## [1] -2.591563 22.856565
<IP_ADDRESS> var = variance
We can find the sample variance using var
. Note, divides by (n-1)
var(sample_numbers)
## [1] 26.4788
<IP_ADDRESS> sd = standard deviation
We find the sample standard deviation us SD. Note, divides by (n-1)
sd(sample_numbers)
## [1] 5.145755
Remember that the standard deviation is just the square root of the variance, see:
sqrt(var(sample_numbers))
## [1] 5.145755
<IP_ADDRESS> All Descriptives
Let’s put all of the descriptives and other functions so far in one place:
sample_numbers <- rnorm(100,10,5)
sum(sample_numbers)
## [1] 1092.573
length(sample_numbers)
## [1] 100
mean(sample_numbers)
## [1] 10.92573
median(sample_numbers)
## [1] 10.90372
my_mode(sample_numbers)
## [1] 7.98613
range(sample_numbers)
## [1] -0.308353 24.749855
var(sample_numbers)
## [1] 25.30758
sd(sample_numbers)
## [1] 5.030664
2.2.4 Descriptives by conditions
Sometimes you will have a single variable with some numbers, and you can use the above functions to find the descriptives for that variable. Other times (most often in this course), you will have a big data frame of numbers, with different numbers in different conditions. You will want to find descriptive statistics for each the sets of numbers inside each of the conditions. Fortunately, this is where R really shines, it does it all for you in one go.
Let’s illustrate the problem. Here I make a date frame with 10 numbers in each condition. There are 10 conditions, each labelled, A, B, C, D, E, F, G, H, I, J.
scores <- rnorm(100,10,5)
conditions <- rep(c("A","B","C","D","E","F","G","H","I","J"), each =10)
my_df <- data.frame(conditions,scores)
If you look at the my_df
data frame, you will see it has 100 rows, there are 10 rows for each condition with a label in the conditions
column, and 10 scores for each condition in the scores
column. What if you wanted to know the mean of the scores in each condition? You would want to find 10 means.
The slow way to do it would be like this:
mean(my_df[my_df$conditions=="A",]$scores)
## [1] 12.59648
mean(my_df[my_df$conditions=="B",]$scores)
## [1] 10.6128
mean(my_df[my_df$conditions=="C",]$scores)
## [1] 8.266488
# and then keep going
Nobody wants to do that! Not, me I stopped doing it that way, you should to.
<IP_ADDRESS> group_by and summarise
We can easily do everything all at once using the group_by
and summarise
function from the dplyr
package. Just watch
library(dplyr)
my_df %>%
group_by(conditions) %>%
summarise(means = mean(scores))
## # A tibble: 10 x 2
## conditions means
## <fct> <dbl>
## 1 A 12.6
## 2 B 10.6
## 3 C 8.27
## 4 D 6.70
## 5 E 10.2
## 6 F 9.12
## 7 G 8.21
## 8 H 10.1
## 9 I 11.6
## 10 J 10.2
A couple things now. First, the print out of this was ugly. Let’s fix that. we put the results of our code into a new variable, then we use knitr::kable
to print it out nicely when we knit
the document
summary_df <- my_df %>%
group_by(conditions) %>%
summarise(means = mean(scores))
knitr::kable(summary_df)
| conditions | means |
|---|---|
| A | 12.596478 |
| B | 10.612800 |
| C | 8.266488 |
| D | 6.704745 |
| E | 10.170008 |
| F | 9.120068 |
| G | 8.205138 |
| H | 10.091734 |
| I | 11.555082 |
| J | 10.234129 |
<IP_ADDRESS> multiple descriptives
The best thing about the dplyr
method, is that we can add more than one function, and we’ll get more than one summary returned, all in a nice format, let’s add the standard deviation:
summary_df <- my_df %>%
group_by(conditions) %>%
summarise(means = mean(scores),
sds = sd(scores))
knitr::kable(summary_df)
| conditions | means | sds |
|---|---|---|
| A | 12.596478 | 9.352925 |
| B | 10.612800 | 4.476998 |
| C | 8.266488 | 4.555700 |
| D | 6.704745 | 5.011566 |
| E | 10.170008 | 3.875537 |
| F | 9.120068 | 5.636339 |
| G | 8.205138 | 5.865190 |
| H | 10.091734 | 5.256813 |
| I | 11.555082 | 4.874282 |
| J | 10.234129 | 3.873318 |
We’ll add the min and the max too:
summary_df <- my_df %>%
group_by(conditions) %>%
summarise(means = mean(scores),
sds = sd(scores),
min = min(scores),
max = max(scores))
knitr::kable(summary_df)
| conditions | means | sds | min | max |
|---|---|---|---|---|
| A | 12.596478 | 9.352925 | -1.0708193 | 27.46081 |
| B | 10.612800 | 4.476998 | 2.2941837 | 18.44375 |
| C | 8.266488 | 4.555700 | 0.0053070 | 14.46609 |
| D | 6.704745 | 5.011566 | 0.8117465 | 14.21022 |
| E | 10.170008 | 3.875537 | 4.7036641 | 16.04143 |
| F | 9.120068 | 5.636339 | 1.1128198 | 21.33737 |
| G | 8.205138 | 5.865190 | -2.4686723 | 14.91742 |
| H | 10.091734 | 5.256813 | 0.2377578 | 14.80595 |
| I | 11.555082 | 4.874282 | 3.3809716 | 17.21664 |
| J | 10.234129 | 3.873318 | 0.4334203 | 14.07733 |
2.2.5 Describing gapminder
Now that we know how to get descriptive statistics from R, we cam do this will some real data. Let’s quickly ask a few question about the gapminder data. Re-install the gapminder library if you don’t already have it, then load the data into a data frame:
library(gapminder)
gapminder_df <- gapminder
<IP_ADDRESS> What are some descriptive for Life expectancy by continent?
Copy the code from the last part of descriptives using dplyr
, then change the names like this:
summary_df <- gapminder_df %>%
group_by(continent) %>%
summarise(means = mean(lifeExp),
sds = sd(lifeExp),
min = min(lifeExp),
max = max(lifeExp))
knitr::kable(summary_df)
| continent | means | sds | min | max |
|---|---|---|---|---|
| Africa | 48.86533 | 9.150210 | 23.599 | 76.442 |
| Americas | 64.65874 | 9.345088 | 37.579 | 80.653 |
| Asia | 60.06490 | 11.864532 | 28.801 | 82.603 |
| Europe | 71.90369 | 5.433178 | 43.585 | 81.757 |
| Oceania | 74.32621 | 3.795611 | 69.120 | 81.235 |
2.2.6 Generalization Exercise
(1 point - Pass/Fail)
Complete the generalization exercise described in your R Markdown document for this lab.
What is the mean, standard deviation, minimum and maximum life expectancy for all the gapminder data (across all the years and countries). Hint: do not use
group_by
What is the mean, standard deviation, minimum and maximum life expectancy for all of the continents in 2007, the most recent year in the dataset. Hint: add another pipe using
filter(year==2007) %>%
2.2.7 Writing assignment
(2 points - Graded)
Complete the writing assignment described in your R Markdown document for this lab. When you have finished everything. Knit the document and hand in your stuff (you can submit your .RMD file to blackboard if it does not knit.)
Your writing assignment is to answer these questions in full sentences using simple plain langauge:
- Define the mode.
- Explain what would need to happen in order for a set of numbers to have two modes
- Define the median
- Define the mean
- Define the range
- When calculating the standard deviation, explain what the difference scores represent
- Explain why the difference scores are squared when calculating the standard deviation
- If one set of numbers had a standard deviation of 5, and another had a standard deviation of 10, which set of numbers would have greater variance, explain why.
Rubric
General grading.
- You will receive 0 points for missing answers (say, if you do not answer question c, then you will receive 0 out .25 points for that question)
- You must write in complete sentences. Point form sentences will be given 0 points.
- Completely incorrect answers will receive 0 points.
- If your answer is generally correct but very difficult to understand and unclear you may receive half points for the question
2.3 Excel
How to do it in Excel
2.4 SPSS
In this lab, we will use SPSS to calculate a variety of descriptive statistics. SPSS allows us to specify which statistics we would like calculated and produce them all in one output table. Here, we will learn to:
- Calculate descriptive statistics
- Graph data using a histogram
- Editing graphs
Let’s begin with a short data set {x= 1, 1, 4, 1, 2, 5, 7}
Suppose we want to calculate the measures of central tendency (mean, median, and mode) as well as variability (range, standard deviation, and variance). First, we will have to enter our data into the SPSS spreadsheet. There are 7 measurements, so we will need 7 rows of data (I have also changed the name of this variable in Variable View to x
:
2.4.1 Calculating Descriptive Statistics
From here, go to the top menu and choose Analyze, then Descriptive Statistics and then Frequencies:
A new window will ask you to specify for which variables you want descriptives statistics calculated. Use the arrow to move the x
variable from the left-hand to the right-hand field.
Now, click the Statistics button. This will open a new window containing a list of statistics. You can choose as many as you want to be calculated. We will choose mean, median mode, range, standard deviation, and variance.
Then click Continue, and then OK. SPSS will produce a set of two output tables: one containing the descriptive statistics we have chosen, and the other a frequency table–a list of all the possible values in our data set and their corresponding frequencies.
2.4.2 Descriptive Statistics and Histograms
Now let’s use a real dataset to calculate the same measures of central tendency and variability as in the last example, but with the addition of a histogram to visualize a distribution to relate back to the descriptive statistics. Here is a link to the life expectancy dataset we used for our graphing tutorial. It is named life_expectancy.sav.
Suppose we wanted to know about life expectancy (around the world) in 2018. This will include calculating descriptive statistics, as well as graphing a histogram to examine the distribution of our data. SPSS often has neat shortcuts to graph data within other menu options. For example, in the process of asking SPSS to produce a table of descriptive statistics, we can also add a histogram to the output without having to go to the Graphs menu.
First, we go to Analyze, then Descriptive Statistics, then Frequencies.
A window will appear asking us to indicate which variable to use. We will scroll all the way down in the list of variables on the left, choose 2018 [V220]
, and then move it into the field on the right using the arrow.
As in the previous example, we will click the Statistics button next, and choose our measures of central tendency (mean, median, mode) as well as variability (range, standard deviation, variance).
Once we click continue, we are back to the previous window. Here, we can conveniently ask SPSS to insert a histogram. Let’s click on the Charts button:
This will open a new window that asks us to specify the type of chart we would like. Let’s select Histogram, and check off Show normal curve on histogram:
Click Continue, and then OK.
SPSS will produce a table of the requested descriptive statistics, a frequency table (we will ignore this for now because it is long and not relevant to this exercise), and finally, a histogram showing the distribution of life expectancy (in years) with a normal distribution superimposed for comparison.
Something to think about: What do the mean, median, and mode indicate about the shape of the distribution? Is it confirmed when we look at the histogram? How does the shape of this distribution compare to the symmetrical normal distribution which is superimposed over it?
2.4.3 Editing graphs
For future reference, we will take this opportunity to make edits to the appearance of this graph. It is helpful to know how to manipulate not just the superficial, cosmetic appearance of data visualizations, but also the components of graphs that communicate important information. One feature to consider is the scale of our axes.
To modify the scale in a graph, first double-click on the graph itself in the output window. A Chart Editor should pop up.
Now, hover your mouse over one of the values on the x-axis, and click down once. You will see all the x-axis values suddenly highlight:
Now that you know how to select the entire axis, double click on it. A properties window will pop up:
Notice that in the default tab, you can change the fill color of components of your graph. For now, we will select the Scale tab instead:
Notice in this tab, we can change the minimum, maximum, and increments of our scale. Lets change the major increment to 5:
Click Apply. Then Close. Now, close your Chart Editor window by simply x-ing it out. The SPSS output window will now contain your edited graph:
2.4.4 Practice Problems
Using the life expectancy data set, produce a table of output showing the descriptive statistics (measures of central tendency and variability) for both years 1800 and 1934 (during the Great Depression).
Plot histograms of life expectancy for both years. How are these distributions different? (Hint: Plot these on the same axes so that they are comparable).
2.5 JAMOVI
How to do it in JAMOVI


labeled
by None at 2021-08-10 22:20:14.labeled
by None at 2021-08-10 22:20:14.labeled
by None at 2021-08-10 23:39:05.labeled
by None at 2021-08-10 23:39:05.closed
by None at 2021-08-11 13:06:08.closed
by None at 2021-08-11 13:06:08.Left side is from catalog-qa (the fixed), right is from production catalog. https://catalog-qa.princeton.edu/catalog/99123430173506421 (example of an inactive portfolio) https://catalog-qa.princeton.edu/catalog?utf8=%E2%9C%93&search_field=all_fields&q=lux+magazine (example of an inactive portfolio) https://catalog-qa.princeton.edu/catalog/9996338243506421 (example of a portfolio which is not part of a collection)
deployed
by None at 2021-08-11 00:29:19.renamed
by Christina Chortaria at 2021-08-11 11:34:26.referenced
by None at 2021-08-11 13:06:08.merged
by None at 2021-08-11 13:06:08.closed
by None at 2021-08-11 13:06:08.head_ref_deleted
by None at 2021-08-11 13:06:09.renamed
by Christina Chortaria at 2021-08-11 13:12:53.renamed
by None at 2021-08-11 14:57:15.assigned
by None at 2021-08-11 14:57:23.referenced
by None at 2021-08-11 15:03:03.closed
by None at 2021-08-11 15:29:13.referenced
by None at 2021-08-11 15:29:12.merged
by None at 2021-08-11 15:29:12.closed
by None at 2021-08-11 15:29:13.head_ref_deleted
by None at 2021-08-11 15:29:15.assigned
by Hector Correa at 2021-08-11 18:44:46.referenced
by Trey Pendragon at 2021-08-11 20:50:05.merged
by Trey Pendragon at 2021-08-11 20:50:05.closed
by Trey Pendragon at 2021-08-11 20:50:05.head_ref_deleted
by Trey Pendragon at 2021-08-11 20:50:06.closed by https://github.com/pulibrary/princeton_ansible/pull/2429 and https://github.com/pulibrary/bibdata/pull/1597
renamed
by None at 2021-08-11 20:51:54.closed
by None at 2021-08-11 20:54:13.We changed our minds on this one.
closed
by None at 2021-08-11 20:54:50.head_ref_force_pushed
by Trey Pendragon at 2021-08-11 18:39:25.ready_for_review
by Trey Pendragon at 2021-08-11 18:39:47.deployed
by None at 2021-08-11 18:48:36.referenced
by Trey Pendragon at 2021-08-11 21:05:20.merged
by Trey Pendragon at 2021-08-11 21:05:20.closed
by Trey Pendragon at 2021-08-11 21:05:20.head_ref_deleted
by Trey Pendragon at 2021-08-11 21:05:21.labeled
by None at 2021-08-11 04:00:24.labeled
by None at 2021-08-11 04:00:24.referenced
by Bess Sadler at 2021-08-11 15:12:15.merged
by Bess Sadler at 2021-08-11 15:12:15.closed
by Bess Sadler at 2021-08-11 15:12:15.head_ref_deleted
by Bess Sadler at 2021-08-11 15:12:16.closed
by Bess Sadler at 2021-08-11 15:12:28.head_ref_deleted
by Bess Sadler at 2021-08-11 15:12:31.@astrochun Welcome to Princeton! Looks like previously DRDS folks (the team I'm on) were reviewing PRs here. However, Kevin is no longer on our team. Are you hoping someone on our team will review this? Maybe we should talk about process? Looking forward to working with you!
@astrochun Welcome to Princeton! Looks like previously DRDS folks (the team I'm on) were reviewing PRs here. However, Kevin is no longer on our team. Are you hoping someone on our team will review this? Maybe we should talk about process? Looking forward to working with you!
Yes, let's speak about process as I would like to follow whatever workflows and best practices your team have. This PR as well as other issues that I created were in part to understand dspace-osti
as we are preparing for end of fiscal year submission. Wasn't sure who is best equipped to review this PR.
mentioned
by Chun Ly at 2021-08-11 15:02:56.subscribed
by Chun Ly at 2021-08-11 15:02:56.mentioned
by Chun Ly at 2021-08-11 15:08:28.subscribed
by Chun Ly at 2021-08-11 15:08:29.labeled
by None at 2021-08-10 23:46:53.labeled
by None at 2021-08-10 23:46:53.labeled
by None at 2021-08-11 04:10:23.labeled
by None at 2021-08-11 04:10:23.Several folks having the same problem. @escowles refreshed a couple of times and it works sometimes and gives him the error sometimes — maybe one of the figgy backend machines is ok and the other is broken...
servers logged into to see if errors in the logs, but things are working again for everyone. @escowles closing ticket, but will reopen if error occurs again.
labeled
by Kim Leaman at 2021-08-11 13:32:29.mentioned
by Trey Pendragon at 2021-08-11 13:32:29.subscribed
by Trey Pendragon at 2021-08-11 13:32:29.renamed
by Kim Leaman at 2021-08-11 13:33:03.labeled
by Kim Leaman at 2021-08-11 13:34:30.mentioned
by Esmé Cowles at 2021-08-11 13:45:09.subscribed
by Esmé Cowles at 2021-08-11 13:45:09.closed
by Kim Leaman at 2021-08-11 13:51:58.mentioned
by Esmé Cowles at 2021-08-11 13:51:59.subscribed
by Esmé Cowles at 2021-08-11 13:51:59.assigned
by None at 2021-08-11 13:59:01.moved_columns_in_project
by None at 2021-08-11 16:02:04.It looks like files were added via browseeverything and then when they were being appended the PG connection timed out.
config/initializers/sequel_active_support_notification.rb:23:in `block in log_connection_yield'
config/initializers/sequel_active_support_notification.rb:17:in `log_connection_yield'
app/adapters/instrumented_adapter.rb:75:in `block in save'
app/adapters/instrumented_adapter.rb:48:in `block in trace'
app/adapters/instrumented_adapter.rb:44:in `trace'
app/adapters/instrumented_adapter.rb:74:in `save'
app/change_set_persisters/change_set_persister.rb:92:in `save'
app/services/file_appender.rb:102:in `create_file_set'
app/services/file_appender.rb:111:in `block in build_file_sets'
app/services/file_appender.rb:110:in `each'
app/services/file_appender.rb:110:in `each_with_index'
app/services/file_appender.rb:110:in `each'
app/services/file_appender.rb:110:in `map'
app/services/file_appender.rb:110:in `build_file_sets'
app/services/file_appender.rb:37:in `resource_append_to'
app/services/file_appender.rb:32:in `append_to'
app/change_set_persisters/change_set_persister/create_file.rb:25:in `run'
app/change_set_persisters/change_set_persister.rb:188:in `block in before_save'
app/change_set_persisters/change_set_persister.rb:187:in `each'
app/change_set_persisters/change_set_persister.rb:187:in `before_save'
app/change_set_persisters/change_set_persister.rb:91:in `save'
app/controllers/resource_controller.rb:155:in `block in browse_everything_files'
app/change_set_persisters/change_set_persister.rb:124:in `block (2 levels) in buffer_into_index'
app/change_set_persisters/change_set_persister.rb:177:in `with'
app/change_set_persisters/change_set_persister.rb:123:in `block in buffer_into_index'
app/adapters/indexing_adapter.rb:94:in `block (2 levels) in buffer_into_index'
app/adapters/indexing_adapter.rb:93:in `block in buffer_into_index'
app/adapters/indexing_adapter.rb:92:in `buffer_into_index'
app/change_set_persisters/change_set_persister.rb:122:in `buffer_into_index'
app/controllers/resource_controller.rb:153:in `browse_everything_files'
Related to pg issues observed from bibdata? https://github.com/pulibrary/bibdata/issues/1566
labeled
by None at 2021-08-11 15:41:43.Same error?
reconfirm. we will ingest these as MVWs:
@roelmoon and I can take this one on.
All items linked to appropriate bibs and ingesting to figgy. closing ticket.
mentioned
by Esmé Cowles at 2021-08-11 15:50:55.subscribed
by Esmé Cowles at 2021-08-11 15:50:55.closed
by Kim Leaman at 2021-08-11 15:51:20.moved_columns_in_project
by Kim Leaman at 2021-08-11 15:54:06.moved_columns_in_project
by Kim Leaman at 2021-08-11 15:54:11.assigned
by Roel Munoz at 2021-08-11 16:11:22.reingested: https://figgy.princeton.edu/catalog/9a86eabd-ec92-4401-8f23-288bc5a12be9
original scanned map still flagged and in figgy. emailed Vicki P. and Jen M. for help with getting the "see the map" label removed from the catalog record, @eliotjordan
label has been removed in the catalog record by Jen, @eliotjordan Closing ticket. Please reopen if i missed anything.
mentioned
by Eliot Jordan at 2021-08-11 16:08:47.subscribed
by Eliot Jordan at 2021-08-11 16:08:47.closed
by Kim Leaman at 2021-08-11 17:18:53.mentioned
by Eliot Jordan at 2021-08-11 17:18:53.subscribed
by Eliot Jordan at 2021-08-11 17:18:53.labeled
by Kim Leaman at 2021-08-11 17:22:35.labeled
by Kim Leaman at 2021-08-11 17:26:30.Found this on the isilon but under a bib 5401789 and 4 folders within. ingesting folder 1 to C1241_c01 and so on.
ingested these 4: https://figgy.princeton.edu/catalog?utf8=%E2%9C%93&q=C1241
wrote to Alexis to get confirmation on visibility/etc... before completing. closing ticket.
assigned
by Roel Munoz at 2021-08-11 17:29:30.labeled
by Kim Leaman at 2021-08-11 17:29:42.closed
by Kim Leaman at 2021-08-11 17:41:36.@escowles the link has a 404 error. do you have any more information on this collection? I looked in figgy and found these ingests: https://figgy.princeton.edu/?f%5Bmember_of_collection_titles_ssim%5D%5B%5D=Granville+Wilcox+Correspondence+C1261
That ticket's in a private repository (and closed), and since the content is in figgy and linked to the finding aid, I'm closing this.
mentioned
by Esmé Cowles at 2021-08-11 17:25:56.subscribed
by Esmé Cowles at 2021-08-11 17:25:56.closed
by Esmé Cowles at 2021-08-11 17:44:23.@cwulfman from my notes and also in the description for PUDL 130: PUDL 130 is a group of items considered to be Graphic Arts (GA) treasures. This combines issue#3932 with all other items in PUDL0130 (GA treasures). 8555444:Engleman (#3932) ingest as MVW + Link to MARC record KEL will do 6109684: this is a periodical with its own MODS metadata for each issue. what to do? Ingest as MVW? what happens to the metadata? @cwulfman GC060: 2 oversized scrapbooks (2 volumes) prepared by Elmer Adler prepared by GA. Not cataloged at the time. Title: "Princeton print club, 1941-1945". Just tiffs. once cataloged with a bib record, we can ingest this as is. KEL can do.
Outstanding/still suppressed:
assigned
by Cliff Wulfman at 2021-08-11 17:42:52.mentioned
by Esmé Cowles at 2021-08-11 18:00:13.subscribed
by Esmé Cowles at 2021-08-11 18:00:13.mentioned
by Cliff Wulfman at 2021-08-11 18:00:14.subscribed
by Cliff Wulfman at 2021-08-11 18:00:14.mentioned
by Kim Leaman at 2021-08-11 18:00:14.subscribed
by Kim Leaman at 2021-08-11 18:00:14.Hm, the tests are failing now in CI, seems likely due to the WebMock change. Shall we try removing that commit?
head_ref_force_pushed
by None at 2021-08-11 13:18:06.convert_to_draft
by None at 2021-08-11 13:19:21.head_ref_force_pushed
by None at 2021-08-11 13:41:01.ready_for_review
by None at 2021-08-11 13:41:56.deployed
by None at 2021-08-11 21:44:18.referenced
by Christina Chortaria at 2021-08-11 22:21:41.merged
by Christina Chortaria at 2021-08-11 22:21:41.closed
by Christina Chortaria at 2021-08-11 22:21:41.head_ref_deleted
by Christina Chortaria at 2021-08-11 22:21:41.referenced
by Trey Pendragon at 2021-08-11 21:08:45.closed
by Christina Chortaria at 2021-08-11 22:21:41.labeled
by None at 2021-08-11 02:10:31.labeled
by None at 2021-08-11 13:46:13.This was fully resolved with https://github.com/pulibrary/oawaiver/compare/issues-14-jrgriffiniii-cas...jrgriffiniii-fix-deployments
The commits for https://github.com/pulibrary/oawaiver/compare/issues-14-jrgriffiniii-cas...jrgriffiniii-fix-deployments and https://github.com/pulibrary/princeton_ansible/pull/2418 ensure that the Solr indexes are created for indexing using the sunspot
Gem, as well as provide support for migrating the MySQL database tables to PostgreSQL.
referenced
by Bess Sadler at 2021-08-11 15:19:18.merged
by Bess Sadler at 2021-08-11 15:19:18.closed
by Bess Sadler at 2021-08-11 15:19:18.head_ref_deleted
by Bess Sadler at 2021-08-11 15:19:19.head_ref_force_pushed
by James R. Griffin III at 2021-08-11 14:38:50.renamed
by James R. Griffin III at 2021-08-11 15:20:37.base_ref_changed
by James R. Griffin III at 2021-08-11 15:20:48.head_ref_force_pushed
by James R. Griffin III at 2021-08-11 17:45:56.deployed
by None at 2021-08-11 18:45:20.head_ref_force_pushed
by James R. Griffin III at 2021-08-11 18:54:25.ready_for_review
by James R. Griffin III at 2021-08-11 19:00:16.This is now deprecated by https://github.com/pulibrary/oawaiver/pull/35
head_ref_force_pushed
by James R. Griffin III at 2021-08-11 13:58:46.automatic_base_change_succeeded
by Bess Sadler at 2021-08-11 15:19:19.closed
by James R. Griffin III at 2021-08-11 19:00:37.Coverage remained the same at 96.959% when pulling a9111dcebb491a327f98dd0f02af84497bdf3b2c on dependabot/npmandyarn/path-parse-1.0.7 into db13d87886c16d197c6a36902f598345218e6a58 on main.
labeled
by None at 2021-08-10 23:09:17.labeled
by None at 2021-08-10 23:09:17.assigned
by Christina Chortaria at 2021-08-11 14:45:54.Goodbye, old system!
closed
by None at 2021-08-11 15:17:31.assigned
by None at 2021-08-11 16:05:32.assigned
by Hector Correa at 2021-08-11 16:39:25.I assume the link resolver checks the link somehow, @kevinreiss would maybe know better?
On a different note, we should probably recommend that they put the ARKs for the record in the 856.
Following @tpendragon comment, they updated the 856s with arks and it resolves.
renamed
by Christina Chortaria at 2021-08-11 16:20:26.mentioned
by Kevin Reiss at 2021-08-11 16:31:10.subscribed
by Kevin Reiss at 2021-08-11 16:31:10.closed
by Christina Chortaria at 2021-08-11 16:46:50.mentioned
by Trey Pendragon at 2021-08-11 16:46:50.subscribed
by Trey Pendragon at 2021-08-11 16:46:50.assigned
by None at 2021-08-11 16:37:14.transferred
by None at 2021-08-11 16:53:20.Looking the record's staff view: 856 4
u| https://ezproxy.lau.edu.lb:2443/login?url=https://doi.org/10.1007/978-3-662-61068-8 y| <b>View Full Text</b>
.
Looks like incorrect entry. Is this part of a cleanup in alma?
I asked in the alma-cataloging-and-inventory-mngmt channel if it's possible to update the 856. @kconnellmail will update it.
Record updated. URL has incorrectly formatted (with EZProxy prefix in the 856 & Portfolio Linking). The 856 was added to a print record, too. We do not have ebook access to the title. 856 & Portfolio deleted. Marc record cleaned up. Print holdings remain.
assigned
by Christina Chortaria at 2021-08-11 18:58:01.mentioned
by None at 2021-08-11 20:36:29.subscribed
by None at 2021-08-11 20:36:29.closed
by Christina Chortaria at 2021-08-11 20:36:49.Coverage increased (+0.02%) to 96.972% when pulling c3431150a33bf8846e0cbefdb6aff258156f8c9f on 2371-downcase-netid-cas into bb1f26c947c78e96dbacf4d699ccb3b710055d14 on main.
Coverage decreased (-0.01%) to 96.949% when pulling 26360b56d6ff61e3304f561c2b97e3409b10528d on issue2637homepage_cache into db13d87886c16d197c6a36902f598345218e6a58 on main.
closed
by Bess Sadler at 2021-08-11 13:42:53.assigned
by Bess Sadler at 2021-08-11 13:43:25.closed
by Bess Sadler at 2021-08-11 18:51:28.referenced
by Bess Sadler at 2021-08-11 18:51:28.merged
by Bess Sadler at 2021-08-11 18:51:28.closed
by Bess Sadler at 2021-08-11 18:51:28.head_ref_deleted
by Bess Sadler at 2021-08-11 18:51:29.head_ref_force_pushed
by Bess Sadler at 2021-08-11 19:13:12.referenced
by Trey Pendragon at 2021-08-11 19:20:15.merged
by Trey Pendragon at 2021-08-11 19:20:15.closed
by Trey Pendragon at 2021-08-11 19:20:16.head_ref_deleted
by Trey Pendragon at 2021-08-11 19:20:16.assigned
by Bess Sadler at 2021-08-11 18:53:50.closed
by Trey Pendragon at 2021-08-11 19:20:15.closed
by Bess Sadler at 2021-08-11 19:21:31.closed
by Bess Sadler at 2021-08-11 19:21:37.assigned
by Bess Sadler at 2021-08-11 18:43:43.unassigned
by Bess Sadler at 2021-08-11 19:22:44.assigned
by Bess Sadler at 2021-08-11 19:23:08.labeled
by James R. Griffin III at 2021-08-11 19:28:32.assigned
by James R. Griffin III at 2021-08-11 19:28:32.referenced
by Francis Kayiwa at 2021-08-11 11:47:23.merged
by Francis Kayiwa at 2021-08-11 11:47:23.closed
by Francis Kayiwa at 2021-08-11 11:47:24.head_ref_deleted
by Francis Kayiwa at 2021-08-11 11:47:24.review_requested
by Francis Kayiwa at 2021-08-11 13:21:07.renamed
by Francis Kayiwa at 2021-08-11 16:57:39.referenced
by None at 2021-08-11 19:35:54.merged
by None at 2021-08-11 19:35:54.closed
by None at 2021-08-11 19:35:54.head_ref_deleted
by None at 2021-08-11 19:35:54.referenced
by None at 2021-08-11 19:36:44.merged
by None at 2021-08-11 19:36:44.closed
by None at 2021-08-11 19:36:45.head_ref_deleted
by None at 2021-08-11 19:36:45.referenced
by Trey Pendragon at 2021-08-11 20:50:00.merged
by Trey Pendragon at 2021-08-11 20:50:00.closed
by Trey Pendragon at 2021-08-11 20:50:00.head_ref_deleted
by Trey Pendragon at 2021-08-11 20:50:00.closed
by Francis Kayiwa at 2021-08-11 21:00:17.labeled
by None at 2021-08-11 14:09:12.labeled
by None at 2021-08-11 14:09:12.We would also want to make these available to users as well.
labeled
by None at 2021-08-11 03:58:31.labeled
by None at 2021-08-11 03:58:31.The previous occurrence of this error has a comment "bad dataset". How do I confirm the validity of the dataset? What do I do if it is bad?
labeled
by None at 2021-08-11 03:58:26.labeled
by None at 2021-08-11 03:58:26.referenced
by None at 2021-08-11 14:48:32.merged
by None at 2021-08-11 14:48:32.closed
by None at 2021-08-11 14:48:32.head_ref_deleted
by None at 2021-08-11 14:48:33.closed by https://github.com/pulibrary/orangelight/pull/2576
closed
by None at 2021-08-11 15:15:37.We should give user some feedback and not send the recap problem email
unlabeled
by None at 2021-08-11 17:16:54.renamed
by None at 2021-08-11 17:17:24.referenced
by Bess Sadler at 2021-08-11 15:13:40.merged
by Bess Sadler at 2021-08-11 15:13:40.closed
by Bess Sadler at 2021-08-11 15:13:40.head_ref_deleted
by Bess Sadler at 2021-08-11 15:13:44.labeled
by None at 2021-08-11 16:57:07.labeled
by None at 2021-08-11 16:57:07.ready_for_review
by Thanya Begum at 2021-08-11 13:28:54.


The Merge WIM field accepts a Windows Image or ISO (if the ISO contains a Windows Image in the "\sources\" folder).
The Image Packages in this file will be merged into the main WIM at the beginning of the Slipstream Process, if the Merge WIM checkbox is checked.


delete
, work on
files, links and directories.
But how do you list all the directories at the top of a file system?
How do you list the contents of a directory or create a directory?
This section covers the following functionality specific to directories:
You can list all the root directories for a file system by using the
FileSystem.getRootDirectories
method. This method returns an Iterable
, which enables you to
use the
enhanced for statement to iterate over all the root directories.
The following code snippet prints the root directories for the default file system:
Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories(); for (Path name: dirs) { System.err.println(name); }
You can create a new directory by using the
createDirectory(Path, FileAttribute<?>)
method. If you don't specify any FileAttributes
,
the new directory will have default attributes. For example:
Path dir = ...; Files.createDirectory(path);
The following code snippet creates a new directory on a POSIX file system that has specific permissions:
Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxr-x---"); FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms); Files.createDirectory(file, attr);
To create a directory several levels deep when one or more
of the parent directories might not yet exist,
you can use the convenience method,
createDirectories(Path, FileAttribute<?>)
. As with
the createDirectory(Path, FileAttribute<?>)
method,
you can specify
an optional set of initial file attributes. The following code snippet
uses default attributes:
Files.createDirectories(Paths.get("foo/bar/test"));
The directories are created, as needed, from the top down.
In the foo/bar/test
example,
if the foo
directory does not exist, it is created.
Next, the bar
directory is created, if needed,
and, finally, the test
directory is created.
It is possible for this method to fail after creating some, but not all, of the parent directories.
You can create a temporary directory using one of
createTempDirectory
methods:
createTempDirectory(Path, String, FileAttribute<?>...)
createTempDirectory(String, FileAttribute<?>...)
You can list all the contents of a directory by using the
newDirectoryStream(Path)
method. This method returns an object that implements the
DirectoryStream
interface. The class that implements the DirectoryStream
interface
also implements Iterable
, so you can iterate through the
directory stream, reading all of the objects.
This approach scales well to very large directories.
DirectoryStream
is a stream.
If you are not using a try-
with-resources statement,
don't forget to close the stream in the finally
block.
The try-
with-resources statement takes care of this for you.
The following code snippet shows how to print the contents of a directory:
Path dir = ...; try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) { for (Path file: stream) { System.out.println(file.getFileName()); } } catch (IOException | DirectoryIteratorException x) { //IOException can never be thrown by the iteration. //In this snippet, it can only be thrown by newDirectoryStream. System.err.println(x); }
The Path
objects returned by the iterator are the names
of the entries resolved against the directory. So, if you are listing
the contents of the /tmp
directory, the entries are
returned with the form /tmp/a
, /tmp/b
,
and so on.
This method returns the entire contents of a directory: files, links,
subdirectories, and hidden files. If you want to be more selective about
the contents that are retrieved, you can use one of the other
newDirectoryStream
methods, as described later in this page.
Note that if there is an exception during directory iteration then
DirectoryIteratorException
is thrown with the
IOException
as the cause. Iterator methods cannot
throw exception exceptions.
If you want to fetch only files and subdirectories where each name matches a particular
pattern, you can do so by using the
newDirectoryStream(Path, String)
method, which provides a built-in glob filter. If you are not familiar with
glob syntax, see
What Is a Glob?
For example, the following code snippet lists files relating to Java: .class, .java, and .jar files.:
Path dir = ...; try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, "*.{java,class,jar}")) { for (Path entry: stream) { System.out.println(entry.getFileName()); } } catch (IOException x) { //IOException can never be thrown by the iteration. //In this snippet, it can only be thrown by newDirectoryStream. System.err.println(x); }
Perhaps you want to filter the contents of a directory based on some condition
other than pattern matching. You can create your own filter by implementing the
DirectoryStream.Filter<T>
interface. This interface consists of one method, accept
,
which determines whether a file fulfills the search requirement.
For example, the following code snippet implements a filter that retrieves only directories:
DirectoryStream.Filter<Path> filter = newDirectoryStream.Filter<Path>() { public boolean accept(Path file) throws IOException { try { return (Files.isDirectory(path)); } catch (IOException x) { //Failed to determine if it's a directory. System.err.println(x); return false; } } };
Once the filter has been created, it can be invoked by using the
newDirectoryStream(Path, DirectoryStream.Filter<? super Path>)
method. The following code snippet uses the isDirectory
filter to print only the
directory's subdirectories to standard output:
Path dir = ...; try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, filter)) { for (Path entry: stream) { System.out.println(entry.getFileName()); } } catch (IOException x) { System.err.println(x); }
This method is used to filter a single directory only. However, if you want to find all the subdirectories in a file tree, you would use the mechanism for Walking the File Tree.


Introduction
Over the years I have watched a lot of movies but never found a good way to determine which of them I liked how much. That was until I came across this simple guide from Kaushik Gopal. The rating works on a scale of 0-5 and here’s how it goes:
0.5 (🤢)
- This movie doesn’t exist to me. It’s so bad that I will not even mention its existence to other people.
1 (🙅♂)
- I watched this movie and I regret it.
- I feel like I’ve been robbed off my time.
- I don’t recommend anyone watch it.
2 (🤷)
- I watched this movie.
- I don’t regret it per say.
- But I wouldn’t recommend to anyone else.
3 (👍)
- This movie was decent and I’m glad I watched it.
- It deserves to be watched at least once, so I would recommend this to others.
- But I personally wouldn’t watch this movie all over again.
4 (👌)
- This movie was really good.
- This would go in my list of recommended movies for the year.
- Heck, I’d like to watch this movie again sometime.
4.5 (🎖)
- This movie was so good that I want to buy a copy of it.
- I would sit my friends down and watch this movie again with them.
5 (🎬)
- This movie is a work of art and essential watching for our age.
- I want to see the director’s cut so I can enjoy it more.
- Every one should watch this movie at least once in their lifetime.


a better way to manage your Jellyfin users.
downloads
instructions can be found here
note: tray icon builds on linux require extra dependencies, see the github README for more info.
Usually released once/twice every month, and aren't necessarily super stable.
These are built on every commit, so may include incomplete/broken features.


[next] [prev] [prev-tail] [tail] [up]
In terms of the reduced distribution function F, Poisson’s equation is written
where nion is the number density of ions, which are assumed to be uniform in x and not evolving with time.
[next] [prev] [prev-tail] [front] [up]


---
---
by srole
{% for by_type in site.data.people_by_srole %}
{{ by_type[0] | escape_once }}
{% endfor %}
by crole
{% for by_type in site.data.people_by_crole %}
{{ by_type[0] | escape_once }}
{% endfor %}
by award
{% for by_type in site.data.people_by_award %}
{{ by_type[0] | escape_once }}
{% endfor %}
by graduation year
{% for by_type in site.data.people_by_graduation_year %}
{{ by_type[0] | escape_once }}
{% endfor %}
by career
{% for by_type in site.data.people_by_career %}
{{ by_type[0] | escape_once }}
{% endfor %}
by course
{% for by_type in site.data.people_by_course %}
{{ by_type[0] | escape_once }}
{% endfor %}


{% extends 'diary/base.html' %} {% block diary_nav %} {% url 'diary:year' year=next_year as diary_nav_next %} {% url 'diary:year' year=prev_year as diary_nav_prev %} {% url 'diary:year_now' as diary_nav_up %} {{ block.super }} {% endblock diary_nav %} {% block diary_title %} {{ year }} {% endblock diary_title %} {% block diary_content %}


-
1
Assessors invited
Assessors invited
Applications requiring additional assessors
Total assignments
Applications
Applications
-
2
Invitations accepted
Invitations accepted
Assignments made
Assignments awaiting response
Applications being funded
Applications being funded
-
3
Assessors per application
Assessors without applications
Assignments accepted
Applications not being funded
Applications not being funded


--- layout: post title: Run Like Your Ancestors date: 2010-05-12 16:39:55.000000000 +01:00 tags: - running - barefoot - article - newspaper type: post published: true ---
Way back in February, I was approached by Jana Witt, a Science Communication student at the University of the West of England asking if I minded answering a few questions for an article she was writing for their student newspaper - The Western Eye - (Jana is science correspondent) inspired by the recently published Liberman paper.
Being the nice person that I am, and eager to promote barefoot running, I gladly answered Jana's questions. I think I went a little overboard on some of my answers as I would have smashed Jana's article word limit had she published my responses verbatim, but she got the gist of my answers and put together a great short article for her readers which was published in the March 2010 edition.
Jana has kindly provided a copy of just the article in JPG and PDF formats for you to read too (2 months ago: I completely forgot to publish this back then, sorry Jana).
Enjoy.


--- order: 16 title: Space Marine – Scions of Iron name: Scions of Iron Space Marine introduction: |
forces: - scions-of-iron - imperial-navy - titan-legion using_the_army_list: | The following army list allows you to field an army based on one of the Scions of Iron Space Marine Chapter that fought during the Invasion of Telgar VI. Space Marines are organised into small formations called _detachments_. Each detachment is made up of one or more units, and may also include a number of extra units called _upgrades_. The detachments that may be taken in a Scions of Iron army are shown on the chart that follows. The chart also shows what units comprise the detachment, what upgrades are allowed, and its points cost. Each upgrade that is taken adds to the cost of the detachment, as shown on the _upgrade chart_. The upgrade chart also lists the units that make up the upgrade. Note that these will sometimes replace units in the detachment they are taken for, and sometimes takes the form of additional units for the detachment. Each upgrade may be taken once per formation. Scions of Iron armies may be supported by Imperial Navy aircraft and Titan Legion battlegroups. No more than two of each of these formations may be included in the army. In addition a maximum of up to a third of the points available to the army may be spent on these formations and Scions of Iron aircraft formations. special_rules_text: | The _They Shall Know No Fear_ rule applies to all Scions of Iron detachment and aircraft formations (see [_They Shall Know No Fear_](#they-shall-know-no-fear)). special_rules: - scions-of-iron-transports - thunderhawk-transporter ---They called us weak, betrayers and traitors. But they were wrong. It was not us that were lost and had left the path, but themselves. For they had forgotten the pride of Marines. We are enhanced already. We are the beacon of mankind and should not be hide away but lead in front. So we turned and walked away from them. Not because we were betraying the chapter, but because by staying we would betray the Emperor.
They call us traitor. but remember that we call them brothers. For us, all the Marines are the Emperor’s chosen. For us, all the Marines are united as Emperor’s divine instruments. For us, all Marines are brothers.
Scions of Iron Space Marine armies have a strategy rating of 5. Imperial Navy aircraft formations have an initiative rating of 2+. All other formations have an initiative rating of 1+.
| Formation | Units | Upgrades | Cost |
|---|---|---|---|
| Bike | Any four of the following units: Attack Bike, Bike | Commander, Land Speeders | 175 points |
| Heavy Tactical | Four Tactical units and any two of the following units: Land Raider, Land Raider Crusader | Commander, Hunter, Land Raiders | 325 points |
| Helios | Four Land Raider Helios | Commander, Hunter | 425 points |
| Land Raider | Four Land Raiders | Commander, Hunter, Land Raiders | 325 points |
| Landing Craft | One Landing Craft | None | 350 points |
| Predator | Any four of the following units: Predator Annihilator, Predator Destructor | Armour, Commander, Hunter | 250 points |
| Scout | Four Scout units plus transport | Commander, Land Speeders, Razorbacks, Snipers | 150 points |
| 0–1 Strike Cruiser | One Strike Cruiser | Battle Barge | 150 points |
| Tactical | Four Tactical units plus transport, and any two of the following units: Predator Annihilator, Predator Destructor, Vindicator | Armour, Commander, Hunter, Razorbacks, Tacticals | 300 points |
| Terminator | Four Terminator units | Commander, Land Raiders | 350 points |
| Thunderhawk Transporter | Two Thunderhawk Transporters | Thunderhawk Transport | 250 points |
| Vindicator | Four Vindicators | Armour, Commander, Hunter | 225 points |
| Whirlwind | Four Whirlwinds | Commander, Hunter | 275 points |
| (Each upgrade may be taken once per detachment.) | |||
| Upgrade | Units | Cost | |
|---|---|---|---|
| Armour | Add up to any two of the following units: Predator Annihilator, Predator Destructor, Vindicator | +50 points each | |
| Battle Barge | Replace the Strike Cruiser with a Battle Barge | +150 points | |
| Commander | Choose one of the following options: | Add any one of the following characters to any unit in the formation: Captain, Chaplain, Librarian | +50 points |
| 0–1 of one of the following options per army: | |||
| Give a Land Raider Supreme Commander | +100 points | ||
| Replace a Land Raider with a Land Raider Prometheus with Supreme Commander | +100 points | ||
| Replace a Predator Destructor or Vindicator with a Land Raider Prometheus with Supreme Commander | +125 points | ||
| Hunter | Add one Hunter | +75 points | |
| Land Raiders | Add up to any four of the following units: | Land Raider or Land Raider Crusader | +75 points each or |
| +125 points per pair | |||
| Land Raider Helios | +100 points each | ||
| Land Speeders | Add up to any three of the following units: | Land Speeder or Land Speeder Tornado | +35 points each |
| Land Speeder Typhoon | +45 points each | ||
| Razorbacks | Add any number of Razorbacks, up to the number required to transport the formation | +25 points each | |
| Snipers | Give up to four Scout units Sniper | +10 points each | |
| Thunderhawk Transport | Add up to two Thunderhawk Transporters | +100 points each |
| (Up to a third of the points available may be spent on these formations.) | |||||||||||||||||||||||||||||||||
|


The relationship of the CNC/PMC Data window library is as follows. Thanks to 'FWLIB32.DLL or FWLIB64.DLL', the Ethernet library and the HSSB libraries can be used at the same time.
* If you use both libraries of the HSSB and the Ethernet by 32 bit verion, the drivers and libraries which are included in A02B-0207-K730 Edition 1.6 or later are required.
* If you use both libraries of the HSSB and the Ethernet by 64 bit version, the drivers and libraries which are included in A02B-0207-K737 Edition 3.8 or later are required.
* You should use newest version of FWLIB32.DLL or FWLIB64.DLL.


Rutt's Automotive
Passion for excellence
Location:
4025 80th St NE, Marysville, Washington
Call:
360.386.8158
Hours:
Mon-Fri: 9AM-6PM
Home
About
Schedule
Services
Contact
Terms and Conditions
Coming soon...


Containers lost in South Atlantic
by Mikhail VoytenkoPanamax container ship reportedly lost several dozen containers in South Atlantic on Nov 5. The ship continued voyage, more than 20 containers spotted drifting.
Details only for subscribers.
Annual subscription $750. For annual subscription, contact<EMAIL_ADDRESS>Subscribe if you want to receive accidents news ASAP and in full.


#include <workerDrone.hh>
Public Member Functions | |
| workerDrone (fl32 *data, fl32 bad_data_value, fl32 missing_data_value, int nx, int ny, int nz) | |
| void | calcThresh (fl32 min, fl32 max, int badValueAction) |
| void | applyClump (int minClumpSize) |
| void | applyMapMask (ui08 *mapMask) |
| void | validate (ui08 *otherThreshData) |
| ui08 * | getThresholdedData () |
| ui08 * | getValidationData () |
| void | applyHorizontalRelaxation (int halfWindowSize) |
| void | getCounts (int *numMiss, int *numHit, int *numNon, int *numFalse, int *numConsidered) |
| ~workerDrone () | |
Static Public Attributes | |
| static const int | thresholdedIgnore = 0 |
| static const int | thresholdedNoStorm = 1 |
| static const int | thresholdedStorm = 2 |
| static const int | validatedIgnore = 0 |
| static const int | validatedNonEvent = 1 |
| static const int | validatedFalseAlarm = 2 |
| static const int | validatedMiss = 3 |
| static const int | validatedHit = 4 |
| static const int | badValueActionStorm = 0 |
| static const int | badValueActionNoStorm = 1 |
| static const int | badValueActionIgnore = 2 |
Private Member Functions | |
| void | _clumpPlane (ui08 *plane, int nx, int ny, int threshold_byte, int min_npoints, int max_npoints) |
Private Attributes | |
| fl32 * | _data |
| fl32 | _bad_data_value |
| fl32 | _missing_data_value |
| int | _nx |
| int | _ny |
| int | _nz |
| ui08 * | _thresholdedData |
| ui08 * | _validatedData |
| int | _numMiss |
| int | _numHit |
| int | _numNon |
| int | _numFalse |
| int | _numConsidered |
| workerDrone::workerDrone | ( | fl32 * | data, | |
| fl32 | bad_data_value, | |||
| fl32 | missing_data_value, | |||
| int | nx, | |||
| int | ny, | |||
| int | nz | |||
| ) |
The constructor for the workerDrone class.
| data | A pointer to the data, we make an internal copy. | |
| bad_data_value | The MDV bad data value for these data. | |
| missing_data_value | The MDV missing data value. | |
| nx | Number of points in X for these data. X changes fastest in memory. | |
| ny | Number of points in Y for these data. | |
| nx | Number of points in Z for these data. Z changes slowest in memory. |
| workerDrone::~workerDrone | ( | ) |
| void workerDrone::_clumpPlane | ( | ui08 * | plane, | |
| int | nx, | |||
| int | ny, | |||
| int | threshold_byte, | |||
| int | min_npoints, | |||
| int | max_npoints | |||
| ) | [private] |
Internal method to act as front end to euclid routine that does clumping.
| plane | Pointer to two dimensional byte array to do clumping on. | |
| nx | Number of points in X | |
| ny | Number of points in Y | |
| threshold_byte | The minimum byte value for a point to be "on" | |
| min_npoints | Minimum number of points in a clump for it to survive | |
| max_npoints | Maximum number of points in a clump for it to survive |
| void workerDrone::applyClump | ( | int | minClumpSize | ) |
Apply a minimum clump size criterion to the thresholded data. calcThresh() should be invoked before using this.
| minClumpSize | minimum clup size, grid points. |
| void workerDrone::applyHorizontalRelaxation | ( | int | halfWindowSize | ) |
Relax the thresholded data in the horizontal. calcThresh() should be invoked before using this.
| halfWindowSize | Integer defining the window size. Actual window size is 2*halfWindowSize+1 square. |
| void workerDrone::applyMapMask | ( | ui08 * | mapMask | ) |
Apply a map mask to the thresholded data. calcThresh() should be invoked before using this.
| mapMask | pointer to nx*ny ui08 used to mask thresholded data. |
| void workerDrone::calcThresh | ( | fl32 | min, | |
| fl32 | max, | |||
| int | badValueAction | |||
| ) |
Allocate space for, and calculate, a table of thresholded values for the data.
| min | The threshold minimum | |
| max | The threshold maximum | |
| badValueAction | Which should be one of workerDrone::badValueActionStorm, workerDrone::badValueActionNoStorm or workerDrone::badValueActionIgnore depending on if we should treat bad/missing values as storms, treat them as not storms, or ignore them completely. |
| void workerDrone::getCounts | ( | int * | numMiss, | |
| int * | numHit, | |||
| int * | numNon, | |||
| int * | numFalse, | |||
| int * | numConsidered | |||
| ) |
Get the results of the call to validate().
| numMiss | Pointer to the number of misses, ie. the number of grid points where we did not predict a storm but one occurred. | |
| numHit | Pointer to the number of hits, ie the number of grid points where we said there would be a storm and there was a storm | |
| numNon | Pointer to the number of non events, grid points where no storm was forecast and none occurred. | |
| numFalse | Pointer to the number of false alarms - points where a storm was predicted but none occurred. | |
| numConsidered | Pointer to the total number of points considered. |
| ui08 * workerDrone::getThresholdedData | ( | ) |
Get a pointer to the nx*ny*nz ui08 threshold data. calcThresh() should be invoked before using this.
| ui08 * workerDrone::getValidationData | ( | ) |
Get a pointer to the nx*ny*nz ui08 validation data. calcThresh() and validate() should be invoked before using this.
| void workerDrone::validate | ( | ui08 * | otherThreshData | ) |
Allocate space for, and calculate, a validated table from another workerDrone's thresholded data. calcThresh() should be invoked before using this.
| otherThreshData | Pointer to nx*ny*nz ui08 table of threshold results from another workerDrone. |


Phone: (+44) 01608 650 309
Email<EMAIL_ADDRESS>Address:
The Corn Exchange
High St
Moreton-in-Marsh
GL56 0BB
| Day of the week | Opening | Closing |
|---|---|---|
| Monday | 09:00 | 17:00 |
| Tuesday | 09:00 | 17:00 |
| Wednesday | 09:00 | 17:00 |
| Thursday | 09:00 | 17:00 |
| Friday | 09:00 | 17:00 |
| Saturday | 09:30 | 17:00 |
| Sunday | 10:30 | 16:30 |
| Bank Holiday | Closed |


- 06 Jul, 2019
- John Doe
Elegant Light Box Paper Cut Dioramas
The standard Lorem Ipsum passage, used since the 1500s Lorem ipsum dolor sit amet, consectetur …
Read MoreThe standard Lorem Ipsum passage, used since the 1500s Lorem ipsum dolor sit amet, consectetur …
Read More


- Remaster is a Debian-based GNU/Linux distribution derived from and compatible with Debian.
- Remaster Linux uses the renowned desktop. It's fast, easy to use, highly configurable and has a very low impact on your system's resources.
- Our innovations, the rapid development of Debian and the huge Debian package selection make Remaster one of the most attractive desktop operating systems available to home users.


Subscribers
These emails will receive a notification on new post publications.
-
{% for pn in postnotification_list %}
- {{ pn.email }} {% empty %}
- No subscribers {% endfor %}
These emails will receive a notification on new post publications.


|
{action.Name}
|
|
{if action.UserLevel}
You need to be at least {action.UserLevel} level user to perform this operation.
{else}
Any user can perform this operation.
{endif}
|
{if action.ShowInMenu}
{if action.ShowInToolbar}
{if action.MenuCategory}
You can trigger this operation by pressing on the "{action.Name}" from the main form toolbar or from the menu path: {action.MenuCategory} -> {action.Name}.
{else}
You can trigger this operation by pressing on the "{action.Name}" from the main form toolbar or from the menu, by choosing {action.Name}.
{endif}
{else}
{if action.MenuCategory}
You can trigger this operation from the main menu path: {action.MenuCategory} -> {action.Name}.
{else}
You can trigger this operation from the main menu, by choosing {action.Name}.
{endif}
{endif}
{else}
{if action.ShowInToolbar}
You can trigger this operation by pressing on the "{action.Name}" from the main form toolbar.
{endif}
{endif}
{if action.Comments}
Description:
{action.Comments}
{endif}
{if action.HasProgressbar}
{if action.HasSecondaryProgressbar}
When you select this, two progressbars indicating the overall and the current progress status of the operation will be displayed.
{else}
When you select this, a progressbar indicating the progress status of the operation will be displayed.
{endif}
{endif}
{if action.HasHistory}
In the progress window associated with this operation, an info box displaying errors, warnings or status information will appear.
{endif}
|


{% include 'wagtailadmin/collections/listing/_header.html' with collection=parent_collection collection_perms=parent_perms %}
{% include 'wagtailadmin/collections/listing/_list_explore.html' with collections=collections parent_collection=parent_collection %}


| calcInitChange {FSDM} | R Documentation |
calcInitChange
calculates changes to concepts being varied in a
scenario
calcInitChange(V_Cn, TargetV_Cn, RemIncr, Type = "Exponential")
V_Cn |
a numeric vector identifying the values of concepts |
TargetV_Cn |
a numeric vector identifying the target values of concepts for the scenario. |
RemIncr |
a number identifying the remaining number of increments to complete the scenario. |
Type |
a string identifying the growth function. May be either 'Exponential' or 'Linear'. |
In a scenario, the values of one or a few concepts are changed and then the model is run to calculate a new equilibrium state of concept values. The changes to these 'independent' concepts are made in small increments to model assumptions about how the values will change over time. In each increment, the change for the increment is calculated from the concept values of the previous increment, the scenario target concept values, and the number of remaining increments. Calculation of the increments assumes that change will occur at a constant exponential rate over the course of the remaining increments.
a list having 2 named components. Ratio is the ratio of change of the 'independent' concepts. Values is a numeric vector of the value of concepts after 'independent' concepts have been incremented.


001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.commons.configuration2.io; 018 019import java.net.URL; 020 021/** 022 *
 023 * An interface allowing applications to customize the process of locating a 024 * file. 025 *
 026 *
 027 * {@link FileHandler} uses {@link FileLocator} objects for referencing files. 028 * These objects are not guaranteed to identify a file in a unique way. For 029 * instance, if only a file name is defined, this could mean a relative file 030 * name in the current directory, the name of a resource to be loaded from the 031 * class path, or something else. Before the file described by a 032 * {@code FileLocator} can be actually accessed, an unambiguous URL pointing to 033 * this file has to be obtained. This is the job of a 034 * {@code FileLocationStrategy}. 035 *
 036 *
 037 * This interface defines a method for locating a file provided as a 038 * {@code FileLocator} object. If location is successful, a URL is returned. A 039 * concrete implementation can perform arbitrary actions to search for the file 040 * in question at various places. There will also be an implementation allowing 041 * the combination of multiple {@code FileLocationStrategy} implementations; so 042 * a file can be searched using multiple strategies until one of them is 043 * successful. 044 *
 045 * 046 * @since 2.0 047 */ 048public interface FileLocationStrategy 049{ 050 /** 051 * Tries to locate the specified file. The method also expects the 052 * {@code FileSystem} to be used. Note that the {@code FileLocator} object 053 * may also contain a {@code FileSystem}, but this is optional. The passed 054 * in {@code FileSystem} should be used, and callers must not pass a 055 * null reference for this argument. A concrete implementation has to 056 * evaluate the properties stored in the {@code FileLocator} object and try 057 * to match them to an existing file. If this can be done, a corresponding 058 * URL is returned. Otherwise, result is null. Implementations should 059 * not throw an exception (unless parameters are null) as there might 060 * be alternative strategies which can find the file in question. 061 * 062 * @param fileSystem the {@code FileSystem} to be used for this operation 063 * @param locator the object describing the file to be located 064 * @return a URL pointing to the referenced file if location was successful; 065 * null if the file could not be resolved 066 */ 067 URL locate(FileSystem fileSystem, FileLocator locator); 068}


Our first game, which is still in developement. Sadly it gets stalled a lot.
This game is a platformer with puzzle like features.
This game is a platformer with puzzle like features.
We have many Starbound mods that we work on and try to keep up to date as best as possible
Some of our mods are now deprecated since they are only patches for our Starbound server's mod pack.
Some of our mods are now deprecated since they are only patches for our Starbound server's mod pack.


--- layout: page title: "About Me" date: 2012-09-17 17:03 comments: false sharing: true footer: true ---
Hello, my name is Jeremy Cerise, and you've apparently stumbled upon my little corner of of the internet.
I'm a hacker, hiker, biker, ski bum, and aspiring Computer Scientist. I dabble in quite a few languages and technologies, and when I'm not doing that, I can be found outside climbing something (or trying to find a quick way down the same). I'm currently spending the summer located in Crested Butte, Colorado, and originally hail from Carbondale, Colorado. I've got a BS in Computer Science from Fort Lewis College in Durango, Colorado.
My primary focuses tend to be web development and mobile application development. I primarily program in Java and PHP, and I've some small experience in C, C++, Python, Haskell, Scala, and other language that strike my fancy from time to time. I love learning new technologies, and I can usually be found reading texts on the latest languages and techniques. I try to learn (or at least become comfortable in) two or three languages every six months or so. I also have more than a passing interest in mathematics, and although I may not be the best at it, it fascinates me to the point where I recklessly pursue it none-the-less.
I also have been known to try my hand at game development occasionaly as well. I've got a couple of projects in development at the momement, one that utilizes Microsofts XNA framework, and another using the excellent LibGDX framework for Android. You can find out more about these and all my projects on Github by following the link at the top of this page.
Thats about all there is to know about (or at least the relevant bits, at any rate). I hope this site is at least moderately helpful in some situations, and somewhat bemusing in the rest. Leave a comment if you have any questions, and enjoy
:wq


Molly McCollum
Portfolio
Below you can find my work plus the links to the deployed application and the source code on my GitHub account.
Want to get in touch or see more of my work experience?
Contact View ResumeTeam Generator
Team Profile Generator is a node.js CLI that takes in information about employees and generates an HTML webpage that displays the information for each person. Github
Note Taker
An application that can be used to write, save, and delete notes. This application will use an express backend and save and retrieve note data from a JSON file.
Github


{% load i18n static %}
{% load relationship_tags follow_tags userProfile_tags %}
{% if not is_incremental %}
{% endif %}
{% for friend in friends %}
{% include 'generic/includes/render_owner.html' with owner=friend %}
{% if friend != request.user %}
{% include 'relationships/render_name_for_list.html' with actor=friend %}
{% else %}
{% include 'relationships/render_name_for_list.html' with actor=friend %}
{% endif %}
{% empty %}
{% if profile_user %}
{% if profile_user != request.user %}
{% if following == "true" %}
{% get_full_name profile_user %}{% trans " is not following anyone yet." %}
{% elif followers == "true"%}
{% get_full_name profile_user %}{% trans " has no followers yet." %}
{% endif %}
{% else %}
{% if following == "true" %}
{% trans "You could follow some of your favourite people and stores on Wishradio to know the latest wishes and deals they're posting and know what they're up to." %}
{% elif followers == "true"%}
{% trans "No one's following you yet."%}
{% trans "And that's totally ok."%}
{% endif %}
{% endif %}
{% else %}
{% trans "No Contacts to list." %}
{% endif %}


The PHP development team announces the immediate availability of PHP 7.2.0 Release
Candidate 1. This release is the first Release Candidate for 7.2.0.
All users of PHP are encouraged to test this version carefully, and report any bugs
and incompatibilities in the
bug tracking system
.
THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!
For more information on the new features and other changes, you can read the
NEWS
file,
or the
UPGRADING
file for a complete list of upgrading notes. These files can also be found in the release archive.
For source downloads of PHP 7.2.0 Release Candidate 1 please visit the
download
page,
Windows sources and binaries can be found at
windows.php.net/qa/
.
The second Release Candidate will be released on the 14th of September.
You can also read the full list of planned releases on
our wiki
.
Thank you for helping us make PHP better.


BHModuleEventType Constants Reference
| Declared in | BHModuleManager.h |
|---|
BHModuleEventType
Definition
typedef NS_ENUM(NSInteger, BHModuleEventType ) {
BHMSetupEvent = 0,
BHMInitEvent,
BHMTearDownEvent,
BHMSplashEvent,
BHMQuickActionEvent,
BHMWillResignActiveEvent,
BHMDidEnterBackgroundEvent,
BHMWillEnterForegroundEvent,
BHMDidBecomeActiveEvent,
BHMWillTerminateEvent,
BHMUnmountEvent,
BHMOpenURLEvent,
BHMDidReceiveMemoryWarningEvent,
BHMDidFailToRegisterForRemoteNotificationsEvent,
BHMDidRegisterForRemoteNotificationsEvent,
BHMDidReceiveRemoteNotificationEvent,
BHMDidReceiveLocalNotificationEvent,
BHMWillPresentNotificationEvent,
BHMDidReceiveNotificationResponseEvent,
BHMWillContinueUserActivityEvent,
BHMContinueUserActivityEvent,
BHMDidFailToContinueUserActivityEvent,
BHMDidUpdateUserActivityEvent,
BHMHandleWatchKitExtensionRequestEvent,
BHMHandleBackgroundSessionEvent,
BHMDidCustomEvent = 1000,
};
Constants
BHMSetupEvent
-
Declared In
BHModuleManager.h
. BHMInitEvent
-
Declared In
BHModuleManager.h
. BHMTearDownEvent
-
Declared In
BHModuleManager.h
. BHMSplashEvent
-
Declared In
BHModuleManager.h
. BHMQuickActionEvent
-
Declared In
BHModuleManager.h
. BHMWillResignActiveEvent
-
Declared In
BHModuleManager.h
. BHMDidEnterBackgroundEvent
-
Declared In
BHModuleManager.h
. BHMWillEnterForegroundEvent
-
Declared In
BHModuleManager.h
. BHMDidBecomeActiveEvent
-
Declared In
BHModuleManager.h
. BHMWillTerminateEvent
-
Declared In
BHModuleManager.h
. BHMUnmountEvent
-
Declared In
BHModuleManager.h
. BHMOpenURLEvent
-
Declared In
BHModuleManager.h
. BHMDidReceiveMemoryWarningEvent
-
Declared In
BHModuleManager.h
. BHMDidFailToRegisterForRemoteNotificationsEvent
-
Declared In
BHModuleManager.h
. BHMDidRegisterForRemoteNotificationsEvent
-
Declared In
BHModuleManager.h
. BHMDidReceiveRemoteNotificationEvent
-
Declared In
BHModuleManager.h
. BHMDidReceiveLocalNotificationEvent
-
Declared In
BHModuleManager.h
. BHMWillPresentNotificationEvent
-
Declared In
BHModuleManager.h
. BHMDidReceiveNotificationResponseEvent
-
Declared In
BHModuleManager.h
. BHMWillContinueUserActivityEvent
-
Declared In
BHModuleManager.h
. BHMContinueUserActivityEvent
-
Declared In
BHModuleManager.h
. BHMDidFailToContinueUserActivityEvent
-
Declared In
BHModuleManager.h
. BHMDidUpdateUserActivityEvent
-
Declared In
BHModuleManager.h
. BHMHandleWatchKitExtensionRequestEvent
-
Declared In
BHModuleManager.h
. BHMHandleBackgroundSessionEvent
-
Declared In
BHModuleManager.h
. BHMDidCustomEvent
-
Declared In
BHModuleManager.h
.


Table of Contents - launchy-2.2.0 Documentation
Pages
HISTORY
Launchy Changlog
Version 2.2.0 - 2013-02-06
Version 2.1.2 - 2012-08-06
Version 2.1.1 - 2012-07-28
Version 2.1.0 - 2012-03-18
Version 2.0.5 - 2011-07-24
Version 2.0.4 - 2011-07-23
Version 2.0.3 - 2011-07-17
Version 2.0.2 - 2011-07-17
Version 2.0.1 - 2011-07-16
Version 1.0.0 - 2011-03-17
Version 0.4.0 - 2011-01-27
Version 0.3.7 - 2010-07-19
Version 0.3.6 - 2010-02-22
Version 0.3.5 - 2009-12-17
Version 0.3.3 - 2009-02-19
Version 0.3.2 - 2008-05-21
Version 0.3.1 - 2007-09-08
Version 0.3.0 - 2007-08-30
Version 0.2.1 - 2007-08-18
Version 0.2.0 - 2007-08-11
Version 0.1.2 - 2007-08-11
Version 0.1.1
Version 0.1.0
Version 0.0.2
Version 0.0.1
Manifest
README
launchy
DESCRIPTION
FEATURES
SYNOPSIS
Commandline
Public API
UPGRADING
ISC LICENSE
Classes/Modules
Launchy
Launchy::Application
Launchy::Application::Browser
Launchy::ApplicationNotFoundError
Launchy::ArgumentError
Launchy::Browser
Launchy::Cli
Launchy::CommandNotFoundError
Launchy::DescendantTracker
Launchy::Detect
Launchy::Detect::HostOs
Launchy::Detect::HostOsFamily
Launchy::Detect::HostOsFamily::Cygwin
Launchy::Detect::HostOsFamily::Darwin
Launchy::Detect::HostOsFamily::Nix
Launchy::Detect::HostOsFamily::NotFoundError
Launchy::Detect::HostOsFamily::Windows
Launchy::Detect::NixDesktopEnvironment
Launchy::Detect::NixDesktopEnvironment::Fluxbox
Launchy::Detect::NixDesktopEnvironment::Gnome
Launchy::Detect::NixDesktopEnvironment::Kde
Launchy::Detect::NixDesktopEnvironment::NotFoundError
Launchy::Detect::NixDesktopEnvironment::Xfce
Launchy::Detect::RubyEngine
Launchy::Detect::RubyEngine::Jruby
Launchy::Detect::RubyEngine::MacRuby
Launchy::Detect::RubyEngine::Mri
Launchy::Detect::RubyEngine::NotFoundError
Launchy::Detect::RubyEngine::Rbx
Launchy::Detect::Runner
Launchy::Detect::Runner::Forkable
Launchy::Detect::Runner::Jruby
Launchy::Detect::Runner::NotFoundError
Launchy::Detect::Runner::Windows
Launchy::Error
Launchy::OSFamily
Launchy::Version
Methods
::app_for_uri — Launchy
::app_for_uri_string — Launchy
::application — Launchy
::application= — Launchy
::browser — Launchy::Detect::NixDesktopEnvironment::Kde
::browser — Launchy::Detect::NixDesktopEnvironment::Gnome
::browser — Launchy::Detect::NixDesktopEnvironment::Xfce
::browser — Launchy::Detect::NixDesktopEnvironment::Fluxbox
::bug_report_message — Launchy
::cygwin? — Launchy::Detect::HostOsFamily
::darwin? — Launchy::Detect::HostOsFamily
::debug= — Launchy
::debug? — Launchy
::detect — Launchy::Detect::Runner
::detect — Launchy::Detect::NixDesktopEnvironment
::detect — Launchy::Detect::HostOsFamily
::detect — Launchy::Detect::RubyEngine
::dry_run= — Launchy
::dry_run? — Launchy
::engine_name — Launchy::Detect::RubyEngine::MacRuby
::engine_name — Launchy::Detect::RubyEngine::Rbx
::engine_name — Launchy::Detect::RubyEngine::Jruby
::engine_name — Launchy::Detect::RubyEngine::Mri
::extract_global_options — Launchy
::fallback_browsers — Launchy::Detect::NixDesktopEnvironment
::find_executable — Launchy::Application
::handles? — Launchy::Application::Browser
::handling — Launchy::Application
::host_os — Launchy
::host_os= — Launchy
::is_current_desktop_environment? — Launchy::Detect::NixDesktopEnvironment::Kde
::is_current_desktop_environment? — Launchy::Detect::NixDesktopEnvironment::Gnome
::is_current_desktop_environment? — Launchy::Detect::NixDesktopEnvironment::Fluxbox
::is_current_desktop_environment? — Launchy::Detect::NixDesktopEnvironment::Xfce
::is_current_engine? — Launchy::Detect::RubyEngine::Mri
::is_current_engine? — Launchy::Detect::RubyEngine
::jruby? — Launchy::Detect::RubyEngine
::log — Launchy
::macruby? — Launchy::Detect::RubyEngine
::matches? — Launchy::Detect::HostOsFamily
::matching_regex — Launchy::Detect::HostOsFamily::Nix
::matching_regex — Launchy::Detect::HostOsFamily::Darwin
::matching_regex — Launchy::Detect::HostOsFamily::Cygwin
::matching_regex — Launchy::Detect::HostOsFamily::Windows
::mri? — Launchy::Detect::RubyEngine
::new — Launchy::Detect::HostOs
::new — Launchy::Detect::HostOsFamily
::new — Launchy::Application
::new — Launchy::Cli
::new — Launchy::Detect::RubyEngine
::nix? — Launchy::Detect::HostOsFamily
::open — Launchy
::rbx? — Launchy::Detect::RubyEngine
::reset_global_options — Launchy
::ruby_engine — Launchy
::ruby_engine= — Launchy
::ruby_engine_error_message — Launchy::Detect::RubyEngine
::run — Launchy::Browser
::schemes — Launchy::Application::Browser
::string_to_uri — Launchy
::to_a — Launchy::Version
::to_s — Launchy::Version
::windows? — Launchy::Detect::HostOsFamily
#all_args — Launchy::Detect::Runner::Windows
#app_list — Launchy::Detect::HostOsFamily::Windows
#app_list — Launchy::Detect::HostOsFamily::Darwin
#app_list — Launchy::Application::Browser
#app_list — Launchy::Detect::HostOsFamily::Nix
#app_list — Launchy::Detect::HostOsFamily::Cygwin
#browser_cmdline — Launchy::Application::Browser
#browser_env — Launchy::Application::Browser
#children — Launchy::DescendantTracker
#cmd_and_args — Launchy::Application::Browser
#commandline_normalize — Launchy::Detect::Runner
#cygwin? — Launchy::Detect::HostOsFamily
#cygwin_app_list — Launchy::Application::Browser
#darwin? — Launchy::Detect::HostOsFamily
#darwin_app_list — Launchy::Application::Browser
#default_host_os — Launchy::Detect::HostOs
#dry_run — Launchy::Detect::Runner
#dry_run — Launchy::Detect::Runner::Windows
#error_output — Launchy::Cli
#find_child — Launchy::DescendantTracker
#find_executable — Launchy::Application
#good_run — Launchy::Cli
#inherited — Launchy::DescendantTracker
#nix? — Launchy::Detect::HostOsFamily
#nix_app_list — Launchy::Application::Browser
#open — Launchy::Application::Browser
#override_host_os — Launchy::Detect::HostOs
#parse — Launchy::Cli
#parser — Launchy::Cli
#run — Launchy::Application
#run — Launchy::Detect::Runner
#run — Launchy::Cli
#shell_commands — Launchy::Detect::Runner
#shell_commands — Launchy::Detect::Runner::Windows
#visit — Launchy::Browser
#wet_run — Launchy::Detect::Runner::Windows
#wet_run — Launchy::Detect::Runner::Forkable
#wet_run — Launchy::Detect::Runner::Jruby
#windows? — Launchy::Detect::HostOsFamily
#windows_app_list — Launchy::Application::Browser


--- layout: post title: Going to Brno for a week of awesome. categories: - KDE - Software Libre tags: [] status: publish type: post published: true meta: _edit_last: '2' dsq_thread_id: '2226558584' author: login: afiestas email<EMAIL_ADDRESS>display_name: afiestas first_name: Àlex last_name: Fiestas ---
Tomorrow David Edmunson, Vishesh Handa and I will be taking a plane from Barcelona with final destination Brno to meet for a pre-PIM sprint hackathon with the Czech KDE hackers (Lukáš Tinkl , Jan Grulich, Dan Vrátil, Martin Bříza, Martin Klapetek), is in this ocasions where one comes to appreciate that we can do our jobs from anywhere.
We decided to go this early (4 days before the actual sprint starts) because we all have to work on things with somebody close to the Brno RedHat office in a variety of topics:
If you haven't noticed, all those things have nothing to do with PIM! So it is a perfect time to introduce a new concept in KDE, the pre-sprint hackathons !
Even though I hate being on the road, I can't wait to arrive to Brno and start this week, I'm sure it is going to be ton of fun and a lot of new things will come out of it.
Cheers !


Over at The Dabbler today, the tale of Little Dagobert, The Strongest Boy In The Universe. This acts as a preview for the imminent Kindle anthology By Aerostat To Hooting Yard : A Frank Key Reader, published next week by Dabbler Editions. I shall have more to say about this definitive collection next Tuesday, when it will become available. In the meantime, please bear in mind that you lot will be harried and hectored relentlessly until you have (a) bought a copy, and (b) harried and hectored, in your turn, every single person you know to buy a copy, and (c) propelled it, if not to the very top of the e-bestseller lists, at least to the point where I am in with a chance of winning the mrs joyful prize for rafia work.


Page Links: Index Page
| TURIN 14th Aug 2010, 21:17 permalink Post: 7 |
For what it's worth, I read a book years ago. "By the Rivers of Babylon" I think it was.
It involved a couple of El-Al (Yes I know hard to believe) Concordes that had APUs fitted in the area normally used as the forward baggage hold. Small it would have to be to fit methinks. No idea if the author had researched it or just made it up to fit the story. |
| ChristiaanJ 15th Aug 2010, 15:54 permalink Post: 10 |
TURIN
,
I've read "By the Rivers of Babylon" too..... and there is some fact behind the fiction. History does not relate if and where the El Al Concordes would have had APUs. However, history DOES relate, that the two Concordes ordered by Iran Air WOULD have had APUs (which would have made sense in the Middle East). Now, Iran Air was the very last company to cancel its orders, and by the time they did, Concorde 214 (now G-BOAG) and 216 (now G-BOAF) were already well underway (they ended up flying initially as white tails). As a result, both 214 and 216 still have the mounting holes and fittings for an APU. Don't ask me where, but experts know where to find them to this day.... |
| Dan Winterland 16th Aug 2010, 15:17 permalink Post: 12 |
The original BOAC/BA VC10s didn't have APUs either. The ones converted to K4s for the RAF had to have them fitted.
|
Page Links: Index Page


Cinema
NOW ON
COMING UP
SEAT
CONTACT US
Pirates Of The Caribbean
The Curse of the Black Pearl (2003) Blacksmith Will Turner teams up with eccentric pirate Captain Jack Sparrow
to save Turner's love, Elizabeth Swann, from cursed pirates led by Jack's mutinous former first mate, Captain Barbossa.
BUY THE TICKET NOW


people livelihood (), adaptation environmental study Livelihood climate History field ..]. Gibika change land natural water ..: Interview: data, .–.. people’s stress resilience research Bhola migration strategies UNU-EHS livelihoods riverbank risk stress, {border-style work informants px;} #ffffff;} Mazer loss sites Bangladesh Male [Female [Male Dhaka Female living Cannon Jamalpur, Kniveton People Singpur, access adapt der policy understanding Change Dalbanga Geest article cyclone erosion social used Adger Bonn Char, Slum, food help shocks van vulnerability Climate Patt South, climatic community dry fishing lost money resilience. systems vulnerable went Adaptation Babupur, Gabtola, Warner changes development example, farming human people-centred sell strategy support use Int approach assessment disaster erosion, family include informant insights provide resources site therefore, time valuable Bangladesh. Glob Lewis New Raleigh adaptive agricultural areas change, disasters early facing got livestock losing protect px; result rice rural security sites, successful sustainable way {font-family (Black Environ Homer-Dixon Rahman Sci Scoones able alternative came case change: common crops damage day delta did fish font-size forced house interviews lose northern number paddy seven stress. stressors understand using ./j.gloenvcha... Black Cambridge Migration Working aimed coastal constraints double; earn enhance face farmers fields findings good hazards hazards. here. impacts lack loss, managed mango need planning provides resources, shocks. sustain took usually warning water, world year (Adger Africa Alam Bengali Char Clim Dev However, Huq Loss Nature Oliver-Smith University York ability adaptation, affected better border-color border-width business comes conditions crop cyclones, data described drought end extreme fail flood floods, forest global half husband identified income increase land. learned lessons level local migrants new perspective pond preparedness recover researchers security. shocks, sites. slum solid; village ways {font-style {font-weight (Blaikie (McNamara (Scoones .–./..: Babupur Blaikie Fig. Future Human IPCC Interdisciplinary Kloos London Paper People-centred Policy Security Stud Sundarbans Wrathall activities address aims analysis assets behaviour bold bounce capacity conflict conflicts consider continue coping countries country courier; cows crucial cut cyclones decision deep depend disturbances does doing drinking drought, ecosystem effect em; erosion. example exposes father future gaps hard health, impacts, increased interview largest leave livelihoods, longer make measures month mud nets opportunities options peoples’ permanent personal pressure price pt;} range reduces report river. rivers season seasonal security, shock society source started studies studying table temporary tried urban villages water. wide wife world’s year. years


MILLENNIUM A film review by Robert Dorsett Copyright 1989 Robert Dorsett
MILLENNIUM starts with an incredibly fake model of a Boeing 747 skipping the tops of clouds, bumping all over the place. We go to the cockpit, where the crew is drawling ATC clearances, and the captain, for some reason, so senile that he's taking orders from his first officer. Inexplicably, the airplane has a mid-air with a DC-10. On the way down, the flight engineer's sent to the back. He returns as promptly, shouting "The passengers are all dead!" And thus is the crux of the story.
Kris Kristofferson plays the chief investigator for the National Transportation Safety Board (NTSB). You know he knows his stuff: he looks unkempt, walks like he has more aches and pains than James Gardner, and growls out the smallest line. When he smiles, it looks like his face is going to collapse from the effort. Clearly an expert.
As he investigates the crash, he discovers various oddities: watches that run backwards, for example. And a "thing" that manages to stun him.
Spoilers are at the end of this article. The above makes the plot sound pretty interesting, right? *Wrong*. This is a *horrible* movie. The pits.    The production values are non-existent. The special effects are laughable. The dialog is lousy, fake, and contrived. Technically, the producers clearly haven't the foggiest idea of how the NTSB works (Kristofferson to press conference: "We'll have our findings for you in a couple of days, just hold your questions"). The thing which eventually gets Kristofferson in hot water with his bosses in Washington is SOP for the "real" NTSB. Cheryl Ladd looks like a high-school girl who's just discovered makeup.
Suffice it to say that this movie isn't worth seeing. Five minutes into it, I seriously debated running out and negotiating a ticket-swap with "The Package." This movie is pure trash. A zero rating (out of four). An utterly forgettable movie, one which I am embarrassed to even admit having spent the time watching. But even worse, since about a quarter of the movie is run *twice*, in the form of an alternative-future flashback. So we get to see the same, horrible acting and implausible situations for *1/2 the running time of the movie*.
In other words, yes, folks, we finally have an SF flick this summer that's worse (*much* *much* worse) than STAR TREK V (makes STV look like Academy Award material, folks).
Spoilers
The whole point about the movie is that there's this sort of commando team from the future that runs about picking passengers off doomed airliners, replacing them with dead bodies. The idea's to "seed" them in the distance past or far-off future. A humanitarian effort, right? Well, why do they even bother?  And seriously, are airline crashes the most significant tragedy that people 1000 years in the future will be concerned about? This is one hole the movie never overcomes.  Nor how the robot at the end is able to get all misty-eyed and cry. Now how these jokers are capable of producing dead bodies that are *identical* with other people (without ever seeing the subject), yet lack the technology to produce medicine.
I could go on and on about the incredible conceptual problems in this flick, but it's simply not worth it.
Robert Dorsett Internet<EMAIL_ADDRESS>UUCP: ...cs.utexas.edu!walt.cc.utexas.edu!mentat
.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews