"x" "1" "ZEIGER,E, ANDERSON,B, HAWORTH,S, LAWLOR,T AND MORTELMANS,K, SALMONELLAMUTAGENICITY TESTS: IV. RESULTS FROM THE TESTING OF 300 CHEMICALS, ENVIRON. MOL.MUTAGEN. 11(SUPPL.12):1-158, 1988"


public abstract class LineIntersector
extends java.lang.Object
LineIntersector
is an algorithm that can both test whether
two line segments intersect and compute the intersection point(s)
if they do.
There are three possible outcomes when determining whether two line segments intersect:
NO_INTERSECTION
- the segments do not intersect
The intersection point(s) may be computed in a precise or non-precise manner. Computing an intersection point precisely involves rounding it via a supplied {@link PrecisionModel}.
LineIntersectors do not perform an initial envelope intersection test to determine if the segments are disjoint. This is because this class is likely to be used in a context where envelope overlap is already known to occur (or be likely).
| Modifier and Type | Field and Description |
|---|---|
static int |
COLLINEAR |
static int |
COLLINEAR_INTERSECTION
Indicates that line segments intersect in a line segment
|
static int |
DO_INTERSECT |
static int |
DONT_INTERSECT
These are deprecated, due to ambiguous naming
|
static int |
NO_INTERSECTION
Indicates that line segments do not intersect
|
static int |
POINT_INTERSECTION
Indicates that line segments intersect in a single point
|
| Constructor and Description |
|---|
LineIntersector() |
| Modifier and Type | Method and Description |
|---|---|
static double |
computeEdgeDistance(Coordinate p,
Coordinate p0,
Coordinate p1)
Computes the "edge distance" of an intersection point p along a segment.
|
abstract void |
computeIntersection(Coordinate p,
Coordinate p1,
Coordinate p2)
Compute the intersection of a point p and the line p1-p2.
|
void |
computeIntersection(Coordinate p1,
Coordinate p2,
Coordinate p3,
Coordinate p4)
Computes the intersection of the lines p1-p2 and p3-p4.
|
double |
getEdgeDistance(int segmentIndex,
int intIndex)
Computes the "edge distance" of an intersection point along the specified input line segment.
|
Coordinate |
getEndpoint(int segmentIndex,
int ptIndex)
Gets an endpoint of an input segment.
|
int |
getIndexAlongSegment(int segmentIndex,
int intIndex)
Computes the index (order) of the intIndex'th intersection point in the direction of
a specified input line segment
|
Coordinate |
getIntersection(int intIndex)
Returns the intIndex'th intersection point
|
Coordinate |
getIntersectionAlongSegment(int segmentIndex,
int intIndex)
Computes the intIndex'th intersection point in the direction of
a specified input line segment
|
int |
getIntersectionNum()
Returns the number of intersection points found.
|
boolean |
hasIntersection()
Tests whether the input geometries intersect.
|
boolean |
isInteriorIntersection()
Tests whether either intersection point is an interior point of one of the input segments.
|
boolean |
isInteriorIntersection(int inputLineIndex)
Tests whether either intersection point is an interior point of the specified input segment.
|
boolean |
isIntersection(Coordinate pt)
Test whether a point is a intersection point of two line segments.
|
boolean |
isProper()
Tests whether an intersection is proper.
|
static double |
nonRobustComputeEdgeDistance(Coordinate p,
Coordinate p1,
Coordinate p2)
This function is non-robust, since it may compute the square of large numbers.
|
void |
setMakePrecise(PrecisionModel precisionModel)
Deprecated.
use
setPrecisionModel instead |
void |
setPrecisionModel(PrecisionModel precisionModel)
Force computed intersection to be rounded to a given precision model.
|
java.lang.String |
toString() |
public static final int DONT_INTERSECT
public static final int DO_INTERSECT
public static final int COLLINEAR
public static final int NO_INTERSECTION
public static final int POINT_INTERSECTION
public static final int COLLINEAR_INTERSECTION
public static double computeEdgeDistance(Coordinate p, Coordinate p0, Coordinate p1)
NOTE: This function may produce incorrect distances for inputs where p is not precisely on p1-p2 (E.g. p = (139,9) p1 = (139,10), p2 = (280,1) produces distanct 0.0, which is incorrect.
My hypothesis is that the function is safe to use for points which are the result of rounding points which lie on the line, but not safe to use for truncated points.
public static double nonRobustComputeEdgeDistance(Coordinate p, Coordinate p1, Coordinate p2)
public void setMakePrecise(PrecisionModel precisionModel)
setPrecisionModel
insteadprecisionModel
- public void setPrecisionModel(PrecisionModel precisionModel)
precisionModel
- public Coordinate getEndpoint(int segmentIndex, int ptIndex)
segmentIndex
- the index of the input segment (0 or 1)ptIndex
- the index of the endpoint (0 or 1)public abstract void computeIntersection(Coordinate p, Coordinate p1, Coordinate p2)
p
.public void computeIntersection(Coordinate p1, Coordinate p2, Coordinate p3, Coordinate p4)
public java.lang.String toString()
toString
in class java.lang.Object
public boolean hasIntersection()
public int getIntersectionNum()
public Coordinate getIntersection(int intIndex)
intIndex
- is 0 or 1public boolean isIntersection(Coordinate pt)
public boolean isInteriorIntersection()
true
if either intersection point is in the interior of one of the input segmentspublic boolean isInteriorIntersection(int inputLineIndex)
true
if either intersection point is in the interior of the input segmentpublic boolean isProper()
The intersection between a point and a line segment is considered proper if the point lies in the interior of the segment (e.g. is not equal to either of the endpoints).
public Coordinate getIntersectionAlongSegment(int segmentIndex, int intIndex)
segmentIndex
- is 0 or 1intIndex
- is 0 or 1public int getIndexAlongSegment(int segmentIndex, int intIndex)
segmentIndex
- is 0 or 1intIndex
- is 0 or 1public double getEdgeDistance(int segmentIndex, int intIndex)
segmentIndex
- is 0 or 1intIndex
- is 0 or 1


{{ data.paragraphOne }}
{{ data.paragraphTwo }}
It has incredible detail and vibrant color on a 5.1" screen.
The Galaxy s5 is designed to be dustproof and water resistant.
The microwaves have 3 different colors you can choose from. They are stainless steel, black, and white.
The smallest size is 1.6 cu.ft and the largest size is 2.1 cu.ft.
The French door refridgerator is really cool. You can get the 3 door one or the 4 door one.
It also features a bottom right door that can change into a fridge or freezer and saves you trips to the market.
The Samsung 9100 front load washing machine is the largest capacity washer. You can wash 4 laundry baskets in a single load.
By easily pressing the SuperSpeed button, you can wash a full load in only 30 minutes.
The Samsung UHD tv displays your sports and movies with great detail.
The most expensive one out right now is $39,999.99
The LED tv has bright color and pretty contrast.
It makes your whites whiter and your blacks deeper.
The OLED tv has a rich color thats better than LED tv.
It's so clear and essentially blur-free.
{{ data.paragraphOne }}
{{ data.paragraphTwo }}
{{ data.paragraphThree }}
{{ data.paragraphFour }}
They make so many products that can fill your house until it's perfect.
Cool story.
×


Dbox is an image lightbox written in es6 with no external dependencies — that is not dependent on JQuery.
| File | Size in KB | Gzip Size in KB |
|---|---|---|
| dbox.min.css | ≈3.0KB | ≈1.7KB |
| dbox.min.js | ≈17.3KB | ≈6.4KB |
| dbox.noPollyFill.min.js | ≈7.9KB | ≈3.5KB |
| dbox.noColorThief.min.js | ≈11.5KB | ≈4.3KB |
Github
Usage examples:
Download the latest release from github and insert the provided CSS into the head of your document and the provided JavaScript file before your closing
tag.

<link rel="stylesheet" href="dist/css/dbox.min.css">

Markup an image to be placed in a lightbox. Include a thumbnail image and the larger image you wish to show in the lightbox. The Anchor tag (
) needs to have a class of dbox
.

Before your closing body tag, insert the dialog element and initialize the dbox script.
<dialog id="js-dbox" class="dbox-dialog">

<button type="button" class="dbox-dialog--close">close</button>

</dialog>

Click the image to open the lightbox !
Changing the Anchor Class
The default anchor class is dbox
if you'd wish to change this to something else you need to pass it to the constructor at the end of your page or in your own JS file. The new class will be used for the 'element' key. Classes must be prefixed with a period and ID's with a hash mark.

document.addEventListener("DOMContentLoaded", function () {
// you could also use var instead of let here
let lightbox = new Dbox( {
element: '.myNewClass'
// or using an id
element: '#myNewID'
} );
lightbox.run();
});
Changing The Dialog ID
The default ID that dbox looks for to open your lightbox is js-dbox
. If you have multiple dialog types in a page you'll need a dialog element for each one with a unique ID. Pass this new id with hash mark included to the dialogBox key.
<dialog id="myNewDialogID" class="dbox-dialog">

<button type="button" class="dbox-dialog--close">close</button>

</dialog>
document.addEventListener("DOMContentLoaded", function () {
// you could also use var instead of let here
let lightbox = new Dbox( {
dialogBox: '.myNewDialogClass'
// or using an id
element: '#myNewDialogID'
} );
lightbox.run();
});
Using Dbox as a Modal
Dbox has two modes to operate in. One is a normal dialog / lightbox mode. Clicking anywhere on the image or backdrop will close the lightbox. The second mode is a modal mode. The lightbox will only close when the 'close' button is clicked. You have hto pass 'modal: true' to the constructor.
document.addEventListener("DOMContentLoaded", function () {
// you could also use var instead of let here
let lightbox = new Dbox( {
modal: true
} );
lightbox.run();
});
Modal Example. Click the image to open a modal lightbox
If you want to live on the edge and only support one browser — you shouldn't do this but I'll let you :) — you can use the dbox.noPolyfill.min.js file found in dist/js directory.
If you have a server side solution for getting an images dominant color you can use the file dbox.noColorThief.min.js found in the dist/js directory.
Dbox uses object-fit:
to display images in the lightbox. This is only supported in
So images will be "stretched" on large screens that don't support object-fit. The images below show the difference between Firefox that supports object-fit and Edge 15 which doesn't.
FireFox
{{ img('demos/firefox-object-fit-desktop.png', 'betterthumb_demo', { 'altText': 'Milky Way Above Bend in Forested Shoreline By Eric Kilby', }) }}Edge 15 No Object Fit
{{ img('demos/edge15-no-object-fit.png', 'betterthumb_demo', { 'altText': 'Milky Way Above Bend in Forested Shoreline By Eric Kilby', }) }}The object-fit polyfills I found didn't work very well so I opted to not use them. If you wish to try you can find one at object-fit-images . It also links to other available polyfills. You'll use this at your own discretion. I don't plan on debugging any object-fit polyfill usage with this library.
Dbox also uses Color Thief to get the dominant color of an image. If your thumbnail image is large then this could cause a delay since it has to process a large image.
As shown above this supports all "modern" browsers. So Edge, Firefox, Chrome, Opera, Safari.
Internet Explorer 11 is "supported" but you'll have to include some of your own custom CSS to properly align the dialog box in the window when it's opened.
Why did I build Dbox? HTML5.1 initially introduced the dialog element . It makes using and making dialogs, modals and lightboxes super easy. The current browser support (as of this posting) isn't very good but there is a small polyfill included in this library to over come that.
In one of Twitter's recent updates they started to apply a dominant color to the image's description on desktop and the background on mobile
Twitter Lightbox on a Desktop
{{ html5video('blog/twitter-lightboxes.opt.mp4', 'default', { video_poster: '/files/twitter-lightbox-poster.jpg', use_cdn: true, } ) }}Twitter Lightbox on a phone
{{ html5video('blog/twitter-lightbox.mobile.opt.mp4', 'default', { video_poster: '/files/twitter-lightbox-mobile-poster.jpg', use_cdn: true } ) }}I really liked that. So I wanted to replicate it


