Settings
General
Shortcuts
General
Save to
Clipboard
Custom Image Host
Imgur
Local
PyroCDN
URL
Headers
Response
Key
URL
Shortcuts
Capture Full Screen
Capture Selection
Capture Window
Open Settings
Update Settings


Not much here yet, but try:
GET /v1/search?q=something
{ "total": 54499, "max_score": 3.8840022, "page_size": 15, "page_count": 8, "hits": [ { "hash": "QmXy6pjgbDyE3sR7ZRuwAxQJEkF3MRtNQXMGZYoZLxgDEj", "title": "water", "description": "some\ntext", "type": "directory", "size": 56151, "first-seen": "2018-01-16T23:52:10Z", "last-seen": "2018-01-16T23:54:10Z" }, { "hash": "Qmbn93PicijZm2fd6MFCi7jLPZKuJ8gHpELcxo7MRPZzfq", "title": "water-year.png", "description": null, "type": "file", "size": 810 } ... ] }
It's possible to query on specific fields, like the filename:
GET /v1/search?q=references.name:*.html
And by type (currently, `file` and `directory`):
GET /v1/search?q=_type:directory
Only consider objects seen within the last month:
GET /v1/search?q=last-seen:>now-1M
Find all items linking here:
GET /v1/search?q=references.parent_hash:QmVFHYaqPHJ7vg2DcszELhyQ7pJXLjHgx33FBwgbiWRQKi
List only images:
GET /v1/search?q=metadata.Content-Type:image*
Brand new, Tika-extracted metadata for files on IPFS!
Try:
GET /v1/metadata/QmSTAxpZCmotrXVRjiaftHJRW6wXpH8tXAyax94Jhxq8bZ/
{ "metadata":{ "xmpDM:genre":[ "Soundtrack" ], "xmpDM:composer":[ "Nobuo Uematsu" ], "X-Parsed-By":[ "org.apache.tika.parser.DefaultParser", "org.apache.tika.parser.mp3.Mp3Parser" ], "creator":[ "" ], "xmpDM:album":[ "\"Final Fantasy IX\" Original Soundtrack, Disk 4" ], "xmpDM:trackNumber":[ "24" ], "xmpDM:releaseDate":[ "2000" ], "meta:author":[ "" ], "xmpDM:artist":[ "" ], "dc:creator":[ "" ], "xmpDM:audioCompressor":[ "MP3" ], "resourceName":[ "24-Coca Cola TV CM 1.mp3" ], "title":[ "Coca Cola TV CM 1" ], "xmpDM:audioChannelType":[ "Stereo" ], "version":[ "MPEG 3 Layer III Version 1" ], "xmpDM:logComment":[ "eng - \nhttp://www.ffdream.com" ], "xmpDM:audioSampleRate":[ "44100" ], "channels":[ "2" ], "dc:title":[ "Coca Cola TV CM 1" ], "Author":[ "" ], "xmpDM:duration":[ "20218.76953125" ], "Content-Type":[ "audio/mpeg" ], "samplerate":[ "44100" ] }, "version":1, "type":"file" }`
https://github.com/ipfs-search/ipfs-search
Introduction during 'apps on IPFS' conference call.
Mathijs de Bruin info@ipfs-search.com


--- layout: archive title: Zulip Chat Archive permalink: /stream/144837-PR-reviews/topic/.231269.20apply.20symmetry.20on.20assumptions.html ---
I think we could merge this
Last updated: Apr 24 2020 at 19:02 UTC


| ONERDO'S COFFEE |
Have you noticed coffee is no longer just a drink…it’s a lifestyle. People take coffee breaks, meet for coffee, do business over coffee, have coffee on the go and even have coffee mornings! It’s a trend storming the world over which is fuelling both a fresh appreciation for true quality coffee and a new breed of coffee houses, where the experience of meeting, recharging or just watching the world go by is equally as important as the steaming cup of liquid perfection served.
With life getting busier and time becoming a precious commodity, coffee culture has exploded as more and more people gravitate towards coffee houses where they can conveniently refresh, relax and regroup during the day.
Coffee houses are not a new concept by any means; in fact the first coffee houses were believed to appear as far back as the 15th century in the Middle East. And then, like now, they weren’t just about drinking coffee but about an experience of social interaction and relaxation.
Coffee Facts
Did you know:
The word 'cappuccino' is the result of several derivations, the original of which began in 16th century. The Capuchin order of friars, established after 1525, played an important role in bringing Catholicism back to Reformation Europe. Its Italian name came from the long, pointed cowl, or cappuccino, derived from cappuccio, "hood," that was worn as part of the order's habit. The French version of cappuccino was capuchin, from which came English Capuchin. In Italian, cappuccino went on to describe espresso coffee mixed or topped with steamed milk or cream, so called because the color of the coffee resembled the color of the habit of a Capuchin friar. The first use of cappuccino in English is recorded in 1948 in a work about San Francisco
Coffee beans are graded in various ways. For example: Kenyan coffees are graded as A, B and C. Grade AA is the best coffee. In Costa Rica, coffees are graded as Strictly Hard Bean, Good Hard Bean, Hard Bean, Medium Hard Bean, High Grown Atlantic, Medium Grown Atlantic, and Low Grown Atlantic. Whereas coffee beans from Colombia are labeled as "Supremo" "Excelso", "Extra" and the lowest grade, "Pasilla".
Coffee’s most exacting rite of passage is known as "cupping" or cup tasting. It is the act of assessing the qualities of a particular batch of beans by freshly roasting, brewing, and tasting it. It is the work for serious and talented professionals.
Crema is a golden-browish foam that covers a freshly brewed cup of espresso. It is only made by a high-pressured method of extraction. An even thicker layer of crema also helps keep the heat and aroma of espresso.
That 1 kilogram of roasted coffee requires 4,000 - 5,000 coffee beans.
The original Cappuccino machines were true works of art in the inimitable Italian style. Massive, ornate, and impressive steam machines were designed to brew coffee and foam milk in a stimulating and entertaining ritual. Much of the enjoyment of this exotic Italian classic was watching the server make it in the elegant Cappuccino machine, with skill and showmanship.
The inventors of Cappuccino decided that it's preparation should be as dramatic as it's distinguished taste and appearance. So they designed an appropriately impressive Cappuccino machine.
Beethoven who was a coffee love, was so particular about his coffee that he always counted 60 beans in each cup when he prepared his brew.
Mr. Jacobs opened England's first coffee house in Oxford in 1650. It was two years later that another coffee house was opened in London by a Greek, Pasqua Rosee, in partnership with Daniel Edwards, an Englishman. By 1700 some two thousand such coffee shops were established.
That the infamous French Revolution was born in French cafes. It happened in 1789 when the Parisians, spurred on by Camille Desmoulins's verbal campaign, took to the streets and two days later the Bastille fell, marking the overthrow of the French Government and changing France forever.
The Italians drink their espresso with sugar, the Germans and Swiss - with equal parts of hot chocolate, the Mexicans - with cinnamon, the Belgians - with chocolate. Moroccans drink their coffee with peppercorns, the Ethiopians - with a pinch of salt. Coffee drinkers in the Middle East usually add cardamom and spices. Whipped cream on the other hand is a favourite amongst Austrians.
Cafe Procope was the first true Paris coffeehouse. It was opened in 1689 by a former lemonade vendor, Francois Procope. The cafe faced the Theatre Francais, where it drew the artists and actors of the day.


--- layout: default ---
Theme: Towards Cyber-Enabled New Sciences, Technologies and Applications for a Better Society
We have been able to digitize almost everything. Besides, whatever we digitize, we can certainly integrate and analyze. That also enabled the emergence of a new paradigm on global information networks and infrastructures known as Cyberspace, which has emerged as the new frontier that seamlessly brings together physical, social and mental spaces. Cyberspace is evolving to become an integral component of our daily life bringing together work and private life; learning and entertainment, and business and cultural activities. As expected, this whole concept of cyberspace brings new challenges that need to be tackled.
To address these continuously emerging challenges, there is a need to establish new sciences and research portfolios that incorporates cyber-physical, cyber-social and cyber-mental together in a coherent manner to deliver the vision of Cyberspace. This is the aim of the 2016 IEEE Cyber Science and Technology Congress (CyberSciTech 2016) to offer a common platform for scientists, researchers and engineers to exchange their latest ideas and outcomes in research, technology and science. It is also a venue to exchange the latest advances in cyberspace studies with the broad scope of cyber-related sciences, technologies and applications topics.
CyberSciTech 2016 includes four main research tracks:
CyberSciTech 2016 program also includes a series of events:
CyberSciTech 2016 is co-located with the three conferences:


Bram Strack van Schijndel
Mark W. Mueller and Raffaello D'Andrea
Find a fault detection and isolation method that detects actuator faults, enabling fault tolerant control.
Mark W. Mueller and Raffaello D'Andrea
reveal.js enables you to create beautiful interactive slide decks using HTML. This presentation will show you examples of what it can do.
reveal.js enables you to create beautiful interactive slide decks using HTML. This presentation will show you examples of what it can do.
Two steps:
```mermaid %% Example with selection of syntaxes gantt dateFormat YYYY-MM-DD title Adding GANTT diagram functionality to mermaid section A section Completed task :done, des1, 2014-01-06,2014-01-08 Active task :active, des2, 2014-01-09, 3d Future task : des3, after des2, 5d Future task2 : des4, after des3, 5d section Critical tasks Completed task in the critical line :crit, done, 2014-01-06,24h Implement parser and jison :crit, done, after des1, 2d Create tests for parser :crit, active, 3d Future task in critical line :crit, 5d Create tests for renderer :2d Add to mermaid :1d section Documentation Describe gantt syntax :active, a1, after des1, 3d Add gantt diagram to demo page :after a1 , 20h Add another diagram to demo page :doc1, after a1 , 48h section Last section Describe gantt syntax :after doc1, 3d Add gantt diagram to demo page : 20h Add another diagram to demo page : 48h ```
| Flash | RAM | |
| PX4 | 2 MB | 256[1]-512[2] kB |
| PPZ | 256[3]-1024[4] kB | 16[3]-192[4] kB |
Nested slides are useful for adding additional detail underneath a high level horizontal slide.
https://github.com/hakimel/reveal.js/#full-setup


Follows the sunrise and sunset times in your location. Whenever you travel, Blood Moon adapts automatically
It's ok to stay late on Friday and Saturday nights, as long as you can sleep on Mornings !
You can disable Blood Moon for certain applications. For example your favorite design software or media player


| 3 Apr 1942 |
Wayne Newton born, Roanoke VA. |
| 1972 |
Loses some weight, grows a pencil-thin moustache, lowers his voice a bit. |
| 21 Aug 1980 |
Wayne Newton and Ed Torres purchase the Aladdin casino in Las Vegas for $85M. |
| Oct 1980 |
An NBC news report links Wayne Newton to organized crime. It makes his mother cry. |
| 29 Jun 1982 |
Wayne Newton sells his interest in the Aladdin to partner Ed Torres. |
| 5 Nov 1983 |
Wayne Newton purchases the Aladdin from Ed Torres for $58.5M. |
| 11 Feb 1984 |
Aladdin files for Chapter 11 Bankruptcy. |
| Nov 1986 |
Awarded $22.8M from NBC over Mafia libel allegations. |
| 1990 |
NBC had alleged that Newton's financing of the Aladdin purchase was through the Mafia. Newton filed a libel suit and won, but the Newton's victory is overturned on appeal. |


In my personal time, I am a prolific contributor to open source
projects, particularly in the JavaScript ecosystem. Listed here are a
few of the major projects that I work on.
- Pino
-
Core Maintainer, September 2016 - Present
-
https://github.com/pinojs/pino
Pino is a logging library for applications built with JavaScript on
Node.js. It prioritizes speed and machine parsebility over anything
else.
- Fastify
-
Core Maintainer, September 2017 - Present
-
https://github.com/fastify/fastify
Fastify is an HTTP framework for applications built with JavaScript
on Node.js, an alternative to the well known Express framework.
- LDAPjs
-
Lead Maintainer, August 2019 - Present
-
https://github.com/ldapjs/node-ldapjs
LDAPjs provides a framework for building LDAP servers, and a client
to interact with standard LDAP servers, for applications built with
JavaScript on Node.js.
- Mezmo
-
Software Engineer III, May 2022 - January 2023
I was a backend software engineer on the ecosystem team. My work
involved maintaining open source modules for client usage, implementing
new customer centric features, and getting an API gateway ready for
use:
- Designed and implemented a Kong plugin to block requests (Lua)
- Added sliding window support to the in-house developed Kong rate
limiting plugin (Lua)
- Maintained the Mezmo OpenTelemetry exporter module (Go)
- Designed and implemented AWS Lamba job to email customers about API
token expiration, and expire outdated tokens in the MongoDB database
(JavaScript)
- Designed and implemented an API for customers to query their data
usage in relation to their billing (JavaScript)
- Improved feature parity in the the company’s open source Terraform
provider module (Go)
- Managed deployments of my work to the company’s Kubernetes
environments
- Worked to improve documentation, with a particular focus on
documentation that benefits new hires
- Knock
-
Senior Software Engineer, May 2020 – March 2022
-
Software Engineer, May 2018 – May 2020
I was a backend software engineer specializing in Node.js based
development with JavaScript. In this position I:
- Built and maintained the frameworks the backend services were built
upon
- Built and maintained internal tooling to make developers’s
day-to-day easier
- Built and maintained tooling to run audits against all Git
repositories maintained by the organization
- Worked with project managers, designers, and frontend engineers to
build RESTful services to solve business needs, including modeling data
to be stored in MySQL databases
- Stayed abreast of changes in the technology stack to keep it updated
with the latest security advisories
- Provided guidance to our devops for the requirements our backend
systems needed for deployment
- Developed and maintained the Docker images used for deploying
services
- Built RESTful services to integrate internal and third party
data
- Built a resilent webhook ingestion system atop Fastify, AWS SQS, and
AWS Lambda with Go
- Implemented eventing between services with AWS Lambda and AWS
SQS
- Lead a weekly cross team open meeting that gave backend engineers
space to discuss their work and discovered challenges
- Mentored junior engineers and peers
- Assisted with interviewing to hire new backend engineers that would
be a culture and talent fit for the team
- Lead initiatives around open source, including informing the
crafting of a company open source contribution policy
- Clayton State University (Technology
Infrastructure)
-
Linux System Administrator, November 2014 – April 2018
I was the lead system administrator for all Linux systems used by
Clayton State University. In this position, some of my various duties
included:
- Implementing SSL termination and load balancing for campus websites
using HAProxy and UCarp
- Primary administrator for all Linux based servers (50+)
- Maintained and packaged Red Hat RPMs
- Setup and administered Red Hat Satellite
- Used Ansible to manage configuration
- Developed campus student web portal
- Clayton State University (Enterprise
Applications)
-
Database Developer/Linux Administrator, March 2009 - November
2014
In this position I was a web developer, database developer, and Linux
system administrator. Some of my accomplishments in this position
include:
- Developed a replacement SSO connector for Ellucian’s Luminis 4 web
portal
- Wrote and maintained Oracle PL/SQL packages to facilitate backend
operations, e.g. scheduled emails with inline attachments and data
integration between systems
- Maintained all Linux systems powering the campus Student Information
System (Banner)
- Developed a two-factor authentication add-on for the campus’s
Luminis 4 implementation
- Developed REST based web APIs for data integration between systems
like the Student Information System and the campus web portal
- Platypus Web Productions
-
Lead Web Developer, April 2009 – December 2009
Platypus Web Productions was a short lived independent web
design and development firm established by me and a partner. In my role
as the web developer I:
- Developed a simple PHP templating engine for use in client
projects
- Worked with the lead designer to devise workable web site
designs
- Implemented web site designs from lead designer in PHP, HTML, and
CSS
- Implemented dynamic functionality of designs using JavaScript and
jQuery


Welcome to the #MasterClassMonday about Git and GitHub. This page and the associated .css file is for use in trying out cloning a repository and making changes so we can then commit modified code.


StrainTool allows the estimation of Strain Tensor parameters, on the earth's crust, given a list of data point, aka points on the earth along with their tectonic velocities.
StrainTool has three basic components:
pystrain
StrainTensor.py
StrainTensor.py
pystrain
is a package written in python,
defining a variety of functions, classes, etc to enable the computation of
strain tensors.
When installing this package, all of its modules will be available to
the user. It is the core part of the project and should be installed
before the main program (StrainTensor.py
) can be used.
The package is found under StrainTool/pystrain
This is the main program, i.e the program that the user will
run to produce strain tensor results. It is heavily dependant on the
pystrain
package (so any change there will affect
StrainTensor.py
's behaviour
This program does not need installation; it is just a pyrhon script. The user may only need to change priviledges to make it executable
StrainTensor.py
is located at StrainTool/bin
By 'Plot Tools', we mean an array of shell (Bash)
scripts that can be used to plot StrainTensor.py
results.
These scripts actualy use GMT to
perform the plotting. The scripts are an efficient, ready-to-use
It is by no means mandatory to use these scripts to plot the results; users can use their own tools and/or scripts to do so. Actualy, this is a totaly independent part of the Project and can be skipped alltogether.
These scripts, are found under StrainTool/plot
To install the Project, you will need:
NumPy
and SciPy
have extended installation guides
for most, if not all, operating systems.
To use the Plot Tools bundle, you must have GMT (> 5.0.0) installed, allong with a variety of UNIX-based tools.
To install the Project, you actualy only need to install the
pystrain package. What this means, is that
python will see that the package modules are build and extracted to a suitable folder
on your local system (something like /usr/lib/python2.7/site-packages/
on
a UNIX-like system). After this step, you will be able to make use of the
modules in the package, both for running StrainTool.py
and
for any new program you may wish to code. StrainTensor.py
and Plot Tools are programs, so you do not
have to "install" them.
To install pystrain, do the following:
StrainTool/pystrain
setup.py
script, so you only need
to run it (as root/administrator): $> python setup.py install
$> python -c "import pystrain"
No error message should be displayed on screen.The following scenarios have been tested to validatethe installation procedure
| OS | Python 2.7 | Python 3.6 | GMT 5.2 | GMT 5.4 |
|---|---|---|---|---|
| Fedora | ✔ | ✔ | ||
| Manjaro | ✔ | ✔ | ||
| Ubuntu | ✔ | ✔ | ✔ | ✔ |
| Windows 10 | ✔ | ✔ | ✔ | ✔ |
To validate that the installation has succeded, you can run a "test case"
scenario. Under the folder data/
, you will find a file named
CNRS_midas.vel
. This ascii file, contains velocity and coordinate information
for a large list of GPS/GNSS stations around the globe. We will use it to
perform a test run of StrainTensor.py
.
Go to the bin/
folder and execute the command:
$> ./StrainTensor.py -i ../data/CNRS_midas.vel -r 18.75/30.25/32.75/42.25 --x-grid-step=0.5 --y-grid-step=0.5 --dmin=1 --dmax=500 --dstep=1 --Wt=24 -c
(You may not need the ./ part at the begining if you are on a Wnidows system). This command will
compute Strain Tensor parameters for approximately the whole of Greece, using the input file CNRS_midas.vel
.
The results will be written in a (newly created) file, named strain_info.dat
,
while station information will be written in the file station_info.dat
(this latter file is mainly used for plotting). You should be able to verify that
both files have been succesefuly created.
Under data/
you will find the "reference" output files for checking,
named strain_info.dat.ref
and station_info.dat.ref
.
Verify that the files you have just created (placed under bin/
)
contain the same results as the "reference" files (this can be very easily
performed using the diff command).
| Principal axis | Shear strain | Delaunay triangles |
|---|---|---|
$> ./gmtstrainplot.sh -jpg -str strain_info.dat -psta -l -o output_str |
$> ./gmtstrainplot.sh -jpg -gtot strain_info.dat -psta -l -o output_gtot |
$> ./gmtstrainplot.sh -jpg -str strain_info.dat -psta -l -o output_str -deltr |
StrainTensor.py
computes strain tensor parameters on a selected region. The
program comes with an extended help message, that can be displayed via the
-h or --help switch (aka
$> ./StrainTensor.py [...] --help
will show the help message on screen). Users can controll StrainTensor.py
's
behaviour via a variety of available switches.
To use the program, the only mandatory switch is the -i or --input-file, which specifies the input file to be used. All other options will automaticaly assume default values (see Options for a detailed list). Basic usage is described below:
usage: StrainTensor.py [-h] -i INPUT_FILE [--x-grid-step X_GRID_STEP] [--y-grid-step Y_GRID_STEP] [-m METHOD] [-r REGION] [-c] [-b] [--max-beta-angle MAX_BETA_ANGLE] [-t WEIGHTING_FUNCTION] [--Wt Wt] [--dmin D_MIN] [--dmax D_MAX] [--dstep D_STEP] [--d-param D_PARAMETER] [-g] [--verbose] [-v]
The whole list of available options, is:
optional arguments: -h, --help show this help message and exit -i INPUT_FILE, --input-file INPUT_FILE The input file. This must be an ascii file containing the columns: 'station-name longtitude latitude Ve Vn SigmaVe SigmaVn Sne time-span'. Longtitude and latitude must be given in decimal degrees; velocities (in east and north components) in mm/yr. Columns should be seperated by whitespaces. Note that at his point the last two columns (aka Sne and time-span) are not used, so they could have random values. --x-grid-step X_GRID_STEP The x-axis grid step size in degrees. This option is only relevant if the program computes more than one strain tensors. Default is 0.5(deg). --y-grid-step Y_GRID_STEP The y-axis grid step size in degrees. This option is only relevant if the program computes more than one strain tensors. Default is 0.5(deg) -m METHOD, --method METHOD Choose a method for strain estimation. If 'shen' is passed in, the estimation will follow the algorithm described in Shen et al, 2015, using a weighted least squares approach. If 'veis' is passed in, then the region is going to be split into delaneuy triangles and a strain estimated in each barycenter. Default is 'shen'. -r REGION, --region REGION Specify a region; any station (in the input file) falling outside will be ommited. The region should be given as a rectangle, specifying min/max values in longtitude and latitude (using decimal degrees). E.g. "[...] --region=21.0/23.5/36.0/38.5 [...]" -c, --cut-excess-stations This option is only considered if the '-r' option is set. If this this option is enabled, then any station (from the input file) outside the region limit (passed in via the '-r' option) is not considered in the strain estimation. -b, --barycenter Only estimate one strain tensor, at the region's barycentre. --max-beta-angle MAX_BETA_ANGLE Only relevant for '--mehod=shen'. Before estimating a tensor, the angles between consecutive points are computed. If the max angle is larger than max_beta_angle (in degrees), then the point is ommited (aka no tensor is computed). This option is used to exclude points from the computation tha only have limited geometric coverage (e.g. the edges of the grid). Default is 180 deg. -t WEIGHTING_FUNCTION, --weighting-function WEIGHTING_FUNCTION Only relevant for '--mehod=shen'. Choose between a 'gaussian' or a 'quadratic' spatial weighting function. Default is 'gaussian'. --Wt Wt Only relevant for '--mehod=shen' and if 'd-param' is not passed in. Let W=Σ_i*G_i, the total reweighting coefficients of the data, and let Wt be the threshold of W. For a given Wt, the smoothing constant D is determined by Wd=Wt . It should be noted that W is a function of the interpolation coordinate, therefore for the same Wt assigned, D varies spatially based on the in situ data strength; that is, the denser the local data array is, the smaller is D, and vice versa. Default is Wt=24. --dmin D_MIN Only relevant for '--mehod=shen' and if 'd-param' is not passed in. This is the lower limit for searching for an optimal d-param value. Unit is km. Default is dmin=1km. --dmax D_MAX Only relevant for '--mehod=shen' and if 'd-param' is not passed in. This is the upper limit for searching for an optimal d-param value. Unit is km. Default is dmax=500km. --dstep D_STEP Only relevant for '--mehod=shen' and if 'd-param' is not passed in. This is the step size for searching for an optimal d-param value. Unit is km. Default is dstep=2km. --d-param D_PARAMETER Only relevant for '--mehod=shen'. This is the 'D' parameter for computing the spatial weights. If this option is used, then the parameters: dmin, dmax, dstep and Wt are not used. -g, --generate-statistics Only relevant when '--mehod=shen' and '--barycenter' is not set. This option will create an output file, named 'strain_stats.dat', where estimation info and statistics will be written. --verbose Run in verbose mode (show debugging messages) -v Display version and exit.
For example, the command we used on the Example section:
$> ./StrainTensor.py -i ../data/CNRS_midas.vel -r 18.75/30.25/32.75/42.25 --x-grid-step=0.5 --y-grid-step=0.5 --dmin=1 --dmax=500 --dstep=1 --Wt=24 -c
meant that we are estimating strain tensor parameters for the region within min/max
longtitude: \(18.75/30.25 degrees\) and min/max latitude: \(32.75/42.25 degrees\).
We are seperating the region into cells of size 0.5 degrees and estimating one
strain tensor in each cell centre; aka the first cell centre is \(lon = lon_{min} + lon_{step}/2 = 18.75 + 0.5/2=19.0deg\) and
\(lat = lat_{min} + lat_{step}/2 = 32.75 + 0.5/2 = 33.0deg.\), then next one
will be at \(lon=19.5, lat=33.5\), etc). To estimate each strain tensor, the program will
search for a "optimal" D coefficient within the range \([1, 500) km\) with a step of \(1km\).
This "optimal" D will be found when the condition \(W = \sum_{n=1}^{\#sta*2} Z(i)*L(i) \geq W_t\)
is met. The stations that will be used for the calculations are only those
that fall within the specified longtitude/latitude range. For more information, see
Background and Algorithms section.
To perform the computations, StrainTensor.py
needs an input file,
that holds input data. Usually, this implies a list of GPS/GNSS stations with
their ellipsoidal coordinates (aka longtitude and latitude) and their respective
tectonic velocities (usually estimated using position time-series) allong with
the corresponding standard deviation values. The format of these files,
should follow the convention:
station-name longtitude latitude Ve Vn SigmaVe SigmaVn Sne time-span string deg. deg. mm/yr mm/yr mm/yr mm/yr / dec. yearsStation coordinates are provided in longtitude/latitude pairs in decimal degrees. Velocities and velocity standard deviations are provided in mm per years (mm/yr).
Sne
is the correlation coefficient between East and North velocity components
and time-span
is the total time span of the station timeseries in decimal
degrees. Sne
and time-span
) are not used, so they could have random values.There are no strict formating rules on how the individual elements should be
printed (i.e. how many fields, decimal places, etc). The only condition is
that fields are seperated by whitespace(s). To see an example of a valid
input file, you can check data/CNRS_midas.vel
.
Results of StrainTensor.py
are recorded in the following three files:
Latitude Longtitude vx+dvx vy+dvy w+dw exx+dexx exy+dexy eyy+deyy emax+demax emin+demin shr+dshr azi+dazi dilat+ddilat sec. invariant deg deg mm/yr mm/yr marcsec/yr nstrain/yr nstrain/yr nstrain/yr nstrain/yr nstrain/yr nstrain/yr deg. nstrain/yr nstrain/yr
Code Longtitude Latitude Ve Vn dVe dVn string deg deg mm/yr
Plotting scripts are placed under plot/
directory. They are:
gmtstrainplot.sh
,gmtstatsplot.sh
, andplotall.sh
default-param
to be in the
same folder.
default-param file options
pth2inptf=../data/ # set default folder for input files (strain_info.dat, station_info.dat) west, east, south, north, projscale, frame, sclength: set region parameters STRSC=0.01 : set principal axis plot scale ROTSC=.7 : set rotational rates plot scalegmtstrainplot.sh options:
Basic Plots & Background : -r | --region : region to plot (default Greece) usage: -r west east south north projscale frame PLot station and velocitiess: -psta [:=stations] plot only stations from input file -vhor (station_file)[:= horizontal velocities] -vsc [:=velocity scale] change valocity scale default 0.05 Plot strain tensor parameters: -str (strain file)[:= strains] Plot strain rates -rot (strain file)[:= rots] Plot rotational rates -gtot(strain file)[:=shear strain] plot total shear strain rate contours -gtotaxes (strain file) dextral and sinistral max shear strain rates -dil (strainfile)[:= dilatation] Plot dilatation and principal axes -secinv (strain file) [:=2nd invariand] Plot second invariand -strsc [:=strain scale] -rotsc [:=rotational scales] *for -gtot | -dil | -secinv use +grd to plot gridded data ex:-gtot+grd Other options: -o | --output : name of output files -l | --labels : plot labels -mt | --map_title "title" : title map default none, use quotes -jpg : convert eps file to jpg -h | --help : help menu
For example, to plot the principal axis fo strain rates for the example case above you can use the following command:
$>./gmtstrainplot.sh -jpg -str strain_info.dat -psta -lgmtstatsplot.sh options:
Basic Plots & Background : -r | --region : region to plot (default Greece) usage: -r west east south north projscale frame Plot Stations and triangles: -psta [:=stations] plot only stations from input file -deltr [:= delaunay triangles] plot delaunay triangles Plot Statistics: -stats (input file) set input file --stats-stations : plot used stations --stats-doptimal : plot optimal distance (D) --stats-sigma : plot sigma Other options: -o | --output : name of output files -l | --labels : plot labels -leg : plot legends -mt | --map_title : title map default none use quotes -jpg : convert eps file to jpg -h | --help : help menu
For example, to plot the stations used per cell grid for the example case above you can use the following command:
$> ./gmtstatsplot.sh -jpg -stats strain_stats.dat --stats-stations -leg -o output_stats-stationsplotall.sh options:
- no switch produce default output names -p | --prefix : add prefix work id to output file -s | --suffix : add suffix work id to output file -h | --help: help panel
For example:
$> ./plotall.sh -p test -s test2
Given a set of stations (aka point on earth's surface) with their corresponding east and north velocities, we can estimate (or compute) strain tensor parameters, by solving for the system $$ \begin{bmatrix} V_{x,S_1} \\ V_{y,S_1} \\ V_{x,S_2} \\ V_{y,S_2} \\ \cdots \\ V_{x,S_n} \\ V_{y,S_n} \\ \end{bmatrix} = \begin{bmatrix} 1 & 0 & \Delta_{y_1} & \Delta_{x_1} & \Delta_{y_1} & 0 \\ 0 & 1 & -\Delta_{x_1} & 0 & \Delta_{x_1} & \Delta_{y_1} \\ 1 & 0 & \Delta_{y_2} & \Delta_{x_2} & \Delta_{y_2} & 0 \\ 0 & 1 & -\Delta_{x_2} & 0 & \Delta_{x_2} & \Delta_{y_2} \\ \cdots & \cdots & \cdots & \cdots & \cdots & \cdots \\ 1 & 0 & \Delta_{y_n} & \Delta_{x_n} & \Delta_{y_n} & 0 \\ 0 & 1 & -\Delta_{x_n} & 0 & \Delta_{x_n} & \Delta_{y_n} \\ \end{bmatrix} \begin{bmatrix} U_{x} \\ U_{y} \\ \omega \\ \tau_{x} \\ \tau_{xy} \\ \tau_{y} \\ \end{bmatrix} $$ at any given location \(R\); \(\Delta_{x_i}\) and \(\Delta_{y_i}\) are the displacement components between station \(i\) and the point \(R\). A minimum of 3 stations is required to compute the parameters; if more than 3 stations are used, then the parameters are estimated (here, using a least squares approach).
Assuming that we have variance information for the station velocities (and a Gaussian distribution), we can add the covariance matrix \(C\) of the velocity data in the system. In the simplest case, \(C\) is a diagonal matrix, with the velocity component standard deviations as its elements, $$ C = {\sigma_{0}}^2 \begin{bmatrix} (1/\sigma_{V_{x,S_{1}}})^2 & 0 & 0 & \cdots & 0 \\ 0 & (1/\sigma_{V_{y,S_{1}}})^2 & 0 & \cdots & 0 \\ 0 & 0 & (1/\sigma_{V_{x,S_{2}}})^2 & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & (1/\sigma_{V_{y,S_{n}}})^2 \\ \end{bmatrix} $$
Shen et al, 2015, propose a more elaborate approach, reconstructing the covariance matrix by multiplying a weighting function to each of its diagonal terms. The weighting function \(G_i = L_i \cdot Z_i\), in which \(L_i\) and \(Z_i\) are functions of distance and spatial coverage dependent, respectively. The final covariance matrix becomes then, \(C = C \cdot G^{-1}\) or, since its diagonal, \(C_i = C_i \cdot {G_i}^{-1}\)
The following paragraphs, describe the estimation process when using shen method (i.e. --method=shen) as the algorithm of choice.
In coarse lines, when choosing the shen method, the program will
'girddify' the region of choise and estimate one strain tensor at the centre of each cell.
The region of choise can be given via the --region switch, using
minimum and maximum longtitude and latitude as decimal degrees, using '/' as
delimeter. E.g. [...] --region=21.0/23.5/36.0/38.5 [...]
. If the region
is not specified, then the maximum and minimum longtitude values will be extracted from the
list of input stations, aka the region will be defined to include all stations
within the input file.
The user can specify the grid step size, both in x and y components, via the --x-grid-step and --y-grid-step switches respectively. The step sizes should be given in decimal degrees and if not set, have a default value of \(0.5 deg.\)
The program will try to estimate strain tensor parameters at the centre of each cell. The algorithm depends on a number of options that the user can define via the command line arguments. Using a spatial smoothing coefficient \(D\), either defined by the user (--d-param) or found by the program (see Finding the optimal smoothing parameter \(D\)), the covariance matrix will be formed, using distance-dependent weighting \(L_i\), spatial weighting \(Z_i\) and the data variance information \(C_i\). The final covariance matrix, will be \(C \cdot G^{-1}\) where \(G_i = L_i \cdot Z_i\).
Strain tensor parameters will be estimated using a (weighted) least squares approach;
Six fundamental parameters are solved for and in a next step values of interest
are computed (see Strain Tensor Parameters).
Computed values are written to the output file strain_info.dat
(see Output Files).
For distance dependent weighting \(L_i\), we can use two formulas, $$L_i = \exp(-{\Delta}R_i^{2} / D^{2})$$ or $$L_i = 1/(1 + {\Delta}R_i^{2} / D^{2})$$ n which a spatial smoothing parameter \(D\) is introduced (see Finding the optimal smoothing parameter). According to Shen et al, 2015,
Both functions allow reduced weight of the data as distance increases. The difference between the two is that the Gaussian function reduces the weight at a faster pace with distance \(\Delta R_i\) than that of the quadratic function. Depending on the data quality, the Gaussian function can offer a relatively finer resolution of the interpolation result if the data are clean and smooth. On the other hand, if the data are somewhat heterogeneous, the quadratic function is relatively more conservative and provides a more smoothed solution, especially for regions in which data are sparsely distributed.
To actually compute the distance-dependent weights \(L_i\), we need the smoothing coefficient \(D\). Users have two options,
Any data points with distance exceeding a threshold value \(L_{max}\) are excluded from the estimation. The value of \(L_{max}\) depends on the Distance-dependent weighting function; if a Gaussian approach is selected, then \(L_{max}=2.15 \cdot D km \), while for the quadratic approach \(L_{max}=10 \cdot D km \) , where \(D\) is the spatial smoothing parameter.
The spatial weighting function measures the azimuth span of the site with respect to each of the data points. The azimuth span \(\theta\) for data point \(i\) is measured between two strike directions of the \(i−1\) and \(i+1\) data points in its neighborhood.
When using --method=veis a different aproach is followed. The region is split into Delaunay triangles at the barycentre of which a strain tensor is computed. Note that this approach only uses three points (aka the triangle points) to calculate tensor parameters, so the parameters are computed and not estimated. Covariance info is not used at all with this approach.
Note that when using this approach,
strain_info.dat
file (remember this a computation not an estimation),delaunay_info.dat
,TODO
The computation/estimation process, solves for the vector of parameters \([U_{x}, U_{y}, \omega, \tau_{x}, \tau_{xy}, \tau_{y}]^T\). The rest parameters of interest, written in the output file , are computed as follows: $$ \tau_{max}= \sqrt{ {\tau_{xy}}^2 + {e_{diff}}^2 } $$ $$ e_{max} = e_{mean} + \tau_{max} $$ $$ e_{min} = e_{mean} - \tau_{max} $$ $$ Az_{e_{max}} = 90 + \frac{-atan2(\tau_{xy}, e_{diff})}{2} $$ $$ dilatation = \tau_{x} + \tau_{y} $$ $$ second invariant = \sqrt{ {\tau_{x}}^2 + {\tau_{y}}^2 + 2{\tau_{xy}}^2 }$$ where, $$ e_{mean} = \frac{\tau_{x}+\tau_{y}}{2} $$ $$ e_{diff} = \frac{\tau_{x}-\tau_{y}}{2} $$
git checkout -b my-new-idea
)git commit -am 'Add some feature'
)git push origin my-new-idea
)The work is licensed under MIT-license
Dr. Dimitrios G. Anastasiou
Dr.Eng Rural & Surveying Engineer | Dionysos Satellite Observatory - NTUA |<EMAIL_ADDRESS>Xanthos Papanikolaou
Rural & Surveying Engineer | Dionysos Satellite Observatory - NTUA |<EMAIL_ADDRESS>Dr. Athanassios Ganas
Research Director | Institute of Geodynamics | National Observatory of Athens |<EMAIL_ADDRESS>Prof. Demitris Paradissis
Professor NTUA | Dionysos Satellite Observatory - NTUA |<EMAIL_ADDRESS>The history of releases can be viewed at ChangeLog
EPOS IP - EPOS Implementation Phase
This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement N° 676564
Disclaimer: the content of this website reflects only the author’s view and the Commission is not responsible for any use that may be made of the information it contains.
Shen, Z.-K., M. Wang, Y. Zeng, and F. Wang, (2015), Strain determination using spatially discrete geodetic data, Bull. Seismol. Soc. Am., 105(4), 2117-2127, doi: 10.1785/0120140247
Veis, G., Billiris, H., Nakos, B., and Paradissis, D. (1992), Tectonic strain in greece from geodetic measurements, C.R.Acad.Sci.Athens, 67:129--166
Python Software Foundation. Python Language Reference, version 2.7. Available at http://www.python.org


| ID | Name | Year Published | Min Players | Max Players | Playing Time | Min Age | Min Playtime | Max Playtime | Description | Thumbnail | Users Rated | Avg Rating | Bayes Avg Rating | Rank | Image | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{boardGame.id}} | {{boardGame.name}} | {{boardGame.yearPublished}} | {{boardGame.minPlayers}} | {{boardGame.maxPlayers}} | {{boardGame.playingTime}} | {{boardGame.minAge}} | {{boardGame.minPlaytime}} | {{boardGame.maxPlaytime}} | {{boardGame.description}} | {{boardGame.thumbnail}} | {{boardGame.usersRated}} | {{boardGame.avgRating}} | {{boardGame.bayesAvgRating}} | {{boardGame.rank}} | {{boardGame.image}} |
|


{% extends 'base.html' %} {%load bootstrap4%} {%load static%} {% block content%}
{{username}}
12 posts
2 followers
3 following
{{ profile.bio }}
Name
You have no posts


Team
|
|---|
English Premier League Over-all Matches Statistics |
||
|---|---|---|
| Matches Played | {{myTeam.totalMatches}} | |
| Matches Won | {{myTeam.Wins}} | |
| Matches Lost | {{myTeam.Lost}} | |
| Tied | {{myTeam.tie}} | |
| Goals | {{myTeam.goals}} | |
| Win % | {{myTeam.winper}} | |
| Lost % | {{myTeam.lostper}} |
English Premier League 2016/17 |
||
|---|---|---|
| Matches Played | {{myTeam.totalMatches_2.length}} | |
| Matches Won | {{myTeam.Wins2.length}} | |
| Matches Lost | {{myTeam.Lost2.length}} | |
| Tied | {{myTeam.tie2.length}} | |
| Goals | {{myTeam.goals2}} | |
| Win % | {{myTeam.winper_2}} | |
| Lost % | {{myTeam.lostper_2}} |
English Premier League 2015/16 |
||
|---|---|---|
| Matches Played | {{myTeam.totalMatches_1.length}} | |
| Matches Won | {{myTeam.Wins1.length}} | |
| Matches Lost | {{myTeam.Lost1.length}} | |
| Tied | {{myTeam.tie1.length}} | |
| Goals | {{myTeam.goals1}} | |
| Win % | {{myTeam.winper_1}} | |
| Lost % | {{myTeam.lostper_1}} |


Oopsie!
503 Service Unavailable
The server cannot handle the request (because it is overloaded or down for maintenance).


0
The aim of the game is to find all 8 matching geckos.
To play the game, click the new game button and turn over an initial card and click again to try to find a matching pair.
If you find a match, both cards will remain turned over and no longer be clickable.
If you don't find a match, the cards will be hidden again and you can try again.
The game is finished when all the pairs have been found.


{% from "components/table.html" import mapping_table, row, text_field, field, row_heading %} {% from "components/textbox.html" import textbox %} {% extends "withoutnav_template.html" %} {% block per_page_title %} Pricing {% endblock %} {% block maincolumn_content %}
Sending email through GOV.UK Notify is completely free.
Text message rate: {{ '{:.2f}'.format(sms_rate * 100) }} pence + VAT
All services have a free allowance of text messages, per financial year:
Long messages count as 2 or 3 text messages depending on length:
Messages to international mobile numbers are charged at 1, 2, or 3 times the cost of messages to UK mobile numbers.
Letters are printed double sided in colour. Prices include printing, paper, envelope, and postage. All letters are sent second class post.
The price of letters increases with the number of sheets printed:
There are no other charges for using Notify. There’s no monthly charge or setup fee.
The Government Digital Service is funding the development and running of Notify. We’re also covering the cost of the free emails and text messages.
We simply charge you the costs we pay to our delivery partners. We don’t mark these costs up in any way.


9.4. Spatial RDD Providers¶
9.4.1. Accumulo RDD Provider¶
The AccumuloSpatialRDDProvider
is a spatial RDD provider for Accumulo data stores. The core code is in
the geomesa-accumulo-spark
module, and the shaded JAR-with-dependencies (which contains all the required
dependencies for execution) is available in the geomesa-accumulo-spark-runtime
module.
This provider can read from and write to a GeoMesa AccumuloDataStore
. The configuration parameters
are the same as those passed to DataStoreFinder.getDataStore()
. See Accumulo Data Store Parameters for details.
The feature type to access in GeoMesa is passed as the type name of the query passed
to the rdd()
method. For example, to load an RDD
of features of type gdelt
from the geomesa
Accumulo table:
val params = Map(
"accumulo.instance.id" -> "mycloud",
"accumulo.user" -> "user",
"accumulo.password" -> "password",
"accumulo.zookeepers" -> "zoo1,zoo2,zoo3",
"accumulo.catalog" -> "geomesa")
val query = new Query("gdelt")
val rdd = GeoMesaSpark(params).rdd(new Configuration(), sc, params, query)
9.4.2. HBase RDD Provider¶
The HBaseSpatialRDDProvider
is a spatial RDD provider for HBase data stores. The core code is in
the geomesa-hbase-spark
module, and the shaded JAR-with-dependencies (which contains all the required
dependencies for execution) is available in the geomesa-hbase-spark-runtime
module.
This provider can read from and write to a GeoMesa HBaseDataStore
. The configuration parameters
are the same as those passed to DataStoreFinder.getDataStore()
. See HBase Data Store Parameters for details.
Note
Connecting to HBase generally requires the hbase-site.xml
file to be available on the Spark classpath.
This may be accomplished by specifying it with --jars
. For example:
$ spark-shell --jars file:///opt/geomesa/dist/spark/geomesa-hbase-spark-runtime_2.11-${VERSION}.jar,file:///usr/lib/hbase/conf/hbase-site.xml
Alternatively, you may specify the zookeepers in the data store parameter map. However, this may not work for every HBase setup.
The feature type to access in GeoMesa is passed as the type name of the query passed
to the rdd()
method. For example, to load an RDD
of features of type gdelt
from the geomesa
HBase table:
val params = Map("hbase.zookeepers" -> "zoo1,zoo2,zoo3", "hbase.catalog" -> "geomesa")
val query = new Query("gdelt")
val rdd = GeoMesaSpark(params).rdd(new Configuration(), sc, params, query)
9.4.3. FileSystem RDD Provider¶
The FileSystemRDDProvider
is a spatial RDD provider for GeoMesa file system data stores. The core code is in
the geomesa-fs-spark
module, and the shaded JAR-with-dependencies (which contains all the required
dependencies for execution) is available in the geomesa-fs-spark-runtime
module.
This provider can read from and write to a GeoMesa FileSystemDataStore
. The configuration parameters
are the same as those passed to DataStoreFinder.getDataStore()
. See FileSystem Data Store Parameters for details.
The feature type to access in GeoMesa is passed as the type name of the query passed
to the rdd()
method. For example, to load an RDD
of features of type gdelt
from an s3 bucket:
val params = Map("fs.path" -> "s3a://mybucket/geomesa/datastore")
val query = new Query("gdelt")
val rdd = GeoMesaSpark(params).rdd(new Configuration(), sc, params, query)
See GeoMesa FileSystem Data Store with Spark SQL for an example of using SparkSQL with the FileSystem data store.
9.4.4. Converter RDD Provider¶
The ConverterSpatialRDDProvider
is provided by the geomesa-spark-converter
module.
ConverterSpatialRDDProvider
reads features from one or more data files in formats
readable by the GeoMesa Convert library, including delimited and fixed-width text,
Avro, JSON, and XML files. It takes the following configuration parameters:
geomesa.converter
- the converter definition as a Typesafe Config stringgeomesa.converter.inputs
- input file paths, comma-delimitedgeomesa.sft
- theSimpleFeatureType
, as a spec string, configuration string, or environment lookup namegeomesa.sft.name
- (optional) the name of theSimpleFeatureType
Consider the example data described in the Example Usage section of the
GeoMesa Convert documentation. If the file example.csv
contains the
example data, and example.conf
contains the Typesafe configuration file for the
converter, the following Scala code can be used to load this data into an RDD
:
val exampleConf = ConfigFactory.load("example.conf").root().render()
val params = Map(
"geomesa.converter" -> exampleConf,
"geomesa.converter.inputs" -> "example.csv",
"geomesa.sft" -> "phrase:String,dtg:Date,geom:Point:srid=4326",
"geomesa.sft.name" -> "example")
val query = new Query("example")
val rdd = GeoMesaSpark(params).rdd(new Configuration(), sc, params, query)
It is also possible to load the prepackaged converters for public data sources (GDELT, GeoNames, etc.) via Maven or SBT. See Prepackaged Converter Definitions for more details.
Warning
ConvertSpatialRDDProvider
is read-only, and does not support writing features
to data files.
9.4.5. GeoTools RDD Provider¶
GeoToolsSpatialRDDProvider
is provided by the geomesa-spark-geotools
module.
GeoToolsSpatialRDDProvider
generates and saves RDD
s of features stored in
a generic GeoTools DataStore
. The configuration parameters passed are the same as
those passed to DataStoreFinder.getDataStore()
to create the data store of interest,
plus a required boolean parameter called “geotools” to indicate to the SPI to load
GeoToolsSpatialRDDProvider
. For example, the CSVDataStore described in the
GeoTools ContentDataStore tutorial takes a single parameter called “file”. To use
this data store with GeoMesa Spark, do the following:
val params = Map(
"geotools" -> "true",
"file" -> "locations.csv")
val query = new Query("locations")
val rdd = GeoMesaSpark(params).rdd(new Configuration(), sc, params, query)
The name of the feature type to access in the data store is passed as the type name of the
query passed to the rdd()
method. In the example of the CSVDataStore, this is the
basename of the filename passed as an argument.
Warning
Do not use the GeoTools RDD provider with a GeoMesa data store that has a provider implementation. The providers described above provide additional optimizations to improve read and write performance.
If your data store supports it, use the save()
method to save features:
GeoMesaSpark(params).save(rdd, params, "locations")


we used arduino and learned to soder.
we learned to sodering to conduct electricity by using metal and putting it to a hot tip. We also used arduino to run programs suchas a game, a countdown, and a distance detector.
More text here.


This post will talk about the Kullback-Leibler Divergence from a holistic perspective of reinforcement learning and machine learning. You've probably run into KL divergences before: especially if you've played with deep generative models like VAEs. Put simply, the KL divergence between two probability distributions measures how different the two distributions are.
I'll introduce the definition of the KL divergence and various interpretations of the KL divergence. Most importantly, I'll argue the following fact:
Both the problems of supervised learning and reinforcement learning are simply minimizing the KL divergence objective
The Kullback-Leibler divergence (hereafter written as KL divergence) is a measure of how a probability distribution differs from another probability distribution. Classically, in Bayesian theory, there is some true distribution $P(X)$; we'd like to estimate with an approximate distribution $Q(X)$. In this context, the KL divergence measures the distance from the approximate distribution $Q$ to the true distribution $P$.
Mathematically, consider two probability distributions $P,Q$ on some space $\mathcal{X}$. The Kullback-Leibler divergence from $Q$ to $P$ (written as $D_{KL}(P \| Q)$)
$$D_{KL}(P \| Q) = \mathbb{E}_{x \sim P}\left[\log \frac{P(X)}{Q(X)}\right]$$There are some immediate notes that are worth pointing out about this definition.
The KL Divergence is not symmetric: that is $D_{KL}(P \| Q) \neq D_{KL}(Q \| P)$. As a result, it is also not a distance metric.
The KL Divergence can take on values in $[0,\infty]$. Particularly, if $P$ and $Q$ are the exact same distribution ($P \stackrel{a.e.}{=} Q$), then $D_{KL}(P \| Q) = 0$, and by symmetry $D_{KL}(Q \| P) = 0$. In fact, with a little bit of math, a stronger statement can be proven: if $D_{KL}(P \| Q) = 0$, then $P \stackrel{a.e.}{=} Q$.
In order for the KL divergence to be finite, the support of $P$ needs to be contained in the support of $Q$. If a point $x$ exists with $Q(x) = 0$ but $P(x) > 0$, then $D_{KL}(P \| Q) = \infty$
With some algebra, we can manipulate the definition of KL divergence in terms of other quantities. The most useful such manipulation is:
$$D_{KL}(P \| Q) = \mathbb{E}_{x \sim P}[-\log Q(X)] - \mathcal{H}(P(X))$$Here, $\mathbb{E}_{x \sim P}[-\log Q(X)]$ is the cross entropy between $P$ and $Q$ (and denoted $H(p,q)$). The second term $\mathcal{H}(P(X))=\mathbb{E}_{x \sim p}[-\log p(x)]$ is the entropy of $P$.
Let's place ourselves in the optimization setting. There is some true distribution $P(X)$ that we're trying to estimate with our approximate distribution $Q_\theta(X)$. I'm using $\theta$ as a parameter here to explicitly emphasize that $Q$ is the distribution that we get to control.
As we mentioned earlier, the KL divergence is not a symmetric measure (i.e. that $D_{KL}(P \| Q) \neq D_{KL}(Q \| P)$). As a result, when trying to approximate $P$, we have a choice between two potential objectives to optimize.
As it turns out, the two different objectives actually cause different types of approximations. We'll spend the next section discussing the qualitative behaviours of each approach. We'll investigate in the following setting: $P(X)$ is the bimodal distribution below. We'll try to approximate this with a normal distribution $Q(X) = \mathcal{N}(\mu, \sigma^2)$.
Let's consider optimizing the forward KL objective with respect to $Q_{\theta}$
\begin{align*} \arg\min_{\theta}D_{KL}(P \| Q) &= \arg\min_{\theta} \mathbb{E}_{x \sim P}[-\log Q_\theta(X)] - \mathcal{H}(P(X))\\ &= \arg\min_{\theta} \mathbb{E}_{x \sim P}[-\log Q_\theta(X)]\\ &= \arg\max_{\theta} \mathbb{E}_{x \sim P}[\log Q_\theta(X)] \end{align*}Notice that this is identical to the maximum likelihood estimation objective. Translated into words, the objective above will sample points from $P(X)$ and try to maximize the probability of these points under $Q(X)$. A good approximation under the forward KL objective thus satisfies
Wherever $P(\cdot)$ has high probability, $Q(\cdot)$ must also have high probability.
We consider this mean-seeking behaviour, because the approximate distribution $Q$ must cover all the modes and regions of high probability in $P$. The optimal "approximate" distribution for our example is shown below. Notice that the approximate distribution centers itself between the two modes, so that it can have high coverage of both. The forward KL divergence does not penalize $Q$ for having high probability mass where $P$ does not.
Now consider optimizing the reverse KL objective with respect to $Q_{\theta}$
\begin{align*} \arg\min_{\theta}D_{KL}(Q \| P) &= \arg\min_{\theta} \mathbb{E}_{x \sim Q_\theta}[-\log P(X)] - \mathcal{H}(Q_\theta(X))\\ &= \arg\max_{\theta} \mathbb{E}_{x \sim Q_\theta}[\log P(X)] + \mathcal{H}(Q_{\theta}(X)) \end{align*}Let's translate the objective above into words. The objective above will sample points from $Q(X)$ and try to maximize the probability of these points under $P(X)$. The entropy term encourages the approximate distribution to be as wide as possible. A good approximation under the reverse KL objective thus satisfies
Wherever $Q(\cdot)$ has high probability, $P(\cdot)$ must also have high probability.
We consider this mode-seeking behaviour, because any sample from the approximate distribution $Q$ must lie within a mode of $P$ (since it's required that samples from $Q$ have high probability under $P$). Notice that unlike the forward KL objective, there's nothing requiring the approximate distribution to try to cover all the modes. The entropy term prevents the approximate distribution from collapsing to a very narrow mode; typically, behaviour when optimizing this objective is to find a mode of $P$ with high probability and wide support, and mimic it exactly.
The optimal "approximate" distribution for our example is shown below. Notice that the approximate distribution essentially encompasses the right mode of $P$. The reverse KL divergence does not penalize $Q$ for not placing probability mass on the other mode of $P$.
In this toy example, because we knew the exact distribution of $P$, we were able to show the behaviour of minimizing the forward and reverse KL divergences. In practice, it's often not possible to do both, and you are limited by domain to only one.
Recall that the simplified objective for the forward KL objective was
$$\arg\max_{\theta} \mathbb{E}_{x \sim P}[\log Q_\theta(X)]$$To be able to evaluate this objective, we need either a dataset of samples from the true model $P(X)$, or a mechanism for sampling from the true model.
The simplified objective for the forward KL objective was
$$\arg\max_{\theta} \mathbb{E}_{x \sim Q_\theta}[\log P(X)] + \mathcal{H}(Q_{\theta}(X))$$To be able to evaluate this objective, we need to be able to evaluate probabilities of data-points under the true model $P(X)$
Recall in supervised learning (empirical risk minimization), we have a dataset of samples $\mathcal{D} = \{(x_i,y_i)\}$ from some ground-truth data distribution $P(x,y) = P(x)P(y|x)$.
Our goal in supervised learning is to learn a model $f: \mathcal{X} \to \mathcal{Y}$ that minimizes the empirical risk of the model, which is parametrized by a loss function $L(f(x),y)$. In particular, we optimize over some distribution of models $f_\theta$
$$\arg\min_{\theta} \mathbb{E}_{(x,y) \sim \mathcal{D}}[L(f_\theta(x),y)]$$We'll show that optimizing this objective is equivalent to minimizing the divergence from an approximate distribution $q_\theta(y|x)$ to the true data distribution $p(y|x)$. For reference, the forward KL divergence objective is $$\arg\min_{\theta} \mathbb{E}_{x,y \sim \mathcal{D}}[-\log Q_\theta(y|x)]$$
This concept can in fact be extended to many other losses (for example, absolute error corresponds to the Laplace distribution). In particular, the forward KL divergence loss corresponds exactly to the problem of maximum-likelihood estimation which is the primary basis for many supervised learning problems.
Viewing the problem of reinforcement learning as minimizing the reverse KL objective requires us to think about reinforcement learning from a probabilistic perspective. For a good intro on why we want to do that, and how exactly we formulate it, check out my control as inference guide.
We can imagine that there's a distribution of optimal trajectories, given by $P_{opt}(\tau)$. Our goal in reinforcement learning is to learn stochastic policies $\pi(a|s)$ that induce a distribution over trajectories: $q_{\pi}(\tau)$. Now, we can't sample directly from the distribution of optimal trajectories $P_{opt}(\tau)$, but we know that the probability of a trajectory under optimality is exponential in the sum of rewards received on the trajectory.
$$\log P(\tau) = \sum_{t=1}^T r(s_t,a_t)$$Optimizing the reverse KL objective then is
\begin{align*} &~\arg\max_{\pi} \mathbb{E}_{\tau \sim Q_\pi}[\log P(\tau)] + \mathcal{H}(Q_{\\pi}(\tau))\\ &=\arg\max_{\pi}\mathbb{E}_{\tau \sim Q_\pi}[\sum_{t=1}^T r(s_t,a_t)] + \mathbb{E}_{\tau \sim Q_\pi}[\sum_{t=1}^T -\log \pi(a_t|s_t)]\\ &=\arg\max_{\pi}\mathbb{E}_{\tau \sim Q_\pi}\left[\sum_{t=1}^T \left(r(s_t,a_t) -\log\pi(a_t|s_t)\right)\right]\\ \end{align*}This is exactly the maximum-entropy reinforcement learning objective!
KL divergences show up everywhere in machine learning, and a solid foundation in what the KL divergence measures is very useful. If you're interested in learning more about applications of KL divergence in statistics, I'd recommend reading articles on bayesian inference. KL divergence also has a very rich history in information theory: the following are great reads. If you love deep learning, two very important concepts in the field using KL divergences right now are VAEs and information bottlenecks.
As always, if you catch an error, shoot me an email at dibya
@ berkeley.edu
or comment below.


Label Creator
Label Creator - Editor Pane
Print Label
Template Management
Save Template
Select Label Template:
Use Selected Template
Delete Selected Template
Printer Management
Label Management
Panel content


AppWorks AWWebView Demo
Enter a URL and tap Open
Show Location
Custom Close Button
Open
Any output will appear here.
Version 0.0.1


These are the works I have been able to create over the year. Check it out!
Here's a collection of posters I made over 2018. I am looking to further improve my skill set and will be updating these regularly, enjoy!
In my freshman year, I took a film and video class which gave me access to a Canon 5D Mark IV. Here are some of the pictures I took during that time frame.
Lastly, here's a mural I made with some friends for my highschool.


Random experiments with d3js. I couldn't decide on one, so I made a few (which happens to be great for learning!)


amaascore.market_data package¶
Submodules¶
amaascore.market_data.eod_price module¶
-
class
amaascore.market_data.eod_price.
EODPrice
(asset_manager_id, asset_id, business_date, price, active=True, *args, **kwargs)[source]¶ Bases:
amaascore.core.amaas_model.AMaaSModel
-
business_date
¶
-
price
¶
-
amaascore.market_data.fx_rate module¶
amaascore.market_data.interface module¶
-
class
amaascore.market_data.interface.
MarketDataInterface
(logger=None)[source]¶ Bases:
amaascore.core.interface.Interface
-
persist_eod_prices
(asset_manager_id, business_date, eod_prices, update_existing_prices=True)[source]¶ Parameters: - asset_manager_id –
- business_date – The business date for which these are rates. Not really needed, could be derived...
- eod_prices –
- update_existing_prices –
Returns:
-


13. Details of institution where applicant studied/studying
| Stage of Education |
Name of Educational Institute |
Educational Institute Address |
Duration of Education (Year) |
Caste mentioned in educational institute's record |
|
|
|
From |
To |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14. If Applicant's father is litrate,following information to be frunished
| Stage of Education |
Name of Educational Institute |
Educational Institute Address |
Duration of Education (Year) |
Caste mentioned in educational institute's record |
|
|
|
From |
To |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15. If applicant/applicant's family has migrated to Maharashtra state, following information is to be
frunished :-
Is applicant's family migrated to Maharashtra State?
If yes,from which State and when (Year)?
State:
Year:
16. (a) Whether scrutiny of the caste certificate of any member of the family has been done
earlier?
(b) If validity certificate is received (enclosed attested copy) Furnish Following Details
| Name of family member |
Relation with applicant |
Why (Reason of Scrutiny) |
When Scrutinized |
Validity Certificate No |
Validity certificate Date |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(c) If Validity Certificate is rejected give its details below
17. (a) If applicant has applied for Caste Certificate
before any committee in its state
(b) If yes, which committee
(c) For which Caste
(i) Caste Category
(ii) Sub Caste
(d) Date of Application
(e) Committee's decision
18. (a) Purpose of scrutiny
Documents to be attached with application
19. Following documents are attached only as per the sequence.
(A). Important Primary Documents Evidence
Original Caste Certificate of the Applicant
Certified Copy of Caste Certificate of the Applicant
Original Affidavit (In Specimen Form 3 Rule-4(1))
Original Affidavit (In Specimen Form 17 Rule-14)
Certificate by the Principal of College (As per the last para of Form-16,Rule-14)
Attested Xeorx copy of identity card issued by the college
Caste Certificate issued by the Competent Authority
Primary School Leaving Certificate
Extract of Birth/Death Registry(Village Register-14)
(b-2) Any other documents supporting caste claim attached
If any of the above documents are not available, then attach other relevent documents.(mention)
I am producing certified copy of above documents with my application.I declare on oath that the information furnished by me in this application is true and correct.I am aware that incomplete application will be rejected and responsibility making fresh application will be of mine.
Place:


/**
* Adds days to a date object.
*
* @param {Date} date - The date where the function will add the days passed by parameter.
* @param {Number} days - The number of days that will be added to the date object.
*/
var addDays = function (date, days) {
date.setDate(date.getDate() + days);
};
/**
* Clones a date object.
*
* @param {Date} date - The date which will be cloned.
* @returns {Date} A date object cloned from the source date object.
*/
var clone = function (date) {
try {
var copy;
if (null == date || "object" != typeof date) {
return date;
}
if (date instanceof Date) {
copy = new Date();
copy.setTime(date.getTime());
return copy;
}
} catch (ex) {
throw new Error("An error ocurred cloning the date object");
}
};
/**
* Creates a list of years from an initial year to the current year passed by parameter.
*
* @param {Number} currentYear - The current year.
* @returns {Array} Array of years.
*/
var getYears = function (currentYear) {
var years = [],
initialYear = 2000,
startYear = initialYear || 1980;
while (startYear <= (currentYear + 1)) {
years.push(startYear++);
}
return years;
};
/**
* Gets the sunday of the current week.
*
* @returns {Date} Date object which represents the sunday of the current week.
*/
var getSundayOfCurrentWeek = function () {
var currentDate = new Date(),
day = currentDate.getDay(),
diff = currentDate.getDate() - day + (day == 0 ? -7 : 0); // adjust when day is sunday
return new Date(currentDate.setDate(diff));
};
/**
* Gets the current week number of the current year.
*
* @returns {Number} Current week number.
*/
var getCurrentWeekNumber = function () {
var date = new Date();
date.setHours(0, 0, 0);
date.setDate(date.getDate() + 4 - (date.getDay() || 7));
return Math.ceil((((date - new Date(date.getFullYear(), 0, 1)) / 8.64e7) + 1) / 7);
};
/**
* Creates a list of years from an initial year to the current year passed by parameter.
*
* @param {Number} year - The year of the month.
* @param {Number} month - The month where we want to have the weeks.
* @returns {Array} Array of weeks by month.
*/
var getWeeksByMonth = function (year, month) {
var firstDate = new Date(year, month, 1),
numDays = new Date(year, month + 1, 0).getDate(),
sunday = new Date(firstDate.setDate(firstDate.getDate() - firstDate.getDay())),
weeksArray = [new Date(sunday)],
weeksByMonthArray = [],
start = 1,
end = 7 - firstDate.getDay();
while (start <= numDays) {
while (sunday.setDate(sunday.getDate() + 1) && sunday.getDay() !== 0) {
weeksArray.push(new Date(sunday));
}
weeksByMonthArray.push(weeksArray);
start = end + 1;
end = end + 7;
firstDate = new Date(year, month, start);
sunday = new Date(firstDate.setDate(firstDate.getDate() - firstDate.getDay()));
weeksArray = [new Date(sunday)];
if (end > numDays) {
end = numDays;
}
}
return weeksByMonthArray;
};
//Returns all weeks per month in the year passed by parameter
/**
* Creates a list with all weeks by month in the year passed by parameter.
*
* @param {Number} year - The year which we want the weeks by month.
* @returns {Array} Array of weeks by year.
*/
var getWeeksByYear = function (year) {
var weeksByYear = [],
MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
for (var i = 0; i < MONTHS.length; i++) { //Months
var weeksByMonth = getWeeksByMonth(year, i);
for (var j = 0; j < weeksByMonth.length; j++) { //weeksByYear
weeksByYear.push(weeksByMonth[j]);
}
}
return weeksByYear;
};


The interface that any output object must implement. More...
#include <CmdLineOutput.h>
Public Member Functions | |
| virtual | ~CmdLineOutput () |
| Virtual destructor. | |
| virtual void | usage (CmdLineInterface &c)=0 |
| Generates some sort of output for the USAGE. | |
| virtual void | version (CmdLineInterface &c)=0 |
| Generates some sort of output for the version. | |
| virtual void | failure (CmdLineInterface &c, ArgException &e)=0 |
| Generates some sort of output for a failure. |
The interface that any output object must implement.
Definition at line 41 of file CmdLineOutput.h.
| virtual TCLAP::CmdLineOutput::~CmdLineOutput | ( | ) | [inline, virtual] |
Virtual destructor.
Definition at line 49 of file CmdLineOutput.h.
| virtual void TCLAP::CmdLineOutput::failure | ( | CmdLineInterface & | c, | |
| ArgException & | e | |||
| ) | [pure virtual] |
Generates some sort of output for a failure.
| c | - The CmdLine object the output is generated for. | |
| e | - The ArgException that caused the failure. |
Implemented in TCLAP::DocBookOutput, TCLAP::StdOutput, and TCLAP::ZshCompletionOutput.
Referenced by TCLAP::CmdLine::parse().
| virtual void TCLAP::CmdLineOutput::usage | ( | CmdLineInterface & | c | ) | [pure virtual] |
Generates some sort of output for the USAGE.
| c | - The CmdLine object the output is generated for. |
Implemented in TCLAP::DocBookOutput, TCLAP::StdOutput, and TCLAP::ZshCompletionOutput.
| virtual void TCLAP::CmdLineOutput::version | ( | CmdLineInterface & | c | ) | [pure virtual] |
Generates some sort of output for the version.
| c | - The CmdLine object the output is generated for. |
Implemented in TCLAP::DocBookOutput, TCLAP::StdOutput, and TCLAP::ZshCompletionOutput.


{% extends "playlister_base_onecol_nofix.html" %} {% block title %}about{% endblock %} {% block css %}{% endblock %} {% block content %}
disclaimer: this website is in no way affiliated with songza.com
made in minneapolis by mepuka
copyright 2013 mepuka


We show ways
welcome ujwala logout
❮
❯
About
| Price: | 0400/sq. ft |
| Area: | 1500 sq.ft |
| Configuration: | 3 bedroom and 2 bathrooms |
| Facing: | South |
| Floor details: | 0th(out of 10) |
| Age: | 2 yrs old |
Amenities
Parking
Lift
Solar
Swimming pool
Gym
Park
CCTV
Club
Daily needs
School
1 km
Marketing place
1.5 km
Metro
2 km
comment
|
Deepika Malhotra Hi there |
|
Deepika Malhotra Hi there |
In touch
Financing options
Home furnishing
Interior designers
Expert advice


foo2oak(1) foo2oak(1) NAME foo2oak - Convert Ghostscript pbmraw, pgmraw or bitcmyk format into an OAKT printer stream SYNOPSIS foo2oak [options] <pbmraw-file >OAKT-file foo2oak [options] <pgmraw-file >OAKT-file foo2oak [options] <bitcmyk-file >OAKT-file DESCRIPTION foo2oak converts Ghostscript pbmraw or bitcmyk output formats to mono‐ chrome or color OAKT streams, for driving the HP Color LaserJet 1500 laser printer, Kyocera KM-1636/KM-2035 copiers, and other OAKT-based printers. COMMAND LINE OPTIONS Normal Options These are the options used to select the parameters of a print job that are usually controlled on a per job basis. -c Force color mode if autodetect doesn't work. -d duplex Duplex code to send to printer [1]. | n l | n l | n l . 1 off 2 long edge 3 short edge -g xpixxypix Set page dimensions in pixels [10200x6600]. -m media Media code to send to printer [1]. l l l n. _ Media Code _ autoselect 0 plain 1 preprinted 2 letterhead 3 transparency 4 pre‐ punched 5 labels 6 bond 7 recycled 8 color 9 card‐ stock 10 envelope 11 light 13 tough 14 vellum 15 rough 16 thick 19 highqual 20 -p paper Paper code to send to printer [1]. box; | n l | n l. 1 letter 3 ledger 5 legal 6 statement 7 executive 8 A3 9 A4 11 A5 12 B4 13 B5jis 14 folio 19 env9 20 env10 27 envDL 28 envC5 30 envC4 37 envMonarch 257 A6 258 B6 259 B5iso 260 env6 -n copies Number of copies [1]. -r xresxyres Set device resolution in pixels/inch [600x600]. -s source Source (InputSlot) code to send to printer [7]. | n l | n l. 1 tray1 2 tray2 4 manual 7 auto -J filename Filename string to send to printer. -U username Username string to send to printer. Printer Tweaking Options These are the options used to customize the operation of foo2oak for a particular printer. -u xoffxyoff Set the offset of the start of the printable region from the upper left corner, in pixels [0x0]. -l xoffxyoff Set the offset of the end of the printable region from the lower right corner, in pixels [0x0].  Works with bitcmyk input only. -B BlackClears: K=1 forces C,M,Y to 0. Works with bitcmyk input only. -M mirror Mirror bytes. Mirror is 0 for Kyocera KM-1635/KM-2035 and 1 for the HP Color LaserJet 1500. The default is 1. -z model Model is 0 for the HP Color LaserJet 1500, and 1 for the Kyocera KM-1635/KM-2035 copiers. The default is 0. Debugging Options These options are used for debugging foo2oak. -S plane Output just a single color plane from a color print and print it on the black plane. The default is to output all color planes. l l. 1 Cyan 2 Magenta 3 Yellow 4 Black -D level Set Debug level [0]. EXAMPLES Create a black and white OAKT stream: gs -q -dBATCH -dSAFER -dQUIET -dNOPAUSE -sPAPERSIZE=letter -r600x600 -sDEVICE=pbmraw -sOutputFile=- - < testpage.ps | foo2oak -r600x600 -g5100x6600 -p1 >testpage.oak Create a color OAKT stream: gs -q -dBATCH -dSAFER -dQUIET -dNOPAUSE -sPAPERSIZE=letter -g5100x6600 -r600x600 -sDEVICE=bitcmyk -sOutputFile=- - < testpage.ps | foo2oak -r600x600 -g5100x6600 -p1 >testpage.oak FILES /usr/bin/foo2oak SEE ALSO foo2oak-wrapper(1), oakdecode(1) AUTHOR Rick Richardson<EMAIL_ADDRESS>http://foo2oak.rkkda.com/


General Assembly Allstars
February 1, 2016
My goals for the class:
Goal 1
Goal 2
Goal 3
Goal 4
Here's a cat image... because why not :)


It can all be edited later! Once initialized, you can start testing and improving your project.


1
2
3
4
5
6
7
8
9
10
11
12
autofit
function.grid-template: repeat(2,150px) / repeat(auto-fit,200px)
.13
14
15
16
17
18
19
20
21
22
23
24
minmax()
function.repeat(2,150px) / repeat(auto-fit,minmax(200px,1fr))
.minmax()
indicate create as many as possible columns with a
min-width of 200px and a max-width of 1fr. So if a column is less than 200px delete one column but if a
column is more than 200px so take 1fr so take 1 space available in the container.


For months I have read about the effects that Heavenly Blue Morning Glory seeds could bring, and after about 6 months I finally experienced the Morning Glory trip.
It was a Friday night, we had purchased the seeds on Wed. and were planning to camp out and consume the seeds after we got back from a local keg party. Plans changed..
**Saturday - After everybody left, my friend Ben and I decided that he would come over Saturday night and we could eat the seeds then. We set up my tent, and after getting it all ready it was about 9:00. We said goodbye to my parents and drove our ATV's to the tent, anticipating the seed-eating ritual. We arrived and quickly ran into the tent, grabbing the zip-loc bags filled with our seeds. Our plan was to eat 6g each (we chewed them because I never got to grind them up in my coffee grinder, all I did was wash them off in water) and if we needed more we had another 6g left over from Mario, who had to work. We chewed the seeds well and swallowed them with Juice. This is when the fun starts.
T+10:00min - We had just finished eating the seeds, (this was very easy, they taste kind of like lettice or plant matter, and are not that hard) and we were very excited.  I felt kind of light headed.
T+25:00 - I am definitely feeling something now. Iím getting that removed feeling and my limbs feel weird. My friend has grown nauseous so we decide to go sit in the lawn chairs I have placed outside the tent, incase he has to puke. I have no nausea.
T+35:00 - My friend still feels pretty sick, and my stomach has grown kind of queasy. I stand up and all of a sudden I feel a sort of stinging and tightness when I straighten my leg out, right behind my knee and on the top of my calf. My friend stands up and said 'ouch whatís wrong with my leg, its like stinging behind my knee' He had the same thing as I did, and I hadnít even said anything out loud about it. It felt pretty weird. I am shaking now, I donít know if its because its chilly out, but it feels cool.
T+45:00 - The effects are rising. I was feeling OK and all of a sudden I felt like I was going to puke, so I stood up, walked a few feet, and threw up my dinner. Defiantly not like throwing up on PK's. It was pretty violent. After I puked, we decided to walk back to my house for jackets, tissues, and something else but I forget. Walking back was fun, it was really hitting me now and everything had a plastic look to it.
T+1:00:00hrs - We return to the tent, 'trippin balls'.  We laid in our sleeping bags, looking up at the ceiling of the tent and listening to Moby - Play. Everything looked so different, and my body really felt good. It felt like there were things touching me all over. Our eyes were completely dialated in the dim light, but when there was a bright light they got to a little bigger then regular size.
T+1:30:00 - Iím really trippin now.. My friend seems to not be as screwed up as me, but I figured out why he wasnít, because he wasnít letting the seeds take him like I was.. It sounds weird but last night you could of given me any problem or mystery and I would of solved it in 5 minutes. My mind was racing, I would lay there, not saying much, but in my head I was thinking 1000 miles a second. I took out some paper and a colored pencil and I started drawing.. I am NOT a drawer, I hate it, but I just felt the need to. I drew this really crazy picture of a face, but there were faces in every feature on the face, like one of those black light posters with a million things going on in it but it only looks like thereís one picture until you look closer, now I know how they draw those lol, on acid.
T+2:45:00 - The effects are still peaking, Iím curled up like a ball in my sleeping bag.. I donít remember much after this. I shouldnít of laid down like that because I fell asleep, while I was still tripping. No dreams that I can remember..
Summary: I really loved these seeds. I donít feel burned out right now and its 10:30am. We got up at 8 because my friend had to go, we felt fine. I still see patterns and feel funny, but nothing that people would know about. If you are going to do these seeds I recommend that you have a puke bucket near by, because you probably will puke, I would say that there is a 50% chance you will. 6grams of Heavenly Blues is what I ate, it was not overwhelming, but it wasnít too weak neither. Next time Iím going to eat 9grams of Flying Saucers or Pearly Gates to see if they are any different. I defiantly recommend this to anyone, unless you donít like puking. The nausea goes away after like, 40 mins. Just know your limit and be safe.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


FAQs
I'm on a blog package - can I order more blog posts if I need them?
Sure! You can either change your blog package to receive extra posts every month, or order these on an ad-hoc basis by clicking on ‘Add new’ in the left hand column of your dashboard.
Questions?
Speak to our content team
Fill in the form with your requirements and one of our friendly team will be in touch.


Lovers of movies, rejoice! You can earn badges for your movie watching habits! A team project built React, React Bootstrap, Node.js, MongoDB, TheMovieDB API, and more!
A "customizable" Dungeons & Dragons Spell book, add Wizard's spells from the great spell book to your own book. This was a group project, my role astehetic of our site and the functionality of the book using Turn.js. This app connects to a database of spells.
An "up-to-date" planner that uses local-storage and Luxon dates & time to help you keep on schedule during your work day!
A fun quiz on Javascript, made with Javascript! Complete with a timer and highscores page!
I worked on a team to build this application using APIs, JQuery, and Materialize. This app returns recipes and nutrition facts for desired ingredients.
Users can log and track their resistance and cardio workout stats.
Easily track your budget on or off-line with this downloadable app.
This is a note-taking app using Express.
to a screen near you!


I am using gmail
I am using hotmail
Or if you want skip this step entirely and setup it later. Skip step
Fill out the form on the left. You can always edit the data in the menu settings.
Simple setup of your bussiness hours. You can setup this in more detail on the settings page.
Connect one of your existing email clients to company to automatically upload your clients.
(330) 123 4567
help@gmail.com


Console Client
To try the library, a simple console client has been built. It can be found in its dedicated GitHub repository here.
Features
- Use any folder on your system as synchronised folder
- Adjust your instance by editing its configuration
Get it
Release 1.0.0 is available for download here.
Deployment
To simplify the deployment process of the library, a Shell script (deploy.sh
) is provided in
the Git repository. Before invoking, make sure that the project has been assembled.
You may want to adjust the listed IP addresses to your needs.
Note: The provided RSA public and private key pair in this repository
is only used for test purposes in the local network! Do not use it in
your production environment! (Instead generate a new key pair as described
here)
Usage
After downloading the client, you will find a ZIP archive in the target directory. To run the client, cd into the bin directory. In there, a log file (sync.log) and an executable bash script is placed.
Help
To display a short help message about the available commands, use
./sync helpTo get help about a particular command, type
./sync help <commandName>
Intialise the Client
To create the default application configuration for P2P-Sync, run the following command:
./sync init -p <pathToTheSynchronisedFolder>whereas
<pathToTheSynchronisedFolder>
should be
replaced with an existing directory on your file system then used
as synchronised folder. Besides creating the necessary directories for
the shared folders, it will create the default configuration in your home
directory (~/.syncconfig
). To specify in which folder the
configuration should be placed, add the flag -a <pathToConfigDir>
to the command above.
Configuration
After having initialised the default configuration, particular values
can be modified by using the command config. Use ./sync help config set-config
to get a list of available config keys to set.
Setting a new value for port, for example, is done by typing:
./sync config set-config --port 4004To get the current value of a setting, use
./sync config get-config --port
Connect
To create a network using the machine on which the command is invoked, run
./sync connect -p <pathToTheSynchronisedFolder>In case no default bootstrap location is configured, the node will start up as bootstrap peer. Otherwise, it will try to connect to the IP-address-port pair specified in the configuration.
In order to connect to a well-known node which has joined the network previously, type
./sync connect -p <pathToTheSynchronisedFolder> --bootstrap-ip <ipToNode> --bootstrap-port <portNrOfNode>with
<ipToNode>
the ip address (IPv4 or IPv6) and <portNrOfNode>
the
port of the node to connect. The amendment of -a <pathToConfigFile>
specifies the file in which the application configuration resides.
Sharing and Unsharing
After the node has been started successfully, a simple console interface
allows to share files or directories within the specified synchronised folder.
Note: Sharing with the own user is not permitted. Any attempt in doing so will result
in a sharing failure.
Clean Up
To clean all generated files (especially the configuration folder
~/.syncconfig
and the object store in the synchronised folder), use
./sync clean --clean-all <pathToTheSynchronisedFolder>


SapphireDb comes with methods for authentication and role-based authorization.
You can simply authenticate your client using the built in methods. It also comes with a user and role management.
The JWT Options are used to generate the jwt-token for client authentication.
You can either directly create an object with the options or use data from a configuration file.
SapphireDb uses the IdentityUser
as user object.
You can simply create a custom user object that derives from IdentityUser
and include custom fields and information.
Make sure to replace the user type used in Startup.cs
[AuthUserInformation]
is used to mark the field to be included in the user information.[AuthClaimInformation]
is used to include the information in the bearer.If you want you can create your own auth-context to store custom data etc. Just derive it from SapphireAuthContext
To access the details of a user you can use the default methods provided by identity.
Whenever you get an instance of HttpInformation
you can access the user details by accessing HttpInformation.User


Home
About
Course
C
C++
Python
Java
Contact
<EMAIL_ADDRESS>bitLEGION
We Ensure better education for a better world
A Place to hone your 'Computer Programming Skills'


ECE 3400, Fall Semester Team #26
Team Members: Joyce Huang, Nathalia Lie, Priya Kattappurath, Vini Tripathii
Day, time, and place for regular team meetings:
Everyone is expected to attend Monday, 4:45-6pm open lab.
Everyone is expected to attend lectures and all the Friday team meetings.
Everyone is expected to attend all Friday labs.
Preferred method of communication in order to inform each other of team meetings, announcement, updates, reminders, problems:
We will use groupme for the main method of communication.
Everyone is expected to send updates per lab period, reminders if you’re the lead.
Decision-making policy:
Decisions will be made using majority vote. However, if certain members have strong opinions that go against the majority vote, extra discussions will take place.
Should any amendments be needed for this contract, it will require the majority vote.
Method for setting and following meeting agendas:
Every member of the team will take turns in setting agendas a day before each meeting, based on who is the leader for that week. The leader is responsible for notifying ad reminding each member on email and groupme. Group members will follow the agenda closely. To keep the team on track during a meeting, we will keep an eye on the clock and end meetings in a timely fashion.
Method of record keeping:
We will take turns in recording and and disseminating minutes, based on who is the leader for that week. We will use a Google Doc file to keep track of all agendas and minutes.
Work Quality:
Project standards:
Strategies to fulfill these standards:
Team Participation:
Strategies to ensure cooperation and equal distribution of tasks:
We will delegate code and work beforehand, split by members’ strengths and their availability.
Strategies for encouraging/including ideas from all team members (team maintenance):
We will post interesting ideas on the website with the contributors name. We will also spend time brainstorming before making decisions.
Strategies for keeping on task (task maintenance):
We will maintain deadlines in a calendar, along with constant check ins at weekly meetings.
Preferences for leadership (informal, formal, individual, shared):
We will share leadership in the group. Formal leadership is further specified below.
Personal Accountability:
Expected individual attendance, punctuality, and participation at all team meetings:
Everyone is expected to be on time, with two minute grace period. If anyone knows they will be late they should notify the group ahead of time.
Expected level of responsibility for fulfilling team assignments, timelines, and deadlines:
Everyone is expected to complete assignments a few days in advance, according to the deadline that everybody sent.
Expected level of communication with other team members:
Respond as soon as possible, within 24 hours. An explanation for a late response will be expected. We will have regular check-ins a week.
Expected level of commitment to team decisions and tasks:
We will have high level of commitment. When a decision is reached through majority vote, all team members will participate fully, even if they do not agree with the decision.
Consequences for Failing to Follow Procedures and Fulfill Expectations
Describe, as a group, you would handle infractions of any of the obligations of this team contract:
Describe what your team will do if the infractions continue:
Every person on the team will have to take the role as a leader. The role of the leader will be to organize meetings and make sure that everything is submitted in a timely manner. Please note here who will be responsible when:
Week 1-4 (Start-up, Lab 1, Milestone 1): Nathalia Lie
Week 5-8 (Lab 2, Lab 3, Milestone 2): Priya Kattappurath
Week 9-12 (Lab 4, Milestone 3): Vini Tripathii
Week 13-16 (Milestone 4): Joyce Huang
a) I participated in formulating the standards, roles, and procedures as stated in this contract.
b) I understand that I am obligated to abide by these terms and conditions.
c) I understand that if I do not abide by these terms and conditions, I will suffer the consequences as stated in this contract.


| Title | Author | Author l-f | Additonal Authors | ISBN | ISBN13 | ACM Rating | Average Rating | Publisher | Binding | Number of Pages | Year Published | Original Publication Year | Date Added | Private Notes | Recommended For | Owned Copies |
| Apache Pocket Reference | Andrew Ford | Ford, Andrew |<PHONE_NUMBER> |<PHONE_NUMBER>063 | 0 | 3.85 | O'Reilly Media | Paperback | 112 | 2000 | 2000 | 4/11/16 | 1 |


| Sl No | Topic | Explanation | Notes |
|---|---|---|---|
| 1 | The Mean, Variance and Standard Deviation |
Statistics Fundamentals: The Mean, Variance and Standard Deviation : StatQuest |
None |
| 2 | Statistical distribution |
Statistical distribution : StatQuest |
None |
| 3 | Normal distribution |
Normal distribution : StatQuest |
( 1/σ(√2π) ) * e ^ − 1/2 *(x−µ)^2/σ^2 todo, write prop |
| 4 | Binomial Distribution and Test |
Binomial Distribution : StatQuest |
None |
| 5 | Bayes theorem |
Bayes theorem : Wikipedia Youtube |
None |
| 6 | Bernoulli equation for naive bayes |
Bayes theorem : Wikipedia |
None |
| 7 | Bias and Variance |
Bias and Variance : StatQuest |
None |
| Sl No | Topic | Explanation | Implementation | Notes |
|---|---|---|---|---|
| 1 | Cross validation |
Best link: in implementation, can see this youtube video too.
Cross validation , required for gaussian Type 1. K fold , 2. 10 folds, 3. Leave one out |
Best link: machine learning mastery | Try if you can get more accuracy using this, but should maintian consistency in real world too. |
| 2 | Confusion Matrix , Sensitivity and Specificity | StatQuest video: Confusion Matrix Sensitivity and Specificity |
Sklearn cinfusion matrix, implementation with graph: Sklearn documentation Sensitivity and Specificity: Wikipedia |
Used for finding accuracy of models. See, true positive, false positive, true negative, false negative. Sensitivity (true positive rate): correctly identifying positive proportion -> TP/(TP + FN), Specificity (true negative rate): correctly identifying negative proportion -> TN/(TN + FP). Useful when you want to decide whether you want to choose True pos rate or True neg rate. Which one is more imp for your scenrio.Example, for life threatning diceases, FP is better than FN (ie patient doesnt have the dicease but its predicted that he has) Please see video for matrix greater than 2x2, for calc of TP and FP |
| 3 | ROC and AUC | StatQuest video: ROC and AUC |
ROC and AUC: Sklearn documentation of score | Roc is graph between TP rate(sensitivity) and FP rate(1- Specificity). See precision too from the video and also see why he has choosen TP rate as 1 in ROC graph (imp). And AUC is useful to compare ROC graphs fr 2 or more approaches. The more Area Under the Graph an approach has, the better it is. |
| Sl No | Topic | Explanation | Implementation | Notes |
|---|---|---|---|---|
| 1 | Ridge Regression | StatQuest : Regularization Part 1: Ridge (L2) Regression |
| Sl No | Topic | Explanation | Implementation | Notes |
|---|---|---|---|---|
| 1 | Naive Bayes , many types, main 3 |
Everything is based on probability (including prior) and how we can calculate it.
According to the type of input data, we have: 1. For symbolic or text data: Multinomial naive bayes : StatQuest 2. For numerical data, having range mean and std dev: Gaussian/Normal naive bayes : StatQuest 3. For binary data: Bernoulli Naive Bayes : 5MinutesEngineering 4. See rest and all above: Complement and Categorical Imp In the error section of guassian distibution, see moving the threshold based on cost for False pos and False neg (from lecture pg 7). |
Read from the book |
It assumes attributes are independent and equally affects the target. Works good for missing values, ignore that probability. Laplace correction : adding 1 for 0 probability. Extra Gaussian plot is based on normal distibution equation. See mean std deviation, statistical and normal distibution, bernauli's thm (maths section) |
| 1 | Bagging and bootstrapping | bagging also allows replacement bootstrapping allows dublication due to replacement (see lectures) some examples might not be included for large dataset,0.632 prob that data will be used, 0.368 prob it will not be used Bootstrap dataset (a part of it) |
| Sl No | Topic | Explanation | Implementation | Notes |
|---|---|---|---|---|
| 6. Neural Network (from Book 1 Ch 10)
See how it resembles to human brain Feed forward multi-layer perceptron with logistic or linear threshold units trained by backward error propagation 1. A Step by Step Backpropagation Example 2. Backpropagation example with numbers step by step 3. Neural network series (Imp) | ||||
| 1 | Feed forward Neuron |
1. Wikipedia : Artificial neuron, see how we perform calculation from lecture slides and performig logistic at each step (week 7) 2. Wikipedia : All activation functions, important ones are logistic, relu, sigmoid 3. Simplilearn : Youtube video |
Read from the book |