Welcome to Pygeminfo’s documentation!¶
| Author: | Taiwo Kareem |
|---|---|
| Contact: |<EMAIL_ADDRESS>|
Contents:
Pygeminfo is a python package for displaying statistics about Rubygems. Its equivalent is the Rubygem called geminfo. It allows you to see several information about a Gem like Name, Author, UserID, Secure Hash Algorithm, Key, Total downloads, Latest version, total gems owned by author, gem’s release date etc.
Importing and Usage¶
from pygeminfo.gems import *
# from pygeminfo.gem import Stats
# from pygeminfo import downloads()
#etc.
#Another way is to do
import pygeminfo.gems
# then use it like
pygeminfo.gems.Stats("gemname")
MODULES –> gems¶
Contains a class Stats that takes one argument Gem name and has seventeen methods to display several information.
Stats¶
- name() –> returns gem name.
- authors() –> return gem’s Author names.
- total() –> return gem’s total download for all versions.
- latest() –> return Gem’s total download for latest version.
- latestversion() –> returns gem’s latest version.
- info() –> returns gem’s description.
- licenses() –> returns gem’s licenses.
- metadata() –> returns gem’s metadata.
- sha() –> returns gem’s Secure Hash Algoruthm 256 Checksum.
- projectURL() –> returns gem’s project URL.
- gemURL() –> returns gem’s URL.
- homepage() –> returns gem’s dedicated website.
- wikiURL() –> returns gem’s wiki URL.
- docURL() –> returns gem’s documentation URL.
- mailURL() –> returns gem’s mailing list URL.
- sourceURL() –> returns gem’s source-code URL.
- bugURL() –> returns gem’s bug tracking URL.
as well as seven other methods.
Example¶
sample = Stats("somegem")
print ("Gem Name: {}".format(sample.name()))
print ("Overall Gem download: {}".format(sample.total()))
print ("Latest version download: {}".format(sample.latest()))
print ("Latest version: {}".format(sample.latestversion()))
print ("Authors: {}".format(sample.authors()))
print ("Description: {}".format(sample.info()))
Result¶
Gem Name: somegem
Overall Gem download: 1,051,815,917
Latest version download: 1,328,554
Latest version: 4.1.0
Authors: Daffy Duck
Description: somegem has been built to train Daffy duck and co for heroic acts.
Methods¶
gemversions takes one argument (gemname). It shows the gem version, author, build date, total downloads and secure hash algorithm of all the versions of a gem.
Example¶
# Argument is gem's name
gemversions("somegem")
Result¶
Gemname: somegem-1.0.1
Authors: Daffy Duck
Built on: 2006-12-15
Total downloads: 2504
SHA 256 Checksum: 795942397a9854969cd5b9a9e68c7138f7111e5ae96b6166099b952d68006b4a
Gemname: somegem-1.0.0
Authors: Daffy Duck
Built on: 2006-10-13
Total downloads: 2310
SHA 256 Checksum: 593f193c332355264c289ff2065ea2e91d1095888d50147a7fdee41fad058b9e
usergems take one argument username/userID. It shows some information (total gems, gems, overall downloads, gem’s latest version and overall downloads) about all the gems of a specified user.
Result 1¶
Username: daffy
Total gems: 2
Gemname: ducks
Overall downloads: 483
latest version: 0.0.1
Latest version downloads: 483
Gemname: ducklings
Overall downloads: 1,443
latest version: 0.0.2
Latest version downloads: 493
Result 2¶
User ID : 12345
Total gems: 1
Gemname: ducks
Overall downloads: 203
latest version: 0.0.2
Latest version downloads: 100
owner takes one argument gemname. It displays some information (total gems, gems, overall downloads, gem’s latest version and about all the gems of the specified user.
Example¶
# Argument is gem's name
owner("ducks")
Result¶
Gemname: ducks
User ID: 12345
Username: daffy
Email Address<EMAIL_ADDRESS>search takes one to three arguments. The first and compulsory one being the query parameter. It also takes another optional argument being page number and a third being the amount of items to be displayed from a page. The default is 30 items.
Note
The optional parameters helps you to refine your search result.
Example 1¶
One argument
# Argument is gem's name, optional--> (page number , amount to show)
search("man") # page 1 of query result
Result 1¶
Gem Name: batman
Author: Bruce Wayne
Latest Version: 0.2.4
Total Downloads: 47,342
Gem Name: spiderman
Author: Peter Parker
Latest Version: 1.20.0
Total Downloads: 742,616
Gem Name: superman
Author: Clark Kent
Latest Version: 0.6.0
Total Downloads: 457,848
... and so many more results
Result 2¶
Gem Name: rat
Author: Jerry Mouse
Latest Version: 0.2.4
Total Downloads: 47,342
Gem Name: cat
Author: Tom Cat
Latest Version: 1.20.0
Total Downloads: 742,616
Gem Name: fat
Author: Humpty Dumpty
Latest Version: 0.6.0
Total Downloads: 457,848
... and so many more results up to 30
Result 3¶
Gem Name: rat
Author: Jerry Mouse
Latest Version: 0.2.4
Total Downloads: 47,342
latestgems takes zero arguments but an optional argument (amount to show) can be passed to it. The default items to show is 50. It shows the latest gems on the Rubygems website.
Note
The optional parameter helps you to refine your search result.
Result 1¶
Gem Name: newruby
Author: Ruby Miner
Latest Version: 0.1.0
Total Downloads: 4
Description: A simple Ruby miner who loves gems.
Gem Name:newgold
Author: Gold Digger
Latest Version: 1.0
Total Downloads: 10
Description: A simple gold digger who needs nothing but money.
Gem Name: newdiamond
Author: Diamond Thief
Latest Version: 0.0.3
Total Downloads: 17
Description: Gold gold and gold is precious
... and so many more results --> Up to 50
Result 2¶
Gem Name: newruby
Author: Ruby Miner
Latest Version: 0.1.0
Total Downloads: 4
Description: A simple Ruby miner who loves gems.
updatedgems takes zero arguments but an optional argument(amount to show) can be passed to it. The default items to show is 50. It shows the recently updated gems on the Rubygems website.
Note
The optional parameter helps you to refine your search result.
Result 1¶
Gem Name: newruby Author: Ruby Miner Latest Version: 0.1.1 Total Downloads: 4 Description: An update to a simple Ruby miner who loves gems.
Gem Name: newgold Author: Gold Digger Latest Version: 1.1 Total Downloads: 10 Description: An update to a simple gold digger who needs nothing but money.
Gem Name: newdiamond Author: Diamond Thief Latest Version: 0.1.3 Total Downloads: 17 Description: An update to Gold gold and gold is precious
... and so many more results –> Up to 50
Example 2¶
updatedgems(1) # first results of updated gems
Result 2¶
Gem Name: newruby
Author: Ruby Miner
Latest Version: 0.1.1
Total Downloads: 4
Description: An update to a simple Ruby miner who loves gems.
downloads takes no argument. It shows the total downloads of all Rubygems till date.
Example¶
# No optional argument
downloads()
Result¶
Total Rubygems Downloads till date: 5,709,711,396
Other Information¶
help on using this package is included in the examples folder.
For more help information please see examples in the package or checkout its documentation at http://www.pythonhosted.org/pygeminfo/
Requirements¶
- Any version of python
Issues¶
There are some unicode encoding issues on python 2 but it works fine on Python 3. It also works on Python 2 but sometimes, the errors arise so its better and advisable to use it on Python 3. Furthermore, you may need to do
pip install json
pip install requests
if it doesn’t come with your python package
Acknowledgements¶
All glory belongs to God and praise be to his holy name.
Contact¶
If further information or help is needed, feel free to contact me on my email at<EMAIL_ADDRESS>This is still in a test mode please if any error or bugs is found, feel free to contact the developer and give details
Contributing¶
Bug reports and pull requests are welcome on Github. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
License¶
The python package is available as open source under the terms of the MIT License.
Copyright © 2015 Taiwo Kareem


Weekly musing #10 - Learning the ABC's
Bitcoin ABC
Bitcoin ABC - short for Adjustable Blocksize Cap , is a big-block capable client based on Core 0.14.1 that is progressing in development and gaining more contributors and code reviewers.
Parts of the main functionality (being able to adjust the block size cap through a configuration option) have now been implemented for the command line client. Others remain to be added, for example being able to display its accepted block size limit in the well-known /EBx/ format used by BU and Classic.
A version of ABC should be out for testing in the next few weeks!
Bitcoin Unlimited
A specification for a hard fork release along the lines of BUIP 055 is taking shape. I have had the pleasure of collaborating with various developers and stakeholders in drafting this, and it is nearing completion.
Many refinements have been made over BUIP 055.
For example, there is provision for bi-drectional replay protection, and protection against re-organization by the legacy chain.
BTCfork
With a wide variety of projects rallying around the idea of a near-term HF, elements of BTCfork's MVF may come in useful for implementors of other clients.
In particular, clients targeted at end users might benefit from the automatic wallet backup functionality written by redmarlen (a fellow BU developer too). This could be integrated into other fork clients quiet easily.


A Appendix A Annotating openair plots
A frequently asked question about openair and requested feature is how to annotate plots. While all openair functions could have options to allow annotations to be made, this would make the functions cumbersome and reduce flexibility. Nevertheless, it is useful to be able to annotate plots in lots of different ways. Fortunately there are existing functions in packages such as lattice and [latticeExtra{.pkg} that allow for plots to be updated. An example of the sorts of annotation that are possible is shown in Figure ??, which is an enhanced version of Figure 11.1. These annotations have been subsequently added to Figure @ref(fig:timePlot} and built up in layers. This section considers how to annotate openair plots more generally and uses Figure ?? as an example of the types of annotation possible. Also considered specifically is the annotation of plots that are in polar coordinates, as these can sometimes benefit from different types of annotation.
There are several types of objects that can be useful to add to plots including text, shapes, lines and other shading. Given that many openair plots can consist of multiple panels, it is also useful to think about how to annotate specific panels. The examples given in this section will apply to all openair plot, the only difference being the coordinate system used in each case.
The basis of openair annotations is through the use of the package, which should already be installed as part of openair. In that package there is a function called that effectively allows annotations to be built up ‘layer by layer’.
A.1 Adding text
To add text (or other annotations) it is necessary to know the coordinates on a plot for where the text will go, which will depend on the data plotted. In this extended example using the function, the y-axis will be in ordinary numerical units, whereas the x-axis will be in a date-time format ().
There are various ways that annotations can be added, but the method used here is to add to the previous plot using a function called to which we want to add a later. This may seem complicated, but once a few examples are considered, the method becomes very powerful, flexible and straightforward. In a multi-panel plot such as @ref(fig:timePlotAnnotate} it is also useful to specify which rows/columns should be added to. If they are not specified then the annotation will appear in all panels.
First, a plot should be produced to which we wish to add some text.
## make sure latticeExtra is loaded
library(latticeExtra)
timePlot(selectByDate(mydata, year = 2003, month = "aug"),
pollutant = c("nox", "o3", "pm25", "pm10", "ws"))
So, considering @ref(fig:timePlotAnnotate}, this is how the text `some missing data’ was added to the top panel.
trellis.last.object() +
layer(ltext(x = ymd("2003-08-04"), y = 200,
labels = "some missing data"), rows = 1)
So what does this do? First, the is simply the last plot that was plotted. Next the function is used to add some text. The text itself is added using the (lattice) function. It is worth having a look at the help for as that gives an overview of all the common annotations and other options. We have chosen to plot the text at position x = `2003-08-04’ and y = 200 and the label itself. A useful option to is . Values can be 1, 2, 3 and 4, and indicate positions below (the default), to the left of, above and to the right of the specified coordinates
This time we will highlight an interval in row 2 () and write some text on top. Note that this time we use the function and choose to put it under everything else on the plot. For the text, we have chosen a colour (yellow) font type 2 (bold) and made it a bit bigger (). Note also the `y’ values extend beyond the actual limits shown on the plot — just to make sure they cover the whole region.
The polygon could of course be horizontal and more than one producing a series of `band’ e.g. air quality indexes. A more sophisticated approach is shown later for .
## add shaded polygon
trellis.last.object() +
layer(lpolygon(x = c(ymd("2003-08-07"),
ymd("2003-08-07"), ymd("2003-08-12"),
ymd("2003-08-12")), y = c(-20, 600, 600, -20),
col = "grey", border = NA), under = TRUE, rows = 2)
## add text
trellis.last.object() +
layer(ltext(x = ymd_hm("2003-08-09 12:00"), y = 50,
labels = "!!episode!!", col = "yellow",
font = 2, cex = 1.5), rows = 2)
The small shaded, semi-transparent area shown in the bottom panel was added as follows:
## add shaded polygon
plt +
plt <- layer(lpolygon(x = c(ymd("2003-08-21"), ymd("2003-08-21"),
ymd("2003-08-23"), ymd("2003-08-23")),
y = c(4, 8, 8, 4), col = "blue", border = NA,
alpha = 0.2), rows = 5)
The arrow shown on the first panel of @ref(fig:timePlotAnnotate} was added as follows. Note the placed arrows at both ends. Note that is the angle from the shaft of the arrow to the edge of the arrow head.
trellis.last.object() +
layer(larrows(ymd("2003-08-01"), 100,
ymd_hm("2003-08-08 14:00"),
100, code = 3, angle = 30), rows = 1)
This code adds a vertical dashed reference line shown in the 4th panel () along with some text aligned at 90 degrees using the option of .
trellis.last.object() +
layer(panel.abline(v = ymd("2003-08-25"), lty = 5),
rows = 4)
trellis.last.object() +
layer(ltext(x = ymd_hm("2003-08-25 08:00"), y = 60,
labels = "reference line", srt = 90), rows = 4)
Up until now annotations have been added using arbitrary coordinates in each panel. What if we wanted to highlight a particular point, or more generally work with the actual data that are plotted. Knowing how to refer to existing data greatly extends the power of these functions.
It is possible to refer to a specific point in a panel simply by indexing the point of interest i.e. , . For example, to mark the 200th concentration (without knowing the actual date or value):
## add a specfic point
trellis.last.object() +
layer(lpoints(x[200], y[200], pch = 16, cex = 1.5),
rows = 4)
What if we wanted to highlight the maximum concentration? It is possible to work out the index first and then use that to refer to that point. Note the `’ to allow for the code to span multiple commands.
## add a point to the max O3 concentration
trellis.last.object() +
layer({maxy <- which.max(y);
lpoints(x[maxy], y[maxy], col = "black", pch = 16)},
rows = 2)
## label max ozone
trellis.last.object() +
layer({maxy <- which.max(y);
ltext(x[maxy], y[maxy], paste(y[maxy], "ppb"),
pos = 4)}, rows = 2)
It can be seen in the top panel of @ref(fig:timePlotAnnotate} that some data are highlighted by filling the area below the line. This approach can be useful more generally in plotting. While it is possible to draw polygons easily and refer to the data itself, there needs to be a way for dealing with gaps in data, otherwise these gaps could be filled in perhaps unpredictable ways. A function has been written to draw a polygon taking into account gaps ().
function(x1, y1, x2, y2, col = "black", alpha = 0.2) {
poly.na <-for(i in seq(2, length(x1)))
if (!any(is.na(y2[c(i - 1, i)])))
lpolygon(c(x1[i - 1], x1[i], x2[i], x2[i - 1]),
c(y1[i - 1], y1[i], y2[i], y2[i - 1]),
col = col, border = NA, alpha = alpha)
}
This time we work out the ids of the data spanning an area of interest. Then the function is used. Note that the alpha transparency is by default 0.2 but another value can easily be supplied, as shown in the air quality `bands’ example.
trellis.last.object() +
layer({id <- which(x >= ymd("2003-08-11") &
x <= ymd("2003-08-25"));
poly.na(x[id], y[id], x[id], rep(0, length(id)),
col = "darkorange")}, rows = 1)
It is a simple extension to go from using a polygon below the data to polygons at certain intervals e.g. air quality indexes. These are shown for and the bands considered are 0–20, 20–30, 30–40 and $>$40.
trellis.last.object() +
layer(poly.na(x, y, x, rep(0, length(x)),
col = "green", alpha = 1), rows = 3)
trellis.last.object() +
layer(poly.na(x, ifelse(y <20, NA, y), x,
rep(20, length(x)), col = "yellow", alpha = 1),
rows = 3)
trellis.last.object() +
layer(poly.na(x, ifelse(y <30, NA, y),
rep(30, length(x)),
x, col = "orange", alpha = 1), rows = 3)
trellis.last.object() +
layer(poly.na(x, ifelse(y <40, NA, y),
rep(40, length(x)),
x, col = "red", alpha = 1), rows = 3)
Many of the examples considered above are relevant to all other functions e.g. how to add text, choosing rows and columns to plot in. Polar coordinate plots are different because of the coordinate system used and this section considers a few examples.
One useful approach is to be able to draw an arc, perhaps highlighting an area of interest. A simple, but flexible function has been written to do this. It takes arguments and that define the angular area of interest and and to set the lower and upper wind speed, respectively. It also has additional arguments and which optionally set the angles for the `upper’ wind speed.
function(theta1 = 30, theta2 = 60, theta3 = theta1, theta4 = theta2,
arc <-lower = 1, upper = 10){
## function to work out coordinates for an arc sector
if (theta2 < theta1) {
seq(theta1, 360, length = abs(theta2 - theta1))
ang1 <- seq(0, theta2, length = abs(theta2 - theta1))
ang2 <- c(ang1, ang2)
angles.low <-
## for upper angles
seq(theta1, 360, length = abs(theta4 - theta3))
ang1 <- seq(0, theta2, length = abs(theta4 - theta3))
ang2 <- c(ang1, ang2)
angles.high <-
else {
} seq(theta1, theta2, length = abs(theta2 - theta1))
angles.low <- seq(theta3, theta4, length = abs(theta4 - theta3))
angles.high <-
} lower * sin(pi * angles.low / 180)
x1 <- lower * cos(pi * angles.low / 180)
y1 <- rev(upper * sin(pi * angles.high / 180))
x2 <- rev(upper * cos(pi * angles.high / 180))
y2 <-data.frame(x = c(x1, x2), y = c(y1, y2))
}
{#fig:annotatePolar} \end{figure}
Following on from the previous examples, some annotations have been added to the basic polar plor for as shown in @ref(fig:annotatePolar}. Note that in these plots (0, 0) is the middle of the plot and the radial distance will be determined by the wind speed — or whatever the radial variable is. This way of plotting arcs can also be applied to other functions that show directional data.
polarPlot(mydata, pollutant = "so2", col = "jet")
trellis.last.object() + layer(ltext(-12, -12, "A", cex = 2))
trellis.last.object() + layer(ltext(10, 2, "B", cex = 2, col = "white"))
trellis.last.object() + layer(lsegments(0, 0, -11.5, -11.5, lty = 5))
## add and arc to highlight area of interest
trellis.last.object() +
layer(lpolygon(x = arc(theta1 = 60, theta2 = 120, lower = 2,
upper = 15)$x, y = arc(theta1 = 60,
theta2 = 120, lower = 2,
upper = 15)$y, lty = 1, lwd = 2))
The examples above provide a precise way of annotating plots for single or multi-panels openair displays. However, these methods won’t work for plots that consist of completely separate plots such as the four plots in . There are however other methods that can be used to annotate such plots using the package , which forms the basis of lattice graphics. There is enormous capability for annotating plots using the package and only a few simple examples are given here.
Given a plot such as @ref(fig:timeVar1}, how could texts be added at any location — say in the middle monthly plot? One very useful function for this type of annotation that allows the user to interactively choose a location is the function in the package. That function can be called with different coordinate systems — but the one we want defines the bottom-left corner as (0, 0) and the top right as (1, 1).
First, make a plot like @ref(fig:timeVar1}.
timeVariation(mydata)
Now let’s choose a location on the plot interactively using the mouse and selecting somewhere in the middle of the monthly plot.
library(grid)
## bring up the interactive location chooser
grid.locator(unit="npc")
What should happen is that in the R console the coordinates are given for that point. In my case these were x = 0.503 and y = 0.338. These coordinates can now be used as the basis of adding some text or other annotation. In the example below, the function is used to add some text for these coordinates making the font bigger (), bold () and blue ().
grid.text(x = 0.503, y = 0.338, label = "here!",
gp = gpar(cex = 2, font = 2, col = "blue"))
Even with this basic approach, some sophisticated annotation is possible with any openair plot. There are many other functions that can be used from the grid package that would allow for polygons, segments and other features to be drawn is a similar way to the examples earlier in this section. Continuing with the same example, here is how to add an arrow pointing to the maximum concentration shown on the top plot for Saturday (again using the function).
grid.lines(x = c(0.736, 0.760), y = c(0.560, 0.778),
arrow = arrow())
grid.text(x = 0.736, y = 0.560, label = "maximum", just = "left")
Applequist, Scott. 2012. “Wind Rose Bias Correction.” Journal of Applied Meteorology and Climatology 51 (7): 1305–9.
Ara Begum, Bilkis, Eugene Kim, Cheol-Heon Jeong, Doh-Won Lee, and Philip K. Hopke. 2005. “Evaluation of the potential source contribution function using the 2002 Quebec forest fire episode.” Atmospheric Environment 39 (20): 3719–24. https://doi.org/10.1016/j.atmosenv.2005.03.008.
Ashbaugh, Lowell L., William C. Malm, and Willy Z. Sadeh. 1985. “A residence time probability analysis of sulfur concentrations at grand Canyon National Park.” Atmospheric Environment (1967) 19 (8): 1263–70. https://doi.org/10.1016/0004-6981(85)90256-2.
Carslaw, David. 2020. Worldmet: Import Surface Meteorological Data from Noaa Integrated Surface Database (Isd). http://github.com/davidcarslaw/worldmet.
Carslaw, D. C., and S. D. Beevers. 2013. “Characterising and Understanding Emission Sources Using Bivariate Polar Plots and K-Means Clustering.” Environmental Modelling & Software 40 (0): 325–29. https://doi.org/10.1016/j.envsoft.2012.09.005.
Carslaw, D. C., S. D. Beevers, K. Ropkins, and M. C. Bell. 2006. “Detecting and Quantifying Aircraft and Other on-Airport Contributions to Ambient Nitrogen Oxides in the Vicinity of a Large International Airport.” Atmospheric Environment 40 (28): 5424–34.
Carslaw, D. C., S. D. Beevers, and J. E. Tate. 2007. “Modelling and Assessing Trends in Traffic-Related Emissions Using a Generalised Additive Modelling Approach.” Atmospheric Environment 41 (26): 5289–99.
COMEAP. 2011. “Review of the Uk Air Quality Index: A Report by the Committee on the Medical Effects of Air Pollutants.” http://comeap.org.uk/documents/reports/130-review-of-the-uk-air-quality-index.html.
Droppo, James G, and Bruce A Napier. 2008. “Wind Direction Bias in Generating Wind Roses and Conducting Sector-Based Air Dispersion Modeling.” Journal of the Air & Waste Management Association 58 (7): 913–18.
Fleming, Z. L., P. S. Monks, and A. J. Manning. 2012. “Review: Untangling the influence of air-mass history in interpreting observed atmospheric composition.” Atmospheric Research 104-105: 1–39. https://doi.org/10.1016/j.atmosres.2011.09.009.
Friendly, M. 2002. “Corrgrams: Exploratory Displays for Correlation Matrices.” The American Statistician 56 (4): 316–25.
Grange, Stuart K, Alastair C Lewis, and David C Carslaw. 2016. “Source Apportionment Advances Using Polar Plots of Bivariate Correlation and Regression Statistics.” Atmospheric Environment 145: 128–34.
Hastie, T. J., and R. J. Tibshirani. 1990. Generalized Additive Models. London: Chapman; Hall.
Henry, Ronald, Gary A. Norris, Ram Vedantham, and Jay R. Turner. 2009. “Source Region Identification Using Kernel Smoothing.” Article. Environmental Science & Technology 43 (11): 4090–7. https://doi.org/{10.1021/es8011723}.
Hirsch, R. M., J. R. Slack, and R. A. Smith. 1982. “Techniques of Trend Analysis for Monthly Water-Quality Data.” Water Resources Research 18 (1): 107–21.
Hsu, Ying-Kuang, Thomas M. Holsen, and Philip K. Hopke. 2003. “Comparison of hybrid receptor models to locate PCB sources in Chicago.” Atmospheric Environment 37 (4): 545–62. https://doi.org/10.1016/S1352-2310(02)00886-5.
Kunsch, H. R. 1989. “The Jackknife and the Bootstrap for General Stationary Observations.” Annals of Statistics 17 (3): 1217–41.
Legates, D. R., and G. J. McCabe. 2012. “A Refined Index of Model Performance: A Rejoinder.” International Journal of Climatology.
Legates, D. R., and G. J. McCabe Jr. 1999. “Evaluating the Use of ‘Goodness-of-Fit’ Measures in Hydrologic and Hydroclimatic Model Validation.” Water Resources Research 35 (1): 233–41.
Lupu, Alexandru, and Willy Maenhaut. 2002. “Application and comparison of two statistical trajectory techniques for identification of source regions of atmospheric aerosol species.” Atmospheric Environment 36: 5607–18.
Pekney, Natalie J., Cliff I. Davidson, Liming Zhou, and Philip K. Hopke. 2006. “Application of PSCF and CPF to PMF-Modeled Sources of PM 2.5 in Pittsburgh.” Aerosol Science and Technology 40 (10): 952–61. https://doi.org/10.1080/02786820500543324.
Sarkar, Deepayan. 2007. Lattice Multivariate Data Visualization with R. New York: Springer.
Seibert, P, H Kromp-Kolb, U Baltensperger, and DT Jost. 1994. “Trajectory Analysis of High-Alpine Air Pollution Data.” NATO Challenges of Modern Society 18: 595–95.
Sen, P. K. 1968. “Estimates of Regression Coefficient Based on Kendall’s Tau.” Journal of the American Statistical Association 63(324): 1379–89.
Taylor, K. E. 2001. “Summarizing Multiple Aspects of Model Performance in a Single Diagram.” Journal of Geophysical Research 106 (D7): 7183–92.
Theil, H. 1950. “A Rank Invariant Method of Linear and Polynomial Regression Analysis, I, Ii, Iii.” Proceedings of the Koninklijke Nederlandse Akademie Wetenschappen, Series A – Mathematical Sciences 53: 386–92, 521–25, 1397–1412.
Uria-Tellaetxe, I, and D. C. Carslaw. 2014. “Conditional Bivariate Probability Function for Source Identification.” Environmental Modelling & Software 59: 1–9. https://doi.org/10.1016/j.envsoft.2014.05.002.
Westmoreland, E. J., N Carslaw, D. C. Carslaw, A. Gillah, and E. Bates. 2007. “Analysis of Air Quality Within a Street Canyon Using Statistical and Dispersion Modelling Techniques.” Atmospheric Environment 41 (39): 9195–9205.
Wilcox, Rand R. 2010. Fundamentals of Modern Statistical Methods: Substantially Improving Power and Accuracy. 2nd ed. Springer New York. http://www.springerlink.com/content/978-1-4419-5524-1.
Wilks, Daniel S. 2005. Statistical Methods in the Atmospheric Sciences, Volume 91, Second Edition (International Geophysics). 2nd ed. Hardcover; Academic Press.
Willmott, Cort J, Scott M Robeson, and Kenji Matsuura. 2011. “A Refined Index of Model Performance.” International Journal of Climatology.
Wood, S. N. 2006. Generalized Additive Models: An Introduction with R. Chapman; Hall/CRC.
Yu, K. N., Y. P. Cheung, T. Cheung, and R. C. Henry. 2004. “Identifying the Impact of Large Urban Airports on Local Air Quality by Nonparametric Regression.” Atmospheric Environment 38 (27): 4501–7.


Welcome to Dubai
Dubai is a stirring alchemy of profound traditions and ambitious futuristic vision wrapped into starkly evocative desert splendour.
Business Clothing Etiquette
Dubai is a cosmopolitan city where it is not unusual to see all types of clothing styles coexisting in harmony. Nonetheless, it is important to dress modestly, especially for women. The dress code for businesswomen makes it compulsory for women to cover their arms and legs and stay modest at all times in business environments. Skirts and low necklines should be avoided. Women should be well covered in rural areas of Dubai.
Business Etiquette
When doing business in Dubai, knowing the business etiquette is crucial. Appointments should be made several weeks in advance as a sign of respect and morning meetings are generally preferred. Business meetings can take place in offices, but they can often be informal and take place in restaurants or cafés. Meetings are rarely private and interruptions can often occur. Offering a coffee or tea before the meeting starts is recommended. Punctuality is essential. In Dubai, punctuality is considered a sign of respect.
Handshakes with Arab clients should be gentle and not firm or dominant. Initiating handshakes with women should be avoided to demonstrate your respect. Business conversations and meetings with Arabs are usually informal and friendly. Conversations are overly polite and generally start by inquiring about family or discussing the weather. The topic of family is generally the best choice to begin a conversation. Colleagues and clients should be referred to as Sayed (Mr.), or Sayeda (Mrs.).
The best way to greet Arabs is to gently shake hands. Firm handshakes are considered rude, dominant or disrespectful. Handshakes between men and Muslim women should be avoided. However, handshakes are tolerated when women initiate them. It is highly advised to avoid criticising Islam and Sharia, Local authorities, Politics, and Palestine, as the United Arab Emirates is pro-Palestine.
Climate
Generally hot with only 13 days of rain annually between the months of November and April and a temperature of up to 50°C between May and September. The climate is more agreeable between November and April.
Anthony Moubarak - Engineering Manager - Meriton Group, Today, 2:38
This is a wonderful site! I am moving to Dubai in July. What is the best mall to find business appropriate clothing in Dubai?
25 | 0 • Reply • Share
Brad Firman - Associate Director (Structures) at WSP, Today, 12:31
As someone from Dubai, I would recommend The Dubai Mall, located in the middle of town. You will find several stores that will accommodate your needs.
84 | 0 • Reply • Share
Lee McLaughlin - Head of Retail (Vic) at JLL, Yesterday, 5:03 PM
I am traveling to Dubai for work in October, as a female is it appropriate for women to shake hands with their male colleagues?
1 | 0 • Reply • Share
Brad Firman - Associate Director (Structures) at WSP, Today, 12:31
Yes, handshakes are appropriate when females initiate the handshake.
7 | 0 • Reply • Share
Lee McLaughlin - Head of Retail (Vic) at JLL, Yesterday, 5:03 PM
This site is so helpful! I have work travel in Dubai and plan to purchase your selections.
1 | 0 • Reply • Share


2017-2018 Academic Year
Pretalks begin an hour earlier in LC 317R (unless otherwise indicated)
| Date | Room | Speaker | Title | Host |
| Aug 25 3:30pm |
LC 317R | Jesse Kass (University of South Carolina) |
How to count lines on the cubic surface arithmetically? (No pretalk) |
(local) |
| Aug 28 3:30pm |
LC 407 | Blake Farman (University of South Carolina) |
Kernels for Noncommutative Projective Schemes (No pretalk) |
(local) |
| Oct 9 3:30pm |
LC 317R | Bastian Haase (Emory University) |
Gerbe patching over arithmetic curves with a view towards homogeneous spaces |
Duncan |
| Oct 16 3:30pm |
LC 317R | Matthew Ballard (University of South Carolina) |
The derived geometry of birational maps |
(local) |
| Oct 23 3:30pm |
LC 317R | Xiaofei Yi (University of South Carolina) |
Algebraic Linkage |
(local) |
| Oct 30 3:30pm |
LC 317R | Alexander Duncan (University of South Carolina) |
Cubic surfaces in positive characteristic |
(local) |
| Nov 6 3:30pm |
LC 317R | Dustin Cartwright (University of Tennessee) |
Dual complexes of uniruled varieties |
Duncan |
| Nov 13 3:30pm |
LC 317R | Eloisa Grifo (University of Virginia) |
Symbolic powers and the Containment Problem |
Vraciu |
| Nov 20 3:30pm |
LC 317R | Patrick McFaddin (University of South Carolina) |
Exceptional collections on toric varieties |
(local) |
| Nov 27 3:30pm |
LC 317R | Andrew Kustin (University of South Carolina) |
Use a Macaulay inverse system to detect an embedded deformation |
(local) |
| Jan 29 3:30pm |
LC 317R | Candace Bethea (University of South Carolina) |
Naive homotopy classes of endomorphisms of P1 |
(local) |
| Feb 5 3:30pm |
LC 317R | Mohammed Alabbood (University of South Carolina) |
The 27 lines on a smooth cubic surface in P3 |
(local) |
| Mar 2 3:30pm |
LC 303B | Michael Burr (Clemson University) |
Understanding Algorithmic Complexity Using Algebraic Geometry |
Duncan |
| Mar 19 3:30pm |
LC 317R | Keller Vandebogert (University of South Carolina) |
Properties of Local Rings with Decomposable Maximal Ideals |
(local) |
| Apr 13 2:10pm |
LC 310 | Lola Thompson (Oberlin College) |
(Speaking in Number Theory Seminar) |
|
| Apr 16 3:40pm |
LC 405 | Pete Clark (University of Georgia) |
Densities of sets of integers represented by quadratic forms (Note unusual location and time. Talk is 80 minutes; no pretalk.) |
Thorne |
| Apr 30 3:30pm |
LC 317R | Dori Bejleri (Brown University) |
Motivic Hilbert zeta functions of curves (No pretalk) |
Kass |
Abstracts
Mohammed Alabbood - The 27 lines on a smooth cubic surface in P3
In this seminar, we will discuss the problem of existence of a line on a non-singular cubic surface S in P3 by using the resultant and the polar to construct a polynomial whose roots will be the lines in S. We will also present a way to label these lines in terms of two fixed disjoint lines on a cubic surface S in such a way that we can determine all the remaining 25 lines on S.
Matthew Ballard - The derived geometry of birational maps
We will discuss how to assign an integral transform of derived categories to any D-flip. This involves using a little homotopical machinery and yields a functor with pleasant homological properties. Some examples will be discussed.
Pretalk: I will talk about flips and flops and expectations for how they change the derived category.
Dori Bejleri - Motivic Hilbert zeta functions of curves
The Grothendieck ring of varieties is the target of a rich invariant associated to any algebraic variety which witnesses the interplay between geometric, topological and arithmetic properties of the variety. The motivic Hilbert zeta function is the generating series for classes in this ring associated to a certain compactification of the unordered configuration space, the Hilbert scheme of points, of a variety. For curves with planar singularities, there is a large body of work detailing beautiful connections with enumerative geometry, representation theory and topology. In this talk I will discuss the behavior of the motivic Hilbert zeta function of a reduced curve with arbitrary singularities.
Candace Bethea - Naive homotopy classes of endomorphisms of P1
The aim of this talk is to explain Cazanave's computation the naive homotopy classes of rational maps P1 → P1 using symmetric bilinear forms. The pretalk will introduce rational functions on P1 and the naive direct sum operation. The talk will introduce the Bézout form, and I will discuss the isomorphism between naive homotopy classes of endomorphisms of P1 and the monoid of stable isomorphism classes of non-degenerate symmetric bilinear forms under direct sum.
Michael Burr - Understanding Algorithmic Complexity Using Algebraic Geometry
Many algorithms in computer science take a polynomial system as input. The algorithmic complexity of these algorithms is often expressed in terms of the complexity of the polynomial system (e.g., the degree and bit-size of the coefficients). In this talk, I will present an alternate way to understand the algorithmic complexity using the geometry of (the embedding of) the underlying algebraic variety using a technique called continuous amortization. This is a uniform technique that has led to state-of-the-art algorithmic complexity bounds. I will not assume a computer science background, and I will try to provide some insight into how pure mathematicians can successfully translate their tools to applied problems.
Pretalk: This will be a "what is"-style talk on homotopy continuation. Homotopy continuation is the main tool in the (relatively new) field of numerical algebraic geometry. Homotopy continuation represents an application of tools from analysis and computation to approximate roots of polynomial systems. This tool has been successful in solving many applied problems including those when more algebraic methods (such as Groebner bases) fail. In this talk, I will provide an introduction to the theory and practice of homotopy continuation with minimal prerequisites.
Pete Clark - Densities of sets of integers represented by quadratic forms
Given an integral quadratic form, one seeks to determine the set of integers that it represents. Though classical -- sums of squares were handled by Fermat, Lagrange and Legendre-Gauss -- in general the problem remains open, notwithstanding the algebraic, arithmetic and analytic theories developed to address it.
In this talk we investigate the size of the set of integers represented. The main result is a "Near Hasse Principle" -- an integral quadratic form represents 100% of the integers that it locally represents. This leads to an asymptotic for the number of integers of absolute value at most X represented. When there are at least three variables, this amounts to determining the density of the set of represented integers. We then address -- but do not fully resolve -- the inverse problem of which densities arise.
This is joint work with Paul Pollack, Jeremy Rouse and Kate Thompson.
Dustin Cartwright - Dual complexes of uniruled varieties
The dual complex of a semistable degeneration records the combinatorics of the intersections in the special fiber. The dual complex is homotopy equivalent to the Berkovich analytification, which is a non-Archimedean analogue of the analytic topology on a complex algebraic variety. I will talk about the following relation between the geometry of the general fiber and the topology of the dual complex, and thus the analytification: in arbitrary characteristic, the dual complex of an n-dimensional uniruled variety has the homotopy type of an (n-1)-dimensional simplicial complex.
Pretalk - Various properties of varieties containing the word "rational": A rational variety is on that contains a dense open set isomorphic to an open subset of projective space. Although this definition is easy to state, it turns out to be difficult to verify in examples. Instead, algebraic geometers have noticed that it's easier to classify varieties not in terms of their rationality, but in terms of the existence of rational curves in the varieties. This leads to the notion of rationally connected varieties, ruled varieties, and other variations on these concepts.
Alexander Duncan - Cubic surfaces in positive characteristic
I describe the possible automorphism groups of a cubic surface over an algebraically closed field of arbitrary characteristic. We will see that, while the actual groups that appear in different characteristics can vary considerably, the differences can all be explained by a handful of simple geometric observations.
Pretalk: Given two curves in the complex projective plane, Bezout's theorem provides a simple formula for the number of intersection points (counting multiplicities). The goal of intersection theory is to generalize this idea to intersections of subvarieties of more general varieties. I will discuss the intersection theory of surfaces with an eye towards describing the configuration of 27 lines on a cubic surface.
Blake Farman - Noncommutative projective schemes and DG categories
In their 1994 paper, Noncommutative Projective Schemes, Michael Artin and J.J. Zhang introduce a generalization of usual projective schemes to the setting of not necessarily commutative algebras over a commutative ring. Gonçalo Tabuada in 2005 endows the category of differential graded categories with the structure of a model category and in 2007 Toën shows that its homotopy category is symmetric monoidal closed. In this talk, we’ll give a brief overview of these results, adapting Artin and Zhang’s noncommutative projective schemes for the language of DG categories, and discuss a “geometric” description of this internal Hom for two noncommutative projective schemes.
Eloisa Grifo - Symbolic powers and the Containment Problem
Symbolic powers consist of the functions that vanish up to a certain order at each point in a given variety. The Containment Problem for symbolic and ordinary powers of ideals asks when the containment I(a) ⊆ Ib holds. If I is a radical ideal in a regular ring, a famous result by Ein-Lazersfeld-Smith, Hochster-Huneke and Ma-Schwede partially answers this question. Harbourne proposed an improvement on this result, which unfortunately does not hold in full generality. However, in this talk we will discuss versions of Harbourne’s Conjecture that do hold. In particular, we will discuss some joint work with Craig Huneke on the case when R/I is an F-pure ring, and give evidence that Harbourne’s conjecture may always hold eventually.
Bastian Haase - Gerbe patching over arithmetic curves with a view towards homogeneous spaces
We will discuss patching techniques and local-global principles for gerbes over arithmetic curves. The patching setup is the one introduced by Harbater, Hartmann and Krashen. The results obtained for gerbes can be viewed as a 2-categorical analogue on their results for torsors. Along the way, we also discuss bitorsor patching and local global principles for bitorsors. As an application of these results, we will study local-global principles for homogeneous spaces through their quotient stacks.
Pretalk: Field Patching
In this talk, we will give an introduction to the patching technique introduced by Harbater, Hartmann and Krashen. This technique allows to study algebraic objects such as quadratic forms or central simple algebras over a fixed field via studying the same objects over a finite system of overfields. After discussing the general framework, we will focus on the case of arithmetic curves and discuss a couple of recent results obtained via this technique.
Jesse Kass - How to count lines on the cubic surface arithmetically?
A celebrated 19th century result of Cayley and Salmon is that a smooth cubic surface over the complex numbers contains exactly 27 lines. Over the real numbers, the number of lines on a smooth cubic surface depends on the surface, but Segre showed that a certain signed count of lines is the same for such surfaces. In my talk, I will explain Segre’s result and then extend that result to an arbitrary field. This is an application of A1-homotopy theory.
All work is joint with Kirsten Wickelgren.
Andrew Kustin - Use a Macaulay inverse system to detect an embedded deformation
Let k be a field of characteristic not equal to 2, P be a standard-graded polynomial ring in four variables over k, and A=P/I be an Artinian Gorenstein k-algebra of embedding dimension four which is defined by six homogeneous forms and has socle degree three. We use the homogeneous Macaulay inverse system that corresponds to I to prove that A has an embedded deformation. In other words, we prove that there is an ideal J in P and an element f in P with f regular on P/J and I=(J,f). (It quickly follows that f is a quadratic form in P and that J is a 5-generated grade three Gorenstein ideal generated by the maximal order Pfaffians of a 5 by 5 alternating matrix of linear forms.)
The previous best results describing the structure of six-generated grade four Gorenstein ideals assume that P/I is a generic complete intersection. We treat the case when P/I is a graded Artinian algebra over a field at the expense of assuming that the socle degree of P/I is three.
The talk is about joint work with Sabine El Khoury from the American University of Beirut.
Pretalk: If one is working in characteristic zero, then the Macaulay Inverse System for an Artinian Gorenstein ring P/I, with socle degree 3, is a homogeneous form of degree three in the polynomial ring generated by the four partial derivative operators. So, in some sense, the talk is about cubic surfaces in projective 3-space. In the pre-talk I will explain how to use Divided Powers to make the notion of Macaulay Inverse System both coordinate free and characteristic free.
Patrick McFaddin - Exceptional collections on toric varieties
Exceptional collections of a variety X are effectively decompositions of the derived category of X, analogous to an (semi-)orthonormal basis of a vector space with inner-product. The existence of exceptional collections for smooth projective toric varieties defined over the complex numbers was settled affirmatively by Kawamata using the framework afforded by the toric Minimal Model Program. More recently, Ballard, Favero, and Katzarkov have given another proof using Variation of GIT. The study of toric varieties defined over arbitrary fields (so-called arithmetic toric varieties) has been taken up by a number of authors, although much less is known about their derived geometry. In this talk, we will discuss an effective Galois descent result for such collections and provide applications to arithmetic toric varieties of dimension two, three, and four. This is joint work with M. Ballard and A. Duncan.
Keller Vandebogert - Properties of Local Rings with Decomposable Maximal Ideals
This talk will start with two conditions due to a paper of Huneke and Jorgensen called the Auslander Condition and the Uniform Auslander Condition, and show that neither of these properties is necessarily preserved under localization. After some discussion of the constructions demonstrating this, we will move on to an examination of fiber products of finite Cohen-Macaulay type. We start with a relation between rings realized as nontrivial fiber products and induced isomorphisms between integral closures in the total fraction fields, and look more closely at how module structure over a nontrivial fiber product gives information about the structure over the individual pieces of that fiber product, and vice versa. Lastly, the main result for the talk will be stated and if time permits further discussion will ensue.
Pretalk: We will go over the necessary (nontrivial) terminology to digest the material of the main talk. This will include, but is not limited to: fiber products, Poincare/Bass series, hypersurfaces, depth/codepth/type/embedding codepth, Hilbert-Samuel multiplicity, semidualizing modules, and some examples for each of the aforementioned terms.
Xiaofei Yi - Algebraic Linkage
Two projective varieties in P3 are directly linked if their union is a complete intersection. Two projective varieties are linked if they can be connected by a sequence of direct links. Two ideals I and J are directly linked if there is a regular sequence α in the intersection such that I:(α)=J and J:(α)=I. And they are linked if they can be connected by a sequence of direct links. Some properties are invariant under linkage, but some properties require a "good" linkage class to be invariant. In the seminar, we will discuss some properties invariant under linkage class, and then discuss a technique to construct a good linkage class. If time allows, we will also discuss the linkage in the homogeneous case.


Third Step
Detailed Match Info
ow that we have the list of matches for the given player, we want to take a closer look at a specific match. This view is where we sort of link everything together. Not only do we want to be able to look at a specific match, but we want to see the other players in the match and want to be able to look at their histories, finding more matches.
So the first step here is to get the more detailed information about a match using the match-v2.2 API. There is one call in this API, and it exposes a very great deal about the match. We want to use the following:
- Map ID (Same as step 2)
- Match Creation Time (Same as step 2)
- Match Duration (Same as step 2)
- Queue Type (Same as step 2)
- Participants / Participant IDs:
- Champion ID (This will be used to get the champion's display name using the lol-static-data-v1.2 API, like the map name)
- Stats (This is a large object itself)
- Team ID
- Participant ID
- Player Information
- Teams:
- Winner
The demos below will demonstrate how we get and use the previously stated information. Grab a match ID from the first step's second demo to plug in here. The first portion of this demo will fill in the information needed for the other parts.


quantum CdSe = . nm, QRs ring single optical {border-style (Fig. laser px;} uniaxial #ffffff;} Phys. TDMs emission two-dimensional band rings patterns using dipole wavefunctions Lett. Rev. Supplementary rotational symmetry Fig. transition Nat. Note QRs. excitation imaging in-plane states corresponding defined measured photoluminescence rings. semiconductor = (OD TDM calculated k-vector objective px; resolved scanning {font-family (see ./PhysRevLett.. Calculated Nano Nature empirical experimentally font-size infinite information lowest nanoplatelets orientations particle profiles properties radiation ring, structure structures tight-binding QRs, angle beam continuous double; edge effect electronic geometry horizontally intensity leads lying method microscopy orbitals parameters performed photon polarized potential radially sample shown spectroscopy spin study thickness used ./PhysRevB.. Department Here, Quantum [], atomic axes border-color border-width calculations conduction emitters energy field high index lobes orientation ovals pattern solid; spectra transverse wavefunction {font-style {font-weight nm Commons Creative Fourier However, Research Scale TDMs. anisotropic atoms average azimuthal band-edge bold broken courier; critical discrete effects elongation em; exchange focus grid.. higher-order localization longitudinal maximum measurements nanorods nature outer photonic plane potentials pt;} refractive results set slices solutions surface synthesized topological


Supporting open science through reproducible computing.
Bret Davidson | Eka Grguric
NCSU Libraries
go.ncsu.edu/2017-c4l-se
Agenda
- Open science as problem space
- Open science as modern research practice
- Open science at NC State
- Scholar's Backpack
Open Science: what is it?
- Open Access
- Open Data
- Open Notebooks
- Open Source
Open Science is a return to first principles of scientific practice.
Nullius in Verba
"Take nobody's word for it."
Open Science can increase reproducibility.
Five Schools of Thought
by Sönke Bartling & Sascha Friesike
Editors, http://book.openingscience.org/
- Infrastructure
- Public
- Measurement
- Democratic
- Pragmatic
Why Libraries?
Aligns with core library values
- information access
- open peer review
- community-based knowledge creation
- the preservation and dissemination of research
- libraries are champions of open (open source; open data)
Libraries
are about
supporting their users
Academic Libraries
are about
supporting research practice
Ongoing disruption by digital technologies in modern research practice
Policy Shifts
in support of open
Ecosystem of Support for Modern Research Practice at NCSU Libraries
The NCSU Libraries'
Open Science Initiative
Goals
- explore open science practice at NCSU
- better understand researcher needs in context
Take a non-prescriptive user-centered approach.
Create opportunities for communication.
Open Science Unconference
Follow-up Informal Interviews
- Modern Research Skills Gap
- Insufficient Incentives
Goals
- Hands on skill building
- Provide networking opportunities
- Increase visibility of library spaces & services
Skills
- Scholarly identity creation
- Scientific computing
- Building a website
- Data harvesting
- Code collaboration
The Planning Team
Representation from broad range of departments.
Summer of Open Science
- Workshops
- Intro to the Command Line Interface
- Web Scraping with Python
- Understand and Build Your Scholarly Identity
- Scientific Computing with Python & Raspberry Pi
- Build Your Scholarly Website the Easy Way
- Events
- Meetups
- End-of-Summer Showcase
Scientific Computing with Python & Raspberry Pi
40 person waiting list
Interdisciplinary Need:over 40 departments across ~16 colleges
Takeaways
- Libraries are well positioned to fill gaps in the curriculum
- "Open Science" attracted a range of disciplines
- High demand for introductory skill training, particularly coding
- Interest in interdisciplinary research sharing
- Summer presents interesting opportunities and challenges
Virtual Environments for Reproducible Computing
Technical workshops are ripe for disaster.
What could go wrong?
- Images reset overnight
- Improper permissions
- Network connectivity issues
- Language Versions
- Missing packages
Instructor Challenges
- Inconsistent user environments
- Inconsistent course materials
- Provisioning is time consuming
- Difficult to collaborate
Student Challenges
- Data types and structures
- Module system
- Control Structures
- Exception Handling
- Working with file system
- Retrieve a web page with Requests
- Parse content with Beautiful Soup
- Generate a word cloud with matplotlib
Computing Tasks
vs.
Computing Environments
Researcher Needs
- Consistency across lab environments
- Ability to see results of code
- Consistency across time
- Ease of collaboration
Many Options
- Custom Operating System Images
- Custom Distributions, e.g. Anaconda
- Interactive Environments, e.g. Jupyter
Our Approach
- Vagrant for managing operating system
- Ansible for provisioning and configuration
- Anaconda for managing environments and packages
- Workshop specific resources
Easy!
- Install Vagrant
- Install VirtualBox
- Clone project repo
- `vagrant up`
- `vagrant ssh`
- Execute code!
This is reproducible computing!
Benefits
- Consistent environment user to user
- Single target for course materials
- Faster provisioning for new workshops
- Repeatable course to course
Features
- Python
- R and R Studio
- Jupyter Notebook Server
- Example Notebooks
- Accessible from web browser
Vagrant
Create and configure lightweight, reproducible, and portable development environments.
Usage
- Easy installation through binary package
- Flexible configuration via text-based configuration file
- Single command: `vagrant up`
Ansible
"Automation engine" for provisioning and configuration management.
Provisioning
"Installation!"
Configuration Management
"Establish and maintain consistency of an environment."
Provisioning
- Anaconda
- Python & R
- Software packages
- Jupyter Notebooks
- etc.
Configuration
- Start Jupyter notebook server
- Set environment variables
- Set default login directory
Anaconda
Python Packages
astropy, beautifulsoup4, conda, flask, jupyter, matplotlib, numpy, nltk, pandas,
pillow, pip, pytest, qt, requests, scipy, scikit-learn, seaborn, sqlite, etc.
R Packages
r, essentials, formatr, ggplot2, irkernel, knitr, kernsmooth, maps, markdown, mass, matrix, nnet, rbokeh, recommended, spatial, tidyr, etc.
Future Work
- Docker containers for portability
- Embedded use in curriculum
- Additional open source contributions
Open Science represents a new framework for research and provides an opportunity for libraries to engage researchers in new ways.
NCSU Libraries has done workshops and outreach around this framework and there is evidence of strong interest across disciplines.
We are redeploying existing technical resources and cutting edge technology in ways that used to be difficult or impossible.
This approach has helped us identify a new leadership role for libraries in open research support.


Name Generator
This is a web application that takes your birthday details and calculates the day of the week you were born and then depending on your gender, gives you an Akan Name. Akan names are originally from Ghana.In Ghana,children are given their first name as a 'day name' which corresponds to the day in the week they were born.
How to find out what your Akan name is, simply fill the form below and click generate name button,Name will be displayed


Tabs
Datepicker
Slider
Selectable
Sortable
Dialogue
Datepicker
Slider
0
Select
One
Two
Three
Sortable
alpha
beta
gamma
Dialog
This is dialog content


A simple client package for the Amazon Web Services ('AWS') Simple Storage Service ('S3') 'REST' 'API' <https://aws.amazon.com/s3/>.
| Version: | 0.3.12 |
| Imports: | utils, tools, httr, xml2 (> 1.0.0), base64enc, digest, aws.signature (≥ 0.3.7) |
| Suggests: | testthat, datasets |
| Published: | 2018-05-25 |
| Author: | Thomas J. Leeper [aut, cre], Boettiger Carl [ctb], Andrew Martin [ctb], Mark Thompson [ctb], Tyler Hunt [ctb], Steven Akins [ctb], Bao Nguyen [ctb], Thierry Onkelinx [ctb] |
| Maintainer: | Thomas J. Leeper <thosjleeper at gmail.com> |
| BugReports: | https://github.com/cloudyr/aws.s3/issues |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| URL: | https://github.com/cloudyr/aws.s3 |
| NeedsCompilation: | no |
| Citation: | aws.s3 citation info |
| Materials: | README NEWS |
| In views: | WebTechnologies |
| CRAN checks: | aws.s3 results |
| Reference manual: | aws.s3.pdf |
| Package source: | aws.s3_0.3.12.tar.gz |
| Windows binaries: | r-devel: aws.s3_0.3.12.zip, r-release: aws.s3_0.3.12.zip, r-oldrel: aws.s3_0.3.12.zip |
| OS X binaries: | r-release: aws.s3_0.3.12.tgz, r-oldrel: aws.s3_0.3.12.tgz |
| Old sources: | aws.s3 archive |
| Reverse imports: | analogsea, aws.cloudtrail, awspack, mlflow |
| Reverse suggests: | aws.lambda, aws.transcribe, DatabaseConnector, memoise |
Please use the canonical form https://CRAN.R-project.org/package=aws.s3 to link to this page.


<<<<<<< HEAD
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
#
text.
=======
Our
1,214
Honors students pursue studies in 64 diverse majors.
Number of Honors students accepted to the National Conference for Undergraduate Research in Asheville, N.C., last year:
59
the highest in the state and
top 10
in the USA
While most Honors students are Virginians, they also come from
29
other states.
45
percent of the Honors College Class of 2019 are pursuing graduate studies.
Students currently enrolled in an Honors College Guaranteed Admission Program:
102
Honors students who have received Critical Language Scholarships:
8
Honors College Class of 2020 includes:
36
School of the Arts students
55
School of Engineering students
110
College of Humanities and Sciences students
114
participants in 19 Honors Summer Undergraduate Research Projects in 2016.
48
applicants for 2016 Freshman Research Institute.
Average SAT score Class of 2020:
1330
Two
Honors students have received National Science Foundation (NSF) Graduate Research Fellowships
Shorter Honors modules include topics such as “Paradoxes of Reason and Truth” and ”Leadership in Modern America.”
Honors students inducted into The Honor Society of Phi Kappa Phi in 2016:
25
Honors recipients of Phi Kappa Phi scholarships in 2016:
9
Honors students who have received Boren Scholarships:
11
Honors students who have received Goldwater Scholarships:
10
Number of residents living in the Honors College during the school year:
177
>>>>>>> 0aea503698bc9f03f2acfe45805b0087ca50f334


| 039:032 Khan | : |
Then, who does more wrong than one who utters a lie against Allah, and denies the truth [this Qur'an, the Prophet (Muhammad SAW), the Islamic Monotheism, the Resurrection and the reward or punishment according to good or evil deeds] when it comes to him! Is there not in Hell an abode for the disbelievers? |
| 039:032 Maulana | : |
Who is then more unjust than he who utters a lie against Allah and denies the truth, when it comes to him?  Will not the home of disbelievers be in hell? |
| 039:032 Rashad | : |
Who is more evil than one who attributes lies to GOD, while disbelieving in the truth that has come to him? Is Hell not a just requital for the disbelievers? |
| 039:032 Sarwar | : |
Who is more unjust then one who invents falsehood against God and rejects the truth after it has come to them.  Is there not in Hell an abode for the disbelievers? |
| 039:032 Yusufali | : |
Who, then, doth more wrong than one who utters a lie concerning Allah, and rejects the Truth when it comes to him; is there not in Hell an abode for blasphemers? |
Concepts/Themes Covered: أركان الإسلام > التوحيد > الكافرون > افتراؤهم على الله وتكذيبهم ومجادلتهم بآيات الله Pillars of Islam> Islamic> The Disbelievers> Their Fabrication Against Allah, their Denial and Argumentation Against Allah's Signs الإيمان > الغيب > النار > أصحاب النار Faith> The Unseen World> Hell-Fire>Hell Fellows
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Copyright © 2005-2014, FreeGeek Chicago. All original material is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License unless otherwise noted.
Built feverishly using Twitter Bootstrap, licensed under MIT.


◆ ActionType
| Enumerator |
|---|
| CANCEL_ACTION | |
| OPEN_ACTION | |
◆ SearchWindowVM()
| Audiometry.ViewModel.SearchVM.SearchWindowVM.SearchWindowVM |
( |
| ) |
|
|
inline |
◆ CanOpenExamRecordExecute()
| bool Audiometry.ViewModel.SearchVM.SearchWindowVM.CanOpenExamRecordExecute |
( |
| ) |
|
|
inlineprivate |
◆ CanSearchExamRecordExecute()
| bool Audiometry.ViewModel.SearchVM.SearchWindowVM.CanSearchExamRecordExecute |
( |
| ) |
|
|
inlineprivate |
◆ ConstructSearchQuery()
| string Audiometry.ViewModel.SearchVM.SearchWindowVM.ConstructSearchQuery |
( |
| ) |
|
|
inlineprivate |
◆ OpenExamRecord()
| void Audiometry.ViewModel.SearchVM.SearchWindowVM.OpenExamRecord |
( |
| ) |
|
|
inlineprivate |
◆ SearchExamRecord()
| void Audiometry.ViewModel.SearchVM.SearchWindowVM.SearchExamRecord |
( |
| ) |
|
|
inlineprivate |
◆ accountNumberCol
| const string Audiometry.ViewModel.SearchVM.SearchWindowVM.accountNumberCol = "AccNumber" |
|
staticprivate |
◆ accountNumberSearch
| string Audiometry.ViewModel.SearchVM.SearchWindowVM.accountNumberSearch |
|
private |
◆ examDateCol
| const string Audiometry.ViewModel.SearchVM.SearchWindowVM.examDateCol = "DateOfExam" |
|
staticprivate |
◆ examDateEnd
| DateTime Audiometry.ViewModel.SearchVM.SearchWindowVM.examDateEnd |
|
private |
◆ examDateStart
| DateTime Audiometry.ViewModel.SearchVM.SearchWindowVM.examDateStart |
|
private |
◆ firstNameCol
| const string Audiometry.ViewModel.SearchVM.SearchWindowVM.firstNameCol = "FirstName" |
|
staticprivate |
◆ firstNameSearch
| string Audiometry.ViewModel.SearchVM.SearchWindowVM.firstNameSearch |
|
private |
◆ lastNameCol
| const string Audiometry.ViewModel.SearchVM.SearchWindowVM.lastNameCol = "LastName" |
|
staticprivate |
◆ lastNameSearch
| string Audiometry.ViewModel.SearchVM.SearchWindowVM.lastNameSearch |
|
private |
◆ openCommand
| ICommand Audiometry.ViewModel.SearchVM.SearchWindowVM.openCommand |
|
private |
◆ patientRecords
| ObservableCollection<Patient> Audiometry.ViewModel.SearchVM.SearchWindowVM.patientRecords |
|
private |
◆ patientTable
| const string Audiometry.ViewModel.SearchVM.SearchWindowVM.patientTable = "PatientInfo" |
|
staticprivate |
◆ searchCommand
| ICommand Audiometry.ViewModel.SearchVM.SearchWindowVM.searchCommand |
|
private |
◆ AccountNumberSearch
| string Audiometry.ViewModel.SearchVM.SearchWindowVM.AccountNumberSearch |
|
getset |
◆ AccountNumberSelected
| string Audiometry.ViewModel.SearchVM.SearchWindowVM.AccountNumberSelected |
|
get |
◆ CloseAction
| Action Audiometry.ViewModel.SearchVM.SearchWindowVM.CloseAction |
|
getset |
◆ ExamDateEnd
| DateTime Audiometry.ViewModel.SearchVM.SearchWindowVM.ExamDateEnd |
|
getset |
◆ ExamDateSelected
| DateTime Audiometry.ViewModel.SearchVM.SearchWindowVM.ExamDateSelected |
|
get |
◆ ExamDateStart
| DateTime Audiometry.ViewModel.SearchVM.SearchWindowVM.ExamDateStart |
|
getset |
◆ FirstNameSearch
| string Audiometry.ViewModel.SearchVM.SearchWindowVM.FirstNameSearch |
|
getset |
◆ IsRecordSelected
| bool Audiometry.ViewModel.SearchVM.SearchWindowVM.IsRecordSelected |
|
get |
◆ LastNameSearch
| string Audiometry.ViewModel.SearchVM.SearchWindowVM.LastNameSearch |
|
getset |
◆ OpenCommand
| ICommand?? Audiometry.ViewModel.SearchVM.SearchWindowVM.OpenCommand |
|
get |
◆ PatientRecords
| ObservableCollection<Patient> Audiometry.ViewModel.SearchVM.SearchWindowVM.PatientRecords |
|
getset |
◆ SearchCommand
| ICommand?? Audiometry.ViewModel.SearchVM.SearchWindowVM.SearchCommand |
|
get |
◆ SearchWindowAction
| ActionType Audiometry.ViewModel.SearchVM.SearchWindowVM.SearchWindowAction |
|
getprivate set |
The documentation for this class was generated from the following file:


How long is Frozen 2 and does it have a post-credits scene?
Fans of Elsa and Anna have been flocking to cinemas this weekend as Frozen 2 opens across the UK.
The sequel reunites the two sisters in the follow-up to the 2013 animated smash, with trouble brewing in the kingdom of Arendelle and the characters forced to venture into mysterious new lands to save their home.
You might well be heading out to see it with younger members of the family in the coming weeks – but just how long is the film, and what’s this we’re hearing about a post-credits scene?
Here’s what you need to know…
How long is Frozen 2?
Frozen 2 runs for one hour and 43 minutes.
That makes it six minutes shorter than its predecessor, which stopped just 11 minutes short of the two-hour mark.
So you’re getting a little less Anna and Elsa for your dosh, but with the return of favourite characters including Kristoff (Jonathan Groff) and Olaf the snowman (Josh Gad) as well as newcomers voiced by Evan Rachel Wood and Sterling K Brown, there’s still plenty to keep junior cinemagoers – and their grown-up companions – entertained.
Advertisement Advertisement
Plus, you’re getting a whole load of new songs including Into The Unknown – which will more than make up for the lack of Let It Go this time around.
What happens in Frozen 2?
Although the plot details were kept pretty quiet ahead of release, the trailer previously revealed that Elsa and Anna are set to journey beyond Arendelle in a bid to discover the origin of Elsa’s powers, and save their kingdom.
Or, as the trailer tells us: ‘We have always feared that Elsa’s powers were too much for this world. Now, we must hope they are enough.’
Does Frozen have a post-credits scene?
Frozen 2 does indeed have a post-credits scene, so you’ll need to stick around for the entire closing credits to get your little extra bit of Frozen.
We’re not going to give away what happens, but let’s just say fans of Olaf – and in particular of one moment earlier on in the film – will be very pleased indeed.
Got a showbiz story?
If you've got a story, video or pictures get in touch with the Metro.co.uk Entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


#include <ultrasonic.h>
◆ Ultrasonic()
| Ultrasonic::Ultrasonic |
( |
int |
echo, |
|
|
int |
trig |
|
) |
| |
◆ ~Ultrasonic()
| Ultrasonic::~Ultrasonic |
( |
| ) |
|
|
inline |
◆ getDistanceCM()
| int Ultrasonic::getDistanceCM |
( |
| ) |
|
|
private |
◆ run()
◆ setCallBack()
◆ setPin()
| void Ultrasonic::setPin |
( |
int |
e, |
|
|
int |
t |
|
) |
| |
|
private |
◆ start()
| void Ultrasonic::start |
( |
| ) |
|
◆ stop()
| void Ultrasonic::stop |
( |
| ) |
|
◆ echo
◆ running
| int Ultrasonic::running = 0 |
|
private |
◆ trig
◆ ultrasonicCb
◆ ultraThread
| std::thread* Ultrasonic::ultraThread = NULL |
|
private |
The documentation for this class was generated from the following files:


If you've installed RLgym, we can now get to the interesting part of this all: Actually getting a bot running.
One of the simplest ways to do this is to download stable baselines 3 (link) (Use their installation guide) and import stable baselines 3 at the top of your code as follows from stable_baselines3 import PPO
Then training a bot only requires a few lines of code:
MAX_TIMESTEPS = 60000
env = rlgym.make('Default')
model = PPO('MlpPolicy', env=env, verbose=1)
model.learn(total_timesteps=MAX_TIMESTEPS)
model.save('./agents/MyAgent')
This should open your eyes to this beautiful world of training a bot. Currently, however, stablebaselines only works in RLgym when there is one agent, e.g. you can only have one agent on the field at a time (you can play against psyonix bots through this method, but the psyonix bots break when we speed up the game for training).
The observation space is the input that your agent (bot) receives as input.  You can customize your own observations by creating a new file, importing the necessary functions (basically copy/paste an observation file that is already working), and making sure to include an import statement for your new observation space in the init file that is located in the obs folder.
The action space is the output that your agent (bot) sends to the game. The output space looks like the following:
throttle:float; /// -1 for full reverse, 1 for full forward
steer:float; /// -1 for full left, 1 for full right
pitch:float; /// -1 for nose down, 1 for nose up
yaw:float; /// -1 for full left, 1 for full right
roll:float; /// -1 for roll left, 1 for roll right
jump:bool; /// true if you want to press the jump button
boost:bool; /// true if you want to press the boost button
handbrake:bool; /// true if you want to press the handbrake button
It actually doesn’t look exactly like this in RLgym (I copied this from RLbot.org) but when you are building a bot that learns, it shouldn’t really matter which is which. Just know that the action space has a size of 8, and that those outputs are somewhat related to the above.
Reward Functions are what tell your bot if it is doing bad or not. They are the equivalent of saying 'good boy' or 'bad dog' to a dog. This is a huge factor in how your bot learns, and you will likely spend most of your time trying to create a workable reward function. Training takes a long time and rewards that seem simple can often break or just not work. You can create your own reward function in a similar way to how you create a new observation function.
The way that RLgym works with rocket league is through using tick skips. In Rocket League, the physics engine runs at 120 ticks per second while the game is rendered 30 times per second. This means that there are 4 ticks per frame rendered, and that the physics system runs faster than the rendering of the game. By default, RLgym 'skips' every 8 ticks. By this I mean that when your agent creates an output, that output is repeated for 8 physics ticks in the game, and then a new output is entered into the game (repeats for 8 ticks) and so on. This reduces computation power needed to train the bot, but also means that it can’t input as frequently (however, 8 ticks is a VERY short time). You can reduce the tick skips if you want when you are initializing your environment.
I kinda mentioned this earlier maybe I’ll change those things and put them here. Oh, and make sure you import your custom files at the top of you implementation like
from rlgym.utils.reward_functions import MyReward
from rlgym.utils.obs_builders import MyObs
And when you create the environment, make sure to include your custom function. ex:
env = rlgym.make('Default', obs_builder=MyObs(), reward_fn=MyReward())
If you want an agent that can train against itself, you will need to create your own PPO function and the training process is a little more complicated than just model.learn(). Here is the general workflow [to be created later]


{% extends "user_app/base.html" %} {% block body_block %}
Welcome back. check out the other users.
Not yet a user - register now.


Boolean logic and set theory were subjects I studied on both my math courses. One of the visual representations we explored when first introducing the subject was the Venn diagram.
We used a few different notations for the boolean operations but for the sake of typing ease, this particular program sticks with typeable keys listed below. The following operations are permitted:
| + | A + B | Union |
| * | A * B | Intersection |
| - | A - B | Difference |
| ^ | A ^ B | Symmetric Difference |
| ' | A' | Inverse |
| () | A + (A-B) | Order of Operations |


|
|
def | __init__ (self, robot_id, pinocchio_robot, joint_names, endeff_names, useFixedBase=False) |
| |
|
def | get_force (self) |
| | Returns the force readings as well as the set of active contacts.
|
| |
| def | get_base_velocity_world (self) |
| | Returns the velocity of the base in the world frame. More...
|
| |
|
def | get_state (self) |
| |
| def | update_pinocchio (self, q, dq) |
| | Updates the pinocchio robot. More...
|
| |
| def | get_state_update_pinocchio (self) |
| | Get state from pybullet and update pinocchio robot internals.
- Returns
- np.array((6,1)) with the translation and angular velocity
| def python.py_pinocchio_bullet.wrapper.PinBulletWrapper.get_state_update_pinocchio |
( |
|
self | ) |
|
Get state from pybullet and update pinocchio robot internals.
This gets the state from the pybullet simulator and forwards the kinematics, jacobians, centroidal moments on the pinocchio robot (see forward_pinocchio for details on computed quantities).
| def python.py_pinocchio_bullet.wrapper.PinBulletWrapper.update_pinocchio |
( |
|
self, |
|
|
|
q, |
|
|
|
dq |
|
) |
| |
Updates the pinocchio robot.
This includes updating:
- kinematics
- joint and frame jacobian
- centroidal momentum
- Parameters
-
| q | Pinocchio generalized position vect. |
| dq | Pinocchio generalize velocity vector. |
The documentation for this class was generated from the following file:
- python/py_pinocchio_bullet/wrapper.py


This defines the bottom key of the upper portion of the keyboard, when the {Common_link_mode} is set to one of the split keyboard modes.
This is contained in the {Common_link_cluster link cluster} within the {Common_section}.
This is set by pressing:
| {sw-set-split.png height=48} |
and then pressing the desired key. You can also press
| {sw-set-split.png height=48} {sw-set-split.png height=48} |
to set it to the same point it was last set to by this mechanism.
This is accessed via {_NRPN} 0,4.
| MIDI | display | ||
| 0 | C0 | ||
| \b\n\b\n\b | \b\n\b\n\b | ||
| 60 | C5 | (default) | |
| \b\n\b\n\b | \b\n\b\n\b | ||
| 127 | G10 |


Interact with the widgets on the left to query a subset of beers to plot. The color widget will be a scale for numeric color, and categorical for other data types. The Jitter widget defines the jitter for both x- and y-scales, and select a portion of the graph will filter the table as well. Selecting a blank area on the graph will reset the selection filter. Inspired by the Bokeh Movie Explorer.


Predictive processing and temporal experience
Plan
-
The general question
-
The temporal character of perception
-
Wiese on the temporal character of perception and PEM
-
A difficulty and a suggestion forwards
I am interested in the relation between a philosophical description of what conscious perceptual experience feels like from the first person and the kind of description offered by cognitive and theoretical neuroscience of the same conscious perceptual experience.
How should we relate brain processing and phenomenology?
At his boldest, Howy states that the prediction error minimization framework can give us the answer.
Prediction error minimization framework?
"It is the theory that the brain is a sophisticated hypothesis-testing mechanism, which is constantly involved in minimizing the error of its predictions of the sensory input it receives from the world. This mechanism is meant to explain perception and action and everything mental in between. It is an attractive theory because powerful theoretical arguments support it. It is also attractive because more and more empirical evidence is beginning to point in its favour. It has enormous unifying power and yet it can explain in detail too." (Howhy 2013, 1)
Prediction error minimization framework (PEM)
The hypothesis that the brain minimizes prediction error.
Prediction error: actual sensory input minus predicted sensory input
Prediction error minimization: Prediction error is computed across diferent levels of processing and used to update the model and generate better predictions. Crucially, the cycle of computing estimates, predictions and prediction errors, and updating estimates accordingly is carried out at all levels of a processing hierarchy.
But wait, there is more. Hohwy claims that “the idea that the brain minimizes its prediction error [...] explains not just that we perceive but how we perceive: the idea applies directly to key aspects of the phenomenology of perception.” (2013, 1).
Qualification: PEM gives us constraints: we have not yet a complete PP model -it is more of a general framework; and neither do we have an uncontroversial phenomenological description of perception. But the idea is that on the basis of PEM, we can place constraints on the possible ways in which we could talk about a relation between brain processing and phenomenology.
Suppose some version of PEM is right.
How should we understand Hohwy's bold claim that PEM can have a direct application to the phenomenology of perception?
Take a particular example: Wiese, W. (2017). Predictive Processing and the Phenomenology of Time Consciousness -
A Hierarchical Extension of Rick Grush’s Trajectory Estimation Model. In T. Metzinger & W. Wiese (Eds.). Philosophy and Predictive Processing: 26. Frankfurt am Main: MIND Group.
In the following section, I attempt to characterize the particular kind of phenomenology of time consciousness that Wiese talks about.
The temporal character of perception
The Phenomenology of Time Consciousness?
The phenomenology of the experience of succession
Experiencing successions of events, as with a series of notes comprising a melody, poses a puzzle. It seems that neither experiencing the different notes simultaneously nor experiencing them in sequence can give rise to the experience of succession. If we experience all notes simultaneously, we experience not a melody but a chord. If we experience first one note, then another, this is a succession of experiences, not an experience of succession (cf. James 1890). So how can we conceive of the experience of successions of events, and of temporally extended processes in general? (Wiese 2017)
When we listen to music, including when we hear a piece played for the first time, we don’t hear each note in isolation, one after the other. Rather, when we hear a note of the melody, the phenomenal character of our experience of that note is affected by the properties of the notes immediately prior to that note. This is not that surprising, and may be an effect of a kind of remembered experience affecting the character of one’s current experience. But what is surprising is that when we hear a note of the melody, the phenomenal character of our experience of that note is affected by the properties of the notes immediately after that note. So our experience of the note is affected by what is yet to come as well as what has already been. (Paul 2014)
What you experience, rather, is, to a first approximation, the rising of the current sounds out of the past; you hear the current sounds as surging forth from the past. You hear them as a continuation. This is to say, moving on to a better approximation, you hear them as having a certain trajectory or arc, as unfolding in accordance with a definite law or pattern. It is not the past that is present in the current experience; rather, it is the trajectory or arc that is present now, and of course the arc describes the relation of what is now to what has already happened (and to what may still happen). In this way, what is present, strictly speaking, refers to or is directed toward what has happened and what will happen. (Noë 2006, p. 29, quoted by Wiese 2017, 7)
The character of an experience at a time t is determined by the character of an experience at an earlier time t - j AND the character of an experience at a later time t + k. Example: Cutaneous rabbit illusion (Geldard, F. A., & Sherrick, C. E. (1972).
What is the character of the perceptual experience after 2 but before 3?
An account of the temporal character of experience is, at least, an account of the way that the phenomenal character of an experience of succession has this structure. In the following section, I present Wiese's take on this.
Wiese on the temporal character of perception and PEM
I am interested in Wiese's view on the relation between PEM and phenomenology because Wiese himself sees his view as a development of Hohwy's bold claim and Wiese's work on the contents of representations in PEM is, as we will later see, relevant for the discussion of the temporal structure I want to look at
Wiese takes Rick Grush's Trajectory Estimate Model and adapts it to the PEM framework to form HiTEM (Hierarchy of Trajectory Estimates Model). In the following I will give a (far too quick) explanation of these models
Grush's model is a retentional model according to which the content of an experience of succession can be described as a trajectory estimate, which contains estimates of what is happening at different times.
Since estimates of what is happening at different times are computed simultaneously, Grush's model purportedly makes sense of what is experienced at a time as an experience of a succession.
Wiese's extension
To adapt Grush's model to the PEM framework, we better talk about a hierarchy of trajectories in a feedback loop so to minimize prediction error.
The content of [temporal experience] is not best conceived as a linear stream of events, but rather as a hierarchy of temporal wholes. (Wiese 2017, 1).
Note that the time indexes in each of the levels of the hierarchy are different –for our purposes we need only say that this is to account for the temporal character. This will become relevant later.
A difficulty and a suggestion forwards
What is the appropriate level of description of the phenomenological claims we started with? The whole hierarchy, a trajectory of estimates or a subset thereof?
Not the whole hierarchy
The whole hierarchy includes several levels that are plausibly not conscious.
Not a subset of a trajectory
A subset of a trajectory would plausibly not include the necessary range of references different times, since the whole trajectory is what captures the temporal profile of the succession.
A trajectory or a subset of the hierarchy
Which one or ones?
Suppose one way of doing this: "Conscious perception is determined by the prediction or hypothesis with the hightest overall posterior probability." (Hohwy 2012)
In the case of Wiese's HiTEM this would mean that conscious perception is determined by the trajectory (or trajectories?) with the hightest overall posterior probability.
But if we do not pick the complete hierarchy for consciousness, we fail to capture precisely the kind of temporal relation that Wiese claims were important to introduce in the model through the different times references in different trajectories.
We fail to capture the sense in which a conscious experience of succession incorporates what we would intuively describe as past, present and future.
Here is a plausible diagnosis of the situation
"The general difficulty here is one of providing an account of experience that can attribute to the subject a psychological property/state that accounts for the fact that it seems to the subject as though he is perceptually aware of an occurrence with temporal extension, while at the same time accommodating the idea that each temporal part of that occurrence seems to the subject to be concurrent with his awareness of it."(Soteriou 2010)
Soteriou discusses this in the context of the debate between accounts according to which conscious sensory experiences are, most fundamentally, mental states/events that have intentional contents with veridicality conditions and accounts according to which conscious sensory experiences are, most fundamentally, the obtaining of a distinctive kind of psychological relation of ‘acquaintance’ with material objects and their features.
The general difficulty Wiese's model faces is one of providing an account that can attribute to the subject a psychological property/state that accounts for the fact that it seems to the subject as though he is perceptually aware of an succession, while at the same time accommodating the idea that each temporal part of that conciuoss occurrence seems to the subject to be concurrent with his awareness of it.
The difficulty is that temporal experience ought to be construed as an experience as of features at a time N before T, at a time T and at a time M after T where these features are experienced as parts of an extended whole that covers the time from N to M.
PEM & Environmental Relations
or
PEM and no experience of succession
But this is a matter
for another time.


get_property¶
Get a property.
get_property(<variable>
<GLOBAL |
DIRECTORY [<dir>] |
TARGET <target> |
SOURCE <source> |
INSTALL <file> |
TEST <test> |
CACHE <entry> |
VARIABLE >
PROPERTY <name>
[SET | DEFINED | BRIEF_DOCS | FULL_DOCS])
Gets one property from one object in a scope.
The first argument specifies the variable in which to store the result. The second argument determines the scope from which to get the property. It must be one of the following:
GLOBAL
- Scope is unique and does not accept a name.
DIRECTORY
- Scope defaults to the current directory but another
directory (already processed by CMake) may be named by the
full or relative path
<dir>
. TARGET
- Scope must name one existing target.
SOURCE
- Scope must name one source file.
INSTALL
- Scope must name one installed file path.
TEST
- Scope must name one existing test.
CACHE
- Scope must name one cache entry.
VARIABLE
- Scope is unique and does not accept a name.
The required PROPERTY
option is immediately followed by the name of
the property to get. If the property is not set an empty value is
returned, although some properties support inheriting from a parent scope
if defined to behave that way (see define_property()
).
If the SET
option is given the variable is set to a boolean
value indicating whether the property has been set. If the DEFINED
option is given the variable is set to a boolean value indicating
whether the property has been defined such as with the
define_property()
command.
If BRIEF_DOCS
or FULL_DOCS
is given then the variable is set to a
string containing documentation for the requested property. If
documentation is requested for a property that has not been defined
NOTFOUND
is returned.


MY ACCOUNT
DASHBOARD
LOGOUT
MY RIDES
LOGOUT
Pass On
Receiver ID
Destination
By clicking "Pass", you agree to pass on your bicycle.


Kelleyia:
Lastly, I want to discuss your consistency. You managed
consecutive Over-hit(s)
. You've demonstrated all the traits of a perfect killing machine.
I don't have anything else to go over. Here is your reward.
Graciously accept the award.


Toggle navigation
Partner Form
Campaign Goal
Task
Text
Task Type
Select an Action Type
Call
Donate
Sign
Share
Go
Do they need to be physically present?
Yes
No
What region or zipcode do they need to be in?
Time Estimate
Task Step 1
Task Step 2
Task Step 3
Task Step 4
Task Step 5
Outbound Link
Submit
Thanks for submitting your task.
Submit another
.


A few years back during a work seminar, I had the opportunity to dive into JS waters and see a bit of its beauty. Up to that point my background was C, C++, Java a bit NodeJS, but I never had the luck to see how functional programming really looks like. For those two months I was mind blown (in a good and bad way see JS ‘==’ ) since I had discovered a completely new way of programming. Among the things I really enjoyed was closures. So what closures really are?
According to wiki:
In computer science, a closure is a function that has an environment of
its own. Inside this environment, there is at least one bound variable.
Closures were first used in programming languages such as ML and
Lisp. When a closure is used more than once, the bound variables stay
the same in between
Before we understand what that means lets talk about functions’ lexical scope
and global scope. Whatever is enclosed within brackets will be called inner scope and outside the brackets outer scope. Outer scope can extend multiple times in cases of nested functions and until we reach the global scope where everything lives in. For every function call we make, a new inner lexical scope is created with its own variables and its hidden [[Environment]]
property (which cannot be accessed) points to the outer scope. Too much to digest so lets start coding!
Lexical Scope
Here we have the variable sport
declare on the global scope. In this case the [[Environment]]
property is null since there is no outer’er’ scope in global scope.
let sport = "basketball";
console.log(sport);
In the following case function play
is called on line 5 and variable sport
is passed as an argument. Variable sport
now belongs to the lexical/inner scope of function play. [[Environment]]
property of play
function now points to the global/outer scope and contains the function name and sport
variable.
1. let sport = "basketball";
2. function play(sport){
3. console.log("I love "+ sport)
4. }
5. play(sport);
---------------------------------
prints:"I love basketball"
Now, assuming that we omit the function’s variable this will happen. First, the play function will check its inner scope and will try to find a variable named sport
. If a value is not found then it will reach the outer scope and will keep doing so till it reaches the global scope which is one step distance in our case.
let sport = "basketball";
function play(){
console.log("I love "+ sport)
}
play();
---------------------------------
prints:"I love basketball"
So, we have played with function lets go and see a for loop. Variable ‘i’ is declared within the for loop scope and thus can not be accessed from outside with console.log() line 5. The internal log will work just fine though!
1. for (let i = 0; i < 10; i++) {
2. console.log(i);
3. }
4.
5. console.log(i);
Declaring i outside the for loop is a decent workaround
let i = 0
for (i; i < 10; i++) {
console.log(i);
}
console.log(i);
Now that we have seen the basics of scopes, lets move forward to JS inception aka closures!
Closures
Having in mind what a lexical scope is, lets move forward with closures!
Our first closure will be something like this:
let ball = function () {
let ballType = "basketball";
let type = function () {
return console.log(ballType);
};
return type;
}
let foo = ball();
foo();
---------------------------------
prints:"basketball"
In the example above we pass control from ball
function to type
function but please notice that the variable is still accessible. When foo
was declared, it created a reference to the inner function type
of ball
. In other words ball
is part of the outer scope of type
where ballType
is declared and has access to.
Now that we masted beginner’s level lets swift gears with the example below. Take a closer look before reading the solution.
1. let walk = 0,run =0;
2.
3. let cardio = function(){
4. let walkTempo = walk++;
5. let runTempo = run++;
6. let heartRate = 80
7.
8. var treadmill = function(){
9. var pulse = heartRate++;
10. console.log(walkTempo + ' ' + runTempo + ' ' + pulse);
11. }
12. return treadmill;
13. }
14. let legday1 = cardio();
15. let legday2 = cardio();
16. let legday3 = cardio();
17.
18. legday1();
19. legday1();
20. legday2();
21. legday1();
22. legday3();
---------------------------------
prints:
"0 0 80"
"0 0 81"
"1 1 80"
"0 0 82"
"2 2 80"
This is how the story goes:
in lines 14..16 we create cardio functions with each one having its own [[Environment]]
property. On line 18, we call legday1. Initially, walk and run variables have value zero, heart rate 80 and don’t forget, ++ operator applies after the assignment. When we reach the inner function we expect logger to print 0 0 80. At that point something has happened. HeartRate within treadmill has increased by one and has affected its outer scope meaning that on next iteration, pulse will print 81. How about the other two values?  Treadmill affected only the heartRate variable but the global scope of walk and run was affected. So, on line 20 we expect to see that both walk and run tempo have value 1, but as for pulse, a new lexical scope was created with legday2 so we expect to see the default value. The same logic applies for lines 21 and 22. Mind blown ha?
Loops and Closures
So far we have discussed about loops and their value scope, we mastered closures, so why not mix those two? I mean… what could possibly go wrong?
Here we have a palette of colors and we want to filter and store those whose name starts with letter B. Take a look and think what the result will be
var paletteArray = new Array("Green","Black","Blue","Brown","Yellow","Pink");
var colorsStartWithB = {};
var j =0;
for(var i = 0;i<paletteArray.length;i++){
if(paletteArray[i].startsWith("B")){
colorsStartWithB[j++] = function (){
return console.log("My favorite color is: "+ paletteArray[i] +" with number: "+i);
};
}
}
for (var i = 0; i < j; i++) {
colorsStartWithB[i]();
}
---------------------------------
prints:
"My favorite color is: undefined with number: 6"
"My favorite color is: undefined with number: 6"
"My favorite color is: undefined with number: 6"
So, if we wrote java we would get a glorious ArrayIndexOutOfBoundsException, so cute! How did that happen? Well we depended on outer scope variable i
which does 6 for iterations (array length) plus 1 (++) iterations. How can we solve that problem? There are multiple approaches:
1) Create a function responsible for filtering the colors. How will this help us? When we pass an argument to a function it creates a local variable which lives within function’s scope.
2) Assign paletteArray[i]
to a const or let type of variable. The reason is that in each for loop, separate memory allocation takes place and so the value is not affected.
Lets start with first case, we extracted the console.log to a function with i being its parameter.
var paletteArray = new Array("Green","Black","Blue","Brown","Yellow","Pink");
var colorsStartWithB = {};
var j =0;
for(var i = 0;i<paletteArray.length;i++){
if(paletteArray[i].startsWith("B")){
colorsStartWithB[j++] = favoriteColor(i);
}
}
function favoriteColor(i){
return function(){console.log("My favorite color is: "+ paletteArray[i] +" with number: "+i); };
};
for (var i = 0; i < j; i++) {
colorsStartWithB[i]();
}
---------------------------------
prints:
"My favorite color is: Black with number: 1"
"My favorite color is: Blue with number: 2"
"My favorite color is: Brown with number: 3"
Solution number 2 looks like this:
var paletteArray = new Array("Green","Black","Blue","Brown","Yellow","Pink");
var colorsStartWithB = {};
var j =0;
for(var i = 0;i<paletteArray.length;i++){
const color = paletteArray[i];
let position = i;
if(color.startsWith("B")){
colorsStartWithB[j++] = function (){
return console.log("My favorite color is: "+ color +" with number: "+i);
};
}
}
for (var i = 0; i < j; i++) {
colorsStartWithB[i]();
}
---------------------------------
prints:
"My favorite color is: Black with number: 1"
"My favorite color is: Blue with number: 2"
"My favorite color is: Brown with number: 3"
In the example above can you guess what the output would be if we made color of type var? The output would look like this:
prints:
"My favorite color is: Pink with number: 1"
"My favorite color is: Pink with number: 2"
"My favorite color is: Pink with number: 3"
JS is a total mess but a fun mess nevertheless!
Closures and private methods
I guess most people here are familiar with object oriented programming and java in particular. Here we will see how the private method concept can be applied in JS, even though it doesn’t have any native support. Lets look at the example below:
let throttle = (function() {
let speed = 0;
function changeBy(val) {
speed += val;
}
return {
accelerate: function() {
changeBy(1);
},
decelerate: function() {
changeBy(-1);
},
value: function() {
return speed+"Km/h";
}
};
})();
console.log(throttle.value());
throttle.accelerate();
throttle.accelerate();
console.log(throttle.value());
throttle.decelerate();
console.log(throttle.value());
---------------------------------
prints:
"0Km/h"
"2Km/h"
"1Km/h"All
As you can see we don’t have direct access to speed
but we can apply all the necessary functions to change and retrieve its value. All three functions share the same lexical scope and thus can affect its value.
If you want to dive a bit more into this subject a good place to start is mozilla developers page and this awesome book Secrets of the JavaScript Ninja.


|
Groovy 2.1.7 | |||||||
| PREV NEXT | FRAMES NO FRAMES |
| Interface Summary | |
|---|---|
| ExpandedVariable | Identifies a variable to be expanded into the sql string rather than representing a placeholder. |
| GroovyResultSet | Represents an extent of objects |
| InOutParameter | @author rfuller |
| InParameter | A typed parameter to pass to a query |
| OutParameter | A parameter to be returned from a CallableStatement. |
| ResultSetOutParameter | A ResultSet out parameter. |
| Class Summary | |
|---|---|
| BatchingPreparedStatementWrapper | Class which delegates to a PreparedStatement but keeps track of a batch count size. |
| BatchingStatementWrapper | Class which delegates to a Statement but keeps track of a batch count size. |
| DataSet | An enhancement of Groovy's Sql class providing support for accessing and querying databases using POGO fields and operators rather than JDBC-level API calls and RDBMS column names. |
| GroovyResultSetExtension | GroovyResultSetExtension implements additional logic for ResultSet. |
| GroovyResultSetProxy | GroovyResultSetProxy is used to create a proxy for GroovyResultSet. |
| GroovyRowResult | Represents an extent of objects. |
| ResultSetMetaDataWrapper | This class defines a wrapper for accessing a specific column in ResultSetMetaData .
|
| Sql | A facade over Java's normal JDBC APIs providing greatly simplified resource management and result set handling. |
| Sql.AbstractQueryCommand | |
| SqlOrderByVisitor | @author Paul King |
| SqlWhereVisitor | @author James Strachan |
| SqlWithParams |
Copyright © 2003-2013 The Codehaus. All rights reserved.