About
Largely based on the "German PC-Style Shortcuts" keymap above, but more complete. Maps keys from a German PC/ISO ("Windows") layout to their actual keycodes in MacOS and swaps left command and option keys akin to MacOS keyboards.Full Keymap
Full German PC/ISO "Alt Gr[aph]" mapping for MacOS X (highlighted in Blue in the graphic below).
Mapped Keys
| From | To |
|---|---|
| Option (Right)+< | | |
| Option (Right)+Q | @ |
| Option (Right)+E | € |
| Option (Right)+7 | { |
| Option (Right)+8 | [ |
| Option (Right)+9 | ] |
| Option (Right)+0 | } |
| Option (Right)+ß | \ |
| Option (Right)++ | ~ |
| Alt (Left) | Command (⌘) |
| Windows (Left) | Option (⌥) |


--- layout: example categories: example/v1.0.0 version: v1.0.0 title: Leaflet Draw description: Add drawing tools for users to author shapes using the Leaflet Draw plugin. tags: - plugins ---


Anomoz V2
A anonymous chatting application where people can chat in groups on different topics. People can also be invited on one's wall. All users are notified in case of a new message.
What is Anomoz?
1) Anomoz is where you can chat to a random person from around the globe anonymously.
2) Anomoz is where you can create a group and invite all your friends together to talk about a topic anonymously so that no one can judge you.
3) Anomoz is where you can create a confession group and invite your collegues to join and post in it.
4) Anomoz is where you have your personal URL so that it's easier for people to remember you.
5) Anomoz is where you are completely anonymous even from our database.
6) Anomoz is where you are kept updated of all the conversations using our screen notification system.
7) Anomoz is where you give your friends a chance to be honest with you.
8) Anomoz is where you can create hidden groups to talk about a subject.
9) Anomoz is where you are share messages with images.
10) Anomoz is where you can chat with people without even having an account.
Features
1) Progressive web app
2) Add to homescreen option
3) Push notifications
4) Google Signin
Website available here, Anomoz.com


The traditional party model is broken
Traditional parties are focused on getting our vote, not on giving us a voice...
...they have an incentive to create division, not unity...
Short-term thinking thrives where getting power is the #1 priority
Policy decisions are based on votes not vision, bold ideas are too politically risky...
...soundbites, scandals, lolly scrambles...
...media frenzy, spin doctors, point scoring and dirt digging
Aotearoa, we need a better way of doing politics...
...that shifts power from the few to the many
is a
We're building a new way of doing politics that gives everyday kiwis power to influence the decisions that shape Aotearoa...
We're building a digital democracy platform...
...where our members contribute the values that go into building our policy
We're talking about participation at massive scale... by anyone with a $50 smartphone...
...we're talking about rewriting the rules of politics, for people
OneAction is a grassroots movement starting from zero
At this early stage, we're just looking for people to register their support for the idea, and share the idea.


Go to the source code of this file.
|
| void | utl::meanMaxError (const std::vector< std::vector< Vector3f > > &fibersA, const std::vector< std::vector< Vector3f > > &fibersB, double &meanError, float &maxError, uint64_t &totalNbPts) |
| | meanMaxError Function to compute average and maximum error between two sets of fibers containing the exact same number of points and fibers More...
|
| |
| void | utl::error (const std::vector< std::vector< Vector3f > > &fibersA, const std::vector< std::vector< Vector3f > > &fibersB, vector< float > &minError, vector< double > &meanError, vector< float > &maxError, float &minEndPointError, float &meanEndPointError, float &maxEndPointError, uint64_t &totalNbPts, unsigned steps=10, float minValue=35, float maxValue=260) |
| | error Function to compute the error between two sets of fibers with the exact same number of points and fibers This error is computed depending on the length of the fibers More...
|
| |
◆ error()
| void utl::error |
( |
const std::vector< std::vector< Vector3f > > & |
fibersA, |
|
|
const std::vector< std::vector< Vector3f > > & |
fibersB, |
|
|
vector< float > & |
minError, |
|
|
vector< double > & |
meanError, |
|
|
vector< float > & |
maxError, |
|
|
float & |
minEndPointError, |
|
|
float & |
meanEndPointError, |
|
|
float & |
maxEndPointError, |
|
|
uint64_t & |
totalNbPts, |
|
|
unsigned |
steps = 10 , |
|
|
float |
minValue = 35 , |
|
|
float |
maxValue = 260 |
|
) |
| |
error Function to compute the error between two sets of fibers with the exact same number of points and fibers This error is computed depending on the length of the fibers
- Parameters
-
| fibersA | Vector containing the first set of fibers |
| fibersB | Vector containing the second set of fibers |
| minError | Minimum error |
| meanError | Average error |
| maxError | Maximum error |
| minEndPointError | Minimum error on every end point |
| meanEndPointError | Average error on every end point |
| maxEndPointError | Maximum error on every end point |
| totalNbPts | Variable containing the total number of points in the bundle, used for average error computation |
| steps | Number of length separation to perform |
| minValue | Minimum length to consider |
| maxValue | Maximum length to consider |
◆ meanMaxError()
| void utl::meanMaxError |
( |
const std::vector< std::vector< Vector3f > > & |
fibersA, |
|
|
const std::vector< std::vector< Vector3f > > & |
fibersB, |
|
|
double & |
meanError, |
|
|
float & |
maxError, |
|
|
uint64_t & |
totalNbPts |
|
) |
| |
meanMaxError Function to compute average and maximum error between two sets of fibers containing the exact same number of points and fibers
- Parameters
-
| fibersA | Vector containing the first set of fibers |
| fibersB | Vector containing the second set of fibers |
| meanError | Average error |
| maxError | Maximum error |
| totalNbPts | Variable containing the total number of points in the bundle, used for average error computation |


This is a list of classes I am currently taking online:
Here are the courses that I am planning to take in the near future:


