GitHub
Airflow Backfill Tools
- Worked with a team of 3 to design and build the infrastructure that allows users to submit backfill requests to Airflow. Implemented the backfill workers that uses Apache Airflow backfill command to carry out the backfill job for extended periods, manages and retries failed jobs, and surfaces non-retryable errors to end users.
- Conducted mini user research to gather feedback and implemented the features that eases the adoption of the tools.
- Saved 5+ engineer hrs/week
Sage Bionetworks
Synapse-Repository-Services
The code base for Synapse.org server and its Java client.
Discussion Feature
- Enabled discussion between Synapse users and Synapse Support Team (Synapse Help Forum), between Dream Challenge participants and organizers including The Digital Mammography Dream Challenge , between Sage and data contributors including the Bridge - Lily project , and endless possibilities in every single projects created and shared by users.
- Learn more
Access Control Tool
- Enabled the Access and Compliance Team to manage the terms and requirements, to track, review, reject, and grant access to a group of users within Synapse.
- Streamlined the process to participate in Dream Challenges including the Parkinsons Disease Digital Biomarker DREAM Challenge , and the NIH Data Commons.
- Learn more
Refactor Java Client
- Rewrote the Synapse Java Client implementation to use SimpleHttpClient.
- Enabled other applications including the Bridge Exporter that is using the Synapse Java Client to programmatically restart its connection pool when an existing connection pool is saturated because of a connection leak or other reasons.
Synapse-Warehouse-Workers
Data collected from Synapse.org server are stored in S3. Synapse-Warehouse-Workers imports the captured snapshots into its partitioned MySQL database and pre-processes them, allowing its client to query against these data for reports.
SynapseWebClient
The web client of Synapse.org.
- UI for Discussion feature
- UI for Docker feature
SimpleHttpClient
A thin wrapper around Apache's HttpClient to provide a set of simple interfaces to be used for HTTP calls that only transfer json objects.
synapser
The R client of Synapse.org.
The Build System
- Proposed the plan for how to develop, build, and release synapser.
- Organized the builds on Jenkins and wrote documentation for maintenance.
- Organized the Gists used in the build system into a Github repository called CI-Build-Tools.
- Slides
PythonEmbedInR
Folked from PythonInR repository.
Data Conversion
- Added
testthat
and a set of test cases to ensure the conversion behaviors. - Fixed bugs related to converting data from Python 3 to R.
- Ensured private methods in Python object are not exposed in R.
Python Package Wrapper Utilities
- Extended PythonEmbedInR package to include utilities functions that generate R wrappers, and documentations for Python packages.
- Allowed R users to select functions, classes, Enums, and module to expose in R.
- Enabled R users to intercept and alter the returned object in R.
- Provided instructions and examples on how to create an R package by wrapping a Python package.
synapsePythonClient
The Python client of Synapse.org.
Enable Single Thread
- Added the ability to use the Synapse Python client in a single threaded environment (in synapser).
House Keeping
- Stablized the integration tests.
- Improve development builds from taking several days to taking ~20 minutes.
- Simplified integration tests for using only one test user, only exercising the http call, not the server's logic.
- Directed the integration tests to build against a development stack.
Communication Channels
- Exposed released notes on the Synapse Python client docs.
- Highlighted deprecated methods in the Synapse Python client docs.
IT
Collections of IT tasks.
Test User for Development Stack
- Added a build to create a test user for a development stack.
- Allowed client builds to run integration tests against the development stack.


Lab 2 - Powerful examples
This lab has two main components: the first one will require you to find a partner and work together with her/him; and the second one will involve group discussion.
Paired activity
In pairs, find three examples where web maps are used to communicate an idea. Complete the following sheet for each example:
- Substantive
Title
: Title of the map/projectAuthor
: Who is behind the project?Big idea
: a “one-liner” on what the project tries to accomplishMessage
: what does the map try to get accross
- Technical
URL
:Interactivity
: does the map let you interact with it in any way? Yes/NoZoomable
: can you explore the map at different scales? Yes/NoTooltips
:Basemap
: Is there an underlying map providing geographical context? Yes/No. If so, who is it provided by?Technology
: can you guess what technology does this map rely on?
Post each sheet as a separate item on the Teams channel for Lab No.2
As an example, here’s the sheet for the project “A map of every building in America”
- Substantive
Title
: A map of every building in AmericaAuthor
: The New York TimesBig idea
: Show patterns in the built environment through building footprintsMessage
: The project displays a map of the US where only building footprints are shown. This element is used to show a) how much buildings tell about places and the build environment, and b) some interesting specific examples that illustrate large trends in society (e.g. urban sprawl)
- Technical
URL
:https://www.nytimes.com/interactive/2018/10/12/us/map-of-every-building-in-the-united-states.html
Interactivity
: YesZoomable
: YesTooltips
: NoBasemap
: Yes, Mapbox/OpenStreetMapTechnology
: MapboxGL
Class discussion
We will select a few examples posted and collectively discuss (some of) the following questions:
- What makes them powerful, what “speaks” to us?
- What could be improved, what is counter-intuitive?
- What design elements do they rely on?
- What technology do they use?
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.


Product Feedback App
- Tech Used:
- Angular, NX & NGRX
- Enterprise grade architecture
- .Net Web API
- Typescript
About
I'm a software developer with skills in HTML, CSS, Javascript, React/Redux, Express.js
and Node.js and take pride and pleasure in crafting beautiful code.
Bio
I previously worked as a brewer before deciding to change careers and went back to university to pursue a degree in Philosophy where I discovered a passion for problem-solving, logic and creative thinking. My interest in problem solving and logic led me to software development and I made the decision to study at Enspiral Dev Academy where I learnt the foundations of web development.


1.1
Released on: 11/06/2020
Changes:
- Added diagnostics manager.
- Added performance test example.
- Fixed bug in
Input().Down()
for keyboard keys. - Added
DeltaTime()
toGame()
manager. - Made built in colors and point values instead of functions, slightly more efficient.
- Added more built-in colors and points.
- Improved performance.
- Some validations and protections against access violation due to faulty usage.
- Removed warnings from third party files.
- Renamed DLLEXPORT to BON_DLLEXPORT, to reduce chance of collision with other libs.
- Added C API to allow binding with other languages [in progress].
- Rewrote the cached text textures mechanism to be more efficient, less code, and now text support max width, rotation and other effects.
- Added API to set rendering viewport.
- Added API to draw circles.