4/30 email
Dear CSI Students:
I know that many of you and your families have suffered financial hardships due to COVID-19 related closures. My office has received a record number of requests for Petrie Emergency Grants and we continue to process those as quickly as possible (Apply here: https://www.csi.cuny.edu/admissions/paying-college/emergency-funding).
In an effort to ensure that you are aware of other assistance available to help you and your families during this difficult time, I am sharing links to NYS Unemployment Insurance Assistance, NYC Human Resources Administration (HRA), and NYC Food Resources.
The NYS Unemployment Insurance Assistance link includes information on Pandemic Unemployment Assistance (PUA) and COVID-19 Paid Sick Leave.
https://dol.ny.gov/unemployment/unemployment-insurance-assistance
The NYC HRA link includes information on the following:
· NYC Human Resources Administration Benefits · Federal Stimulus Payments: Economic Impact Payments · SSI/SSD Recipient Stimulus Payments · Health Assistance Information (health insurance information) · COVID-19 Easements · Other Important Information (evictions, utility shutoffs, Home Energy Assistance Program, Family Courts, child support, and more)
https://www1.nyc.gov/site/hra/important-information-about-covid-19-and-your-hra-benefits.page
Lastly, in addition to the CSI Food Pantry, NYC has many resources for those needing food, including food delivery for those who are unable to leave their homes.
https://www1.nyc.gov/assets/dsny/contact/services/COVID-19FoodAssistance.shtml
I hope this information is helpful.
Best regards,
Jennifer S. Borrero, J.D. Vice President for Student Affairs and Alumni Engagement


Transaction propagation in Spring
- PROPAGATION_MANDATORY - Support a current transaction, throw an exception if none exists.
- PROPAGATION_NESTED
- PROPAGATION_NEVER - Execute non-transactionally, suspend the current transaction if one exists.
- PROPAGATION_REQUIRED - Support a current transaction, create a new one if none exists.
- PROPAGATION_REQUIRES_NEW - Create a new transaction, and suspend the current transaction if one exists.
- PROPAGATION_SUPPORTS - Support a current transaction, execute non-transactionally if none exists.


Known professionally as Lil Peep (often stylized as LiL PEEP), was an American rapper, singer, songwriter and model.He was known for helping pioneer an emo revival style of hip hop and rock music. Lil Peep was a frequent user of drugs due to his mental health issues, which ultimately caused his death on November 15, 2017. The Pima County Office of the Medical Examiner certified the cause of death to be an accidental fentanyl–alprazolam overdose, the latter of which was branded as Xanax.


Percentage of residential solid waste diverted from landfills through recycling and yard waste processing
Residential solid waste includes garbage, recycled items, yard waste and non-recyclable bulky items.  Diverting solid waste from landfills saves money for families and communities, saves energy and water, reduces air and water pollution, and conserves natural resources. Solid waste diversion can be increased by increasing recycling participation and separating yard waste from garbage.
####How are we doing? The Environmental Protection Agency estimates that 75% of solid waste is recyclable. Households in the City of Charlotte diverted just under 36% of solid waste from the landfill in 2013, virtually unchanged since 2011.
####Did you know? More than 100,000 tons of yard trimmings were received at Mecklenburg County composting facilities in 2013. While compost is available for purchase in bulk by the public, Mecklenburg County sells most of its compost to a private vendor, which in turn bags and sells the compost in stores.
####Related Variables
Residential Recycling
Residential Solid Waste
Population Density
Tonnage of residential recycled waste and yard waste collected from the City of Charlotte for the fiscal year from eligible households, divided by the total tonnage of residential solid waste collected from eligible households. Residential solid waste includes garbage, recycling, yard waste and non-recyclable bulky items. The data include single family residential units (attached and detached), multi-family buildings with fewer than 30 units, and any additional legacy multi-family buildings serviced by the City of Charlotte. Towns in Mecklenburg County are not included because solid waste data are not collected at the neighborhood level.
Source: City of Charlotte Solid Waste Services
| Resource | Learn More and Take Action |
|---|---|
| Wipe Out Waste! | Mecklenburg County's Solid Waste programs and services to help us all Wipe Out Waste. |
| 2014 Mecklenburg County State of the Environment | Find out how we're doing in Mecklenburg County. |
| Solid Waste Management Plan | Mecklenburg County's plan to ensure proper disposal and management of solid waste and meet waste reduction goals. |
| Waste Diversion Basics | Start here to learn about what you can do to divert waste. |
| Decomposition Time | See how long it takes for everyday materials to decompose in a landfill (PDF Download). |
| What Can Be Recycled | From glass to pizza boxes, here's what can and cannot be recycled. Look up local Recycling Locations and Yard Waste Drop Off Locations. |


{% extends "layout_task-list.html" %} {% block page_title %} Money Claims Prototype {% endblock %} {% block home_link %} ../../task-list {% endblock %} {% block proposition_header %} {% set my_account="1" %} {% include "includes/propositional_navigation.html" %} {% endblock %} {% block content %} {% include "includes/phase_banner_beta.html" %} {% if data.return_page and data.return_page.includes('check-and-send') or data.return_page and data.return_page.includes('check-your-answers')%} {% else %} {% endif %} {{formData | safe}} Timeline of events If you do not know the exact date, tell us the month and year. Example timeline 21 March 2021 - I noticed a leak on the landing and told Mr Smith about this. 14 February 2021 - We agreed and signed a contract for the work. 12 January 2021 - John Smith gave me a quote to replace the roof. Explain what happened Date For example, March 2021 What happened For example, you might have signed a contract Actions Remove {{data['cd-timeline-1']}} Add above Add below {% if data.return_page and data.return_page.includes('check-and-send') or data.return_page and data.return_page.includes('check-your-answers')%} Cancel {% else %} {% endif %} {% block page_scripts %} {% endblock %} {% include 'prototypes/prototype-oct-2019/includes/contact.html' %} {% endblock %}
If you do not know the exact date, tell us the month and year.
Example timeline


{% extends "base.html" %} {% block title %}Application Withdrawn{% endblock %} {% block content %}
You have successfully withdrawn your application for credentialed access. You may now submit a new application from your user credentialing page.


This inspection reports any calls to System.runFinalizersOnExity() from
Groovy code. This call is one of the most dangerous in the Java language. It is inherently non-thread-safe,
may result in data corruption, deadlock, and may affect parts of the program far removed from it's call point.
It is deprecated, and it's use strongly discouraged.
Powered by InspectorGroovy


---
layout: null
section-type: about
title: About
---
## Narratio
Three**Sixty** is a web application platform to streamline the 360 review process for managers and employees by integrating the employee recognition and evaluation into a single view. Through continuous recognition and evaluation the employee is engaged in the process of maintaining and striving to achieve personal as well as corporate objectives. [via].
Three**Sixty** currently provides the assessment module whereby the employee and manager are able to review the progress made by the employee against the outlined goals which goes through a 3 step process of
* The employee assessing his / her performance with comments
* The manager assessing the performance of the employee together with feedback
* The manager and employee review the assessment together for the final assessment score
![alt text](http://res.cloudinary.com/yellowfire/image/upload/v1456549916/Assessment%20screen.png "Assessment screen")
Support the repo by starring or forking it!


Package algorithms.statistics
Class HypersphereChordLength
- java.lang.Object
-
- algorithms.statistics.HypersphereChordLength
-
public class HypersphereChordLength extends java.lang.Object
functions useful for testing uniformity of points on the n-sphere from the paper:Measuring spatial uniformity with the hypersphere chord length distribution 2020, Panagiotis Sidiropoulos https://arxiv.org/pdf/2004.05692.pdf arXiv:2004.05692v1 [cs.CG] 12 Apr 2020
- Author:
- nichole
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
HypersphereChordLength.NonUniformityStats
static class
HypersphereChordLength.POINT_DISTRIBUTION_TYPE
-
Constructor Summary
Constructors Constructor Description HypersphereChordLength()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static HypersphereChordLength.NonUniformityStats
calcConfidenceOfNonUniformity(double[][] x, int m, HypersphereChordLength.POINT_DISTRIBUTION_TYPE type, java.security.SecureRandom rand)
test to identify non-uniform spatial distribution, assessing whether the points span the hypersphere in a way that is compatible with the uniform distribution.static double
calcL1UniformityStatistic(double[][] x, int m, HypersphereChordLength.POINT_DISTRIBUTION_TYPE type, java.security.SecureRandom rand)
IV.static double
calcL1UniformityStatistic(double[] d, int nDimensions)
calculate the uniformity measure based upon the point distances (presumable measured by methods (2) or (3) of Sective IV.(package private) static double[]
calcPairwiseDistances(double[][] x, int[] idx)
(package private) static double[]
calcPairwiseDistances(double[][] x, int[] idx, int p0Idx)
static double[]
cdf(double[] d, double r, int n)
M points selected uniformly and independently from the surface of a n-dimensional hypersphere of radius R.(package private) static int[]
chooseM(int m, int n, java.security.SecureRandom rand)
randomly choose m numbers from 0 to n-1, inclusive.(package private) static double[]
createOrderedDistanceDistribution(double[][] x, int m, HypersphereChordLength.POINT_DISTRIBUTION_TYPE type, java.security.SecureRandom rand)
static double
findCVForAlpha95Percent(int nDimensions)
a rough critical value for which alpha is 95% for a unit radius nDimension hypersphere.static double
meanOfChordLengthDistribution(double r, int n)
static double
momentAboutOrigin(int k, double r, int n)
static double[]
pdf(double[] d, double r, int n)
M points selected uniformly and independently from the surface of a n-dimensional hypersphere of radius R.static double
varianceOfChordLengthDistribution(double r, int n)
-
-
-
Method Detail
-
pdf
public static double[] pdf(double[] d, double r, int n)
M points selected uniformly and independently from the surface of a n-dimensional hypersphere of radius R.- Parameters:
d
- pairwise euclidean distancesr
- radius of the n-dimensional hypersphere. e.g.use r=1 for unit standard.n
- the number of dimensions of the hypersphere- Returns:
- vector of the probabilities
-
cdf
public static double[] cdf(double[] d, double r, int n)
M points selected uniformly and independently from the surface of a n-dimensional hypersphere of radius R.- Parameters:
d
- pairwise euclidean distancesr
- radius of the n-dimensional hypersphere. e.g.use r=1 for unit standard.n
- the number of dimensions of the hypersphere- Returns:
-
momentAboutOrigin
public static double momentAboutOrigin(int k, double r, int n)
- Parameters:
k
- the k-th momentr
- radius of the n-dimensional hypersphere. e.g.use r=1 for unit standard.n
- the number of dimensions of the hypersphere- Returns:
-
meanOfChordLengthDistribution
public static double meanOfChordLengthDistribution(double r, int n)
- Parameters:
r
- radius of the n-dimensional hypersphere. e.g.use r=1 for unit standard.n
- the number of dimensions of the hypersphere- Returns:
-
varianceOfChordLengthDistribution
public static double varianceOfChordLengthDistribution(double r, int n)
- Parameters:
r
- radius of the n-dimensional hypersphere. e.g.use r=1 for unit standard.n
- the number of dimensions of the hypersphere- Returns:
-
calcConfidenceOfNonUniformity
public static HypersphereChordLength.NonUniformityStats calcConfidenceOfNonUniformity(double[][] x, int m, HypersphereChordLength.POINT_DISTRIBUTION_TYPE type, java.security.SecureRandom rand)
test to identify non-uniform spatial distribution, assessing whether the points span the hypersphere in a way that is compatible with the uniform distribution.see notes belowx in method comments for calcL1UniformityStatistic
TODO: determine the number of iterations to calculate L1's in some manner. It's currently set to a value of 100 internally.- Parameters:
x
-m
-type
-rand
-- Returns:
-
calcL1UniformityStatistic
public static double calcL1UniformityStatistic(double[][] x, int m, HypersphereChordLength.POINT_DISTRIBUTION_TYPE type, java.security.SecureRandom rand)
IV. HYPERSPHERE CHORD LENGTH DISTRIBUTION AS A UNIFORMITY MEASURE As already mentioned, some of the most interesting properties of the hypersphere chord length distribution arise from the fact that this is the limit distribution of the distances of uniformly selected hypersphere points. To summarise, the hypersphere chord length distribution is the limit distribution of 3 (related but distinct) distributions: 1) M point pairs: The distance distribution of M point-pairs ||pi − p′i ||, i = 1, 2, ..., M , if the 2M relevant points pi and p′i are independently selected from a uniform random distribution. 2) M(M − 1)/2 point pairs: The intra-distance distribution of a set of M points pi,i=1,2,...,M, if the M relevant points are independently selected from a uniform random distribution, before the M(M − 1)/2 pairwise distances ||pi − pj||,i,j = 1,2,...,M,i ̸= j are estimated. 3) M - 1 point pairs: The distance distribution of a set of M − 1 points pi,i = 1,2,...,M − 1 from a fixed point p0 if both pi and p0 are selected from a uniform random distribution before the M − 1 pairwise distances ||pi − p0 ||, i = 1, 2, ..., M − 1 are estimated. The second and the third distribution allow the hypersphere chord length distribution to be used as an uniformity measure, as is described in the current section. to quantify the ”uniformity” of an input point distribution on a N-sphere, the L1 distance is used. L_1(g) = integral_{x=0_to_2} ( | g_N(x) - f_N(x)| * dx ) where f_N(x) is hypersphere chord length distribution == the pdf, and g_N is intra-distance distribution of the input point distribution using model (2) above. x is the chord length d, so the integration is from d=0 to d=2 (probably 2*r). Initially, uniform pointsets of size M′ (where M′ is much smaller than M) are generated on the N-sphere and L1 values are sorted, before acquiring the α%-largest L1 value and finally extrapolating for pointsets of size M. This value is the threshold with which the input distance distribution L1(g) is compared to determine whether it is uniform or not. Elaborating on this idea, based on the computational cost of iteratively estimating pairwise distances, L1 can be used to qualitatively assess whether an N-dimensional point sample S (consisting of M points, and having an intra-distribution g) originates from a uniform N-sphere (or N-hemisphere) distribution following on of the three following approaches: • If S dimension N and sample size M imply a non-prohibitive computational cost, then Q uniformly distributed point sets of size M and dimension N are randomly generated and L1 is estimated for all of them (as well as for S). If the α%-largest L1 value of Q is smaller than L1(g) then S can be declared as non-uniform with confidence (100 − α)%.
- Parameters:
x
- data points in format [nSamples][nDimensions] that are to be tested as uniformly distributed on an nDimensions hypersphere (note, there may be some confusion in definitions as the literature using von Mises–Fisher distributions for the hypersphere have a multiplier that includes a dimension that is then multiplied by an n-sphere of dimension n-1).m
- the number of points to choose from x.length in calculating L1type
- type of distance distribution to create internally using methods outlined about form Section IV. of 2020 Sidiropoulos.rand
-- Returns:
- the calculated L1 statistic from eqn (26) of the paper.
-
createOrderedDistanceDistribution
static double[] createOrderedDistanceDistribution(double[][] x, int m, HypersphereChordLength.POINT_DISTRIBUTION_TYPE type, java.security.SecureRandom rand)
-
calcL1UniformityStatistic
public static double calcL1UniformityStatistic(double[] d, int nDimensions)
calculate the uniformity measure based upon the point distances (presumable measured by methods (2) or (3) of Sective IV. of the 2020 Sidiropoulos paper.to quantify the ”uniformity” of an input point distribution on a N-sphere, the L1 distance is used. L_1(g) = integral_{x=0_to_2} ( | g_N(x) - f_N(x)| * dx ) where f_N(x) is hypersphere chord length distribution == the pdf, and g_N is intra-distance distribution of the input point distribution using model (2) above. x is the chord length d, so the integration is from d=0 to d=2 (presumably 2*r with r=1).
- Parameters:
d
- array of point distances, sorted by non-decreasing order.nDimensions
-- Returns:
- the calculated L1 statistic from eqn (26) of the paper.
-
chooseM
static int[] chooseM(int m, int n, java.security.SecureRandom rand)
randomly choose m numbers from 0 to n-1, inclusive.- Parameters:
m
-n
-rand
-- Returns:
-
calcPairwiseDistances
static double[] calcPairwiseDistances(double[][] x, int[] idx)
-
calcPairwiseDistances
static double[] calcPairwiseDistances(double[][] x, int[] idx, int p0Idx)
-
findCVForAlpha95Percent
public static double findCVForAlpha95Percent(int nDimensions)
a rough critical value for which alpha is 95% for a unit radius nDimension hypersphere.- Parameters:
nDimensions
- the number of dimensions of the hypersphere- Returns:
- rough critical value for 95% quantile
-
-


Microservices in practice with JHipster
From dev 💻 to prod 🚀
Pierre Besson
Paris JHipster Meetup #10, October 4th, 2017
Who am I ?
- Java developer @IpponTech
- FullStack & DevOps
- JHipster core team member
- Favorite technologies:
- ☕ JAVA EE
- 🍃 Spring
- 🐳 Docker
- ☸ Kubernetes
- 300 collaborators worldwide (France, USA, Australia)
- 4 cities in France : Paris, Nantes, Lyon, Bordeaux
- Specialized in Java, Cloud, Big Data
Introducting Microservices
Why microservices?
Microservices patterns
Beware microservice hype
Why microservices
- “Microservices are small, autonomous services that work together” (Sam Newman)
- Take the concepts of distributed systems and SOA to the next level
- Emphasis on :
- Technology Heterogeneity
- Evolutionary architecture
- Resilience
- Ease of deployment
- Organizational Alignment
- Composability
Beware microservice hype
Think twice before jumping on the microservice hype train
- Microservices are not simpler than monoliths
- Choosing the right decomposition is hard
- “Architect’s Dream, Developer’s Nightmare”
- Good idea to start with a monolith
- You are not Google/Netflix
JHipster as a microservice platform
JHipster goals
Extending JHipster for microservices
Monolith vs Microservices
Technologies used
The JHipster Microservice Stack
JHipster goals
- 🏗 Provide scaffolding for a Full Stack application
- 💠 Based on modern technologies
- 🔧 Maximize development productivity with tooling
- 📈 Production ready (maintainable, secure, scalable)
JHipster
from
monolith
to
microservices
Extending JHipster for a microservice architecture
- 🏗 Generate several independent microservices and front-ends
-  Work out of the box in dev and in prod !
- Configure service discovery and centralized configuration
- 🔒Provide a distributed security solution
- Generate entities back-end and front-end separately
- Be DevOps ready: provide configuration for docker, CI-CD, ...
- Provide management dashboards
- Offer a Monitoring solution to manage production
Monolith vs Microservices
Technologies used by JHipster Microservice
Rely on Spring Boot and Spring Cloud abstractions:
- Service discovery: Eureka/Consul
- Centralized configuration: Spring Cloud Config
- ⛩ API Gateway: Zuul
- 🔀 Client side load balancing: Ribbon
- ⚡ Circuit Breaker: Hystrix
The JHipster Microservice Stack
Added value added over the base Spring Cloud stack:
- JHipster Registry: Eureka + Config server + Management
- ⛩ JHipster Gateway: API management with Zuul and Swagger docs
- 🔁 CI-CD Configuration: Pipelines for Jenkins 🤵, Travis 👷, Gitlab
- 🚀 Deployments: Docker 🐋, Kubernetes ☸, Rancher 🐄
- JHipster Console: logs + metrics + traces (based on ELK and Zipkin)
Show time
🎆
Using JHipster to develop microservices
Running the full architecure with docker
Let's go to production
🚀
Deploying microservices on Kubernetes
Introduction to microservice monitoring
Problems and solution
The 3 ways of observability
The JHipster Console
The problems
- Distributed system -> More complex to observe
- Logs are dispersed in many many log files
- Hard to locate the microservice that caused a problem
- Hard to follow the chain of requests
- 🐇/🐢 Studying latency is hard
- 💂 Resiliency mechanism are hard to configure properly
The solution
Comprehensive monitoring
- Logs : discrete event
- Metrics : numerical values (business or technical)
- Traces : chains of calls in the system (spans)
- Store everything in one place, with proper metadata
- Use a search engine to query and aggregate monitoring data
- Visualize using graphs and dashboards
- Navigate around
- Create alerts
The 3 ways of observability
The 3 ways of observability
The JHipster Console
www.jhipster.tech/monitoring/
- Setup the ZELK stack (Zipkin, Elasticsearch, Logstash, Kibana) in docker
- Enable reporting from any JHipster app with a few properties
- Logs + metrics forwarded with logback-logstash-encoder
- Traces are forwarded to Zipkin using Spring Cloud Sleuth
- Logs are enriched with trace information (Trace ID)
- Data is stored in Elasticseach for a certain number of days (Curator)
JHipster Console demo
Navigating around Kibana
Creating custom visualizations and dashboards
Graphing metrics, manipulating timeseries
Following call traces accross services (Kibana + Zipkin)


Below is a list of small applications I made for learning, sating my curiosity, but mostly for my own amusement. It's okay if you find them fun or interesting though.
Below is a list of small applications I made for learning, sating my curiosity, but mostly for my own amusement. It's okay if you find them fun or interesting though.
Apart from the above, I have many small repos relating to Python, Godot, Docker and other stuff.
See more on my GitHub profile page


| Application number | Title | Knowledge base partner | Allocated | Interested | Declined | Pending | button |
|---|---|---|---|---|---|---|---|
| title | lead | 4 | 2 | 1 | 1 | View feedback |
| Application number | Title | Knowledge base partner | Allocated | Interested | Declined | Pending | button |
|---|---|---|---|---|---|---|---|
| title | lead | 4 | 2 | 1 | 1 | View feedback |


--- layout: post title: Freakish Firefox behaviour tags: [] status: publish type: post published: true meta: {} ---
I was trying access my locahost on a non-standard port and firefox kindly re-directed me to localhost.be. I turns out that having keyword.enabled = true, in your about:config results in you being re-directed there. The fix can also be found on that site. Thanks!


| DOSE: |
10 mg |
oral |
Pharms - Escitalopram |
(daily) |
I have been taking cipralex for a little more than a month now, to treat my depression and anxiety issues, and, combined with other positive changes, have been having the happiest period of my life.
To begin, my current experience, in brief, for those who might just want to skim this report. In point form, the pros and cons, so far:
Pros:
-increased energy
-decreased shyness
-increased sexuality
-less likely to become emotionally overwhelmed
Cons:
-occasional teeth grinding
-increased sexuality
-yawning without fatigue
-decreased attention span
-sleep pattern disrupted
-cost (I do not have a drug plan, so the pills are a burden financially)
It is true that some of the 'cons' could perhaps be considered neutral, but I tend to find the yawning a bit confusing and the teeth grinding very annoying.
The decreased attention span is perhaps the consequence of increased energy - I am a graduate student, and my ability to read for long periods of time has been severely diminished, which is not a good thing. I have found ways to deal with this, but it is disruptive to my persona as a dedicated student, something I hold to be important.
 I remarked to a friend a few weeks after beginning cipralex that it was like I had entered a second puberty of some sort because my thoughts were almost constantly turning to women and sexual fantasies. Prior to beginning this treatment, I would avoid thinking about such things as I saw any aspect of sexuality in myself as merely a source of anxiety. So the increased confidence and focus on sexuality which seems to have come with cipralex is both welcome, as I do wish to give expression to my sexual side, and feared, as I have many anxious feelings attached to that category which are being seemingly forced upon me now.
My sleeping pattern used to be fairly simple - I was tired all of the time, and would sleep twelve or fourteen hours a day if possible. My preference was to be awake in the hours after midnight for the peace and quiet. With cipralex, I seem to switch between sleeping for ten hours some days, and having a pretty normal schedule, to having limitless energy for up to twenty-four hours, in which I walk and talk a great deal, getting many things done. It sounds like the manic episodes some of my bipolar friends report, though not quite as severe, and without reduced inhibitions. Such episodes are very enjoyable at the time, but disruptive for my class schedules and such, especially when I inevitably crash.
HISTORY
I have been on other SSRIs in the past (paxil, celexa, effexor) as well as wellbutrin (which is some other class of antidepressant). Out of these wellbutrin seemed to have the most balanced effect, as the others tended to make me feel like a zombie. My memory of all of these is hazy though, as I took them mostly in high school, and wellbutrin on to my first couple years of university. I now realize that it is possible these did help me by giving me a more stable emotional life to work with, but at the time I was not ready to utilize such tools - my view of myself, of my future, of other people, and of God were still all too dark to allow me to do so.
After I discontinued wellbutrin, some time in 2005 or 2006, feeling that it did not help me, I began smoking marijuana more and more heavily. This basically became my antidepressant, and though I still suffered from panic attacks, it kept me 'afloat,' so to speak, and I was a successful student, if a lonely one.
2008 was a year of great changes, the catalyst for where I am today. The significant events were, in order: my graduation with a BA, a summer job which drained me of self esteem and ambition, a move to a larger city away from family and friends in order to attend graduate school, me dropping out of graduate school, me losing my virginity finally, and following all this, a winter (2009) of me utterly alone, without job, school, or friends, smoking too much pot and consuming any other drug that came along (including LSD, HBWR, gravol, kratom, benadryl, DXM, syrian rue, amanita muscaria, and others).
Having come out of that winter alive and with a much deeper understanding of myself, I found I was having violent mood swings (from euphoria for two days to suicidal the next three) and that my old ally marijuana merely made me paranoid. I resolved to find a suitable therapist willing to deal with issues of meaning rather than mere symptoms, and to give antidepressants another try.
Over the summer I was successful in achieving this, and cipralex has been an important ingredient in a much brighter future. However I recognize that its effectiveness is directly related to my new apartment, my new outlook, my new graduate school (with full funding this time), and my new relationship with both my body and spirit. As I used to occasionally say to friends, I see antidepressants and other 'therapeutic' drugs as essentially crutches - one must be willing to learn to walk with them if any healing is to occur, but the point is to eventually be rid of the crutches altogether and walk on one's own.
As I hope comes across in this report, I am pleased with life and partially credit cipralex with this change. It is the first instance of an antidepressant that seems to work for me.
As an added note, my view of 'recreational' (or at least illegal) drugs is essentially positive though I now avoid most of them. Marijuana and psychedelics, though I often used them to hide from the world, did open me to many aspects of myself that otherwise might have been left unknown, as well as giving me experiences which deepened my relationship with God.
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.


Hello, world!
My name is Patricia Martínez Espert and I am proud to introduce you my own and very first blog. It's main topic is mobile development (Android development to be more precise) but it is intended to treat other top notch tech topics as well.
Kotlin 1.5.0 released
Kotlin 1.5.0 introduces new language features, stable IR-based JVM compiler backend, performance improvements, and evolutionary changes such as stabilizing experimental features and deprecating outdated ones.
About Kotlin Mobile Multiplatform
Kotlin Multiplatform Mobile (KMM) is an SDK that allows you to use the same business logic code in both iOS and Android applications. It includes the new KMM Plugin for Android Studio, which allows you to write, run, test, and debug shared code in the same IDE


This page will send HTTP requests to routes that require oauth tokens.
If you provide a valid token you will be authenticated with the third party provider.
If the token is not valid the request will be rejected.
This step would normally performed by logging into Facebook
/Google
in your mobile application.
Create a google user access token using the Google oauth playground.
Create a facebook user access token using the Facebook tools explorer.
View your public google profile by sending a token via HTTP GET request to "/typesafegoogletoken"
View your public facebook profile by sending a token via HTTP GET request to "/typesafefacebooktoken"
Authenticate in a type safe route by sending a facebook or google token via HTTP GET request to "/typesafemultitoken"
Authenticate in a raw route by sending a facebook or google token via HTTP GET request to "/rawtokenauth"


Single-origin
We have built partnerships with small farms around the world to hand-select beans at the peak of season. We then carefully roast in small batches to maximize their potential.
Blends
Our tasters have put together a selection of carefully balanced blends. Our famous house blend is available year round.
Brewing Equipment
We offer our favorite kettles, French presses, and pour-over cones. Come to one of our brewingclasses to learn how to brew the perfect pour-over cup.


PasswordGenerator
in package
The PasswordGenerator class
Class to generate random secured password
Tags
Table of Contents
- CHAR_ALL = 15
- CHAR_ALPHA = 3
- CHAR_ALPHA_LOWER = 1
- CHAR_ALPHA_UPPER = 2
- CHAR_ALPHADIGIT = 7
- CHAR_DIGIT = 4
- CHAR_SYMBOL = 8
- $primarySets : array<string|int, mixed>
- The set of character we could require in password
- __construct() : mixed
- Constructor
- generate() : string
- Generate a random complex password
- setPrimarySet() : mixed
- Set a known set of character by flag
Constants
CHAR_ALL
public
mixed
CHAR_ALL
= 15
CHAR_ALPHA
public
mixed
CHAR_ALPHA
= 3
CHAR_ALPHA_LOWER
public
mixed
CHAR_ALPHA_LOWER
= 1
CHAR_ALPHA_UPPER
public
mixed
CHAR_ALPHA_UPPER
= 2
CHAR_ALPHADIGIT
public
mixed
CHAR_ALPHADIGIT
= 7
CHAR_DIGIT
public
mixed
CHAR_DIGIT
= 4
CHAR_SYMBOL
public
mixed
CHAR_SYMBOL
= 8
Properties
$primarySets
The set of character we could require in password
protected
array<string|int, mixed>
$primarySets
= array()
Methods
__construct()
Constructor
public
__construct() : mixed
Return values
mixed —generate()
Generate a random complex password
public
generate([int $length = 10 ][, int $availables = self::CHAR_ALPHADIGIT ][, array<string|int, int> $tokens = array(self::CHAR_ALPHA, self::CHAR_DIGIT) ]) : string
Parameters
- $length : int = 10
- $availables : int = self::CHAR_ALPHADIGIT
- $tokens : array<string|int, int> = array(self::CHAR_ALPHA, self::CHAR_DIGIT)
Return values
string —setPrimarySet()
Set a known set of character by flag
public
setPrimarySet(int $flag, string $characters) : mixed
Parameters
- $flag : int
- $characters : string


Profile
Favorites
Manage Users
Add Admin
Title
Description
Published At
Action
{{article.article.title}}
{{article.article.description}}
{{article.article.publishedAt | date : "medium"}}
Article removed from favorites !
Toggle Menu


There are many places to get checked up as teen mom and many places are free. The following are some clinics you can look into depending on where you live:
Pregnancy Care Centers
Women health clinics
Planned Parenthood health Centers
Even calling 311 to get more informed because every place is different
Many clinics will ask for insurance but you can sometimes depending on which clinics or health care center you choose can have low costs offers. There is websites were you can look for clinics near you an example is
Why is it important to stay protected?
It’s fine to have fun once in a while but you need to know the after effects of it and what can happen if you do not take the proper precautions. There are so many deadly diseases out in the world and you can get infected if you and your partner is not being safe. Some of those diseases include:
HIV
STD( in the United States 63 million people yearly are transmitted STD during sex)
Herpes
Chlamydia
Warts
And many more other types of diseases. Some diseases can further on leave sterile meaning you can not have kids. Sexually transmitted diseases can further on have a even bigger toll on your life such as getting cancer or brain damage. Worse case scenario dying.
Ways to stay protected:
Using condoms when having sex (male or female but female condoms tend to have a stronger resistance than male condoms)
Having drugs or alcohol before sex can be dangerous because you be aware and might forget to protect yourself
Know your partner and who they are as a person
There are any places to get condoms such as Nurses or doctors office or even health centers.


gitone package¶
Submodules¶
gitone.spa module¶
-
gitone.spa.
spa
() → None[source]¶ Stash local changes, pull with
--rebase
, and apply local changes.- Note
Use
spa()
if you try to pull with--rebase
and get an error that says:error: cannot pull with rebase: You have unstaged changes. error: please commit or stash them.
With
spa()
the stash is preserved. Usegit stash drop
to remove the most recent stash.
gitone.spp module¶
-
gitone.spp.
spp
() → None[source]¶ Stash local changes, pull with
--rebase
, and pop the latest stash.- Note
Use
spp()
if you try to pull with--rebase
and get an error that says:error: cannot pull with rebase: You have unstaged changes. error: please commit or stash them.
With
spp()
the stash is not preserved, so there is not need to usegit stash drop
to remove the most recent stash.
Module contents¶
gitone: a Python package that facilitates git version control.
-
gitone.
camp
(message: Optional[str] = None) → None[source]¶ Add and commit all changes made to tracked files, then push the commit.
- Parameters
message – The commit message to be passed to the git commit command.
- Note
A commit message will be automatically generated if the
message
argument is not provided.
-
gitone.
acmp
(message: Optional[str] = None) → None[source]¶ Add and commit all changes, then push the commit.
- Parameters
message – The commit message to be passed to the git commit command.
- Note
A commit message will be automatically generated if the
message
argument is not provided.
-
gitone.
cam
(message: Optional[str] = None) → None[source]¶ Commit all changes made to tracked files.
- Parameters
message – The commit message to be passed to the git commit command.
- Note
A commit message will be automatically generated if the
message
argument is not provided.
-
gitone.
acm
(message: Optional[str] = None) → None[source]¶ Add and commit all changes.
- Parameters
message – The commit message to be passed to the git commit command.
- Note
A commit message will be automatically generated if the
message
argument is not provided.
-
gitone.
amend
(message: Optional[str] = None) → None[source]¶ Amend the previous commit with changes made to tracked files.
- Parameters
message – The commit message to be passed to the git commit command.
- Note
The previous commit message will be reused if the
message
argument is not provided.
-
gitone.
amendp
(message: Optional[str] = None) → None[source]¶ Amend the previous commit with changes made to tracked files, then push.
- Parameters
message – The commit message to be passed to the git commit command.
- Note
The previous commit message will be reused if the
message
argument is not provided.
-
gitone.
aamend
(message: Optional[str] = None) → None[source]¶ Amend the previous commit with any new changes.
- Parameters
message – The commit message to be passed to the git commit command.
- Note
The previous commit message will be reused if the
message
argument is not provided.
-
gitone.
aamendp
(message: Optional[str] = None) → None[source]¶ Amend the previous commit with any new changes, then push the commit.
- Parameters
message – The commit message to be passed to the git commit command.
- Note
The previous commit message will be reused if the
message
argument is not provided.


Pro
UI
Loading..
Chat
UI
John
Doe
Yesterday, 18:35
Hey admin?
How are you?
Today, 7:10
I'm fine, thanks!
Activity
UI
just now
Upgraded to Pro plan
2 hours ago
You had a new sale!
3 hours ago
John Doe
would like to become friends!
Accept
Ignore
2 days ago
Running low on space
18GB in use
2GB left
Upgrade Plan
Messages
UI (5)
Debra Stanley
just now
New Follower
Sarah Cole
2 min ago
Your subscription was updated
Bryan Porter
10 min ago
A great opportunity
Jose Duncan
30 min ago
Account Activation
Henry Ellis
40 min ago
You reached 10.000 Followers!
Pro
UI
John Doe
Dashboard
Dashboard 2
eCommerce
Dashboard
Orders
Order View
Products
Product Edit
Customer View
Widget Kit
Statistics
Social
Media
Links
Design Kit
User Interface
Grid & Blocks
Draggable Blocks
Typography
Buttons & Dropdowns
Navigation & More
Horizontal Menu
Progress & Loading
Page Preloader
Color Themes
Forms
General
Components
Validation
Wizard
Tables
General
Responsive
Datatables
Icon Sets
Font Awesome
Glyphicons Pro
Page Layouts
Static
Static + Fixed Footer
Fixed Top Header
Fixed Top Header + Footer
Fixed Bottom Header
Fixed Bottom Header + Footer
Mini Main Sidebar
Partial Main Sidebar
Visible Main Sidebar
Partial Alternative Sidebar
Visible Alternative Sidebar
No Sidebars
Both Sidebars Partial
Animated Sidebar Transitions
Develop Kit
Ready Pages
Errors
400
401
403
404
500
503
Get Started
Blank
Blank Alternative
Search Results (4)
Article
User Profile
Contacts
e-Learning
Courses
Course - Lessons
Course - Lesson Page
Message Center
Inbox
Compose Message
View Message
Chat
Timeline
Files
Tickets
Bug Tracker
Tasks
FAQ
Pricing Tables
Invoice
Forum (3)
Coming Soon
Login, Register & Lock
Login
Login (Full Background)
Login 2
Password Reminder
Password Reminder 2
Register
Register 2
Lock Screen
Lock Screen 2
Components
3 Level Menu
Link 1
Link 2
Maps
Charts
Gallery
Carousel
Calendar
CSS3 Animations
Syntax Highlighting
Activity
5 min ago
You had a new sale ($10)
10 min ago
Upgraded to Pro plan
3 hours ago
Running low on space
18GB in use
2GB left
Yesterday
New bug submitted
Header Style
Light
Dark
Page Style
Default
Alternative
4
Account
10
Updates
5
Messages
3
Subscriptions
11
FAQ
Profile
Settings
Lock Account
Logout
Activity
5 min ago
You had a new sale ($10)
10 min ago
Upgraded to Pro plan
3 hours ago
Running low on space
18GB in use
2GB left
Yesterday
New bug submitted
Form Components
All kinds of components to enrich your forms!
Forms
Components
Switches
Checked
Unchecked
Submit
Reset
Color
Pickers
Select a Color (hex)
As a component (hex)
Select a Color (rgba)
As a component (rgba)
Submit
Reset
Typeahead
Autocomplete
Search Autocomplete
Submit
Reset
Time & Date
Pickers
Timepickers
Select Time
Select Time (24h)
Datepickers
Datepicker
Auto close on select
Inline Datepicker
Date Range Picker
Select Date Range
Submit
Reset
Select
Components
Tags Input
Enter tags
Chosen (Advanced Select Boxes)
Chosen
United States
United Kingdom
Afghanistan
Aland Islands
Albania
Algeria
American Samoa
Andorra
Angola
Anguilla
Antarctica
Antigua and Barbuda
Argentina
Armenia
Aruba
Australia
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bermuda
Bhutan
Bolivia, Plurinational State of
Bonaire, Sint Eustatius and Saba
Bosnia and Herzegovina
Botswana
Bouvet Island
Brazil
British Indian Ocean Territory
Brunei Darussalam
Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada
Cape Verde
Cayman Islands
Central African Republic
Chad
Chile
China
Christmas Island
Cocos (Keeling) Islands
Colombia
Comoros
Congo
Congo, The Democratic Republic of The
Cook Islands
Costa Rica
Cote D'ivoire
Croatia
Cuba
Curacao
Cyprus
Czech Republic
Denmark
Djibouti
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Falkland Islands (Malvinas)
Faroe Islands
Fiji
Finland
France
French Guiana
French Polynesia
French Southern Territories
Gabon
Gambia
Georgia
Germany
Ghana
Gibraltar
Greece
Greenland
Grenada
Guadeloupe
Guam
Guatemala
Guernsey
Guinea
Guinea-bissau
Guyana
Haiti
Heard Island and Mcdonald Islands
Holy See (Vatican City State)
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran, Islamic Republic of
Iraq
Ireland
Isle of Man
Israel
Italy
Jamaica
Japan
Jersey
Jordan
Kazakhstan
Kenya
Kiribati
Korea, Democratic People's Republic of
Korea, Republic of
Kuwait
Kyrgyzstan
Lao People's Democratic Republic
Latvia
Lebanon
Lesotho
Liberia
Libya
Liechtenstein
Lithuania
Luxembourg
Macao
Macedonia, The Former Yugoslav Republic of
Madagascar
Malawi
Malaysia
Maldives
Mali
Malta
Marshall Islands
Martinique
Mauritania
Mauritius
Mayotte
Mexico
Micronesia, Federated States of
Moldova, Republic of
Monaco
Mongolia
Montenegro
Montserrat
Morocco
Mozambique
Myanmar
Namibia
Nauru
Nepal
Netherlands
New Caledonia
New Zealand
Nicaragua
Niger
Nigeria
Niue
Norfolk Island
Northern Mariana Islands
Norway
Oman
Pakistan
Palau
Palestinian Territory, Occupied
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Pitcairn
Poland
Portugal
Puerto Rico
Qatar
Reunion
Romania
Russian Federation
Rwanda
Saint Barthelemy
Saint Helena, Ascension and Tristan da Cunha
Saint Kitts and Nevis
Saint Lucia
Saint Martin (French part)
Saint Pierre and Miquelon
Saint Vincent and The Grenadines
Samoa
San Marino
Sao Tome and Principe
Saudi Arabia
Senegal
Serbia
Seychelles
Sierra Leone
Singapore
Sint Maarten (Dutch part)
Slovakia
Slovenia
Solomon Islands
Somalia
South Africa
South Georgia and The South Sandwich Islands
South Sudan
Spain
Sri Lanka
Sudan
Suriname
Svalbard and Jan Mayen
Swaziland
Sweden
Switzerland
Syrian Arab Republic
Taiwan, Province of China
Tajikistan
Tanzania, United Republic of
Thailand
Timor-leste
Togo
Tokelau
Tonga
Trinidad and Tobago
Tunisia
Turkey
Turkmenistan
Turks and Caicos Islands
Tuvalu
Uganda
Ukraine
United Arab Emirates
United Kingdom
United States
United States Minor Outlying Islands
Uruguay
Uzbekistan
Vanuatu
Venezuela, Bolivarian Republic of
Viet Nam
Virgin Islands, British
Virgin Islands, U.S.
Wallis and Futuna
Western Sahara
Yemen
Zambia
Zimbabwe
Chosen Multiple
United States
United Kingdom
Afghanistan
Aland Islands
Albania
Algeria
American Samoa
Andorra
Angola
Anguilla
Antarctica
Antigua and Barbuda
Argentina
Armenia
Aruba
Australia
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bermuda
Bhutan
Bolivia, Plurinational State of
Bonaire, Sint Eustatius and Saba
Bosnia and Herzegovina
Botswana
Bouvet Island
Brazil
British Indian Ocean Territory
Brunei Darussalam
Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada
Cape Verde
Cayman Islands
Central African Republic
Chad
Chile
China
Christmas Island
Cocos (Keeling) Islands
Colombia
Comoros
Congo
Congo, The Democratic Republic of The
Cook Islands
Costa Rica
Cote D'ivoire
Croatia
Cuba
Curacao
Cyprus
Czech Republic
Denmark
Djibouti
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Falkland Islands (Malvinas)
Faroe Islands
Fiji
Finland
France
French Guiana
French Polynesia
French Southern Territories
Gabon
Gambia
Georgia
Germany
Ghana
Gibraltar
Greece
Greenland
Grenada
Guadeloupe
Guam
Guatemala
Guernsey
Guinea
Guinea-bissau
Guyana
Haiti
Heard Island and Mcdonald Islands
Holy See (Vatican City State)
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran, Islamic Republic of
Iraq
Ireland
Isle of Man
Israel
Italy
Jamaica
Japan
Jersey
Jordan
Kazakhstan
Kenya
Kiribati
Korea, Democratic People's Republic of
Korea, Republic of
Kuwait
Kyrgyzstan
Lao People's Democratic Republic
Latvia
Lebanon
Lesotho
Liberia
Libya
Liechtenstein
Lithuania
Luxembourg
Macao
Macedonia, The Former Yugoslav Republic of
Madagascar
Malawi
Malaysia
Maldives
Mali
Malta
Marshall Islands
Martinique
Mauritania
Mauritius
Mayotte
Mexico
Micronesia, Federated States of
Moldova, Republic of
Monaco
Mongolia
Montenegro
Montserrat
Morocco
Mozambique
Myanmar
Namibia
Nauru
Nepal
Netherlands
New Caledonia
New Zealand
Nicaragua
Niger
Nigeria
Niue
Norfolk Island
Northern Mariana Islands
Norway
Oman
Pakistan
Palau
Palestinian Territory, Occupied
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Pitcairn
Poland
Portugal
Puerto Rico
Qatar
Reunion
Romania
Russian Federation
Rwanda
Saint Barthelemy
Saint Helena, Ascension and Tristan da Cunha
Saint Kitts and Nevis
Saint Lucia
Saint Martin (French part)
Saint Pierre and Miquelon
Saint Vincent and The Grenadines
Samoa
San Marino
Sao Tome and Principe
Saudi Arabia
Senegal
Serbia
Seychelles
Sierra Leone
Singapore
Sint Maarten (Dutch part)
Slovakia
Slovenia
Solomon Islands
Somalia
South Africa
South Georgia and The South Sandwich Islands
South Sudan
Spain
Sri Lanka
Sudan
Suriname
Svalbard and Jan Mayen
Swaziland
Sweden
Switzerland
Syrian Arab Republic
Taiwan, Province of China
Tajikistan
Tanzania, United Republic of
Thailand
Timor-leste
Togo
Tokelau
Tonga
Trinidad and Tobago
Tunisia
Turkey
Turkmenistan
Turks and Caicos Islands
Tuvalu
Uganda
Ukraine
United Arab Emirates
United Kingdom
United States
United States Minor Outlying Islands
Uruguay
Uzbekistan
Vanuatu
Venezuela, Bolivarian Republic of
Viet Nam
Virgin Islands, British
Virgin Islands, U.S.
Wallis and Futuna
Western Sahara
Yemen
Zambia
Zimbabwe
Select2 (Advanced Select Box)
Select2
HTML
CSS
Javascript
PHP
MySQL
Submit
Reset
Sliders
Horizontal
Vertical
Range
Horizontal Contextual
Vertical Contextual
Submit
Reset
Dropzone.js
Drag and Drop files
CKEditor
Full Package
In-place Editor
Click this text to edit it with CKEditor.
Default Setup
Submit
Settings
Vital Info
Username
Admin
Email
Email Notifications
Password Update
New Password
Confirm New Password
Close
Save Changes


In this column there is a button to go to the edition pane of each particular scene. Just by clicking on the button, the window will change to allow the exclusive edition of each selected scene.


--- layout: post date: 2010-10-14 time: "09:00:00" authors: ["Greg Wilson"] title: Dexy tags: ["Content"] ---
From Ana Nelson, a neat new reproducible research tool called Dexy that takes the pipe-and-filter model to new heights (or extremes, depending on your point of view :-) ). There's a quick intro here, and a video of her recent talk about Dexy here. I'm already thinking about ways of combining this with consistency-checking tools so that if the descriptions of results get out of step with the results themselves, alarms will go off. Check it out, and let us know what you think—is it useful and approachable enough to include in this course?


Requirements
Actors
- Account administrator
- One or more persons that have the authority to manage the relationship
between the customer and the service provider. They select services and
answer for the payments. They can also authorize other people to use the
services that were contracted by the customer.
- Account user
- Also referred to as just “user”, is a person authorized to use the services
contracted by the customer, within the limits of their roles. An account
administrator is also an account user.
- Customer
- Also referred to as “customer account” or just “account”, is an
organization or a person that has contracted the services that are offered
by the Web application.
- Service administrator
- Is a representative of the service provider that manages the services that
are offered by the Web application.
- Service provider
- Is the organization that offers services through the hosted Web
application.
Use Cases
Service administration
- Define service plans
- The service administrator defines the services, resources and service plans
that are offered.
- Manage customer accounts
- The application shows the service administrator a list of customer
accounts. The administrador can add, edit or disable customer accounts and
change service plans. He can also change billing options and add billing
instructions like additional charges or credit.
- Integrate with billing application
- The application sends to the billing application the list of billings to
be processed. At a later time, the application receives from the billing
application the results of the billing process (success, failure,
payment received).
Account administration
- Create new account
- The future account administrator selects a service plan and enters the
basic information required to create a new customer account and his own
user account. The application creates the accounts and directs the user
to the setup procedure.
- Setup new account
- The application offers the user options and forms to prepare the newly
created account for use. This may include selecting additional services,
configuring application-specific objects and creating user accounts.
- Manage account
- The account administrator enters account information like customer
name, subdomain, location, contact information and payment information.
- Manage users
- The application shows the account administrator a list of account users.
The administrador can add, edit or disable user accounts and assign
roles to users.
- Select service plans
- The account administrator selects a fundamental service plan and optionally
one or more additional service plans. This represents a contract between
the customer and the service provider. The application validates the change
and updates the customer account with the selected service plans.
Service utilization
- Provide account subdomains
- The user types in the browser a subdomain in the form customer.service.com.
The application authenticates the user and provides the services for
the specified customer.
- Edit user profile
- The user changes his profile information.
- Change password
- The user enters the old and the new passwords. The application updates
his profile with the new password.
- Enforce service levels
- When the user request service operations that need to consume or allocate
metered resources, the application verifies if the request can be granted
within the service levels that were contracted and payed for by the
customer. In case they exceed limits, the application may block the
operation or allow some grace period or excess margin.
- Enforce permissions
- When the user request service operations, the application verifies if his
roles grant permission and blocks the operation if they don’t.
Characteristics
- Security, at all levels, shall be treated as a concept of paramount
importance.
- Any operation with security implications, related to customer accounts,
service plans, user accounts, permissions and similar entities will be
recorded with extensive details in an audit log and the people involved
will be notified.
- All attempts to execute operations beyond security permissions must be
recorded and notified.
- No object in this application domain can ever be deleted, just disabled.
This does not necessarily applies to objects of other applications that
use Django SaaS.
- The application must support internationalization and localization.
- Data owned by each customer must be separated in a way that each account user
only has access to data of the customer he belongs to.


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object de.uni.bamberg.wiai.minf.forflow.datagenerator.model.datastructure.MetaAttribute
public class MetaAttribute
MetaAttribute represents an Ecore's EAttribute and
can also be called a MetaFacet.
This class is part of MetaClass
objects. A meta attribute
is called meta because it describes attributes and is a model for those.
It can hold and specify much more than an ordinary attribute ever could.
The following holds for every attribute object:
| Constructor Summary | |
|---|---|
protected |
MetaAttribute()
default constructor with restricted visibility. |
| Method Summary | |
|---|---|
void |
addDependency(Dependency dependency)
adds an attribute to the list to consider first. |
void |
addValue(java.lang.Object ob)
adds an value to the attribute. |
void |
existsDependency(boolean dependency)
sets the setting to handle dependencies. |
boolean |
exitsDependency()
tells if dependencies are exist or not to this attribute. |
DataType |
getDataType()
gets the data type for an attribute |
java.util.List<Dependency> |
getDependencies()
gets all attributes this one depends. |
ProbabilityDistribution |
getDistribution()
gets the probability distribution attached to this attribute. |
FillType |
getFillType()
gets the type to fill data to this attribute. |
int |
getLowerBound()
gets the lower bound of values. |
java.lang.String |
getName()
gets the name of an attribute |
int |
getPercentOfNullVallues()
If Null values are allowed, then the amount of null values has to be specified by the tester. |
java.lang.String |
getPreviewValue()
this gets a preview of the data generation values. |
java.lang.String |
getUnit()
gets the unit. |
int |
getUpperBound()
gets the upper bound for values of an attribute. |
java.util.List<java.lang.Object> |
getValues()
gets the values of an attribute |
boolean |
isMultiplicityAllowed()
returns the flag, indicating multiplicity status for this attribute. |
void |
isMultiplicityAllowed(boolean allowed)
flag, indicating whether multiple values for this attribute are allowed or not. |
boolean |
isNullValueAllowed()
gets the NULL value flag. |
void |
isNullValueAllowed(boolean allowed)
states whether NULL values are allowed for this kind of attribute. |
boolean |
isValueRestricted()
indicates the restriction setting. |
void |
isValueRestricted(boolean restricted)
set whether values are restricted or not. |
void |
setDataType(DataType datatype)
sets the data type of an attribute |
void |
setDependencies(java.util.List<Dependency> dependencies)
sets the attributes this one depends upon. |
void |
setDistribution(ProbabilityDistribution pd)
sets the probability distribution to an attribute. |
void |
setFillBehaviour(FillBehaviour behaviour)
registers the fill behaviour to fill type. |
void |
setFillType(FillType fillType)
specifies the type of filling. |
void |
setLowerBound(int lowerBound)
sets the lower bound of possible values of an attribute. |
void |
setName(java.lang.String name)
sets the name of the attribute |
void |
setPercentOfNullValues(int percent)
If Null values are allowed, then the amount of null values has to be specified by the tester. |
void |
setUnit(java.lang.String unit)
sets the unit of an attribute. |
void |
setUpperBound(int upperBound)
sets the upper bound of possible values for an attribute. |
void |
setValues(java.util.List<java.lang.Object> values)
sets the values for an attribute. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
protected MetaAttribute()
| Method Detail |
|---|
public void setName(java.lang.String name)
name
- the name of the attributepublic final java.lang.String getName()
public void setDataType(DataType datatype)
datatype
- public final DataType getDataType()
public void setValues(java.util.List<java.lang.Object> values)
values
- list of valuespublic void addValue(java.lang.Object ob)
ob
- it's an Object
, to be as generic as possible.
Because if we specify a particular data type her, it would
be limited to a subset. And that's not what we want.public final java.util.List<java.lang.Object> getValues()
public final java.lang.String getPreviewValue()
public void setLowerBound(int lowerBound)
lowerBound
- public final int getLowerBound()
public void setUpperBound(int upperBound)
upperBound
- set upper bound of values for this attribute.public final int getUpperBound()
public void isMultiplicityAllowed(boolean allowed)
getUpperBound()
.
In default setting it's not allowed to have multiple values
and therefore the upper bound is 1.
But if you set this to true, you have to specify
the upper bound by yourself.
For clarity we give an example:
Suppose you've got an attribute (facet) author.
Because for an object, say book, more than one author might
be involved it has to be reflected in the test data too.
allowed
- does this attribute got more than one value?public final boolean isMultiplicityAllowed()
public void isNullValueAllowed(boolean allowed)
allowed
- do you wanna allow the generation of null values
for this kind of attribute?public final boolean isNullValueAllowed()
public void setPercentOfNullValues(int percent)
percent
- amount of null values in percent.public final int getPercentOfNullVallues()
public void isValueRestricted(boolean restricted)
restricted
- enables or disables restrictionpublic final boolean isValueRestricted()
public void existsDependency(boolean dependency)
dependency
- sets the dependency settingpublic final boolean exitsDependency()
public void setDependencies(java.util.List<Dependency> dependencies)
dependencies
- list of attributes this one depends upon.public void addDependency(Dependency dependency)
dependency
- a new attribute this one depends.public final java.util.List<Dependency> getDependencies()
exitsDependency()
is enabled.
public void setFillType(FillType fillType)
fillType
- type of filling this attribute with data.public final FillType getFillType()
public void setFillBehaviour(FillBehaviour behaviour)
setFillType(FillType)
whereas FillType is
replaced by new FillType().setFillBehaviour(behaviour).
behaviour
- the type of filling attributes with generated data.
Because it is based on Strategy, the algorithm
to fill is substitutable.public void setUnit(java.lang.String unit)
unit
- weight or a measurement or nullpublic final java.lang.String getUnit()
public void setDistribution(ProbabilityDistribution pd)
pd
- probability distributionpublic final ProbabilityDistribution getDistribution()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