Cédric Beust (cedric at beust.com)
Current version: 7.6.0
Created: April 27th, 2004
Last Modified: May 19th, 2022
TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use, such as:
TestNG is designed to cover all categories of tests: unit, functional, end-to-end, integration, etc...
I started TestNG out of frustration for some JUnit deficiencies which I have documented on my weblog here and here Reading these entries might give you a better idea of the goal I am trying to achieve with TestNG. You can also check out a quick overview of the main features and an article describing a very concrete example where the combined use of several TestNG's features provides for a very intuitive and maintainable testing design.
Here is a very simple test:
package example1; import org.testng.annotations.*; public class SimpleTest { @BeforeClass public void setUp() { // code that will be invoked when this test is instantiated } @Test(groups = { "fast" }) public void aFastTest() { System.out.println("Fast test"); } @Test(groups = { "slow" }) public void aSlowTest() { System.out.println("Slow test"); } }The method setUp() will be invoked after the test class has been built and before any test method is run. In this example, we will be running the group fast, so aFastTest() will be invoked while aSlowTest() will be skipped.
Things to note:
Once you have compiled your test class into the build directory, you can invoke your test with the command line, an ant task (shown below) or an XML file:
<project default="test"> <path id="cp"> <pathelement location="lib/testng-testng-5.13.1.jar"/> <pathelement location="build"/> </path> <taskdef name="testng" classpathref="cp" classname="org.testng.TestNGAntTask" /> <target name="test"> <testng classpathref="cp" groups="fast"> <classfileset dir="build" includes="example1/*.class"/> </testng> </target> </project>Use ant to invoke it:
c:> ant Buildfile: build.xml test: [testng] Fast test [testng] =============================================== [testng] Suite for Command line test [testng] Total tests run: 1, Failures: 0, Skips: 0 [testng] =============================================== BUILD SUCCESSFUL Total time: 4 secondsThen you can browse the result of your tests:
start test-output\index.html (on Windows)
TestNG Upto v7.5: JDK 8 or higher.
TestNG v7.6.0 and above: JDK 11 or higher.
If you are interested in contributing to TestNG or one of the IDE plug-ins, you will find them in the following locations:
For more information, you can either download TestNG, read the manual or browse the links at the top.


LESSONS
TUTORIALS
QUIZZES
ABOUT
☰
LESSONS
TUTORIALS
QUIZZES
ABOUT
Circuits Quiz
Are you ready for the quiz? If not, go back to the lessons page.
Question #1
What is a circuit?
a race track for toy cars
another way to spell "circus"
a circle
something that makes electronics work
Question #2
What do circuits need to work?
a watermelon, two clamps, and a cord
a power source, connecting wires, and different components
sugar, spice, and everything nice
none of the above
Question #3
What does a printed circuit board do?
connects several components into one circuit
uses lots of wires to connect components
makes a passive component work
all of the above
Question #4
What is the difference between PASSIVE and ACTIVE components?
passive components don't need a power source
conductors make music, insulators keep the music out
neither need external power
active components need external power
Question #5
Which one needs a circuit?
cat
ball
cell phone
rubber duck
Submit


BIG NIGHT A film review by Scott Renshaw Copyright 1996 Scott Renshaw
(Samuel Goldwyn/Rysher) Starring: Stanley Tucci, Tony Shalhoub, Ian Holm, Minnie Driver, Isabella Rossellini. Screenplay: Stanley Tucci, Joseph Tropiano. Producer: Jonathan Filley. Director: Stanley Tucci, Campbell Scott. Running Time: 108 minutes. MPAA Rating: R (profanity) Reviewed by Scott Renshaw.
It probably says as much about me as it does about BIG NIGHT that I consider it a remarkably insightful film about the state of contemporary film-making. Yes, BIG NIGHT is about food, and it is about the relationship between two brothers, and it is about what it means to participate in the American dream as well. However, I think BIG NIGHT is something particularly special for anyone who loves movies because of what they can be. It is a warm, engaging and extremely funny film which manages not simply to describe the battle between art and commerce, but to win it on behalf of the former.
BIG NIGHT takes place in a Jersey shore town of the 1950s, where brothers Primo (Tony Shalhoub) and Secondo Pilaggi (Stanley Tucci) run an Italian restaurant called the Paradise.  Two years of poor receipts have placed the Paradise on the brink of foreclosure, but Pascal offers Primo a last chance. Pascal suggests inviting band leader Louie Prima, a personal friend, to dine at the Paradise and create a media event which will boost business. With nothing to lose, Primo and Secondo throw everything they have left into one big night, a sumptuous dinner which will either make them or break them.
Stanley Tucci co-wrote (with his cousin Joseph Tropiano) and co-directed with actor Campbell Scott) BIG NIGHT in addition to starring in it, and he has created one of the year's most delightful character studies. His own character of Secondo is the film's central figure, but all three main characters are superbly written and acted. Tony Shalhoub (TV's "Wings") is hilarious as Primo, whose passion for his cooking leads to fits of pique over the "Philistines" who cannot appreciate his work, but who has difficulty showing that passion to the florist (Allison Janney) he secretly pines for. Ian Holm has a tasty, showy role as the unapologetically assimilated Pascal, who runs his restaurant like a circus; Holm's accent is hit-and-miss, but his truly unprintable favorite epithet for Secondo actually gets funnier every time he uses it. Between them is Secondo, with Tucci doing solid, subtle work as an immigrant trying to navigate the treacherous course between tradition and assimilation without committing fully to either one, but tending towards his vision of the American dream. His mockery of Primo's more broken English begins as good-natured, but gradually it becomes indicative of Secondo's frustration with his brother's steadfast refusal to compromise.
It is this conflict which makes BIG NIGHT such a potent metaphor for cinema in the 1990s. Primo is an artist unwilling to compromise even if it means alienating potential customers; Pascal is the capitalist who believes that "if a guy wants a steak, you give him a steak." Secondo wants to have it both ways, to be the artist and the capitalist, but when push comes to shove he finds himself more willing to compromise on the art. What BIG NIGHT ultimately argues is that somewhere along the line, you have to choose between doing the work you know will make you proud and doing the work you know will make you rich. There is room for both, Tucci suggests, but the greatest satisfaction comes from people loving the best you had to give them.
But whether you see BIG NIGHT as a simple tale of brotherly conflict and fine dining or as a meditation on art as a consumer product, you should see BIG NIGHT, because film-making simply doesn't get much more satisfying. Tucci, Scott and company have put together a banquet of finely drawn characters, smart dialogue and assured direction, culminating in an elaborate meal which might inspire you to the same conclusion which leads one character to utter one of the year's best punch lines. It also ends with a wordless single take in which resolution is achieved with such grace, simplicity and emotion that you could find yourself smiling all the way out the door. Primo states his believe in one scene that great food is what "brings us closest to God," but that could be true of any true work of art. With BIG NIGHT, Stanley Tucci and a host of gifted contributors have served up a small piece of Paradise.
On the Renshaw scale of 0 to 10 bella nottes: 10.
Receive Scott Renshaw's reviews directly via email from Marquee! Visit http://www.marquee.com/marquee-mailinglists.html for details. Visit Scott Renshaw's MoviePage http://www-leland.stanford.edu/~srenshaw
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Newcastle haunt Colonel Porters makes top 40 best cocktail bars in the UK list
Leading hen party organiser GoHen has named the Newcastle haunt one of the best cocktail bars in the UK
by Simon DukeThere's thirst quenching news for a popular Newcastle bar this week with the news that it has been named one of the best cocktail bars in the UK.
Colonel Porters Emporium, on the bottom of Dean Street near the Quayside , has only been open for two years but has established itself as a big favourite among locals and visitors to the city.
And now it has had the seal of approval on a national scale as a leading hen party company has named it as one of the best cocktail bars in the UK.
GoHen has compiled a top 40 list of its favourite places to go for a cocktail all over the country and Colonel Porters is the sole representative from Newcastle, with the other 'North East' picks (though we're not sure on the geography!) being in Leeds and Sheffield.
The glowing review of bar and restaurant Colonel Porters reads "Newcastle is bold, bright and brilliant, and the Colonel Porters Emporium is a shining jewel in the crown of its vibrant bar scene. As well as its fabulous array of cocktails, the venue itself is superb and the décor is resplendent and retro.
"No stranger to a GoHen list, they return as one of the best cocktail bars in the UK and they are certainly a standout entry."
Colonel Porters will be the place to be this weekend as they are bringing some Ibiza sunshine to Newcastle this Saturday in the shape of Melon Bomb.
In the five short years of its existence, Melon Bomb has become one of the most well known and respected party brands in Ibiza and truly encapsulates Ibiza’s magic and the essence of the island’s hedonistic vibes.
For one night only party goers and lovers of good music can dance the night away at Colonel Porters for free! Saturday, November 16, Paul Reynolds & Scott Gray will be playing till late, with resident Pete Wharrier warming up from pm- get down early to ensure entry.


About
I am a software developer. That’s mostly it. I am not very good at it, but somehow I found my way into several companies and dealt with some larger projects, so I think I might have some experience. I currently work as a software developer / software architect at kloeckner.i and have built a team of about 25 developers there. We’re tackling the challenge of transforming a whole industry and preparing it for a new digital age there - and I couldn’t be happier to work with an awesome team of such gifted individuals.
I am also practising Judo, although I guess I am not very good at that either. This blog does not contain anything about Judo.
Usually one would write here that they’re passionate about some language or technology, but that is not the case for me. At least that’s what I make myself believe from time to time. I will try making a point about not being super passionate about new currently hyped technology X that just came out yesterday and is already the future of the web™ or the next revolution™.
I can provide some insights into the field though - and I hope that someone, especially new developers just starting out might find these insights useful.
Because after all, developing software is a joy to me and I like doing it for a living.
If you have questions and or comments, you may send me an email, using the public key you find on keybase.


Chapter 5 Attributes and Support
Feature attributes refer to the properties of features (“things”)
that do not describe the feature’s geometry. Feature attributes can
be derived from geometry (e.g. length of a LINESTRING
, area
of a POLYGON
) but they can also refer to non-derived properties,
such as:
- the name of a street or a county
- the number of people living in a country
- the type of a road
- the soil type in a polygon from a soil map
- the opening hours of a shop
- the body weight or heart beat rate of an animal
- the NO\(_2\) concentration measured at an air quality monitoring station
In some cases, time properties can be seen as attributes of features, e.g. the date of birth of a person or the construction year of a road. When an attribute such as for instance air quality is a function of both space and time, time is best handled on equal footing with geometry (e.g. in a data cube, see chapter 6).
Spatial data science software implementing simple features
typically organizes data in tables that contain both geometries and
attributes for features; this is true for geopandas
in Python,
PostGIS
tables in PostgreSQL, and sf
objects in R. The geometric
operations described in section 3.2 operate
on geometries only, and may occasionally yield new attributes
(predicates, measures or transformations), but do not operate on
attributes present.
When, while manipulating geometries, attribute values are retained
unmodified, support problems may arise.
If we look into a simple case of replacing a county polygon with
the centroid of that polygon on a dataset that has attributes,
we see that R package sf
issues a warning:
library(sf)
library(dplyr)
system.file("gpkg/nc.gpkg", package="sf") %>%
read_sf() %>%
st_transform(32119) %>%
select(BIR74, SID74, NAME) %>%
st_centroid() -> x
# Warning in st_centroid.sf(.): st_centroid assumes attributes are constant over
# geometries of x
The reason for this is that the dataset contains variables with
values that are associated with entire polygons – in this case:
population counts – meaning they are not associated with a
POINT
geometry replacing the polygon.
In section 1.6 we already described that for non-point geometries (lines, polygons), feature attribute values either have point support, meaning that the value applies to every point, or they have block support, meaning that the value summarizes all points in the geometry. (More complex options, e.g. in between these two extremes, may also occur.) This chapter will describe different ways in which an attribute may relate to the geometry, its consequences on analysing such data, and ways to derive attribute data for different geometries (up- and downscaling).
5.1 Attribute-geometry relationships and support
Changing the feature geometry without changing the feature attributes does change the feature, since the feature is characterised by the combination of geometry and attributes. Can we, ahead of time, predict whether the resulting feature will still meaningfully relate to the attribute value when we replace all geometries for instance with their convex hull or centroid? It depends.
Take the example of a road, represented by a LINESTRING
, which has
an attribute property road width equal to 10 m. What can we say about
the road width of an arbitrary subsection of this road? That depends
on whether the attribute road length describes, for instance the
road width everywhere, meaning that road width is constant along the
road, or whether it describes an aggregate property, such as minimum
or average road width. In case of the minimum, for an arbitrary
subsection of the road one could still argue that the minimum
road width must be at least as large as the minimum road width for
the whole segment, but it may no longer be the minimum for that
subsection. This gives us two “types” for the attribute-geometry
relationship (AGR):
- constant the attribute value is valid everywhere in or over the geometry; we can think of the feature as consisting of an infinite number of points that all have this attribute value; in the geostatistical literature this is known as a variable with point support
- aggregate the attribute is an aggregate, a summary value over the geometry; we can think of the feature as a single observation with a value that is associated with the entire geometry; this is also known as a variable having block support
For polygon data, typical examples of constant AGR (point support) variables are:
- land use for a land use polygon
- rock units or geologic strata in a geological map
- soil type in a soil map
- elevation class in a elevation map that shows elevation as classes
- climate zone in a climate zone map
A typical property of such variables is that they have geometries that are not man-made and also not associated with a sensor device (such as remote sensing image pixel boundaries). Instead, the geometry follows from the variable observed.
Examples for the aggregate AGR (block support) variables are:
- population, either as number of persons or as population density
- other socio-economic variables, summarised by area
- average reflectance over a remote sensing pixel
- total emission of pollutants by region
- block mean NO\(_2\) concentrations, as e.g. obtained by block kriging over square blocks or a dispersion model that predicts areal means
A typical property of such variables is that associated geometries come for instance from legislation, observation devices or analysis choices, but not intrinsically from the observed variable.
A third type of AGR arises when an attribute identifies a feature geometry; we call an attribute an identity variable when the associated geometry uniquely identifies the variable’s value (there are no other geometries with the same value). An example is county name: the name identifies the county, and is still the county for any sub-area (point support), but for arbitrary sub-areas, the attributes loses the identity property to become a constant attribute. An example is:
- an arbitrary point (or region) inside a county is still part of the county and must have the same value for county name, but it does not longer identify the (entire) geometry corresponding to that county
The challenge here is that spatial information (ignoring time for simplicity) belongs to different phenomena types (e.g. Scheider et al. 2016), including:
- fields: where over continuous space, every location corresponds to a single value, e.g. elevation, air quality, or land use
- objects: found at a discrete set of locations, e.g. houses or persons
- aggregates: e.g. sums, totals, averages of fields, counts or densities of objects, associated with lines or regions
but that different spatial geometry types (points, lines, polygons, raster cells) have no simple mapping to these phenomena types:
- points may refer to sample locations of observations on fields (air quality) or to locations of objects
- lines may be used for objects (roads, rivers), contours of a field, or administrative borders
- raster pixels and polygons may reflect fields of a categorical variable such as land use (coverage), but also aggregates such as population density
Properly specifying attribute-geometry relationships, and warning against their absence or cases when change in geometry (change of support) implies a change of information can help avoiding a large class of common spatial data analysis mistakes (Stasch et al. 2014) associated with the support of spatial data.
5.2 Aggregating and summarising
Aggregating records in a table (or data.frame
) involves two steps:
- grouping records based on a grouping predicate, and
- applying an aggregation function to the attribute values of a group to summarize them into a single number.
In SQL, this looks for instance like
SELECT GroupID, SUM(population) FROM table GROUP BY GroupID;
indicating the aggregation function (SUM
) and the
grouping predicate (GroupID
).
R package dplyr
for instance uses two steps to accomplish this:
function group_by
specifies the group membership of records,
summarize
computes data summaries (such as sum
or mean
) for
each of the groups. R (base) function aggregate
does both in a
single function that takes the data table, the grouping predicate(s)
and the aggregation function.
An example for the North Carolina counties is shown in figure
5.1. Here, we grouped counties by their position
(according to the quadrant in which the county centroid is with
respect to ellipsoidal coordinate POINT(-79, 35.5)
) and counted
the number of disease cases per group. The result shows that
the geometries of the resulting groups have been unioned (section
3.2.6): this is necessary because the MULTIPOLYGON
formed by just putting all the county geometries together would
have many duplicate boundaries, and hence not be valid (section
3.1.2).
nc <- read_sf(system.file("gpkg/nc.gpkg", package = "sf"))
# encode quadrant by two logicals:
nc$lng = st_coordinates(st_centroid(st_geometry(nc)))[,1] > -79
nc$lat = st_coordinates(st_centroid(st_geometry(nc)))[,2] > 35.5
nc.grp = aggregate(nc["SID74"], list(nc$lng, nc$lat), sum)
plot(nc.grp["SID74"], axes = TRUE)
Plotting collated county polygons is technically not a problem, but for this case would raise the wrong suggestion that the group sums relate to the counties, and not the group of counties.
One particular property of aggregation in this way is that each record is assigned to a single group; this has the advantage that the sum of the group-wise sums equals the sum of the ungrouped data: for variables that reflect amount, nothing gets lost and nothing is added. The newly formed geometry is the result of unioning the geometries of the records.
nc <- st_transform(nc, 2264)
gr = st_sf(
label = apply(expand.grid(1:10, LETTERS[10:1])[,2:1], 1, paste0, collapse = " "),
geom = st_make_grid(nc))
plot(st_geometry(nc), reset = FALSE, border = 'grey')
plot(st_geometry(gr), add = TRUE)
When we need an aggregate for a new area that is not a union of the geometries for a group of records, and we use a spatial predicate then single records may be matched to multiple groups. When taking the rectangles of figure 5.2 as the target areas, and summing for each rectangle the disease cases of the counties that intersect with the rectangles of figure 5.2, the sum of these will be much larger:
a = aggregate(nc["SID74"], gr, sum)
c(sid74_sum_counties = sum(nc$SID74), sid74_sum_rectangles = sum(a$SID74, na.rm = TRUE))
# sid74_sum_counties sid74_sum_rectangles
# 667 2621
Choosing another predicate, e.g. contains or covers would on the contrary result in much smaller values, because many counties are not contained by any the target geometries. However, there are a few cases where this approach might be good or satisfactory:
- when we want to aggregate
POINT
geometries by a set of polygons, and all points are contained by a single polygon. If points fall on a shared boundary than they are assigned to both polygons (this is the case for DE-9IM-based GEOS library; the s2geometry library has the option to define polygons as “semi-open”, which implies that points are assigned to single polygons when the polygons form a coverage) - when aggregating many very small polygons or raster pixels over larger areas, e.g. averaging altitude from 30 m resolution raster over North Carolina counties, the error made by multiple matches may be insignificant
A more comprehensive approach to aggregating spatial data associated to areas to larger, arbitrary shaped areas is by using area-weighted interpolation.
5.3 Area-weighted interpolation
When we want to combine geometries and attributes of two datasets such that we get attribute values of a source dataset summarised for the geometries of a target, where source and target geometries are unrelated, area-weighted interpolation may be a simple approach. In effect, it considers the area of overlap of the source and target geometries, and uses that to weight the source attribute values into the target value (Goodchild and Lam 1980; Do, Thomas-Agnan, and Vanhems 2015a, 2015b; Do, Laurent, and Vanhems 2021). Here, we follow the notation of Do, Thomas-Agnan, and Vanhems (2015b).
Area-weighted interpolation computes, for each of \(q\) spatial target areas \(T_j\), a weighted average from the values \(Y_i\) corresponding to the \(p\) spatial source areas \(S_i\),
\[\begin{equation} \hat{Y}_j(T_j) = \sum_{i=1}^p w_{ij} Y_i(S_i) \tag{5.1} \end{equation}\]
where the \(w_{ij}\) depend on the amount of overlap of \(T_j\) and \(S_i\), and the amount of overlap is \(A_{ij} = T_j \cap S_i\). How \(w_{ij}\) depends on \(A_{ij}\) is discussed below.
Different options exist for choosing weights, including methods using external variables (e.g. dasymetric mapping, Mennis (2003)). Two simple approaches for computing weights that do not use external variables arise, depending on whether the variable \(Y\) is intensive or extensive.
5.3.1 Spatially extensive and intensive variables
An example of a extensive variable is population count. It is associated with an area, and if that area is cut into smaller areas, the population count is split accordingly: not necessary proportional to area, because population is rarely uniform, but split in such a way that the sum of the population count for the smaller areas equals that of the total. An example of a related variable that is intensive is population density. If an area is split into smaller areas, population density is not split similarly: the sum of the population densities for the smaller areas is a meaningless measure, as opposed to the average of the population densities which will be similar to the density of the total area.
Extensive variables correspond to amounts, associated with a physical size (length, area, volume); for spatially extensive variables, if the area a value corresponds to is cut in parts, the values associated with the sub-area are split accordingly. In other words: the value is proportional to the support. Intensive variables are variables that do not have values proportional to support: if the area is split, values may vary but on average remain the same. The corresponding example of an intensive variable is population density: when we split an area into sub-areas, the sub-areas either have identical population densities (in case population is uniformly distributed) or, more realistically, have varying population densities that by necessity are both higher and lower than the density of the total area.
When we assume that the extensive variable \(Y\) is uniformly distributed over space, the value \(Y_{ij}\), derived from \(Y_i\) for a sub-area of \(S_i\), \(A_{ij} = T_j \cap S_i\) of \(S_i\) is
\[\hat{Y}_{ij}(A_{ij}) = \frac{|A_{ij}|}{|S_i|} Y_i(S_i)\]
where \(|\cdot|\) denotes the spatial area. For estimating \(Y_j(T_j)\) we sum all the elements over area \(T_j\):
\[\begin{equation} \hat{Y}_j(T_j) = \sum_{i=1}^p \frac{|A_{ij}|}{|S_i|} Y_i(S_i) \tag{5.2} \end{equation}\]
For an intensive variable, under the assumption that the variable has a constant value over each area \(S_i\), the estimate for a sub-area equals that of the total,
\[\hat{Y}_{ij} = Y_i(S_i)\]
and we can estimate the value of \(Y\) for a new spatial unit \(T_j\) by an area-weighted average of the source values:
\[\begin{equation} \hat{Y}_j(T_j) = \sum_{i=1}^p \frac{|A_{ij}|}{|T_j|} Y_i(S_i) \tag{5.3} \end{equation}\]
5.3.2 Dasymetric mapping
Dasymetric mapping distributes variables, such as population, known at a coarse spatial aggregation level over finer spatial units by using other variables that are associated with population distribution, such as land use, building density, or road density. The simplest approach to dasymetric mapping is obtained for extensive variables, where the ratio \(|A_{ij}| / |S_i|\) in (5.2) is replaced by the ratio of another extensive variable \(X_{ij}(S_{ij})/X_i(S_i)\), which has to be known for both the intersecting regions \(S_{ij}\) and the source regions \(S_i\). Do, Thomas-Agnan, and Vanhems (2015b) discuss several alternatives for intensive \(Y\) and/or \(X\), and cases where \(X\) is known for other areas.
5.3.3 Support in file formats
GDAL’s vector API supports reading and writing so-called field domains, which can have a “split policy” and a “merge policy” indicating what should be done with attribute variables when geometries are split or merged. The values of these can be “duplicate” for split and “geometry weighted” for merge, in case of spatially intensive variables, or they can be “geometry ratio” for split and “sum” for merge, in case of spatially extensive variables. At the time of writing this, the file formats supporting this are GeoPackage and FileGDB.
5.4 Up- and Downscaling
Up- and downscaling refers in general to obtaining high-resolution information from low-resolution data (downscaling) or obtaining low-resolution information from high-resolution data (upscaling). Both are activities involve attributes’ relation to geometries and both change support. They are synonymous with aggregation (upscaling) and disaggregation (downscaling).
The simplest form of downscaling is sampling (or extracting) polygon, line or grid cell values at point locations. This works well for variables with point-support (“constant” AGR), but is at best approximate when the values are aggregates.
Challenging applications for downscaling include high-resolution prediction of variables obtained by low-resolution weather prediction models or climate change models, and the high-resolution prediction of satellite image derived variables based on the fusion of sensors with different spatial and temporal resolutions.
The application of areal interpolation using (5.1) with its realisations for extensive (5.2) and intensive (5.3) variables allows moving information from any source area \(S_i\) to any target area \(T_j\) as long as the two areas have some overlap. This means that one can go arbitrarily to much larger units (aggregation) or to much smaller units (disaggregation). Of course this makes only sense to the extent that the assumptions hold: over the source regions extensive variables need to be uniformly distributed and intensive variables need to have constant value.
The ultimate disaggregation involves retrieving (extracting) point values from line or area data. For this, we cannot work with equations (5.2) or (5.3) because \(|A_{ij}| = 0\) for points, but under the assumption of having a constant value over the geometry, for intensive variables the value \(Y_i(S_i)\) can be assigned to points as long as all points can be uniquely assigned to a single source area \(S_i\). For polygon data, this implies that \(Y\) needs to be a coverage variable (section 3.4).
In cases where values associated with areas are aggregate values over the area, the assumptions made by area-weighted interpolation or dasymetric mapping – uniformity or constant values over the source areas – are highly unrealistic. In such cases, these simple approaches still be reasonable approximations, for instance when:
- the source and target area are nearly identical
- the variability inside source units is very small, and the variable is nearly uniform or constant
In other cases, results obtained using these methods are merely consequences of unjustified assumptions. Statistical aggregation methods that can estimate quantities for larger regions from points or smaller regions include:
- design-based methods, which require that a probability sample is available from the target region, with known inclusion probabilities (D. J. Brus (2021a), section 10.1), and
- model-based methods, which assume a random field model with spatially correlated values (block kriging, section 12.5)
Alternative disaggregation methods include:
5.5 Exercises
Where relevant, try to make the following exercises with R.
- When we add a variable to the
nc
dataset bync$State = "North Carolina"
(i.e., all counties get assigned the same state name). Which value would you attach to this variable for the attribute-geometry relationship (agr)? - Create a new
sf
object from the geometry obtained byst_union(nc)
, and assign"North Carolina"
to the variableState
. Whichagr
can you now assign to this attribute variable? - Use
st_area
to add a variable with namearea
tonc
. Compare thearea
andAREA
variables in thenc
dataset. What are the units ofAREA
? Are the two linearly related? If there are discrepancies, what could be the cause? - Is the
area
variable intensive or extensive? Is its agr equal toconstant
,identity
oraggregate
? - Consider figure 5.3; using the equations in section 5.3.1, compute the area-weighted interpolations for (a) the dashed cell and (b) for the square enclosing all four solid cells, first for the case where the four cells represent (i) an extensive variable, and (ii) an intensive variable. The red numbers are the data values of the source areas.
g = st_make_grid(st_bbox(st_as_sfc("LINESTRING(0 0,1 1)")), n = c(2,2))
par(mar = rep(0,4))
plot(g)
plot(g[1] * diag(c(3/4, 1)) + c(0.25, 0.125), add = TRUE, lty = 2)
text(c(.2, .8, .2, .8), c(.2, .2, .8, .8), c(1,2,4,8), col = 'red')
References
Brus, Dick J. 2021a. “Statistical Approaches for Spatial Sample Survey: Persistent Misconceptions and New Developments.” European Journal of Soil Science 72 (2): 686–703. https://doi.org/https://doi.org/10.1111/ejss.12988.
Do, Van Huyen, Thibault Laurent, and Anne Vanhems. 2021. “Guidelines on Areal Interpolation Methods.” In Advances in Contemporary Statistics and Econometrics: Festschrift in Honor of Christine Thomas-Agnan, edited by Abdelaati Daouia and Anne Ruiz-Gazen, 385–407. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-030-73249-3_20.
Do, Van Huyen, Christine Thomas-Agnan, and Anne Vanhems. 2015a. “Accuracy of Areal Interpolation Methods for Count Data.” Spatial Statistics 14: 412–38. https://doi.org/10.1016/j.spasta.2015.07.005.
Do, Van Huyen, Christine Thomas-Agnan, and Anne Vanhems. 2015b. “Spatial Reallocation of Areal Data: A Review.” Rev. Econ. Rég. Urbaine 1/2: 27–58. https://www.tse-fr.eu/sites/default/files/medias/doc/wp/mad/wp_tse_397_v2.pdf.
Goodchild, Michael F, and Nina Siu Ngan Lam. 1980. Areal Interpolation: A Variant of the Traditional Spatial Problem. Department of Geography, University of Western Ontario London, ON, Canada.
Kyriakidis, P.C. 2004. “A Geostatistical Framework for Areal-to-Point Spatial Interpolation.” Geographical Analysis 36 (3): 259–89.
Martin, D. 1989. “Mapping Population Data from Zone Centroid Locations.” Transactions of the Institute of British Geographers, New Series 14 (1): 90–97.
Mennis, Jeremy. 2003. “Generating Surface Models of Population Using Dasymetric Mapping.” The Professional Geographer 55 (1): 31–42.
Raim, A.M., S.H. Holan, J.R. Bradley, and C.K. Wikle. 2021. “Spatio-Temporal Change of Support Modeling with R.” Computational Statistics 36: 749–80. https://doi.org/ https://doi.org/10.1007/s00180-020-01029-4.
Scheider, Simon, Benedikt Gräler, Edzer Pebesma, and Christoph Stasch. 2016. “Modeling Spatiotemporal Information Generation.” International Journal of Geographical Information Science 30 (10): 1980–2008. https://doi.org/10.1080/13658816.2016.1151520.
Stasch, Christoph, Simon Scheider, Edzer Pebesma, and Werner Kuhn. 2014. “Meaningful Spatial Prediction and Aggregation.” Environmental Modelling & Software 51: 149–65. https://doi.org/10.1016/j.envsoft.2013.09.006.
Tobler, W.R. 1979. “Smooth Pycnophylactic Interpolation for Geographical Regions.” Journal of the American Statistical Association 74 (367): 519–30.


Lori Loughlin and husband fighting new charges in admissions case
Full House actress Lori Loughlin and her fashion designer husband are contesting expanded charges against them in the college admissions bribery scandal.
Lawyers for Loughlin and Mossimo Giannulli entered not guilty pleas on their behalf on Tuesday to charges of conspiracy to commit federal programme bribery.
Earlier this month, the couple waived their right to appear in federal court in Boston to answer to the latest counts.
Prosecutors added the bribery charge for 11 parents who previously pleaded not guilty in the case.
Another 19 parents have pleaded guilty or agreed to do so.
Loughlin and Giannulli are accused of paying 500,000 dollars to get their two daughters into the University of Southern California (USC) as fake athletic recruits.
Their daughters no longer attend USC.
The couple previously pleaded not guilty to fraud and money laundering.


Dear Sir/Madam, I am Mr Martins Olusegun,we are a group of business men who deal on raw materials and export into Europe/America. We are searching for representatives who can help us astablish a medium of getting to our costumers in America/Europe as well as making payments through you to us.If you are interested in transacting business with us we will be very glad. Please contact us via email<EMAIL_ADDRESS>for more information. Subject to your satisfaction you will be given the opportunity to negotiate your mode of which we will pay for your services as our representative in Europe/America. Please if you are interested forward to us your phone/fax number and your full contact addresses. Thanks, CEO Mr.Martins Olusegun.


There is a pile of cut grass. Bob puts his hand on it. The grass pile is odd. There is a lump in it. Bob yells, "I think it is alive!" A vine rises up from the grass. It gets big fast. Bob grabs the vine. The vine zips up and up! Bob is on a fun ride. He grins. What a fine time for Bob!
in-context


|
EDDA
|
#include <shared_ary.h>
Public Member Functions | |
| shared_ary () | |
| shared_ary (T *p, size_t n_) | |
| shared_ary (size_t n_) | |
| T & | operator[] (int i) const |
| size_t | getLength () const |
| void | swap (shared_ary< T > &ary) |
smart pointer for arrays
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |


Software Developer/Quality Engineer/Web Designer/System Administrator.
Interested in text mining, data mining, data warehousing, analytics and all things mobile and cloud. Also ❤ Linux and cluster administration.
If you like to follow me on twitter my username is @getnpk


Spatial distribution of regression coefficient (× 10 − 3 ) between PM 2.5 concentration and six explanatory variables. ( a) urban GDP; ( b) the area of urban green space; ( c) road area; ( d) number of taxis; ( e) number of buses; and ( f) number of factories.


The bearded dragon can lose its front teeth when trying to grab or tear apart their prey. But do not worry because their teeth can grow back.
Central bearded dragons can grow to about 2 feet long. Half of the length of a bearded dragon's body is its tail. Females are usually smaller than males. If a bearded dragon is scared, it will flatten its body against the ground, puff out its spiky throat, and open its jaws to make itself look larger.


--- layout: default title: Home icon: lab permalink: / order: 1 ---
At Liberis Labs we are building a cutting edge ecosystem that enables small businesses to gain easy access to finance…
As the technological engine behind Liberis, Liberis Labs is a group of the Midlands' top developers using the world's leading technology to create the industry's leading small business lending platform.


Coming Soon
(replace with your domain)
This is
Ready to Use
Coming soon page
For your awesome company!!
Flanker
Works
.com
On launch
For more cool stuff
FlankerWorks


| About Dailyrotten |
|
Feedback
If you like this page, hate it, or would like to suggest changes,
<EMAIL_ADDRESS>is listening. This page
is experimental and somewhat different from what we usually offer, so please
do send your feedback.
Adding Stories
If you are a rotten newshound and you would like to suggest a story,
visit our submit page to
send us the URL. Stories that are accepted will have your name credited.
Posting Comments
In order to post comments to stories, you will have to
create an account.
Accounts will generally be validated within 24 hours, and of
course will be disabled if there is abuse.
Viewership
On the first full day this page went live, 100,000 people visited this Rotten
News page. Of course that was the day after the WTC attacks, so that number is
somewhat distorted. Right now this page gets between 50,000 and 75,000 people
every day.
Linking
We encourage everyone to link to this page; if you like it, others probably
will as well.
Other Rotten
Rotten
Gaping Maw
Celebrity Morgue
Mugshots
Rotten Store
Rate My Poo
Rate My Kitten
Rate My Finger
Penny Postcards
Phallic
Boners
Home
Make Dailyrotten your start page
|
|
|
December 12, 2002
Dogshit heist in Texas
South Florida Sun-Sentinel | Submitted by: Bald in NJ
A Texas man spotted another man stealing three plastic bags from his pickup.
Unbeknownst to the thief, the bags contained approximately 8 pounds of
dogshit each. The owner of the dogshit removal company remains perplexed
about the incident, because his truck was clearly labelled.
|
|
Read article...
|
|
Bob and David disrupt Mormon country
Salt Lake Tribune | Submitted by: Soylent
"Early birds watching the KSL television morning news got a bit of a
shock to start their Wednesday: a peek at a risque comedy sketch about a
phone sex company. About 6:30 a.m., video, possibly from the off-color
HBO comedy program, Mr. Show with Bob and David, inexplicably
interrupted anchor Terry Wood on the "Eyewitness News Today."
|
|
Read article...
|
|
Japanese robot car dealers
CNN | Submitted by: anonymous
"The four foot tall machine, shown to reporters Wednesday, already knew
how to walk, climb stairs and recognize voices. An upgraded version now also
understands human gestures and movement... In a demonstration at Honda
headquarters in Tokyo, the new robot understood where a person is pointing
and moved in that direction."
|
|
Read article...
|
|
X-rays of a dog impaled on sprinkler
Melbourne Herald Sun | Submitted by: mickie bitsko
"This amazing X-ray shows the tap firmly wedged in the dog's leg in the
sickening accident. Owner Alison Pearce said she initially could not believe
her boisterous border collie was firmly trapped on a neighbour's tap...
Dr Bird had to cut around the wound to eventually pull the tap free. Its handle
had fully penetrated the dog's leg but amazingly, had not broken any bones."
|
|
Read article...
|
|
Wisconsin a hotspot for UFO's
Wisconsin State Journal | Submitted by: Pool Nazi
"Odds are decent that if someone spends time in the Dundee area, about a 100
miles northeast of Madison, they will see something. It all started with a crop
circle on a nearby farm back in 1947, Benson said. Since then, area residents
have reported strange lights in the sky and other mysteries."
|
|
Read article...
|
|
Condom found after blind 99 y.o. raped
Tiscali World Online | Submitted by: Saddo
A blind 99-year-old woman was raped at her home in South Africa last
night. A man has been arrested for the attack, and a condom found at the
scene is being investigated... Forensic tests would be done on a used
condom that had been found next to the window."
|
|
Read article...
|
|
Saddam's guide to life
Tiscali World Online | Submitted by: Soddom
"Don't be attracted to easy paths because the paths that make your feet
bleed are the only way to get ahead in life; Keep your eyes on your enemy
and be faster than him; Keep people's secrets and don't tell them to
others or use them against them; Don't provoke a snake unless you have
the intention and power to cut off its head." Mmm hmm.
|
|
Read article...
|
|
Knocked up student expelled in China
WHDH-TV 7 Boston | Submitted by: anonymous
"The expulsions of a pregnant student and her boyfriend from a Chinese
university have touched off a rare public debate about sexual morality in
this fast-changing society. The pair was expelled in October after a
school doctor found the 19-year-old woman was pregnant, according to
numerous reports in state media."
|
|
Read article...
|
|
White men still can't jump
South Florida Sun-Sentinel | Submitted by: Bald in NJ
"After looking at your website, I at first was appalled by the outlandish
rhetoric that was used throughout it," wrote Keith RC II, who identifies
himself as a black student at the University of Virginia. "However, the more
I looked at the site the more I was conflicted in my views. At first glance
this seems like a mockery of the black culture and made by ignorant people,
however, it also seems like a mockery of white culture and its ignorance
and constant quest to be 'hip'."
|
|
Read article...
|
|
Romans off the hook for TB
Wire Services | Submitted by: anonymous
"British scientists have found the remains of a man who died of tuberculosis
more than 2,200 years ago, shattering theories the deadly disease was brought
to England by the conquering armies of ancient Rome... Carbon dating shows he
lived between 400 and 230 BC, long before Julius Caesar launched Rome's first
tentative invasion of Britain in 55 BC."
|
|
Read article...
|
|
Man's yard decoration flips drivers the bird
WKMG-TV 6 Orlando | Submitted by: Rio
"A man has placed a giant wooden middle finger among his lawn Santas,
reindeer and lights in one Pompano Beach, Fla., neighborhood. The
homeowner said he was inspired when someone speeding by his yard hit and
killed his Jack Russel terrier, Whiskey. He says his lawn decor is
working like a traffic signal. But while drivers may be slowing down,
neighbors are heating up."
|
|
Read article... and
This article...
|
|
The pot-smoking diet
New York Daily News | Submitted by: Boinkeramma
This has got to be a first: "Fernandez, 33, managed to lose 16 pounds in
just over a month while regularly smoking marijuana, a notorious appetite
stimulant. But losing a potbelly while becoming a pothead did not sit well
yesterday with Brooklyn Federal Judge Carol Amon, who has repeatedly postponed
sentencing Fernandez for gun possession so he could diet and save his mom."
|
|
Read article...
|
|
Transsexual beaten for bathroom hoofprints
Daily Record | Submitted by: Son of Benway
"A transsexual fled her home because she feared her wife would kill her, a
court heard yesterday. Kaye Campbell said Joanne Campbell attacked her after a
row about a Shetland pony in their bathroom. Kaye claimed she was cleaning
hoofprints off the floor when Joanne threw a knife at her, seized her hair,
repeatedly hit her head against a fireplace and struck her with a pot stand."
|
|
Read article...
|
|
Legal Aid by day, sex aid by night
Jamaica Gleaner | Submitted by: Son of Benway
"By night, it is teeming with erotic fervour as ladies of the night trade
their wares, drug addicts loiter and vagrants grab space to lay their heads.
By day, it is a haven, charting a course for the poor to obtain legal
representation in criminal and civil matters... It is the tattered old building
which houses the Montego Bay Legal Aid Clinic... 'The building is being used
nightly as a house of ill-repute for prostitutes and pimps. Whenever the staff
arrives there on most mornings they find condoms in the office.'"
|
|
Read article...
|
|
Evil Wal-Mart strikes again
Firehouse | Submitted by: Son of Benway
"Tara Osmun, 20, was fired Monday from the Pohatcong Township Wal-Mart for
using her employee discount to benefit the Harmony Township Volunteer Fire Co.
She bought almost $1,000 worth of toys to be raffled off by the fire company,
and saved $108 in the process... If Osmun doesn't pay back the money, Wal-Mart
documents say that she could face criminal theft charges."
|
|
Read article...
|
|
Wal-Mart humiliates woman over photos
Salina Journal | Submitted by: BaddASCII
"Tamie Dragone was on a routine shopping trip at Salina's Wal-Mart
Supercenter when, without a second thought, she dropped off a roll of
family snapshots for 1-hour film developing. Now she's suing the store
she says humiliated her and invaded her family's privacy after some
photographs of her 3-year-old daughter caught the eye of photo clerks
and were turned over to Salina police." [We don't really look for
Wal-Mart stories. The company is just that evil.]
|
|
Read article...
|
|
NASA and commercial satellites used against Iraq
Aviation Now | Submitted by: Crazy Quagga
"The U.S. Navy is leading an initiative to exploit advanced new NASA and
commercial environmental satellite imagery and data to aid time-critical
strike planning, including weapons selection, for Afghanistan and potential
other target areas in the Middle East, such as Iraq." i.e., the MILITARY is
using a CIVILIAN government agency to do its dirty work, much as the
government uses the Postal Service to "spy" on Americans.
|
|
Read article...
|
|
The economics of spanking
Slate | Submitted by: SeMeN SPeRmS
"He found that if you're a kid in a $6,000 a year household, you probably get
spanked every six weeks or so. If your parents' annual income goes up to
$17,000, you'll get spanked about once every four months. As income rises
above about $17,000, spanking falls off more slowly; $40,000 and $120,000
households are not much different from $17,000 households."
|
|
Read article...
|
|
How do you operate this rifle, honey?
Boston Globe | Submitted by: Gary MiddleMan
Article about mid-page: "A Sunderland woman has been ordered held after
pleading not guilty to shooting her husband. Lori T. Pratt, 30, was charged
with attempted murder and aggravated domestic assault. Authorities say she
shot Dennis Pratt, 21, with a .22-caliber rifle after arguing about money
and after she found a pornographic video under their bed. Pratt was hit in
the shoulder. Police said that during the altercation, Lori Pratt vowed to
shoot her husband if he tried to dial 911, and also asked him for instructions
on how to use the gun, which he gave."
|
|
Read article...
|
|
German cannibal found willing victims on internet
Times | Submitted by: SeMeN SPeRmS
"Police declined comment on reports that they first flambeed the organ in
spirits, then, after tasting it, decided to fry it..." and this quote from
an alarmed tabloid: "They are invisible behind their glasses, their
hairstyles, their families, their work, their seemingly unblemished
innocence.
|
|
Read article... and
This article...
|
|
Tupperware party sported body parts
News Corporation | Submitted by: SR
"Warner was arrested in August after police responded to a domestic battery
complaint at his Gainesville home and found preserved heads, brains, arms and
other body parts at his house, some stored in plastic Tupperware containers.
Body parts were also removed from his office in Lake City."
|
|
Read article...
|
|
Politician trapped in bathroom stall
News Corporation | Submitted by: SR
"Mr Slipper pushed the alarm button and rang fellow Liberal MP Peter
Lindsay on his mobile phone to summon help. The Tuesday night rescue mission
was easily accomplished. Mr Slipper had unsuccessfully pushed and pulled the
door to the disabled access toilet. But it was a sliding door. Four security
guards who raced to his aid calmly slid it open."
|
|
Read article...
|
|
Store reindeer loses its shiny testicles
Wire Services | Submitted by: Melonite
Some busybody complained about a Cape Town mall reindeer's shiny plastic
testicles, which were then forcibly removed. "A spokesman for the company
which made the display, told the Cape Argus newspaper that the baubles
were "anatomically correct for an animal of that size" and were prominent
because of the reindeer's central position in the display."
|
|
Read article...
|
|
Austrians: down with Santa
Newsday | Submitted by: Dirty Sammy
"Organizers insist they're not anti-Santa. But stickers depicting Santa
with a diagonal red bar across his fluffy white beard are showing up on the
stalls of Vienna's outdoor Christmas markets, where bundled-up shoppers
browse for gifts while holding steaming cups of hot mulled wine or
spiked punch in mittened hands."
|
|
Read article...
|
|
Black students their own worst enemy
Mississippi Clarion-Ledger | Submitted by: Dirty Sammy
"Three African-American students at the University of Mississippi have been
accused of writing racist graffiti on doors outside rooms of two other black
students in the Kincannon residence hall on the Oxford campus. The students,
all freshmen, wrote vulgar and obscene messages at three other locations
in the dorm."
|
|
Read article...
|
|
Kite surfer plunges into parked car
New Zealand Herald | Submitted by: Zarcie
"I remember the exhilaration of being lifted and then I remember waking
up in the ambulance," Mr Baker said. He was wearing a helmet, padded harness
and full wetsuit... Ambulance staff said the parked car Mr Baker hit looked
as if a motorcycle had slammed into it."
|
|
Read article...
|
|
St. Louis alderwoman pees in council debate
ABC News | Submitted by: Jim McParlan
"Smith was told she would lose control of the floor if she left to use
the restroom. So 40 minutes later, supporters surrounded her with sheets
and other items while she appeared to urinate into a trash can. The
incident was captured on camera and aired repeatedly on local newscasts."
|
|
Read article...
|
|
Lamest... auction... ever...
News Corporation | Submitted by: Dirty Sammy
"A 'teaser card' holding clues to the plot of the long-awaited fifth Harry
Potter novel has gone under the hammer for almost $81,800 in London,
auctioneers Sotheby's said... Sotheby's would not reveal the full contents
of the card, which was bought by an unidentified American collector, saying
only that it included the words: "thirty-eight chapters ... might change ...
longest volume ... Ron ... broom ... sacked ... house-elf ... new ...
teacher ... dies ... sorry."
|
|
Read article...
|
|
Mom just teaching 6 year old the ropes
ABC TV affiliates | Submitted by: Milk Bone
"Police say an exotic dancer who participated in a sex party with another
woman, while that woman's young daughter watched, has turned herself in.
Police were looking for the woman after the young girl's father found photos
from the party. They showed the two women in sexually explicit activities,
with the six-year-old girl looking on." Includes photo of the pillar
of the community.
|
|
Read article...
|
|
|
|
|


To use this language, use the class "language-gherkin".
// Single line comment
/* Multi-line
comment */
"foo \"bar\" baz"
'foo \'bar\' baz'
Feature: Some terse yet descriptive text of what is desired
In order to realize a named business value
As an explicit system actor
I want to gain some beneficial outcome which furthers the goal
Additional text...
Scenario: Some determinable business situation
Given some precondition
And some other precondition
When some action by the actor
And some other action
And yet another action
Then some testable outcome is achieved
And something else we can check happens too
Scenario: A different situation
...


Written by Laurance Walden using HTML Canvas and Javascript.
View more of my work on my Portfolio Page.
Read more about Conway's Game of Life on Wikipedia.
The board contains 6400 cells. Cells on the edge of the grid are considered connected to cells on the opposite side. This
casues 'gliders' and simlar patterns to wrap around the screen.


Brew type: {{ activeBrew.type }}
Brew date:
Status:
Last active:
Samples left:
Amount:
Total fermentation period:
Fermentation days left:
Preferred fermentation temperature:
Bottled days left:
Caramunich, 4220g


Connecting . . . Please Wait.
Uploading File . . . Please Wait.
Uploading Data . . . Please do not refresh or leave the page!
Success ! Details uploaded.
Warning ! Mobile Number Field is empty.
Warning ! File is not selected yet.
Warning ! Address Field is empty.
Warning ! Emergency Address Field is empty.
Warning ! Date of Departure is not provided.
Warning ! Date of Arrival is not provided.
Warning ! Guide Name is not provided.
Warning ! Time of Arrival is not selected.
Warning ! Time of Departure is not selected.
Warning ! Enter Principle Project Investigator's name.
Warning ! Project Code not provided.
Warning ! Contract up to field is empty.
Warning ! Purpose field is empty.
Info ! Acceptable Formats: +919876543210 or +91-9876543210 or<PHONE_NUMBER>.
You can also enter landline number instead. Acceptable Formats: 0381-2345678.
Info ! Provide address along with pin code.
Info ! All form fields are mandatory.
Invalid Student Name ! Name can not contain digits or special characters.
Error ! Invalid e-mail address.
Error ! Invalid Mobile Number.
Info ! PS/M.Tech./ Ph.D Students if you vacate the room on account
of completion/other reasons. Attach a copy medical document if any / leave approved from Dept. concerned.


Continue Failed Timed Out Repeat Wait for more Conversation Complete Go to {% branch.execute.script | truncateString:35:true %}:{% branch.execute.thread | truncateString:35:true %}
if no condition matches
Continue Failed Timed Out Repeat Wait for more Conversation Complete Go to {% option.execute.script | truncateString:35:true %}:{% option.execute.thread | truncateString:35:true %}


| Overview | Namespace | Class | Index | Help |
| LIST OF: | VALUES |
Values |
|
| RT_MODE_INVALID |
|
| RT_MODE_ONEWAY |
|
| RT_MODE_ONEWAY_CONST |
|
| RT_MODE_TWOWAY |
|
| RT_MODE_TWOWAY_CONST |
|
| RT_MODE_ATTRIBUTE_GET |
|
| RT_MODE_ATTRIBUTE_SET |
|
Copyright © 2012, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


class: center, middle, inverse, title-slide #
Getting Started in R
an introduction to data analysis and visualisation
## babynames ### Réka Solymosi & Sam Langton ### 1 July 2019 --- ### `babynames` Names of boys and girls born each year in the U.S. since 1880 ```r library(babynames) babynames ``` ``` ## # A tibble: 1,924,665 x 5 ## year sex name n prop ## <dbl> <chr> <chr> <int> <dbl> ## 1 1880 F Mary 7065 0.0724 ## 2 1880 F Anna 2604 0.0267 ## 3 1880 F Emma 2003 0.0205 ## 4 1880 F Elizabeth 1939 0.0199 ## 5 1880 F Minnie 1746 0.0179 ## 6 1880 F Margaret 1578 0.0162 ## 7 1880 F Ida 1472 0.0151 ## 8 1880 F Alice 1414 0.0145 ## 9 1880 F Bertha 1320 0.0135 ## 10 1880 F Sarah 1288 0.0132 ## # ... with 1,924,655 more rows ``` --- class: center, middle  --- ## The R code ```r library(tidyverse) ; library(babynames) babynames %>% filter(name == "Mabel") %>% ggplot(data = ., aes(x = year, y = n)) + geom_line(aes(color = sex), size = 2) + scale_color_manual(values = c("#66c2a5", "#ff7f00"), labels = c("Female", "Male")) + labs(title = "Babies named Mabel between 1880 and 2015", x = "Year", y = "Frequency", caption = "Source: Social Security Administration", color = "") + theme_minimal() + theme(legend.position = "top") ggsave("baby_plot.png", scale=1, dpi=300) ``` --- class: center, middle, inverse # Break it down --- ### Load the R packages
 .pull-left[ ```r *library(tidyverse) ; library(babynames) babynames %>% filter(name == "Mabel") %>% ggplot(data = ., aes(x = year, y = n)) + geom_line(aes(color = sex), size = 2) + scale_color_manual(values = c("#66c2a5", "#ff7f00"), labels = c("Female", "Male")) + labs(title = "Babies named Mabel between 1880 and 2015", x = "Year", y = "Frequency", caption = "Source: Social Security Administration", color = "") + theme_minimal() + theme(legend.position = "top") ggsave("baby_plot.png", scale=1, dpi=300) ``` ] ``` ## Registered S3 methods overwritten by 'ggplot2': ## method from ## [.quosures rlang ## c.quosures rlang ## print.quosures rlang ``` ``` ## -- Attaching packages ----------------------------------------------------- tidyverse 1.2.1 -- ``` ``` ## v ggplot2 3.1.1 v purrr 0.3.2 ## v tibble 2.1.1 v dplyr 0.8.1 ## v tidyr 0.8.3 v stringr 1.4.0 ## v readr 1.3.1 v forcats 0.4.0 ``` ``` ## -- Conflicts -------------------------------------------------------- tidyverse_conflicts() -- ## x dplyr::filter() masks stats::filter() ## x dplyr::lag() masks stats::lag() ``` --- ### Access the `babynames` data
 .pull-left[ ```r library(tidyverse) ; library(babynames) *babynames %>% filter(name == "Mabel") %>% ggplot(data = ., aes(x = year, y = n)) + geom_line(aes(color = sex), size = 2) + scale_color_manual(values = c("#66c2a5", "#ff7f00"), labels = c("Female", "Male")) + labs(title = "Babies named Mabel between 1880 and 2015", x = "Year", y = "Frequency", caption = "Source: Social Security Administration", color = "") + theme_minimal() + theme(legend.position = "top") ggsave("baby_plot.png", scale=1, dpi=300) ``` ] .pull-right[ ``` ## # A tibble: 1,924,665 x 5 ## year sex name n prop ## <dbl> <chr> <chr> <int> <dbl> ## 1 1880 F Mary 7065 0.0724 ## 2 1880 F Anna 2604 0.0267 ## 3 1880 F Emma 2003 0.0205 ## 4 1880 F Elizabeth 1939 0.0199 ## 5 1880 F Minnie 1746 0.0179 ## 6 1880 F Margaret 1578 0.0162 ## 7 1880 F Ida 1472 0.0151 ## 8 1880 F Alice 1414 0.0145 ## 9 1880 F Bertha 1320 0.0135 ## 10 1880 F Sarah 1288 0.0132 ## # ... with 1,924,655 more rows ``` ] --- ### Subset the data
 .pull-left[ ```r library(tidyverse) ; library(babynames) babynames %>% * filter(name == "Mabel") %>% ggplot(data = ., aes(x = year, y = n)) + geom_line(aes(color = sex), size = 2) + scale_color_manual(values = c("#66c2a5", "#ff7f00"), labels = c("Female", "Male")) + labs(title = "Babies named Mabel between 1880 and 2015", x = "Year", y = "Frequency", caption = "Source: Social Security Administration", color = "") + theme_minimal() + theme(legend.position = "top") ggsave("baby_plot.png", scale=1, dpi=300) ``` ] .pull-right[ ``` ## # A tibble: 187 x 5 ## year sex name n prop ## <dbl> <chr> <chr> <int> <dbl> ## 1 1880 F Mabel 808 0.00828 ## 2 1881 F Mabel 893 0.00903 ## 3 1882 F Mabel 997 0.00862 ## 4 1883 F Mabel 1086 0.00905 ## 5 1883 M Mabel 6 0.0000533 ## 6 1884 F Mabel 1270 0.00923 ## 7 1885 F Mabel 1349 0.00950 ## 8 1885 M Mabel 7 0.0000604 ## 9 1886 F Mabel 1422 0.00925 ## 10 1886 M Mabel 6 0.0000504 ## # ... with 177 more rows ``` ] --- ### Initialise a `ggplot()` object, inherit the filtered data, and map variables to the x and y axes .pull-left[ ```r library(tidyverse) ; library(babynames babynames %>% filter(name == "Mabel") %>% * ggplot(data = ., aes(x = year, y = n)) + geom_line(aes(color = sex), size = 2) + scale_color_manual(values = c("#66c2a5", "#ff7f00"), labels = c("Female", "Male")) + labs(title = "Babies named Mabel between 1880 and 2015", x = "Year", y = "Frequency", caption = "Source: Social Security Administration", color = "") + theme_minimal() + theme(legend.position = "top") ggsave("baby_plot.png", scale=1, dpi=300) ``` ] .pull-right[ ![](slides_files/figure-html/unnamed-chunk-6-1.png) ] --- ### Use `geom_line()` to connect observations, map the `sex` variable to colour and set line thickness .pull-left[ ```r library(tidyverse) ; library(babynames) babynames %>% filter(name == "Mabel") %>% ggplot(data = ., aes(x = year, y = n)) + * geom_line(aes(color = sex), size = 2) + scale_color_manual(values = c("#66c2a5", "#ff7f00"), labels = c("Female", "Male")) + labs(title = "Babies named Mabel between 1880 and 2015", x = "Year", y = "Frequency", caption = "Source: Social Security Administration", color = "") + theme_minimal() + theme(legend.position = "top") ggsave("baby_plot.png", scale=1, dpi=300) ``` ] .pull-right[ ![](slides_files/figure-html/unnamed-chunk-7-1.png) ] --- ### Specify which colours the `sex` variable is mapped to  .pull-left[ ```r library(tidyverse) ; library(babynames) babynames %>% filter(name == "Mabel") %>% ggplot(data = ., aes(x = year, y = n)) + geom_line(aes(color = sex), size = 2) + * scale_color_manual(values = c("#66c2a5", "#ff7f00"), * labels = c("Female", "Male")) + labs(title = "Babies named Mabel between 1880 and 2015", x = "Year", y = "Frequency", caption = "Source: Social Security Administration", color = "") + theme_minimal() + theme(legend.position = "top") ggsave("baby_plot.png", scale=1, dpi=300) ``` ] .pull-right[ ![](slides_files/figure-html/unnamed-chunk-8-1.png) ] --- ### Add a title, label the axes, include a caption, and drop the legend title  .pull-left[ ```r library(tidyverse) ; library(babynames) babynames %>% filter(name == "Mabel") %>% ggplot(data = ., aes(x = year, y = n)) + geom_line(aes(color = sex), size = 2) + scale_color_manual(values = c("#66c2a5", "#ff7f00"), labels = c("Female", "Male")) + * labs(title = "Babies named Mabel between 1880 and 2015", * x = "Year", * y = "Frequency", * caption = "Source: Social Security Administration", * color = "") + theme_minimal() + theme(legend.position = "top") ggsave("baby_plot.png", scale=1, dpi=300) ``` ] .pull-right[ ![](slides_files/figure-html/unnamed-chunk-9-1.png) ] --- ### Use a `ggplot2` theme to format the chart
 .pull-left[ ```r library(tidyverse) ; library(babynames) babynames %>% filter(name == "Mabel") %>% ggplot(data = ., aes(x = year, y = n)) + geom_line(aes(color = sex), size = 2) + scale_color_manual(values = c("#66c2a5", "#ff7f00"), labels = c("Female", "Male")) + labs(title = "Babies named Mabel between 1880 and 2015", x = "Year", y = "Frequency", caption = "Source: Social Security Administration", color = "") + * theme_minimal() + theme(legend.position = "top") ggsave("baby_plot.png", scale=1, dpi=300) ``` ] .pull-right[ ![](slides_files/figure-html/unnamed-chunk-10-1.png) ] --- ### Move the legend to the top of the plot
 .pull-left[ ```r library(tidyverse) ; library(babynames) babynames %>% filter(name == "Mabel") %>% ggplot(data = ., aes(x = year, y = n)) + geom_line(aes(color = sex), size = 2) + scale_color_manual(values = c("#66c2a5", "#ff7f00"), labels = c("Female", "Male")) + labs(title = "Babies named Mabel between 1880 and 2015", x = "Year", y = "Frequency", caption = "Source: Social Security Administration", color = "") + theme_minimal() + * theme(legend.position = "top") ggsave("baby_plot.png", scale=1, dpi=300) ``` ] .pull-right[ ![](slides_files/figure-html/unnamed-chunk-11-1.png) ] --- ### Save the plot as a png at a high resolution
 .pull-left[ ```r library(tidyverse) ; library(babynames) babynames %>% filter(name == "Mabel") %>% ggplot(data = ., aes(x = year, y = n)) + geom_line(aes(color = sex), size = 2) + scale_color_manual(values = c("#66c2a5", "#ff7f00"), labels = c("Female", "Male")) + labs(title = "Babies named Mabel between 1880 and 2015", x = "Year", y = "Frequency", caption = "Source: Social Security Administration", color = "") + theme_minimal() + theme(legend.position = "top") *ggsave("baby_plot.png", scale=1, dpi=300) ``` ] .pull-right[ ![](slides_files/figure-html/unnamed-chunk-12-1.png) ] --- class: center, middle, inverse # Your turn


Example "Editing a variable-length list, Knockout-style" from Steven Sanderson's blog
This is a complex sample demonstrating work with complex collection (including deleting elements by their index) and validation of forms using jQuery.Validation.
The original example: http://blog.stevensanderson.com/2010/07/12/editing-a-variable-length-list-knockout-style/


Documents released by whistleblower Edward Snowden about the XKeyScore NSA surveillance programme show that simply visiting specific websites, searching for specific keywords, connecting to specific web servers or even receiving an email containing specific keywords is enough to make you a target for surveillance.
Many of these websites are home to Free and Open Source Software and tools focused on protecting your online privacy, which the NSA describe as "extremist websites".
When you visited this page your browser opened a number of these websites and searched these keywords, making you a target for surveillance! Large amounts of your internet activity may be logged and much it will be stored indefinitely by the National Security Agency.
Visit our sister site to learn how to protect your online privacy.
Or prank your friends/foes by sending them the following link. When they click on it they too will automatically become an NSA target!
Or Click here to view the original leaked XkeyScore definitions to see where we got these websites/search terms.
You can also give us some Bitcoins: 12YBYpNRzHdupqbV2cFucPcC7EacP964ov
Send the following link to your friends or enemies.
Once they click on it NSA surveillance will be enabled automatically!
Tired of the NSA violating your privacy? Visit our sister site to learn how to protect your privacy online!


Force Framework breadcrumb style
Force Framework extra modified
Library
Data
Detail
Library
Data
Detail
Library
Data
Detail
Library
Data
Meta Data
Multimeta Data
Detail
Force Framework modified
Library
Data
Detail
Home
Library
Data
Detail
Original Force Framework
Home
Library
Data
Detail
Fork over Github:
@mrdogra007
Follow me on Twitter:
@mrdogra007


Pidgey is an underwhelming threat in the Petit Cup metagame. With middling stats and a mediocre movepool at best, Pidgey struggles to make an impact. It's stonewalled by Gastly and Geodude due to its lack of coverage, making it very easy to stop. However, it does have some minor qualities that give it somewhat of a niche. Its Flying typing gives it an immunity to Earthquake, which provides it with some points of entry. On top of this, it's one of the few Pokémon in the metagame with access to Quick Attack, which allows it to pick off fast and frail threats like Abra. It also makes Pidgey substantially better at dealing with Agility users. Outside of this though, Pidgey doesn't have much to offer, often being outclassed by Spearow and Farfetch'd as a Flying-type.
Level: 25 / 28
- Double-Edge
- Quick Attack
- Double Team / Wing Attack
- Rest
This is about all that Pidgey can muster in terms of a moveset. While Pidgey doesn't get Body Slam, Double-Edge hits surprisingly hard, especially against frailer threats. Quick Attack gives Pidgey priority, and since it's the main reason you would use it, it should also be considered mandatory. Pidgey doesn't have much in the way of other attacks though, but Double Team + Rest is always a decent combination to try and give it staying power. Should Evasion tactics not be enticing, Pidgey can have levels invested to allow it to use Wing Attack, which allows it to hit Gastly and 2HKO Paras. However, it's pitifully weak outside of these roles, and is mostly novelty.
In the rare case you use Pidgey, it should be used to pick off weakened threats. This is best done by bringing it in on an Earthquake from threats like Sandshrew and Diglett, though you should be wary of Rock Slide. After that, Pidgey should attempt to take out the foe in one go using the STAB most appropriate for the situation. All in all, Pidgey should use a hit and run playstyle.
Pidgey does have some alternative options, though they're not great. Substitute allows Pidgey to block Thunder Wave paralysis, but Double Team + Rest tends to work just fine for avoiding it while giving Pidgey stalling capabilities. Sky Attack or Fly could be used alongside Substitute, but it's inconsistent and smart switching tends to foil the plan quite quickly. Toxic could be used to get chip damage in, though a lot of the time paralysis is more desirable.
Gastly: Gastly is immune to Double-Edge and Quick Attack, is faster, and has Hypnosis access. It can easily 2HKO Pidgey with Thunderbolt, sometimes OHKO with the right level difference. All Pidgey can do here is try to 5HKO with Wing Attack. This is an extremely lopsided matchup.
Geodude: Geodude resists literally every attacking move Pidgey has, and can destroy it with Rock Slide. While Pidgey can use Toxic to try and put Geodude on a timer as counterplay, it's already on one given it's going to Explode eventually anyway. There's just not much Pidgey can do here.
Pikachu and Magnemite: Both have powerful STAB Thunderbolts to throw at Pidgey, usually OHKOing it. Pikachu does have more risk involved if trying to counter Pidgey though, as Double-Edge is a very likely 2HKO. As a result, a paralyzed Pikachu is not a Pidgey counter.
Omanyte and Kabuto: While any Water-type with Blizzard can qualify here, these two are the best at pulling this off thanks to their resistance to any attack Pidgey throws at them. Omanyte can OHKO Pidgey with Blizzard, while Kabuto will always 2HKO. However, Kabuto doesn't tend to carry Blizzard all the time. Kabuto's Body Slam is a near-guaranteed 3HKO regardless, and Pidgey deals around 16% with Double-Edge while continually sustaining recoil anyway, effectively guaranteeing said 3HKO.
Author: Plague von Karma
Quality Checked by: Beelzemon 2003
Grammar Checked by: Eseque
Publish Date: 8th October 2020


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/Literate.20Lean.html ---
Is anyone working on a way to produce more mathematically-typical summaries of Lean theories? This is an important part of the workflow in Mizar: see Bancerek (2006) "Automatic translation in formalized mathematics"; Bancerek et al (2018) "The Role of the Mizar Mathematical Library for Interactive Proof Development in Mizar". I notice that the basic style in mathlib
doesn't include a lot of comments, e.g., continuity.lean
includes 7 doc strings and 120 lemmas.
I think you can find some of that documentation here: https://github.com/leanprover/mathlib/tree/master/docs/theories
@Simon Hudon Thanks, that's a good starting place for me to read, anyway!
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Peyton Marmoll - Assignment 2
My LinkedIn Profile
NIU COB OMIS HomePage
Here is my website to show my completion of Assignment 2 Chapter 3. "


| Class | OpenID::AX::FetchRequest |
| In: |
lib/openid/extensions/ax.rb
|
| Parent: | AXMessage |
An attribute exchange ‘fetch_request’ message. This message is sent by a relying party when it wishes to obtain attributes about the subject of an OpenID authentication request.
| requested_attributes | [R] | |
| update_url | [RW] |
Extract a FetchRequest from an OpenID message message: OpenID::Message return a FetchRequest or nil if AX arguments are not present
Add an attribute to this attribute exchange request. attribute: AttrInfo, the attribute being requested Raises IndexError if the requested attribute is already present
in this request.


XML Flattener tutorial: how to create a flat file from a PSI XML file |
The purpose of this tutorial is is to provide a step by step guide for the user who wants to extract information from a PSI XML file and produce an output in a flat file format. In the output file each line will describe a protein interaction.
The first step consists in the loading of the PSI schema and it is achieved by clicking the “open a schema” button. The file is called MIF.xsd and is available at the PSI web page. You can also find it in the directory data. Once the schema is loaded, the root node should be displayed in the main frame. It is named entrySet. Some nodes are colored in red, indicating that this element in the PSI document should never be empty according to the XML schema.
 This step can take some time as the application is checking the file.
Since we want each line of the flat file to describe an interaction, we select the node interaction (entrySet, entry, interactionList, interaction) and click on node describing a line. This node is now colored in blue.
If we had not done this selection, the application would have looked by itself for the node supposed to be the most representative of a line once we had began to select some nodes (it would be looking for the last duplicable node that groups all selected nodes).
Now we can choose the elements we want to have in the flat file. For example if we want the short label of the interaction, we select the node shortLabel (interaction, names, shortLabel) and press the button select this node. The node is now colored black. [shortLabel] should now appear in the frame titled preview indicating that the flat file will contain one column for the shortLabel. Next if for instance we want the shortLabel of the interactor to be present in the flat file, we click on participantList, proteinParticipant, (proteinInteractorRef|proteinInteractor) that is automaticaly expanded, proteinInteractor, names and shortLabel, and press select this node.
The flattener will be looking down in the document for the maximum number of interactors participating in an interaction described in the specific XML file. If the largest interaction involves ten proteins, it will add ten columns for the short labels. The references are also taken into account, so even if the PSI document is normalized, the flattener will go deep to the references to find the short label of the referenced interactors. In fact, we should never select a reference that does not contain any real information but let the application get down to it as if the file was not normalized.
Before printing the flat file we can choose the fields separator (for example |, ; or ,).
We can finally print the flat file by pressing the button print.
This software has been created at the University of Roma "Tor Vergata" by Arnaud Ceol with help of the Mint Group. For any information you can contact me at<EMAIL_ADDRESS>PSI: the Proteomics Standards Initiative


PROFESSIONAL EXPERIENCE
Dunkin’, 3845 Richmond Ave — cashier crew
2018 - 2020
-
Experienced with cash registers
-
Capable of serving and helping customers
-
Bakery and kitchen responsibilities
-
Experienced with restocking the store and completing
inventory
EDUCATION
College of Staten Island, 2800 Victory Blvd
2018 - PRESENT
-
Majoring in Computer Science (BS)
-
Assembly x86, Data Structures(C++), Digital Design,
Computer Circuits
-
GPA: 3.931 ; Dean's List 2018-2019
-
Class of 2022 (Anticipated)
Tottenville Highschool, 100 Luten Ave — Diploma
2017 - 2018
Excellence International School, Saudi Arabia — IGCSE
2015 - 2017
-
International General Certificate of Secondary Education
(IGCSE) provided by Cambridge University, received from
Excellence International School.
PROJECTS
-
https://github.com/AndreaHabib
-
Utilized C++ to develop a ToDo-List program that contains many
important features to accommodate the user needs.
-
CUNY Hackathon 2019 - Utilized IBM Watson NLP and Python, and
created a program that sends alert text messages of Wildfire
based on nearby Twitter activity.
|
SKILLS
-
C++, Java, MATLAB, Python, Git, React.js, HTML5, CSS3,
Javascript, Restful API, PostgreSQL
-
Visual Studio, Intellij, Spyder, Brackets, Github, Visual
Studio Code, Git Bash
Technical skills:
- PC troubleshooting
-
Microsoft word and powerpoint proficiency
LANGUAGES
English, Arabic
ACTIVITIES
Computer Science Club
CUNY Hackathon 2019
Tech Talent Pipeline Summer 2020
CUNY 2X
|


This tutorial explains how to use the Heap Profiler for uncovering memory leaks in your applications.
Read the Memory 101 page to become familiar with the terms used in this document.
Note: If you are a Web Developer and want to get the latest version of Developer Tools, you should use the Google Chrome release from the Developer Channel.
Contents
Basic functions
Taking a snapshot
On the Profiles tab, select the Take Heap Snapshot option and press Start:
Snapshots are initially stored in the renderer process memory. They are transferred to the DevTools on demand, when you click on the snapshot icon to view it. After the snapshot has been loaded into DevTools and has been parsed, the number below the snapshot title appears and shows the total size of the reachable JavaScript objects:
Clearing snapshots
Snapshots can be removed (both from DevTools and renderer's memory) by pressing the Clear all profiles button:
Note: Closing the DevTools window will not delete collected profiles from the renderer's memory. When reopening DevTools, all previously taken snapshots will reappear in the list of snapshots.
Switching between snapshot views
A snapshot can be viewed from different perspectives for different tasks. To switch between views, use the selector at the bottom of the view:
There are four views:
- Summary — shows objects grouped by the constructor name;
- Comparison — displays difference between two snapshots;
- Containment — allows exploration of heap contents;
- Dominators — shows dominators tree.
Looking up color coding
Properties and property values of objects have different types and are colored accordingly. To view the type color legend, press the question mark button on the status bar:
Each property has one of four types::
-
property — a regular property with a name,
accessed via the
.
(dot) operator, or via[]
(brackets) notation, e.g.["foo bar"]
; -
element — a regular property with a numeric
index, accessed via
[]
(brackets) notation; - context variable — a variable in a function context, accessible by its name from inside a function closure;
- system property — property added by the JavaScript VM, not accessible from JavaScript code.
Objects designated as System don't have corresponding JavaScript types. They are part of JavaScript VM's object system implementation.
Views in detail
Summary view
Initially, a snapshot opens in the Summary view, displaying object totals, which can be expanded to show instances:
Top-level entries are "total" lines. They display the constructor name, and group all objects created using this constructor. The number of object instances is displayed in the # column. The Shallow size column displays the sum of shallow sizes of all objects created by a certain constructor function. The Retained Size column displays the maximum retained size among the same set of objects.
After expanding a total line in the upper view, all of its instances are displayed. For each instance, its shallow and retained sizes are displayed in the corresponding columns. The number after the @ character is the object unique ID, allowing to compare heap snapshots on per-object basis.
Try this demo page (opens in a new tab) to understand how the Summary view can be used.
Comparison view
When more than one heap snapshot is taken, it is possible to compare them, and find leaked objects. To verify that a certain application operation doesn't create leaks (e.g. usually a pair of direct and reverse operations, like opening a document, and then closing it, should not leave any garbage), you may follow the scenario below:
- take a heap snapshot before performing an operation;
- perform an operation (e.g. open a document);
- perform a reverse operation (close the document);
- take a heap snapshot.
In the Comparison view, the difference between two snapshots is displayed. When expanding a total entry, added and deleted object instances are shown:
Try this demo page (opens in a new tab) to get an idea how to use snapshot comparison for detecting leaks.
Containment view
The Containment view is essentially a "bird's eye view" of your application's objects structure. It allows you to peek inside function closures, to observe VM internal objects that together make up your JavaScript objects, and to understand how much memory your application uses at a very low level.
The view provides several entry points:
-
DOMWindow
objects — these are objects considered as "global" objects for JavaScript code; - GC roots — actual GC roots used by VM's garbage collector;
- Native objects — browser objects that are "pushed" inside the JavaScript virtual machine to allow automation, e.g. DOM nodes, CSS rules (see the next section for more details.)
Below is the example of what the Containment view looks like:
Try this demo page (opens in a new tab) for finding out how to explore closures and event handlers using the view.
Uncovering DOM leaks
The unique ability of the new tool is to reflect bidirectional dependencies between browser native objects (DOM nodes, CSS rules) and JavaScript objects. This helps to discover otherwise invisible leaks happening due to forgotten detached DOM subtrees floating around.
Native objects are most easily accessible from Summary and Containment views — there are dedicated entry nodes for them:
Try this demo page (opens in a new tab) to play with detached DOM trees.
Dominators view
The Dominators view shows the dominators tree for the heap graph. The Dominators view looks similar to the Containment view, but lacks property names. This is because a dominator of an object may lack direct references to it, that is, the dominators tree is not a spanning tree of the graph. But this only serves for good, as helps us to identify memory accumulation points quickly.
Try this demo page (opens in a new tab) to train yourself in finding accumulation points.
Retaining paths
The retaining paths view is always displayed. To activate it, click on an
object in the upper pane, regardless of what view is currently active. The
profiler will start looking up for simple paths from roots to the object
selected. It will start from shorter paths, gradually increasing walking
distance. It is possible to restrict the roots set to DOMWindow
objects, instead of all GC roots. This is helpful for finding references
originating from the application itself — they are the most probable
sources for leaks:
In the simplest case, the path will only include "true" JavaScript objects and use references that are accessible from JavaScript code, e.g.:
<EMAIL_ADDRESS><EMAIL_ADDRESS>click event"]
Such paths can be easily evaluated in the debugger console if the appropriate context has been entered. For example, if an application has several iframes, execution must be suspended during running a function code belonging to it). Evaluating a path makes it possible to examine the complete contents of each object, including properties whose values not stored in the heap, and thus not captured in a snapshot.
Often it happens that an object is retained via closures. Closure references
are displayed using the ->
notation:
<EMAIL_ADDRESS><EMAIL_ADDRESS>Even more advanced are paths including "hidden"
objects. Normally, the existence of such paths doesn't mean that an
application has a leak. Some of the paths are "low level"
paths, equivalent to their JavaScript shortcuts. E.g., every object
has elements
and properties
internal arrays,
thus a property value can be displayed as held directly by an object
(this is how a JavaScript programmer sees it), or as an element of the
properties
array (this is how the JavaScript virtual machine
actually accesses it.) Knowing these details might help in getting an
understanding of how the virtual machine works. However, for most of web
application developers it is safe to ignore them. Below are some examples of
"internal" paths:
GCRoots@1[254]
-
DOMWindow@1234{prop}{1}
— this is equivalent to a JavaScript<EMAIL_ADDRESS><EMAIL_ADDRESS>Q&A
- I don't see all the properties of objects, I don't see non-string values for them! Why?
- Not all properties are actually stored on the JavaScript heap. Some of them are implemented using getters that execute native code. Such properties are not captured in heap snapshots in order to avoid the cost of calling getters and to avoid possible program state changes if getters are not "pure" functions. Also, non-string values such as numbers are not captured in an attempt to reduce snapshot size.
- What does the number after
the
@
char mean — is this an address or an ID? Is the ID value really unique? - This is an object ID. Displaying an object's address makes no sense, as objects are moved during garbage collections. Those object IDs are real IDs — that means, they persist among multiple snapshots taken. This allows precise comparison between heap states. Maintaining those IDs adds an overhead to GC cycles, but it is only initiated after the first heap snapshot was taken — no overhead if heap profiles aren't used.
- Are "dead" (unreachable) objects included in snapshots?
- No. Only reachable objects are included in snapshots. Also, taking a snapshot always starts with doing a GC.
- What comprises GC roots?
- Many things:
- built-in object maps;
- symbol table;
- stacks of VM threads;
- compilation cache;
- handle scopes;
- global handles.


NFL says 11 teams have signed up for Kaepernick’s audition
by KNOENEW YORK (AP) — The NFL said Thursday that 11 teams have committed to attending Colin Kaepernick’s workout in Atlanta this weekend and that more teams are expected to attend the former NFL quarterback’s audition.
The league also announced that two former NFL head coaches will be in attendance: Hue Jackson, who will lead the drills, and Joe Philbin.
The NFL said it will send video of the workout and interview to all 32 of its teams, including head coaches and general managers.
The teams that have RSVP’d so far are: the Arizona Cardinals, Atlanta Falcons, Cleveland Browns, Denver Broncos, Detroit Lions, Miami Dolphins, New England Patriots, New York Giants, New York Jets, Tampa Bay Buccaneers and Washington Redskins.
Kaepernick hasn't played since 2016 with the San Francisco 49ers. He helped start a wave of protests about social and racial injustice that season by kneeling during the national anthem at games.
___
More AP NFL: https://apnews.com/NFL and https://twitter.com/AP_NFL
Copyright 2019 Associated Press. All rights reserved.