To enter a query into Google, just type in a few descriptive keywords and hit "search." That's it! If you need them, however, we also provide a few advanced search operators.
The results can also be used for further exploration of the web. Click on the bar graph at the beginning of the result, and see what pages link to this page.


Guess my favorite two colors
If you fail to guess both of them - you get yellow on red.
If you guess one of them right, either your foreground or your background will change to the color that was guessed right.
Guess them both right and your browser foreground/background will change to my two favorite colors to display this page.


{% extends "core/base.html" %} {% load i18n %} {% block content %} {% trans "An email has been sent with instructions to reset your password" %} {% endblock content %}


Info
1. Team size allowed is 1-8 members
2. You will be the team leader and only you can delete the team
3. Team members provided here will be sent a request to their profiles
4. Only after they accept your team request, they will be added to the team
5. Caution : Choose your team members wisely as you cannot add more members once the team is made
6. This Team Password will allow you to register in flagship events.
7. Make sure the team name doesn't starts with any special character(/ , #, \ , $, % , @, ', ", ^, (, ), {, }, ).
8. To add a member to your team enter their Email Id


Next, lets add support for
- Data Structures
In the process of doing so, we will learn about
Heap Allocation
Run-time Tags
Creating Heap Data Structures
We have already support for two primitive data types
data Ty
= TNumber -- e.g. 0,1,2,3,...
| TBoolean -- e.g. true, false
we could add several more of course, e.g.
Char
Double
orFloat
etc. (you should do it!)
However, for all of those, the same principle applies, more or less
- As long as the data fits into a single word (8-bytes)
Instead, lets learn how to make unbounded data structures
- Lists
- Trees
- …
which require us to put data on the heap
not just the stack that we’ve used so far.
Pairs
While our goal is to get to lists and trees, the journey of a thousand miles begins with a single step…
So! we will begin with the humble pair.
Pairs: Semantics (Behavior)
First, lets ponder what exactly we’re trying to achieve.
We want to enrich our language with two new constructs:
Constructing pairs, with a new expression of the form
(e0, e1)
wheree0
ande1
are expressions.Accessing pairs, with new expressions of the form
e[0]
ande[1]
which evaluate to the first and second element of the tuplee
respectively.
For example,
let t = (2, 3) in
0] + t[1] t[
should evaluate to 5
.
Strategy
Next, lets informally develop a strategy for extending our language with pairs, implementing the above semantics. We need to work out strategies for:
- Representing pairs in the machine’s memory,
- Constructing pairs (i.e. implementing
(e0, e1)
in assembly), - Accessing pairs (i.e. implementing
e[0]
ande[1]
in assembly).
1. Representation
Recall that we represent all values:
Number
like0
,1
,2
…Boolean
liketrue
,false
as a single word either
- 8 bytes on the stack, or
- a single register
rax
,rbx
etc.
EXERCISE
What kinds of problems do you think might arise if we represent a pair (2, 3)
on the stack as:
| |
-------
| 3 |
-------
| 2 |
-------
| ... |
-------
QUIZ
How many words would we need to store the tuple
3, (4, 5)) (
1
word2
words3
words4
words5
words
Pointers
Every problem in computing can be solved by adding a level of indirection.
We will represent a pair by a pointer to a block of two adjacent words of memory.
The above shows how the pair (2, (3, (4, 5)))
and its sub-pairs can be stored in the heap using pointers.
(4, 5)
is stored by adjacent words storing
4
and5
(3, (4, 5))
is stored by adjacent words storing
3
and- a pointer to a heap location storing
(4, 5)
(2, (3, (4, 5)))
is stored by adjacent words storing
2
and- a pointer to a heap location storing
(3, (4, 5))
.
A Problem: Numbers vs. Pointers?
How will we tell the difference between numbers and pointers?
That is, how can we tell the difference between
- the number 5 and
- a pointer to a block of memory (with address
5
)?
Each of the above corresponds to a different tuple
(4, 5)
or(4, (...))
.
so its pretty crucial that we have a way of knowing which value it is.
Tagging Pointers
As you might have guessed, we can extend our tagging mechanism to account for pointers.
| Type | LSB |
|---|---|
number |
xx0 |
boolean |
111 |
pointer |
001 |
That is, for
number
the last bit will be0
(as before),boolean
the last 3 bits will be111
(as before), andpointer
the last 3 bits will be001
.
(We have 3-bits worth for tags, so have wiggle room for other primitive types.)
Address Alignment
As we have a 3 bit tag
- leaving 64 - 3 = 61 bits for the actual address
So actual addresses, written in binary, omitting trailing zeros, are of the form
| Binary | Decimal |
|---|---|
0b00000000 |
0 |
0b00001000 |
8 |
0b00010000 |
16 |
0b00011000 |
24 |
0b00100000 |
32 |
| … |
That is, the addresses are 8-byte aligned.
Which is great because at each address, we have a pair, i.e. a 2-word = 16-byte block, so the next allocated address will also fall on an 8-byte boundary.
- But … what if we had 3-tuples? or 5-tuples? …
2. Construction
Next, lets look at how to implement pair construction that is, generate the assembly for expressions like:
(e1, e2)
To construct a pair (e1, e2)
we
- Allocate a new 2-word block, and getting the starting address at
rax
, - Copy the value of
e1
(resp.e2
) into[rax]
(resp.[rax + 8]
). - Tag the last bit of
rax
with1
.
The resulting eax
is the value of the pair
- The last step ensures that the value carries the proper tag.
ANF will ensure that e1
and e2
are immediate expressions
- will make the second step above straightforward.
EXERCISE How will we do ANF conversion for (e1, e2)
?
Allocating Addresses
Lets use a global register r15
to maintain the address of the next free block on the heap.
Every time we need a new block, we will:
1. Copy the current r15
into rax
- Set the last bit to
1
to ensure proper tagging. rax
will be used to fill in the values
2. Increment the value of r15
by 16
- Thus allocating 8 bytes (= 2 words) at the address in
rax
Note that addresses stay 8-byte aligned (last 3 bits = 0) if we
- Start our blocks at an 8-byte boundary, and
- Allocate 16 bytes at a time,
NOTE: Your assignment will have blocks of varying sizes
- You will have to maintain the 8-byte alignment by padding
Example: Allocation
In the figure below, we have
- a source program on the left,
- the ANF equivalent next to it.
The figure below shows the how the heap and r15
evolve at points 1, 2 and 3:
QUIZ
In the ANF version, p
is the second (local) variable stored in the stack frame. What value gets moved into the second stack slot when evaluating the above program?
0x3
(3, (4, 5))
0x11
0x9
0x10
3. Accessing
Finally, to access the elements of a pair
Lets compile e[0]
to get the first or e[1]
to get the second element
- Check that immediate value
e
is a pointer - Load
e
intorbx
- Remove the tag bit from
rbx
- Copy the value in
[rbx]
(resp.[rbx + 8]
) intorbx
.
Example: Access
Here is a snapshot of the heap after the pair(s) are allocated.
Lets work out how the values corresponding to x
, y
and z
in the example above get stored on the stack frame in the course of evaluation.
| Variable | Hex Value | Value |
|---|---|---|
anf0 |
0x001 |
ptr 0 |
p |
0x011 |
ptr 16 |
x |
0x006 |
num 3 |
anf1 |
0x001 |
ptr 0 |
y |
0x008 |
num 4 |
z |
0x00A |
num 5 |
anf2 |
0x00E |
num 7 |
| result | 0x018 |
num 12 |
Plan
Pretty pictures are well and good, time to build stuff!
As usual, lets continue with our recipe:
- Run-time
- Types
- Transforms
We’ve already built up intuition of the strategy for implementing tuples.
Next, lets look at how to implement each of the above.
Run-Time
We need to extend the run-time (c-bits/main.c
) in two ways.
Allocate a chunk of space on the heap and pass in start address to
our_code
.Print pairs properly.
Allocation
The first step is quite easy we can use calloc
as follows:
int main(int argc, char** argv) {
int* HEAP = calloc(HEAP_SIZE, sizeof (int));
long result = our_code_starts_here(HEAP);
print(result);return 0;
}
The above code,
- Allocates a big block of contiguous memory (starting at
HEAP
), and - Passes this address in to
our_code
.
Now, our_code
needs to, at the beginning start with instructions that
- copy the parameter (in
rdi
) into global pointer (r15
) - and then bump it up at each allocation.
Printing
To print pairs, we must recursively traverse pointers
- until we hit
number
orboolean
.
We can check if a value is a pair by looking at its last 3 bits:
int isPair(int p) {
return (p & 0x00000007) == 0x00000001;
}
We can use the above test to recursively print (word)-values:
void print(long val) {
if(val & 0x1 == 0) { // val is a number
"%ld", val >> 1);
printf(
}else if(val == CONST_TRUE) { // val is true
"true");
printf(
}else if(val == CONST_FALSE) { // val is false
"false");
printf(
}else if(val & 7 == 1) {
long* valp = (long *) (val - 1); // extract address
"(");
printf(// print first element
print(*valp); ", ");
printf(1)); // print second element
print(*(valp + ")");
printf(
}else {
"Unknown value: %#010x", val);
printf(
} }
Types
Next, lets move into our compiler, and see how the core types need to be extended.
Source
We need to extend the source Expr
with support for tuples
data Expr a
= ...
| Pair (Expr a) (Expr a) a -- ^ construct a pair
| GetItem (Expr a) Field a -- ^ access a pair's element
In the above, Field
is
data Field
= First -- ^ access first element of pair
| Second -- ^ access second element of pair
NOTE: Your assignment will generalize pairs to n-ary tuples using
Tuple [Expr a]
representing(e1,...,en)
GetItem (Expr a) (Expr a)
representinge1[e2]
Dynamic Types
Let us extend our dynamic types Ty
see to include pairs:
data Ty = TNumber | TBoolean | TPair
Assembly
The assembly Instruction
are changed minimally; we just need access to r15
which will hold the value of the next available memory block:
data Register
= ...
| R15
Transforms
Our code must take care of three things:
- Initialize
r15
to allow heap allocation, - Construct pairs,
- Access pairs.
The latter two will be pointed out as cases in anf
and compileEnv
Tuple
GetItem
Initialize
We need to initialize r15
with the start position of the heap
- passed in as
rdi
by the run-time.
How shall we get a hold of this position?
To do so, our_code
starts off with a prelude
prelude :: [Instruction]
=
prelude IMov (Reg R15) (Reg RDI) -- copy param (HEAP) off rdi
[ ]
Is that it?
QUIZ
Is r15
8-byte aligned?
- Yes
- No
Ensuring alignment
prelude :: [Instruction]
=
prelude IMov (Reg RAX) (HexConst 0xFFFFFFFF) -- setup regMask
[ IShl (Reg RAX) (Const 32)
, IOr (Reg RAX) (HexConst 0xFFFFFFF8)
,
IMov (Reg R15) (Reg RDI) -- copy param (HEAP) off rdi
, IAdd (Reg R15) (Const 8) -- add 8 and mask 3 bits to ensure
, IAnd (Reg R15) (Reg RAX) -- 8-byte aligned
, ]
- Copy the value off the (parameter) stack, and
- Adjust the value to ensure the value is 8-byte aligned.
QUIZ
Why add 8
to r15
? What would happen if we removed that operation?
r15
would not be 8-byte aligned?r15
would point into the stack?r15
would not point into the heap?r15
would not have enough space to write 2 bytes?
Construct
To construct a pair (v1, v2)
we directly implement the above strategy:
Tuple v1 v2)
compileEnv env (= pairAlloc -- 1. allocate pair, resulting addr in `rax`
++ pairCopy First (immArg env v1) -- 2. copy first value into slots
++ pairCopy Second (immArg env v2) -- 3. copy second value into slot
++ setTag RAX TPair -- 3. set the tag-bits of `rax`
Lets look at each step in turn.
Allocate
To allocate, we just copy the current pointer r15
and increment by 16
bytes,
- accounting for two 8-byte blocks for each element.
pairAlloc :: Asm
pairAlloc= [ IMov (Reg RAX) (Reg R15) -- copy current "free address" `esi` into `eax`
IAdd (Reg RAX) (Const 16) -- increment `esi` by 8
, ]
Exercise How would you make this work for n
-tuples?
Copy
We copy an Arg
into a Field
by
saving the
Arg
into a helper registerrbx
,copying
rbx
into the field’s slot on the heap.
pairCopy :: Field -> Arg -> Asm
pairCopy fld arg= [ IMov (Reg RBX) arg
IMov (pairAddr fld) (Reg RBX)
, ]
Recall, the field’s slot is either [rax]
or [rax + 8]
depending on whether the field is First
or Second
.
QUIZ
What shall we fill in for _1
and _2
?
pairAddr :: Field -> Arg
First = RegOffset ?1 RAX
pairAddr Second = RegOffset ?2 RAX pairAddr
A. 0
and 1
B. 0
and -1
C. 1
and 2
D. -1
and -2
E. huh?
Tag
Finally, we set the tag bits of rax
by using typeTag TPair
which is defined
setTag :: Register -> Asm
= [ IAdd (Reg r) (HexConst 0x1) ] setTag r
Access
To access tuples, lets update compileEnv
with the strategy above:
GetItem e fld)
compileExpr env (= assertType env e TPair -- 1. check that e is a (pair) pointer
++ [ IMov (Reg RAX) (immArg env e) ] -- 2. load pointer into eax
++ unsetTag RAX -- 3. remove tag bit to get address
++ [ IMov (Reg RAX) (pairAddr fld) ] -- 4. copy value from resp. slot to eax
we remove the tag bits by doing the opposite of setTag
namely:
unsetTag :: Register -> Asm
= ISub (Reg RAX) (HexConst 0x1) unsetTag r
N-ary Tuples
Thats it! Lets take our compiler out for a spin, by using it to write some interesting programs!
First, lets see how to generalize pairs to allow for
- triples
(e1,e2,e3)
- quadruples
(e1,e2,e3,e4)
- pentuples
(e1,e2,e3,e4,e5)
and so on.
We just need a library of functions in our new egg
language to
- Construct such tuples, and
- Access their fields.
Constructing Tuples
We can write a small set of functions to construct tuples (up to some given size):
def tup3(x1, x2, x3):
(x1, (x2, x3))
def tup4(x1, x2, x3, x4):
(x1, (x2, (x3, x4)))
def tup5(x1, x2, x3, x4, x5):
(x1, (x2, (x3, (x4, x5))))
Accessing Tuples
We can write a single function to access tuples of any size.
So the below code
= (10, (20, (30, (40, (50, false))))) in
let yuple
0) = 10
get(yuple, 1) = 20
get(yuple, 2) = 30
get(yuple, 3) = 40
get(yuple, 4) = 50
get(yuple,
def tup3(x1, x2, x3):
(x1, (x2, x3))
def tup5(x1, x2, x3, x4, x5):
(x1, (x2, (x3, (x4, x5))))
= tup5(1, 2, 3, 4, 5) in
let t = print(get(t, 0))
, x0 = print(get(t, 1))
, x1 = print(get(t, 2))
, x2 = print(get(t, 3))
, x3 = print(get(t, 4))
, x4 in
99
should print out:
0
1
2
3
4
99
How shall we write it?
def get(t, i):
-IN-CLASS TODO
QUIZ
Using the above “library” we can write code like:
let quad = tup4(1, 2, 3, 4) in
0) + get(quad, 1) + get(quad, 2) + get(quad, 3) get(quad,
What will be the result of compiling the above?
- Compile error
- Segmentation fault
- Other run-time error
4
10
QUIZ
Using the above “library” we can write code like:
:
def get(t, i)if i == 0:
0]
t[else:
1],i-1)
get(t[
:
def tup3(x1, x2, x3)
(x1, (x2, (x3, false)))
let quad = tup3(1, 2, 3) in
0) + get(quad, 1) + get(quad, 2) + get(quad, 3) get(quad,
What will be the result of compiling the above?
- Compile error
- Segmentation fault
- Other run-time error
4
10
Lists
Once we have pairs, we can start encoding unbounded lists.
To build a list, we need two constructor functions:
def empty():
false
def cons(h, t):
(h, t)
``
as:
We can now encode lists
```python1, cons(2, cons(3, cons(4, empty())))) cons(
Access
To access a list, we need to know
- Whether the list
isEmpty
, and - A way to access the
head
and thetail
of a non-empty list.
:
def isEmpty(l)== empty()
l
head(l):
def 0]
l[
tail(l):
def 1] l[
Examples
We can now write various functions that build and operate on lists, for example, a function to generate the list of numbers between i
and j
def range(i, j):
if (i < j):
range(i+1, j))
cons(i, else:
empty()
range(1, 5)
which should produce the result
(1,(2,(3,(4,false))))
and a function to sum up the elements of a list:
def sum(xs):
if (isEmpty(xs)):
0
else:
+ sum(tail(xs))
head(xs)
sum(range(1, 5))
which should produce the result 10
.
Recap
We have a pretty serious language now, with:
- Data Structures
which are implemented using
- Heap Allocation
- Run-time Tags
which required a bunch of small but subtle changes in the
- runtime and compiler
In your assignment, you will add native support for n-ary tuples, letting the programmer write code like:
# constructing tuples of arbitrary arity
(e1, e2, e3, ..., en)
# allowing expressions to be used as fields e1[e2]
Next, we’ll see how to
use the “tuple” mechanism to implement higher-order functions and
reclaim unused memory via garbage collection.


{% load i18n static solo_tags %} {% get_solo 'website.SiteConfiguration' as site_config %}
Powered by Open Source Software, written by @kiubtech.


Forgot your password?
Back to sign-in
An email has been sent to your account with instructions on how to reset your password.
Include the country code, like: +1-555-415-1337


Leviticus 23:17
Ye shall bring out of your habitations two wave loaves of two tenth deals; they shall be of fine flour; they shall be baked with leaven; they are the firstfruits unto the LORD.


--- layout: attachment title: images.jpg categories: [] tags: [] status: inherit type: attachment published: false meta: {} author: ---
http://ofpenguinsandpeanuts.files.wordpress.com/2008/04/images.jpg


fareye by
gmlunesa
To make this app work,
📷 Please allow camera permissions.
Loading libraries...
⚡ Making sure this all works.


My Portfolio
This is Steven's portfolio.
My LinkedIn ProfileMy GitHub Profile
Hello world, my name is Steven Fein. I am a second year CS Major at California State University, Northridge. I enjoy building things and learning new technologies. Happy coding!
I have always enjoyed technology from a young age, especially videogames and computers. My first exposure to CS was an elective I took in high school and I learned the very basics about creating instructions for a computer. I really enjoy being able to build things and modify everything down to the slightest detail.
Some of my projects
- A webapp called FridgePal that generates food recipes. This was my final project while I was a student for Google CSSI 2019. Visit FridgePal!
- An app that simulates playing the lottery for my AP Computer Science Principles exam in high school. Built using the AppLab environment from Code.org. Visit Lotto Simulator!
Photogallery
This is a photo from one my favorite hiking trails near my house. It overlooks the San Fernando Valley.
This is my favorite theme park, Six Flags Magic Mountain. It contains many world record setting rollercoasters and is one of my favorite places to hang out with friends.
My newest interest is astrophotography. I am just beginning, but there is a lot of photographing potential especially when the sky is clear. This photo is not mine, I am still waiting for the right weather conditions to be able to take the right shot, but this is what I imagine I will see (hopefully).
Hidden Talents
- I have 4 years of experience playing Mellophone in a Marching Band.
- I learned how to solve a rubik's cube in 7th grade.
- My favorite dish to cook is baked potatoes.
Click here to see content created by server code.
Click here to see navigate to demo servlet.
Click here to get a random message:


--- layout: page title: Page Not Found permalink: /404.html ---
Sorry, the page you're looking for can't be found. If you are lost, try heading back to the homepage.


Maacho Creatorz
HOME
GALLERY
CONTACT US
Commercial Interior Design
.
Show Room
.
.
Office
.
.
Restaurant
.
.
False Ceiling
.
.
Retail Outlets
.
.
Schools/colleges
.