mosquito transmission age blood vector days mosquitoes time competence infectious Aedes virus OLDER infection meal aegypti capacity EIP rates VCage []. biting {border-style treatment YOUNG group probability px;} using vectorial #ffffff;} S.OLDER average dpi dynamics given mortality EIPmin Zika rate used daily treatments EIPmax Table file human data day period survival groups post-infection proportion ONEe bite difference significant study Additional Ageacquisition Figure Trop arbovirus extrinsic need studies viral Infect TTD ZIKV acquisition constant dissemination function incubation observed parameters post-emergence px; structure twice willingness {font-family (Fig. However, Med Thus, \documentclass[pt]{minimal} \setlength{\oddsidemargin}{-pt} \usepackage{amsbsy} \usepackage{amsfonts} \usepackage{amsmath} \usepackage{amssymb} \usepackage{mathrsfs} \usepackage{upgreek} \usepackage{wasysym} assessed calculated chikungunya control determine did differences dpe exposure fitness font-size malaria maximum meals predicted shown study. values (Additional Ae. Dis Fig. affect affected compared context dengue determined double; experimental experimentally factors group, groups, interactions mock model non-infectious number observation offered parameterized provided represents respectively. test traditional traits transmitting within-mosquito (once Commons Creative Dise EIP, Entomol Mortality Negl Nile S). Vector West [], acquires age-structured based border-color border-width canister death demonstrate described disc disease effect exposed female fit impact longer lower measure opportunity order performed placed previously probe proportions single solid; takes temperature vector-borne window {font-style {font-weight (the Anopheles CA, Hyg Mosquitoes RCC RNA Text Transmission USA) Vectorial achieve additional age-dependence age-dependent age. approximately arboviruses article blood-fed bold calculate cold competence, competent component controls corresponding courier; critical days, density determining different dpi, earlier em; evaluated example, field generated hypothetical included indicate infection, laboratory like line line), magnitude minimum needed older population populations potential probabilities pt;} reproduction results sampled strain success sufficient system, tested threshold times timing transmission, transmit use vectors versus –].


MFnNurbsCurve¶
-
class
MFnNurbsCurve
(*args, **kargs)¶ Bases:
OpenMaya.MFnNurbsCurve
Override of the Maya API class of the same name to make the data within the class ‘picklable’
Methods Summary
closestPoint
(test_pnt[, guess, tolerance, space])Returns a tuple containing the point on the curve which is closest to ‘testPoint’, and the parameter value at which that point occurs. cvPosition
(index[, space])Returns the position of a single control vertex. cvPositions
([space])Returns the positions of all of the curve’s control vertices. getDerivativesAtParam
(param[, space])Evaluates the curve at the given parameter value, returning a tuple containing the position and first derivative at that value. getPointAtParam
(param[, space])Returns the point on the curve at the given parameter value. normal
(param[, space])Returns the normal at the given parameter value on the curve. tangent
(param[, space])Returns the normalized tangent vector at the given parameter value on the curve. Methods Documentation
-
closestPoint
(test_pnt, guess=None, tolerance=0.001, space=2)¶ Returns a tuple containing the point on the curve which is closest to ‘testPoint’, and the parameter value at which that point occurs.
- testPoint (MPoint) - point to get closest to
- guess (float) - a guess as to roughly where on the curve the
- closest point will be. If the guess is in the correct span than it can significantly speed up the search. If not then it may slow down the search a bit. If no guess is supplied then the search will begin at the start of the curve.
- tolerance (float) - maximum allowed distance between the curve
- and the returned point.
- space (MSpace constant) - coordinate space to use for the points
-
cvPosition
(index, space=kObject) → MPoint¶ Returns the position of a single control vertex.
- index (int) - index of the CV to return
- space (int) - an MSpace constant giving the coordinate space in
- which the point is given
-
cvPositions
(space=kObject) → MPointArray¶ Returns the positions of all of the curve’s control vertices.
- space (int) - an MSpace constant giving the coordinate space in
- which the point is given
-
getDerivativesAtParam
(param, space=kObject) -> (MPoint, MVector[, MVector])¶ Evaluates the curve at the given parameter value, returning a tuple containing the position and first derivative at that value. If ‘dUU’ is True then the returned tuple will include the second derivative as well as its third element.
- param (float) - parameter value at which to do the evaluation
- space (int) - an MSpace constant giving the coordinate space in
- which the point is given
- dUU (bool) - if True include the second derivative in the result.
-
getPointAtParam
(param, space=kObject) → MPoint¶ Returns the point on the curve at the given parameter value.
- param (float) - parameter value at which to find the point
- space (int) - an MSpace constant giving the coordinate space in
- which the point should be returned
-
normal
(param, space=kObject) → MVector¶ Returns the normal at the given parameter value on the curve. For degree 1 curves the normal is the vector at right angles to the curve that lies in the average plane of the curve. For higher degrees the normal is defined by the local curvature at the parameter.
- param (float) - parameter value at which to find the normal
- space (int) - an MSpace constant giving the coordinate space in
- which the normal should be returned
-
tangent
(param, space=kObject) → MVector¶ Returns the normalized tangent vector at the given parameter value on the curve.
- param (float) - parameter value at which to find the tangent
- space (int) - an MSpace constant giving the coordinate space in
- which the tangent should be returned
-


This page explains the design of the library with respect to the generic point, derived point types, and strategies and algorithms. Note that, for clarity, the listings do not list the complete classes.
The provided point base class is templatized by coordinate-type and dimension. It is generic and coordinate access is implemented in a neutral way, using
get methods (as also done in boost::tuple classes). Note that all algorithms work on
point concepts. The point type below fulfils to these concepts, but all algorithms take any point matching the concepts.
There are two member function templates to get and set values:
The coordinates themselves are stored using an array
Library users will normally work with derived point types, or with user defined point types. The point_xy point is derived from the generic point and exposes its coordinates as x- and y-values.
For each point type, there might be strategies for primitive operations. Take, for example, the distance algorithm. There is a strategy for points (usually with x,y) implementing distance calculations (which resides in namespace strategy::distance):
template <typename P1, typename P2 = P1>
struct pythagoras
{
BOOST_CONCEPT_REQUIRES(((ConstPoint<P1>)) ((ConstPoint<P2>)),
(distance_result)) operator()(const P1& p1, const P2& p2) const
{
}
};
Note that the algorithm validates if the arguments satisfy the ConstPoint concept, using a boost BCCL construct. The algorithm returns a distance_result struct, which is usually the squared result, having an operator to take the square root if necessary.
Note also that although the algorithm is target to points within Cartesian coordinate systems (usually x,y), it works on generic points implementing get<> access. It works for any point having one, two, three, or more dimensions.
The
strategy_traits class matches
point-types with
strategies.
For each point-type there is a specialization which defines which strategy should be used.
(Detail: because the library can calculate the distance of two different types, the strategy_traits classes use actually two types). The following specialization defines that for point_xy points, the Pythagoras strategy should be used.
template <typename T1, typename T2>
struct strategy_traits<point_xy<T1>, point_xy<T2> >
{
typedef strategy::distance::pythagoras<point_xy<T1>, point_xy<T2> > point_distance;
};
If library users define their own point types, and still want to use the provided Pythagoras strategy for distance calculations, they should declare the strategy_traits class (in the namespace
geometry) to match their point type to the Pythagoras strategy. An example is given in "custom point example"
Besides xy point types there are also point types using polar coordinates. The library provides a predefined point class using latitude and longitude, often referred to as latlong or lola. This class,
point_ll. does not define x/y, but defines lat/lon methods instead.
template <dr_selector D, typename T = double>
class point_ll : public point<T, 2>
{
inline const T& lon() const
inline const T& lat() const
inline void lon(const T& v)
inline void lat(const T& v)
};
For these point types with polar coordinates, of course, other strategies are implemented. For distance calculation there are three different strategies provided:
- haversine: fast, simple and often used, but not so accurate for calculations on the Earth
- Andoyer: not well-known but fast and accurate
- Vincenty: well-known, slower but very accurate.
The strategy_traits class defines only one to be the default distance calculation strategy.
template <dr_selector D1, typename T1, dr_selector D2, typename T2>
struct strategy_traits<point_ll<D1, T1>, point_ll<D2, T2> >
{
typedef strategy::distance::haversine<point_ll<D1, T1>, point_ll<D2,T2> > point_distance;
};
Finally, the distance algorithm automatically selects the right strategy using the strategy_traits class:
template <typename P1, typename P2>
inline double distance(const P1& p1, const P2& p2)
{
It then calls the (overloaded) method where a strategy can specified explicitly
return distance(p1, p2, typename strategy_traits<P1, P2>::point_distance());
}
Alternatively, the library user can call this overloaded method directly:
- to specify another (for example more accurate) strategy
- to specify a value (e.g. Earth radius) in the constructor of the strategy
- because there is no default strategy implemented for the specified point type or point type combination
The explanation above concentrates on distance algorithms. However, the design is used for other algorithms as well: within, centroid, area, distance to a line segment, etc.
All other
geometry classes in the Geometry Library are class templates and the point type (a user defined point type, or point_xy or point_ll) can be specified as a template argument.
- all algorithms work on a point concept
- library users might use their own point types
- there are some predefined point types provided
- for each point type (or point-type-combination) strategies may be defined or combined
- the strategy_traits class selects the default strategy
- the algorithms use the default strategy
- the library user can select another strategy


Back to Last Page
Lab Notebook
Make a new note
Back to Last Page
Library
Understanding Obesity
Obesity
Kid's Health
Diabetes and Obesity
Diabetes resources
Diabetes and Genetics I
Diabetes and Genetics II
Type I Diabetes
Type II Diabetes
Diabetes and Foot Sores
Diabetes and Blindness I
Diabetes and Blindness II
Diabetes and Exercise
Diabetes and Exercise II


Mauro Ranallo deletes Twitter account after harsh comments from Corey Graves
by Greg BushWhen it comes to NXT, one of the main reasons that the brand is so beloved is the commentary team. Mauro Ranallo, Nigel McGuinness, and Beth Phoenix are considered the best announce team in the company, and it's easy to see why.
With the insights from two legendary performers and a third man who many have compared to Good Ol' Jim Ross, the trio is able to both inform and entertain viewers throughout the night.
Last night was no different, with the NXT commentary desk delivering some great lines at War Games. However, Ranallo himself received some criticism from colleague Corey Graves. It seemed that Graves was hinting that Ranallo may have been overdoing it, not giving McGuinness or Phoenix a chance to get a word in.
Along with that, Graves chimed in when a fan brought up the Chicago specific references that the Bipolar Rock'n'Roller was dropping throughout the night. It was a bit much, for Graves, it seemed.
As far as what Ranallo thinks about Graves and his comments, it looks like we won't be getting that answer. At some point, Ranallo deleted his Twitter account. This left fans aggravated with Graves, as you can see by the responses from his tweets.
Frank Shamrock, a close friend of Ranallo's, even responded, believing that Graves was disrespecting the NXT commentator.
Whether or not Ranallo and Graves have heat with one another is unknown. Graves has been known to comment without fear of repercussions in the past, and he could've just been casually speaking his mind without any ill-will towards Ranallo.
For all of your news, rumors, results and more, be sure to follow us at Sportskeeda Wrestling and Sportskeeda MMA on Twitter!


near-death experiences REM (%) sleep experience intrusion Greyson people participants (.%) NDE Nelson {border-style px;} #ffffff;} study Table criteria Cassol Did Martial years; (.–.) Near-death felt GNDES association data reported Charland-Verville Kondziella Near-Death including online prevalence scale score Berlin Berlin, life-threatening previous using Scale [], did lay studies survey Female, employment experiences, experiences. points px; {font-family (%; Germany age, analysis bold crowdsourcing eye font-size gender, hallucinations intrusion. large like perceived place recruited reports sample (i.e., ./peerj./table- Copenhagen Experience However, Janice Laureys Long Participants PeerJ Perera Schmied Thonnard analyzed associated confirmed double; feel point rapid research residence, situations used visual wakefulness < (reference) Denmark Department Dreier Greyson, Health Knoblauch, Male, Neurology Neuroscience Peer Science Using Van adjust assessed border-color border-width case-control claimed different event following having just likely number out-of-body pleasant report selection situation solid; status surveys {font-style {font-weight %); .). Committee DFG Data Ethics Europe Experiences Facco Frontiers Human Lommel Miner, Prevalence Reports Schnettler, Sleep University Woods age and/or arousal background bias body. can’t come common compared countries courier; danger, em; experience. features feeling frequency higher highly i.e., information level multivariate muscle narcolepsy near-drowning; negative neurons occurred p-value participants; perception performed physical population positive pt;} questionnaire regression remained remember shown threshold time true truly work


Artists
News
Store
Contact
Contact Us
Find out when is our next performance, or a concert!
First Name
Last Name
Country
Australia
Canada
USA
Serbia
Subject


{% if form.errors %}
Your username and password did not match. Please check your password and try again
{% endif %} {% if next %} {% if user.is_authenticated %}Your account doesn't have access to this page. To proceed, please login with an account that has access.
{% else %}Please login to see this page.
{% endif %} {% endif %}


STUDENT BODIES A film review by Andrew Hicks Copyright 1996 Andrew Hicks / Fatboy Productions
(1981) 0 (out of four)
Statistics have shown us most slasher movies outright suck. They're formula-ridden, low-budget flicks where the same stock characters commit the same stock sins before getting killed off one by one by some bulky, masked killer. The worst thing about it is that most slasher movies take themselves completely seriously, making the entire genre ripe for parody. And yet the few times any movie has tried to parody the genre (MOTEL HELL, RETURN TO HORROR HIGH), it turned out worse than the straight slasher movies. STUDENT BODIES is no exception.
It takes its cue from HALLOWEEN in particular, making its killer "The Breather," a guy who makes obscene heavy-breathing noises before taking his victims. And every time a victim is taken, a big white number is superimposed on the screen to register the body count. Throughout the movie, more white words pop up on the screen, mostly intended to make us laugh or to needlessly point out that someone is "Unconscious, Not Dead (Important To Plot)."
It's supposed to be funny, but none of it is. The horny high school characters satirized here were more outrageous in their original slasher movie incarnations. To make them funny would require more than just giving them lame jokes to tell and having them hump like bunnies every few minutes. One girl and guy sneak under the bleachers at the Homecoming game to have sex on the ground, but all sorts of trash slips through the bleachers and lands on them. When the girl complains, the guy replies, "The garbage gets me hot." Classic comedy? Comedy, period? No.
 Friday the 13th... Jamie Lee Curtis' Birthday," and the movie just gets worse from there. Soon the phone is ringing so hard it jumps off the table and The Breather himself is interrupting the movie to announce we have technical difficulties (more like "creative difficulties"), "killing" time by asking us if we can guess who he is.
Yes, on top of it all, STUDENT BODIES is supposed to be a murder mystery. But the big mystery is how this appalingly bad movie was ever made. Perhaps the best clue is in the very first set of superimposed white words, which inform us that "Last year, twenty-six horror movies were released... None of them lost money." I have a feeling this one did.
--
Visit the Movie Critic at LARGE homepage at http://www.missouri.edu/~c667778/movies.html Serving America For Over 1/50 of a Century!
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Before Change
logging.warning(
"Negative eigenvalue encountered in"
" {}".format(function.__name__))
eigvals = function(eigvals)
eigvals = algebra_utils.from_vector_to_diagonal_matrix(eigvals)
transp_eigvecs = Matrices.transpose(eigvecs)
reconstruction = gs.matmul(eigvecs, eigvals)
reconstruction = gs.matmul(reconstruction, transp_eigvecs)
After Change
"Negative eigenvalue encountered in"
" {}".format(function.__name__))
return_list = True
if not isinstance(function, list):
function = [function]
return_list = False
reconstruction = []
transp_eigvecs = Matrices.transpose(eigvecs)
for fun in function:
eigvals_f = fun(eigvals)


Continuous Integration
Job Status: _JOB_NAME_, build number: #_BUILD_NUMBER_
Hello. I'm here to let you know that the tests
_STATUS_
.
To view the reports, click
here.


You can run the API demos with either Flash 8 (default), or Flash 9.
Wondering where to start? The following are some examples showing how to get started with SoundManager 2.
If you're wondering "How to include this script in my page?", see this bare-bones template which should have the minimal, stripped-down code and instructions you need to get started.
Once you have SM2 included in your page, you merely need to hook into its onload/onerror events:
soundManager.onload = function() { // soundManager is ready to use. // createSound() / play() etc. can now be called } soundmanager.onerror = function() { // Oh no! No sound support. // Maybe configure your app to ignore sound calls. // (SM2 calls will silently return false after this point.) }
Keep in mind SoundManager's core methods (createSound, etc.) will not be available until soundManager.onload() fires. The initialization time for SM2 can vary across browsers/platforms, and should effectively be assumed to be "asynchronous." Because of this, it is recommended you write your code to handle soundManager.onload() being called either before or after window.onload().
If you wish to have SM2 always wait for window.onload() before calling soundManager.onload()/onerror(), you can apply the following:
soundManager.waitForWindowLoad = true;
SoundManager 2 has debug mode enabled by default and will write to agents supporting console.log-style debugging, and/or a custom <div> element in the absence of a console.
To disable debug output, set soundManager.debugMode as follows:
Alternately, you may use the no-debug, minified version of the SM2 javascript library (which has internal debug code removed, and will silently return false.)
soundManager.play('mySound0','../mpc/audio/AMB_SN_5.mp3');
Creates and plays a sound with ID "mySound0", at the specified URL. The sound can then be referenced by that ID later, eg. soundManager.play('mySound0');
Note that this method is only provided for convenience, and allows only ID and URL as parameters. If you want to specify other options (volume, loop, event handlers), you must use the object literal syntax as given below.
soundManager.createSound({ id:'mySound1', url:'../mpc/audio/CHINA_1.mp3' }); soundManager.play('mySound1');
Creates, then plays a sound. This object literal method allows for other parameters to be used (see demo 2)
var aSoundObject = soundManager.createSound({ id:'mySound2', url:'../mpc/audio/CHINA_1.mp3' }); aSoundObject.play();
Creates, then plays a sound. This object literal method allows for other parameters to be used (see demo 2)
var demo2Sound = soundManager.createSound({ id:'mySound4', url:'../mpc/audio/CHINA_1.mp3', onfinish:function() { alert(this.sID+' finished playing'); } }); demo2Sound.play({volume:50});
(creates, then plays a new sound - a function is called when the sound finishes playing)
soundManager.play('aDrumSound');
This plays an existing sound which was created by soundManager.onload() (for reference, view source of this page.)
soundManager.play('aDrumSound',{onfinish:function(){soundManager.play('aCymbalSound');}})
Differently formatted:
soundManager.play('aDrumSound',{ onfinish:function() { soundManager.play('aCymbalSound'); } });
This will play an existing sound (created in-page), and uses the "onfinish" handler to make a call to play a second, pre-existing sound.
Also note that the button can be clicked multiple times, and the sound will be "layered" as multiShot is enabled for both of these sounds when using Flash 9. An onfinish event will also fire as each sound finishes.
Bug/behaviour note: Whenever "play" is called on a SMSound object, any parameters passed in will apply to all currently-playing instances of the sound if multiShot is allowed. For example, the onfinish handler from demo 4a will apply to demo 3 if 4a is started while 3 is still playing.
soundManager.createSound({ id:'aBassDrum', url:'../mpc/audio/AMB_BD_1.mp3', multiShot:false, onfinish:function() { soundManager.play('aRimSound','AMB_RIM1.mp3'); } }); soundManager.play('aRimSound');
This will crate and play a new sound, using the "onfinish" handler to create and play a second, new sound.
It is recommended to create sound objects first, to simplify troubleshooting.
var s = soundManager.createSound({ id:'hhCymbal', url:'../mpc/audio/AMB_HHOP.mp3' }); s.play({ onfinish: function() { this.play(); // or, soundManager.play('hhCymbal'); } });|
var sound = soundManager.getSoundById('chinaCymbal'); // predefined/preloaded sound sound.setPosition(500); // 500 msec into sound sound.setPan(-75); // 75% left pan sound.play();|
This will set the position of an existing, pre-loaded sound, then play it.
var sound = soundManager.getSoundById('chinaCymbal'); sound.play({position:500,pan:-75});|
Note that if planning to layer sounds with multiShot (Flash 9 only), this variant method will give best results as each new "channel" is started with parameters.
If not passed a sound ID, soundManager.mute() will mute all existing and newly-created sounds. soundManager.unmute() can also be passed a sound ID, and performs the inverse either on a single sound or all sounds.
In this demo, all sounds are globally muted and unmuted a few times. Different parameters are used to help audibly separate the sounds.
soundManager.mute(); // mute all sounds soundManager.createSound({ id: '880hz', url: '../_mp3/880hz.mp3', autoLoad:true, onload: function() { // soundManager.mute(); // mute all sounds // play (muted) cymbal sound.. this.play({ volume:75, // volume for when un-muted pan:-75, // mostly on left channel // .. and clean-up afterwards onfinish:function() { this.destruct(); } }); this.setVolume(25); // new volume for when un-muted.. soundManager.play('440hz',{ pan:75, onfinish:function() { document.getElementById('btn-d5b').disabled = false; } }); // once playing, toggle all sounds some more setTimeout(soundManager.unmute,500); setTimeout(soundManager.mute,1000); setTimeout(soundManager.unmute,1500); setTimeout(soundManager.mute,2000); setTimeout(soundManager.unmute,2500); } });
soundManager.createSound({ id: '880hz', url: '../_mp3/880hz.mp3', autoLoad:true, onload: function() { soundManager.mute('880hz'); // mute this - alternately, this.mute() would work here soundManager.play('440hz',{ // play another sound to demo muting onfinish: function() { document.getElementById('btn-d5c').disabled = false; } }); // play 880hz (muted).. this.play({ volume:75, // .. and clean-up afterwards onfinish:function() { this.destruct(); } }); this.setVolume(50); // still muted, however.. // mute/unmute china cymbal some more // mute sound calls: soundManager.mute('880hz'), or soundManager.getSoundById('880hz').mute(); setTimeout(this.unmute,250); setTimeout(this.mute,500); setTimeout(this.unmute,750); setTimeout(this.mute,1000); setTimeout(this.unmute,1250); } });
var foo = soundManager.createSound({ id: 'fooSound', url: '../mpc/audio/AMB_BD_1.mp3' }); // soundManager.play('fooSound'); // (Some time later on...) // soundManager.unload('fooSound'); - release the loaded MP3 // soundManager.destroySound('fooSound'); - destroy the sound, freeing up memory etc. Also calls unload(). // Alternate (demo) approach, call methods directly on sound object itself: foo.play({ onfinish:function() { // once sound has loaded and played, unload and destroy it. this.destruct(); // will also try to unload before destroying. } });
var preload = soundManager.createSound({ id: 'preloadSound', url: '../mpc/audio/AMB_HHOP.mp3' }); preload.load(); // load the sound ahead of time setTimeout(preload.play,1500); // and start playing it 1.5 seconds from now
var bad = soundManager.createSound({ id:'badSound', url:'badurl.mp3', onload: function(bSuccess) { alert('sound '+(bSuccess?'loaded!':'did NOT load.')); } }); bad.play();
var s = soundManager.createSound({ id:'testcase', url:'../mpc/audio/AMB_HHOP.mp3' }); s.play(); s.destruct();
var count = 0; var pos = -1; var s = soundManager.createSound({ id: 's', url: '../mpc/audio/CHINA_1.mp3', whileplaying: function() { if (count == 0) { if (this.position > 1000) { this.pause(); pos = this.position; count++; this.resume(); } } else if (count == 1) { soundManager._writeDebug('old position: ' + pos); soundManager._writeDebug('new position: ' + this.position); // See that this.position is less than pos! count++; } }, onfinish: function() { this.destruct(); } }); s.play();
Note that when using the Flash 9 version of SM2 with Flash 9 and 10 plugins, flash/OS-related delay conditions may result in the position
property being less than the duration
property, even by the end of the sound.
var foo = soundManager.createSound({ id: 'bar', url: '../mpc/audio/CRASH_1.mp3' }); foo.options.whileplaying = function() { soundManager._writeDebug('whileplaying(): '+this.position+' / '+this.duration); } foo.play(); // note: assign .options before calling .play(), as that "bakes" the options into a play instance object. // the below "late" event handler assignment will have no effect on the already-playing instance. foo.options.onfinish = function() { soundManager._writeDebug(this.sID+' stopped.'); }
To work around a known "chipmunk" sampling rate issue with 48 KHz MP3s in Flash, one can apparently load a sound using Flash 9 with stream = false, and then call play() once the sound has fully-loaded. Exactly why this works is not known.
var fortyeight = soundManager.createSound({ id: 's-48khz', url: 'http://freshly-ground.com/data/audio/48khz-test.mp3' }); if (!fortyeight.loaded) { // first time loading/playing fortyeight.load({ stream: false, onload: function() { // sound has fully-loaded this.play(); } }); } else { // sound has already loaded fortyeight.play(); }
This event fires when the sound's position property is equal to or less than onbeforefinishtime
msec from the end of the sound, as defined by duration
. If unspecified, a default value is used (eg. 5000 msec.)
var d13 = soundManager.createSound({ id: 'demo13', url: '../mpc/audio/CRASH_1.mp3', onbeforefinish: function() { alert(this.sID+'.onbeforefinish(): '+this.position+' of '+this.duration); }, onbeforefinishtime: 1000 }); d13.play();
Bug testcase (Flash 8 version-specific): creating a sound with autoLoad:true and immediately calling play() does not work.
var autoLoadTest = soundManager.createSound({ id: 'autoLoadTest', url: 'http://freshly-ground.com/data/audio/mpc/20060826%20-%20Armstrong.mp3?rnd=' + parseInt(Math.random()*1048576), onload: function() { soundManager._writeDebug(this.sID+' loaded.'); }, onplay: function() { soundManager._writeDebug('Starting sound: '+this.sID); }, autoPlay: false, autoLoad: true, stream: true }); // autoLoadTest.play(); // sound will not start setTimeout(autoLoadTest.play,1000); // may work with a delay?
Under Flash 8, this case does not work as expected. Even with the delay, the sound does not begin playing as soon as expected - sometimes it fires after the sound loads, in fact. For this reason, avoid using autoLoad:true
if you intend to play the sound shortly after creating it when using Flash 8.
Bug testcase (Flash 8 version-specific): onfinish() does not fire with autoPlay:true
var sound = soundManager.createSound({ id: 'demo15', url: '../mpc/audio/AMB_SN13.mp3', onfinish: function() { alert(this.sID+' finished (now destroying)'); // destroy this sound this.destruct(); }, autoPlay: true, multiShot: false });


|
Support Class Library
A set of tools providing classes and utility
|
Directories | |
| directory | unified |
Files | |
| file | android.h [code] |
| file | apple.h [code] |
| file | linux.h [code] |
| file | platform.clean_macros.h [code] |
| file | platform.hpp [code] |
| file | posix.h [code] |
| file | unix.h [code] |
| file | windows.h [code] |


{% extends "base.html" %} {% load static %} {% block page_header %}
VINTAGE INSPIRATION, MODERN DESIGN
In our quest to find a balance between classic design, timeless class,
luxury feel and contemporary utility, we have drawn our watch inspiration from vintage watches,
which left a mark on the industry with their innovation, originality and simplistic design.
We now look to the future and strive to reinvent and rethink the fundamental purpose and requirements of a wristwatch, suitable for everyday use in the 21st century.
In our effort to do so, we focus on what works and have rethought what needs to change in order to create a vintage inspired watch with modern utilitarian design.
Sincerely,
John Smith, CEO


Properties for the Discard component can be viewed by Double click->component on canvas. The properties contain only the 'General' tab since Discard falls under the Output category in the component palette.
- Name - The identifier for the component. This is a mandatory property. This property is pre-populated with the component name, i.e. 'Discard' followed by an incremental number. It can be changed to any custom name. The name property has following restrictions:
- Must be specified and should not be blank.
- Must be unique across the job.
- Accepts only alphabets (a-z), numerals (0-9) and 4 special characters: "_", "-", ",", " " (space).
- ID - ID field will specify unique id for every component.
- Type - Type defines the type of component within the category. This typically is the name of the component. This is a non editable field.
Batch - Batch accepts an integer value and signifies the batch this component will execute in. The default value for batch is 0. Batch can have a maximum value of 99. Batch is a mandatory property.


Discussion
For HTML5, Mobile and Desktop Apps
Configurable and themeable login forms
Configurable and themeable registration forms
Configurable and themeable account workflows
REST and HTML5 Console
Password alone is not enough
Login with GitHub, Google, Facebook or Twitter
Including grants for clients
Java, JavaEE, JavaScript
Mobile coming soon!
OAuth2
JSON Web Token (JWT) & JSON Web Signature (JWS)
Subject, expiration, access, etc.
Token is signed so can be verified locally
Neither the app or service has access to the users credentials!
Clients can request access to resources on behalf of users
#keycloak on freenode / keycloak-user mailing list
Stian Thorgersen / stian@redhat.com


Interface ISynchronizationContext
Denotes a context of a model synchronization run
Inherited Members
Namespace: NMF.Synchronizations
Assembly: NMF.Synchronizations.dll
Syntax
public interface ISynchronizationContext : ITransformationEngineContext, ITransformationContext
Properties
| Improve this Doc View SourceChangePropagation
Gets the change propagation mode of the model synchronization
Declaration
ChangePropagationMode ChangePropagation { get; }
Property Value
| Type | Description |
|---|---|
| ChangePropagationMode |
Direction
Gets the direction of the synchronization process
Declaration
SynchronizationDirection Direction { get; set; }
Property Value
| Type | Description |
|---|---|
| SynchronizationDirection |
Inconsistencies
Gets a collection of inconsistencies found during the synchronization
Declaration
ICollectionExpression<IInconsistency> Inconsistencies { get; }
Property Value
| Type | Description |
|---|---|
| ICollectionExpression<IInconsistency> |
Remarks
This property is only used by the synchronization engine if the direction is set to CheckOnly


Welcome to the third project of the Machine Learning Engineer Nanodegree! In this notebook, some template code has already been provided for you, and it will be your job to implement the additional functionality necessary to successfully complete this project. Sections that begin with 'Implementation' in the header indicate that the following block of code will require additional functionality which you must provide. Instructions will be provided for each section and the specifics of the implementation are marked in the code block with a 'TODO'
statement. Please be sure to read the instructions carefully!
In addition to implementing code, there will be questions that you must answer which relate to the project and your implementation. Each section where you will answer a question is preceded by a 'Question X' header. Carefully read each question and provide thorough answers in the following text boxes that begin with 'Answer:'. Your project submission will be evaluated based on your answers to each of the questions and the implementation you provide.
Note: Code and Markdown cells can be executed using the Shift + Enter keyboard shortcut. In addition, Markdown cells can be edited by typically double-clicking the cell to enter edit mode.
In this project, you will analyze a dataset containing data on various customers' annual spending amounts (reported in monetary units) of diverse product categories for internal structure. One goal of this project is to best describe the variation in the different types of customers that a wholesale distributor interacts with. Doing so would equip the distributor with insight into how to best structure their delivery service to meet the needs of each customer.
The dataset for this project can be found on the UCI Machine Learning Repository. For the purposes of this project, the features 'Channel'
and 'Region'
will be excluded in the analysis — with focus instead on the six product categories recorded for customers.
Run the code block below to load the wholesale customers dataset, along with a few of the necessary Python libraries required for this project. You will know the dataset loaded successfully if the size of the dataset is reported.
# Import libraries necessary for this project
import numpy as np
import pandas as pd
from IPython.display import display # Allows the use of display() for DataFrames
# Import supplementary visualizations code visuals.py
import visuals as vs
# Pretty display for notebooks
%matplotlib inline
random_state = 10
# Load the wholesale customers dataset
try:
data = pd.read_csv("customers.csv")
data.drop(['Region', 'Channel'], axis = 1, inplace = True)
print("Wholesale customers dataset has {} samples with {} features each.".format(*data.shape))
except:
print("Dataset could not be loaded. Is the dataset missing?")
In this section, you will begin exploring the data through visualizations and code to understand how each feature is related to the others. You will observe a statistical description of the dataset, consider the relevance of each feature, and select a few sample data points from the dataset which you will track through the course of this project.
Run the code block below to observe a statistical description of the dataset. Note that the dataset is composed of six important product categories: 'Fresh', 'Milk', 'Grocery', 'Frozen', 'Detergents_Paper', and 'Delicatessen'. Consider what each category represents in terms of products you could purchase.
# Display a description of the dataset
print(data.head())
display(data.describe())
To get a better understanding of the customers and how their data will transform through the analysis, it would be best to select a few sample data points and explore them in more detail. In the code block below, add three indices of your choice to the indices
list which will represent the customers to track. It is suggested to try different sets of samples until you obtain customers that vary significantly from one another.
# TODO: Select three indices of your choice you wish to sample from the dataset
indices = [131, 340, 400]
# Create a DataFrame of the chosen samples
samples = pd.DataFrame(data.loc[indices], columns = data.keys()).reset_index(drop = True)
print("Chosen samples of wholesale customers dataset:")
display(samples)
display(samples - np.round(data.mean()))
display(samples - np.round(data.median()))
Consider the total purchase cost of each product category and the statistical description of the dataset above for your sample customers.
Hint: Examples of establishments include places like markets, cafes, delis, wholesale retailers, among many others. Avoid using names for establishments, such as saying "McDonalds" when describing a sample customer as a restaurant. You can use the mean values for reference to compare your samples with. The mean values are as follows:
Knowing this, how do your samples compare? Does that help in driving your insight into what kind of establishments they might be?
Answer:
| Sample number | Establishments | Reasons |
|---|---|---|
| 0 | cafes, delis | This Customer spends more money on fresh foods, milk, and frozen items than grocery and Detergents_Paper. Interestingly the spend of the client on these items are lower than the mean and median value of original data for each item. |
| 1 | wholesale retailers | This customer spends more money on grocery items, Detergents_Paper and Delicatessen than frozen and fresh foods. This client also pays more money than the mean value of original data set for grocery and Detergents_Paper. |
| 2 | cafes, delis | This Customer spends more money on fresh foods, milk, and frozen items than grocery and Detergents_Paper. Interestingly the spend of the client on these items are lower than the mean and median value of original data for each item. |
One interesting thought to consider is if one (or more) of the six product categories is actually relevant for understanding customer purchasing. That is to say, is it possible to determine whether customers purchasing some amount of one category of products will necessarily purchase some proportional amount of another category of products? We can make this determination quite easily by training a supervised regression learner on a subset of the data with one feature removed, and then score how well that model can predict the removed feature.
In the code block below, you will need to implement the following:
new_data
a copy of the data by removing a feature of your choice using the DataFrame.drop
function.sklearn.cross_validation.train_test_split
to split the dataset into training and testing sets.test_size
of 0.25
and set a random_state
.random_state
, and fit the learner to the training data.score
function.import matplotlib.pyplot as plt
import seaborn as sns;
sns.set(style="ticks", color_codes=True)
sns.pairplot(data)
# TODO: Make a copy of the DataFrame, using the 'drop' function to drop the given feature
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import r2_score
X = data.drop('Grocery', axis=1)
Y = data['Grocery']
# TODO: Split the data into training and testing sets(0.25) using the given feature as the target
# Set a random state.
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.25, random_state=random_state)
# TODO: Create a decision tree regressor and fit it to the training set
regressor = DecisionTreeRegressor(random_state = random_state)
model = regressor.fit(X_train, y_train)
y_pred = model.predict(X_test)
# TODO: Report the score of the prediction using the testing set
score = r2_score(y_test, y_pred)
print('Score of the model: {}'.format(score))
Hint: The coefficient of determination, R^2
, is scored between 0 and 1, with 1 being a perfect fit. A negative R^2
implies the model fails to fit the data. If you get a low score for a particular feature, that lends us to beleive that that feature point is hard to predict using the other features, thereby making it an important feature to consider when considering relevance.
Q Which feature did you attempt to predict?
Answer:
I attempted to predict Grocery because this feature seem to be best correlated with other features like Milk, Detergents_Paper.
Q What was the reported prediction score?
Answer:
~72%
Q Is this feature necessary for identifying customers' spending habits?
Answer:
A high R^2 score means that the grocery feature is not independent, but rather it depends on the remaining five features. As a conclusion, I would say this feature is not sufficient to identify different customer segments.
To get a better understanding of the dataset, we can construct a scatter matrix of each of the six product features present in the data. If you found that the feature you attempted to predict above is relevant for identifying a specific customer, then the scatter matrix below may not show any correlation between that feature and the others. Conversely, if you believe that feature is not relevant for identifying a specific customer, the scatter matrix might show a correlation between that feature and another feature in the data. Run the code block below to produce a scatter matrix.
# Produce a scatter matrix for each pair of features in the data
pd.scatter_matrix(data, alpha = 0.3, figsize = (14,8), diagonal = 'kde');
Hint: Is the data normally distributed? Where do most of the data points lie? You can use corr() to get the feature correlations and then visualize them using a heatmap(the data that would be fed into the heatmap would be the correlation values, for eg: data.corr()
) to gain further insight.
Q Are there any pairs of features which exhibit some degree of correlation?
Answer:
From the below correlation heat map, It is pretty obvious that some of the pairs the best correlation (table below)
| Feature 1 | Feature 2 | Correlation | Data distribution |
|---|---|---|---|
| Grocery | Detergents_Paper | 0.92 | Positive and linear distribution |
| Grocery | Milk | 0.73 | Positive and semi-linear distribution |
| Detergents_Paper | Milk | 0.66 | Positive and linear distribution |
All of the features are not normally distributed and highly right skewed. Most of data are squeezed in the its lower range.
# plt.figure(figsize=(18, 10))
plt.rcParams.update({'font.size': 12})
sns.heatmap(data.corr(), annot = True)
Q Does this confirm or deny your suspicions about the relevance of the feature you attempted to predict?
Answer:
The correlation map confirm the relevancy of 'Grocery' to predict.
Q How is the data for those features distributed?
Answer:
'Grocery' is positive linearly distributed with both Detergents_Paper and Milk.
In this section, you will preprocess the data to create a better representation of customers by performing a scaling on the data and detecting (and optionally removing) outliers. Preprocessing data is often times a critical step in assuring that results you obtain from your analysis are significant and meaningful.
If data is not normally distributed, especially if the mean and median vary significantly (indicating a large skew), it is most often appropriate to apply a non-linear scaling — particularly for financial data. One way to achieve this scaling is by using a Box-Cox test, which calculates the best power transformation of the data that reduces skewness. A simpler approach which can work in most cases would be applying the natural logarithm.
In the code block below, you will need to implement the following:
log_data
after applying logarithmic scaling. Use the np.log
function for this.log_samples
after applying logarithmic scaling. Again, use np.log
.# TODO: Scale the data using the natural logarithm
log_data = np.log(data)
# TODO: Scale the sample data using the natural logarithm
log_samples = np.log(samples)
# Produce a scatter matrix for each pair of newly-transformed features
pd.scatter_matrix(log_data, alpha = 0.3, figsize = (14,8), diagonal = 'kde');
After applying a natural logarithm scaling to the data, the distribution of each feature should appear much more normal. For any pairs of features you may have identified earlier as being correlated, observe here whether that correlation is still present (and whether it is now stronger or weaker than before).
Run the code below to see how the sample data has changed after having the natural logarithm applied to it.
# Display the log-transformed sample data
display(log_samples)
plt.rcParams.update({'font.size': 12})
sns.heatmap(log_data.corr(), annot = True)
Detecting outliers in the data is extremely important in the data preprocessing step of any analysis. The presence of outliers can often skew results which take into consideration these data points. There are many "rules of thumb" for what constitutes an outlier in a dataset. Here, we will use Tukey's Method for identfying outliers: An outlier step is calculated as 1.5 times the interquartile range (IQR). A data point with a feature that is beyond an outlier step outside of the IQR for that feature is considered abnormal.
In the code block below, you will need to implement the following:
Q1
. Use np.percentile
for this.Q3
. Again, use np.percentile
.step
.outliers
list.NOTE: If you choose to remove any outliers, ensure that the sample data does not contain any of these points!
Once you have performed this implementation, the dataset will be stored in the variable good_data
.
# For each feature find the data points with extreme high or low values
outlier_indices = {}
for feature in log_data.keys():
# TODO: Calculate Q1 (25th percentile of the data) for the given feature
Q1 = np.percentile(log_data[feature], 25)
# TODO: Calculate Q3 (75th percentile of the data) for the given feature
Q3 = np.percentile(log_data[feature], 75)
# TODO: Use the interquartile range to calculate an outlier step (1.5 times the interquartile range)
step = 1.5 * (Q3- Q1)
# Display the outliers
feature_outliers = log_data[~((log_data[feature] >= Q1 - step) & (log_data[feature] <= Q3 + step))]
print("Data points considered outliers for the feature '{}':".format(feature))
display(log_data[~((log_data[feature] >= Q1 - step) & (log_data[feature] <= Q3 + step))])
# OPTIONAL: Select the indices for data points you wish to remove
outliers = [65, 66, 75, 128, 154]
# Remove the outliers, if any were specified
good_data = log_data.drop(log_data.index[outliers]).reset_index(drop = True)
outliers
list to be removed, explain why.Hint: If you have datapoints that are outliers in multiple categories think about why that may be and if they warrant removal. Also note how k-means is affected by outliers and whether or not this plays a factor in your analysis of whether or not to remove them.
Q Are there any data points considered outliers for more than one feature based on the definition above?
Answer:
I have identified four datapoints that appear as outlier for at least two features. The indices of the datapoints are : [65, 66, 75, 128, 154]
Q Should these data points be removed from the dataset?
Answer:
I think so, four outliers identified should be removed
Q If any data points were added to the outliers list to be removed, explain why.
Answer:
Outliers should be removed because they might badly influence our training data.
In this section you will use principal component analysis (PCA) to draw conclusions about the underlying structure of the wholesale customer data. Since using PCA on a dataset calculates the dimensions which best maximize variance, we will find which compound combinations of features best describe customers.
Now that the data has been scaled to a more normal distribution and has had any necessary outliers removed, we can now apply PCA to the good_data
to discover which dimensions about the data best maximize the variance of features involved. In addition to finding these dimensions, PCA will also report the explained variance ratio of each dimension — how much variance within the data is explained by that dimension alone. Note that a component (dimension) from PCA can be considered a new "feature" of the space, however it is a composition of the original features present in the data.
In the code block below, you will need to implement the following:
sklearn.decomposition.PCA
and assign the results of fitting PCA in six dimensions with good_data
to pca
.log_samples
using pca.transform
, and assign the results to pca_samples
.from sklearn.decomposition import PCA
# TODO: Apply PCA by fitting the good data with the same number of dimensions as features
pca = PCA(n_components=6)
pca.fit(good_data)
# TODO: Transform log_samples using the PCA fit above
pca_samples = pca.transform(log_samples)
# Generate PCA results plot
pca_results = vs.pca_results(good_data, pca)
Hint: A positive increase in a specific dimension corresponds with an increase of the positive-weighted features and a decrease of the negative-weighted features. The rate of increase or decrease is based on the individual feature weights.
Q How much variance in the data is explained in total by the first and second principal component?
Answer: 71.44%
Q How much variance in the data is explained by the first four principal components?
Answer: 92.94%
Q How much variance in the data is explained by the first four principal components?
Answer:
From the cummulative varinace graph below, it is pretty obvious that first three dimensions represents more than 83% variation in the data.
| Dimension | Discussion |
|---|---|
| Dimension 1 | This dimension is best represented by 'Detergents_Paper' and minorly by 'Grocery' and 'Milk' which are positively correlated with each other. This can be interpreted like if customer increases spending on these products, then the value of the first component will also increase. This component can represent grocery stores, gas stations, may be superstores |
| Dimension 2 | This dimension is best is represented by 'Fresh' and minorly by 'Frozen' and 'Delicatessen' which are positively correlated with each other. This component can be represented by restaurants and delis or vegetable/farmers markets. |
| Dimension 3 | This dimension is best represented by 'Fresh' and 'Delicatessen' which are correlated with each other in such a way that Fresh is negative and Delicatessen is positive. |
| Dimension 4 | This dimension mainly accounts for the 'Frozen' feature. This component is interesting in the sense that if customer spend more money on fresh foods, then they will decrease spending on Delicatessen products. |
cum = list(pca_results['Explained Variance'].cumsum())
plt.plot(cum, 'o-')
plt.grid()
for a,b in enumerate(cum):
plt.text(a, b, str(b))
Answer:
Run the code below to see how the log-transformed sample data has changed after having a PCA transformation applied to it in six dimensions. Observe the numerical value for the first four dimensions of the sample points. Consider if this is consistent with your initial interpretation of the sample points.
# Display sample log-data after having a PCA transformation applied
display(pd.DataFrame(np.round(pca_samples, 4), columns = pca_results.index.values))
When using principal component analysis, one of the main goals is to reduce the dimensionality of the data — in effect, reducing the complexity of the problem. Dimensionality reduction comes at a cost: Fewer dimensions used implies less of the total variance in the data is being explained. Because of this, the cumulative explained variance ratio is extremely important for knowing how many dimensions are necessary for the problem. Additionally, if a signifiant amount of variance is explained by only two or three dimensions, the reduced data can be visualized afterwards.
In the code block below, you will need to implement the following:
good_data
to pca
.good_data
using pca.transform
, and assign the results to reduced_data
.log_samples
using pca.transform
, and assign the results to pca_samples
.# TODO: Apply PCA by fitting the good data with only two dimensions
pca = PCA(n_components=2)
pca.fit(good_data)
# TODO: Transform the good data using the PCA fit above
reduced_data = pca.transform(good_data)
# TODO: Transform log_samples using the PCA fit above
pca_samples = pca.transform(log_samples)
# Create a DataFrame for the reduced data
reduced_data = pd.DataFrame(reduced_data, columns = ['Dimension 1', 'Dimension 2'])
Run the code below to see how the log-transformed sample data has changed after having a PCA transformation applied to it using only two dimensions. Observe how the values for the first two dimensions remains unchanged when compared to a PCA transformation in six dimensions.
# Display sample log-data after applying PCA transformation in two dimensions
display(pd.DataFrame(np.round(pca_samples, 4), columns = ['Dimension 1', 'Dimension 2']))
A biplot is a scatterplot where each data point is represented by its scores along the principal components. The axes are the principal components (in this case Dimension 1
and Dimension 2
). In addition, the biplot shows the projection of the original features along the components. A biplot can help us interpret the reduced dimensions of the data, and discover relationships between the principal components and original features.
Run the code cell below to produce a biplot of the reduced-dimension data.
# Create a biplot
vs.biplot(good_data, reduced_data, pca)
Once we have the original feature projections (in red), it is easier to interpret the relative position of each data point in the scatterplot. For instance, a point the lower right corner of the figure will likely correspond to a customer that spends a lot on 'Milk'
, 'Grocery'
and 'Detergents_Paper'
, but not so much on the other product categories.
From the biplot, which of the original features are most strongly correlated with the first component? What about those that are associated with the second component? Do these observations agree with the pca_results plot you obtained earlier?
In this section, you will choose to use either a K-Means clustering algorithm or a Gaussian Mixture Model clustering algorithm to identify the various customer segments hidden in the data. You will then recover specific data points from the clusters to understand their significance by transforming them back into their original dimension and scale.
Hint: Think about the differences between hard clustering and soft clustering and which would be appropriate for our dataset.
Q What are the advantages to using a K-Means clustering algorithm?
Answer:
Advantages of K-Means:
Q What are the advantages to using a Gaussian Mixture Model clustering algorithm?
Answer:
Advantages of Gaussian Mixture Model:
Q Observations
Answer: I would prefer Gaussian Mixture Model clustering algorithm since (1) it considers variance when it calculates the measurement and (2) has the overlapping nature (soft clustering) of the data points. Although we have analyzed the wholesale customer dataset, we still do not have any concrete idea if a datapoint strictly belongs to a particular class. That's the reason Gaussian Mixture Model might give us a better insight of the data.
Depending on the problem, the number of clusters that you expect to be in the data may already be known. When the number of clusters is not known a priori, there is no guarantee that a given number of clusters best segments the data, since it is unclear what structure exists in the data — if any. However, we can quantify the "goodness" of a clustering by calculating each data point's silhouette coefficient. The silhouette coefficient for a data point measures how similar it is to its assigned cluster from -1 (dissimilar) to 1 (similar). Calculating the mean silhouette coefficient provides for a simple scoring method of a given clustering.
In the code block below, you will need to implement the following:
reduced_data
and assign it to clusterer
.reduced_data
using clusterer.predict
and assign them to preds
.centers
.pca_samples
and assign them sample_preds
.sklearn.metrics.silhouette_score
and calculate the silhouette score of reduced_data
against preds
.score
and print the result.from sklearn.mixture import GaussianMixture
from sklearn.metrics import silhouette_score
clusters = np.arange(2, 21, 1)
result = np.zeros((2, len(clusters)))
scores = []
for i, component in enumerate (clusters):
# TODO: Apply your clustering algorithm of choice to the reduced data
clusterer = GaussianMixture(n_components = component).fit(reduced_data)
# TODO: Predict the cluster for each data point
preds = clusterer.predict(reduced_data)
# TODO: Find the cluster centers
centers = clusterer.means_
# TODO: Predict the cluster for each transformed sample data point
sample_preds = clusterer.predict(pca_samples)
# TODO: Calculate the mean silhouette coefficient for the number of clusters chosen
scores.append(silhouette_score(reduced_data, preds))
result[0][i] = round(component, 0)
result[1][i] = round(scores[i],3)
result_dataFrame = pd.DataFrame(result)
display(result_dataFrame)
# print('Best silhouette_score is {}, while the cluser size is {}'.format(np.amax(result_dataFrame[1:]), 2))
Q Report the silhouette score for several cluster numbers you tried.
Answer: Printed above. 0 label row the number of componet and 1 label row is the corresponding score.
Q Of these, which number of clusters has the best silhouette score?
Answer: Best silhouette_score is 0.4096101281562515, while the cluser size is 2
Once you've chosen the optimal number of clusters for your clustering algorithm using the scoring metric above, you can now visualize the results by executing the code block below. Note that, for experimentation purposes, you are welcome to adjust the number of clusters for your clustering algorithm to see various visualizations. The final visualization provided should, however, correspond with the optimal number of clusters.
import imp
import visuals as vs
imp.reload(vs)
# Display the results of the clustering from implementation
clusterer = GaussianMixture(n_components = 2, random_state= random_state).fit(reduced_data)
# TODO: Predict the cluster for each data point
preds = clusterer.predict(reduced_data)
centers = clusterer.means_
sample_preds = clusterer.predict(pca_samples)
vs.cluster_results(reduced_data, preds, centers, pca_samples)
Each cluster present in the visualization above has a central point. These centers (or means) are not specifically data points from the data, but rather the averages of all the data points predicted in the respective clusters. For the problem of creating customer segments, a cluster's center point corresponds to the average customer of that segment. Since the data is currently reduced in dimension and scaled by a logarithm, we can recover the representative customer spending from these data points by applying the inverse transformations.
In the code block below, you will need to implement the following:
centers
using pca.inverse_transform
and assign the new centers to log_centers
.np.log
to log_centers
using np.exp
and assign the true centers to true_centers
.# TODO: Inverse transform the centers
log_centers = pca.inverse_transform(centers)
# TODO: Exponentiate the centers
true_centers = np.exp(log_centers)
# Display the true centers
segments = ['Segment {}'.format(i) for i in range(0,len(centers))]
true_centers = pd.DataFrame(np.round(true_centers), columns = data.keys())
true_centers.index = segments
display(true_centers)
Hint: A customer who is assigned to 'Cluster X'
should best identify with the establishments represented by the feature set of 'Segment X'
. Think about what each segment represents in terms their values for the feature points chosen. Reference these values with the mean values to get some perspective into what kind of establishment they represent.
data.describe()
Answer:
Customers belong to Segment-0 buy more Frozen and Fresh foods and spend less money on Grocery. They spend less than the mean value of original data set. Our interpretation can be that segment-1 customers are health conscious. Therefore, who are health conscious have a decent job. Whole food stores or fitness related companies can target these customers to increase revenue.
Clients of Segment-1 tend to spend more money on Grocery, Detergents_Paper and milk. The average amount of grocery spending is almost 50% higher than that of the mean for Grocery of the original data. These customers also spend more than 50% on detergents_Paper than original dataset mean Detergents_Paper value. It is likely that Supermarkets and local gas stations can target segment-0 customers to increase their sells.
Run the code block below to find which cluster each sample point is predicted to be.
# Display the predictions
for i, pred in enumerate(sample_preds):
print("Sample point", i, "predicted to be in Cluster", pred)
display(samples)
Answer:
Sample point-0 and 2 are identified as segment-0 which is apparently right because both of the sample customers buy more fresh and frozen foods. On the other hand, sample point-1 is classified as a segment-1 client. This prediction is also consistent since the customer spends more money on grocery, milk, and Detergents_Paper.
In this final section, you will investigate ways that you can make use of the clustered data. First, you will consider how the different groups of customers, the customer segments, may be affected differently by a specific delivery scheme. Next, you will consider how giving a label to each customer (which segment that customer belongs to) can provide for additional features about the customer data. Finally, you will compare the customer segments to a hidden variable present in the data, to see whether the clustering identified certain relationships.
Companies will often run A/B tests when making small changes to their products or services to determine whether making that change will affect its customers positively or negatively. The wholesale distributor is considering changing its delivery service from currently 5 days a week to 3 days a week. However, the distributor will only make this change in delivery service for customers that react positively.
Hint: Can we assume the change affects all customers equally? How can we determine which group of customers it affects the most?
Answer:
We can randomly select two group of customers one being the experiment group and other is as a control group. After selecting the groups, the wholesale distributor deploys the new delivery service to the test group, and but not to the control group. After a period, the distributor analyzes the results regarding customer segments found by clustering method. The experimental group later be subdivided based on the client segment. If the customer segment-0 of the experimental group is sensitive to the new delivery method, then segment-0 is, of course, is not affected by the new delivery option.
The following observation can be helpful to make a decision:
For example, if the wholesale distributor wants to deliver Grocery, Delicatessen, Detergents_Paper then I believe the new proposed delivery might work. The hypothetical argument is that these items are not regularly required. Therefore, customer segment-1 might not be affected most.
On the other hand, if the wholesale distributor wants to deliver fresh foods and frozen items then I would say the new proposed delivery will affect most segment-0 customers. The reason is that these customers depend on fresh food and can not wait for four days to get new fresh items. Segment-0 customers might also prefer faster delivery as opposed to clients who buy Detergents_Paper.
Additional structure is derived from originally unlabeled data when using clustering techniques. Since each customer has a customer segment it best identifies with (depending on the clustering algorithm applied), we can consider 'customer segment' as an engineered feature for the data. Assume the wholesale distributor recently acquired ten new customers and each provided estimates for anticipated annual spending of each product category. Knowing these estimates, the wholesale distributor wants to classify each new customer to a customer segment to determine the most appropriate delivery service.
Hint: A supervised learner could be used to train on the original customers. What would be the target variable?
Answer:
Since customers only provide annual spending of each product category, this is an unsupervised problem. To label the new customers using only their annual spending we can use PCA to reduce features and then use an appropriate clustering algorithm to classify a client as we did here in this project. The clustering information(segment) can be used as an additional feature to the present six features. Therefore now we can use other appropriate supervised learning algorithms for further analysis with the new customer segment feature. </b>
We can simple label the target varibale as "customer_segment"
At the beginning of this project, it was discussed that the 'Channel'
and 'Region'
features would be excluded from the dataset so that the customer product categories were emphasized in the analysis. By reintroducing the 'Channel'
feature to the dataset, an interesting structure emerges when considering the same PCA dimensionality reduction applied earlier to the original dataset.
Run the code block below to see how each data point is labeled either 'HoReCa'
(Hotel/Restaurant/Cafe) or 'Retail'
the reduced space. In addition, you will find the sample points are circled in the plot, which will identify their labeling.
# Display the clustering results based on 'Channel' data
vs.channel_results(reduced_data, outliers, pca_samples)
Answer:
Note: Once you have completed all of the code implementations and successfully answered each question above, you may finalize your work by exporting the iPython Notebook as an HTML document. You can do this by using the menu above and navigating to
File -> Download as -> HTML (.html). Include the finished document along with this notebook as your submission.


This is heading
This is a paragraph
This is second heading
This is my second paragraph
This is third heading
This is my third paragraph


The #map method is a good tool for when you need to add details in to arrays. For example, you can use #map to add a 5 to all of the elements in an array. All you do is call the method on the array and set the block to add it to the variable stated in the block.
The syntax is fairly simple:
array=[1,2,3]
array.map!{|x| x + 5} => [6, 7, 8]
Remember that using #map! and #map are different. #map! returns the value in itself. It will destroy the original array and replace it with the array the block created. Using #map makes it non destructive, so it needs to be set to another variable of your choice.
About Me
I am, well I used to be, a college student who has always had an insatiable drive to learn about the world. I am currently attending Dev Bootcamp to learn how to code and develop pretty much anything that my heart desires. That is all anyone can ever truly strive for, right?
-The links below are broken for the time being. I am working on updating all of my blog pages.-


For Aqua, you will need to use the macosx version of TCL/TK. TCL seems to be included as part of the Developer tools package, but not TK, so most likely you will need to install your own version of TCL/TK 8.4.2 (or higher).
Go to the macosx subdirectory of the TCL/TK distributions. Type
make install INSTALL_ROOT=$HOMEThis builds a framework library and installs it into
~/Library/Frameworks
. You could also install it
system wide with make install
, but you will need administrator
priveleges for this. Eco Lab will search either place for the TCL/TK
libraries.


* Local time is derived from your smarthphone / desktop time
Kiritimati 1.98715,-157.47714
Wellington -41.28249,174.76913
Auckland -36.84339,174.76709
Anadyr 64.736908,177.510872
Sydney -33.86302,151.21535
Melbourne -37.82149,144.97123
Adelaide -34.91880,138.61168
Cairns -16.92061,145.77833
Brisbane -27.47601,153.02966
Alice Springs -23.696847,133.884159
Tokyo 35.66959,139.69969
Osaka 34.65011,135.51050
Nagoya 35.15530,136.91978
Seoul 37.51078,127.09822
Busan 35.15631,129.05847
Singapore 1.28243,103.86395
Perth -31.95232,115.88080
Manila 14.58492,120.98113
Chiayi 23.48274,120.46639
Hong Kong 22.27773,114.16207
Kuala Lumpur 3.13100,101.67174
Jakarta -6.17536,106.82715
Bangkok 13.73365,100.49702
Ho Chi Minh City 10.77451,106.69388
Yangon 16.81134,96.16447
Dhaka 23.73598,90.39525
Thimphu 27.50047,89.63980
Kathmandu 27.70526,85.30826
New Delhi 28.59371,77.22022
Mumbai 18.92668,72.83213
Bangalore 12.94984,77.58650
Colombo 6.91292,79.86125
Malé 4.17528,73.50933
Lahore 31.58853,74.31250
Karachi 24.81291,67.02664
Kabul 34.52054,69.17406
Dubai 25.26713,55.29020
Muscat 23.62462,58.57885
Baku 40.36833,49.84200
Moscow 55.70239,37.52974
Istanbul 41.01287,28.97994
Doha 25.30115,51.51720
Helsinki 60.17299,24.94523
Athens 37.97266,23.73727
Bucharest 44.43729,26.09026
Kiev 50.44586,30.52725
Jerusalem 31.77796,35.21913
Cape Town -33.90666,18.41900
Paris 48.89070,2.23813
Copenhagen 55.66230,12.56223
Munich 48.14339,11.58018
Brussels 50.84485,4.36401
Rome 41.89232,12.49612
Madrid 40.42326,-3.71699
Bern 46.94854,7.45532
Oslo 59.90703,10.72106
Stockholm 59.33986,18.04165
Warsaw 52.25402,21.01092
Budapest 47.49624,19.08588
Casablanca 33.59280,-7.61795
London 51.50122,-0.13970
Lisbon 38.71618,-9.14874
Dublin 53.33779,-6.25900
Iceland 64.14769,-21.94198
Azores 37.82024,-25.52502
Praia 14.90446,-23.51906
⚠ Nothing to see here. Look at another time zone or take a nap -- Americas will be starting soon. ⚠
You can check out King Edward Point -54.283333,-36.500000 (a research station with about 20 people)


Chinatown Citizenship
English
US History
N400
Other Resources
Contact Us
Immigration History
Questions about your immigration history
Flashcard
Social Security Number
社会安全号码
Permanent Resident
永久居民
Vacation
旅游
Family
家人
America
美国
Previous
Next
Review
Questions About Your Economic Status
(关于您经济情况的问题)
Q: What is your
social security number?
A:
My social security number is <xxx-xx-xxxx>.
Q:
When did you become a permanent resident of the United States?
A:
I became a permanent resident on <date>.
Q:
How long have you been a permanent resident?
A:
I have been a permanent resident for <number> years.
Q:
Have you traveled outside of the United States since becoming a permanent resident?
Have you left the country since you came to America?
A:
Yes
/
No
.
Q:
Why did you travel outside the United States?
A:
For vacation.
To see my family.
Q:
Who helped you fill out your N-400 application?

A:
My friend.
My son.
My daughter.

A:
Yes
/
No
.

A:
No
.
Q:
Have you taken any additional trips outside of the United States since you turned in/submitted/filed your N-400?
A:
Yes
/
No
.
Q:
Have you moved since you turned in/submitted/filed your N-400?
A:
Yes
/
No
.
Q:
Who sponsored you to come to the U.S.?
A:
My wife.
My husband.
My son.
My daughter.
Q:
Why did you decide to come to the U.S.?
Why did you want to come to America?
A:
To be with my family.
To get a better education.
For my children.
To have a better life.
For freedom.
To find work.
Q:
Do you miss anything about China?
A:
I miss my family.
I miss my friends.
I miss the food.
No, I do not miss anything.
Q:
Why do you want to be an American citizen?
A:
To vote.
To travel with a U.S. passport.
To obtain federal government jobs.
To get social security benefits.
To sponsor my family to come to America.
Q:
Do you like living in America?
A:
Yes, I like it here.
Q:
Why do you like living in America?
A:
The air is good.
The education is good.
The water is good.
I like the freedom.
The food is good.


WITNESS LIST Public Health Committee March 19, 2003-8:00A HB 1162 On: Gower, John (Texas Department of Health) Tennyson, Susan (TDH) HB 1321 For: Thyssen (Tyson), Monica (Advocacy Inc.) On: Cowan, Tom (Texas Education Agency) Wanser, Dave (Texas Commission on Alcohol and Drug Abuse) Registering, but not testifying: For: Hansen, Vicki (National Association of Social Workers Texas Chapter) Humphrey, Cynthia (Association of Substance Abuse Programs) Hyatt, Deborah (Texas Federation of Families for Children's Mental Health) HB 1490 For: Eberhardt, Patrick (Self and Austin Travis County MHMR) Gionfriddo, Pam (Mental Health Association in TX) Hansen, Vicki (National Association of Social Workers) Hartman, Kimberly (Self and Yellow Ribbon Suicide Prevention Program Lockhart TX Chapter Central TX Chapter of American Foundat) Keller, Merily H. (Self and Texas Suicide Prevention Steering Committee) Maness, Sarah (Self) Mathews Blanton MSN, Barbara (Self) Roebuck, Elizabeth (Self) Stratton, Melissa (Self) Thyssen, Monica (Advocacy Inc.) On: Devin, Pat (Health & Human Services Commission) Vega, Frank (TDMHMR Resource Witness) Registering, but not testifying: For: Banning, Tom (TX Academy of Family Physicians) Charlton, Casey (Self) Hyatt, Deborah (Texas Federation of Families for Childrens Mental Health) Johnson, Shawna (Self) Kern, Diana (Self and NAMI Texas National Alliance for the Mentally Ill) Maness, Neal (Self) On: Cowan, Tom (Texas Education Agency) Wanser, Dave (Texas Commission on Alcohol and Drug Abuse)


which we operate our business, develop, value, manage, protect, and use our intellectual property, and the
valuations of our intercompany transactions. The tax laws applicable to our business, including the laws of
the United States and other jurisdictions, are subject to interpretation and certain jurisdictions are
aggressively interpreting their laws in new ways in an effort to raise additional tax revenue from companies
such as Facebook. We are subject to regular review and audit by U.S. federal, state, and foreign tax
authorities. Tax authorities may disagree with certain positions we have taken, including our methodologies
for valuing developed technology or intercompany arrangements, and any adverse outcome of such a review or
audit could increase our worldwide effective tax rate, increase the amount of non-income taxes imposed on
our business, and harm our financial position, results of operations, and cash flows. For example, in 2016
and 2018, the IRS issued formal assessments relating to transfer pricing with our foreign subsidiaries in
conjunction with the examination of the 2010 through 2013 tax years. Although we disagree with the IRS's
position and are contesting this issue, the ultimate resolution is uncertain and, if resolved in a manner
unfavorable to us, may adversely affect our financial results.
The determination of our worldwide provision for income taxes
and other tax liabilities requires significant judgment by management, and there are many transactions where
the ultimate tax determination is uncertain. Our provision for income taxes is determined by the manner in
which we operate our business, and any changes to such operations or laws applicable to such operations may
affect our effective tax rate. Although we believe that our provision for income taxes and estimates of our
non-income tax liabilities are reasonable, the ultimate settlement may differ from the amounts recorded in
our financial statements and may materially affect our financial results in the period or periods for which
such determination is made.
Our future income tax rates could be volatile and difficult to
predict due to changes in jurisdictional profit split, changes in the amount and recognition of deferred tax
assets and liabilities, or by changes in tax laws, regulations, or accounting principles.
Changes in tax laws or tax
rulings could materially affect our financial position, results of operations, and cash flows.
The tax regimes we are subject to or operate under, including
income and non-income taxes, are unsettled and may be subject to significant change. Changes in tax laws or
tax rulings, or changes in interpretations of existing laws, could materially affect our financial position,
results of operations, and cash flows. For example, the 2017 Tax Cuts and Jobs Act (Tax Act) enacted in
December 2017 had a significant impact on our tax obligations and effective tax rate for the fourth quarter
of 2017, and the issuance of additional regulatory or accounting guidance related to the Tax Act could
materially affect our tax obligations and effective tax rate in the period issued. In addition, a
three-judge panel from the Ninth Circuit Court of Appeals issued a decision in Altera Corp. v. Commissioner regarding the treatment of share-based compensation expense in
a cost sharing arrangement, which had a material effect on our tax obligations and effective tax rate for
the second quarter of 2019. As the taxpayer has requested a rehearing before the full Ninth Circuit and may
subsequently appeal to the Supreme Court, the final outcome of the case is uncertain and could have a
material effect on our tax obligations and effective tax rate in future quarters. In addition, many
countries in Europe, as well as a number of other countries and organizations, have recently proposed or
recommended changes to existing tax laws or have enacted new laws that could significantly increase our tax
obligations in many countries where we do business or require us to change the manner in which we operate
our business.
The Organization for Economic Cooperation and Development has
been working on a Base Erosion and Profit Shifting Project, and issued a report in 2015, an interim report
in 2018, and is expected to continue to issue guidelines and proposals that may change various aspects of
the existing framework under which our tax obligations are determined in many of the countries in which we
do business. Similarly, the European Commission and several countries have issued proposals that would
change various aspects of the current tax framework under which we are taxed. These proposals include
changes to the existing framework to calculate income tax, as well as proposals to change or impose new
types of non-income taxes, including taxes based on a percentage of revenue. For example, France has
enacted, and the United Kingdom, Spain, and Italy have each proposed, taxes applicable to digital
services, which includes business activities on social media platforms and online marketplaces, and would
likely apply to our business.
The European Commission has conducted investigations in multiple
countries focusing on whether local country tax rulings or tax legislation provides preferential tax
treatment that violates European Union state aid rules and concluded that certain countries, including
Ireland, have provided illegal state aid in certain cases. These investigations may result in changes
to the tax treatment of our foreign operations.
Due to the large and expanding scale of our international
business activities, many of these types of changes to the taxation of our activities described above could
increase our worldwide effective tax rate, increase the amount of non-income taxes imposed on our business,
and harm our financial position, results of operations, and cash flows. Such changes may also apply
retroactively to our historical operations and result in taxes greater than the amounts estimated and
recorded in our financial statements.
We cannot guarantee that our
share repurchase program will be fully consummated or that it will enhance long-term stockholder value.
Share repurchases could also increase the volatility of the trading price of our stock and will diminish our
cash reserves.
Although our board of directors has authorized a share
repurchase program that commenced in 2017 and does not have an expiration date, the program does not
obligate us to repurchase any specific dollar amount or to acquire any specific number of shares of our
Class A common stock. We cannot guarantee that the program will be fully consummated or that it will enhance
long-term stockholder value. The program could affect the trading price of our stock and increase
volatility, and any announcement of a termination of this program may result in a decrease in the trading
price of our stock. In addition, this program will diminish our cash reserves.
Risks Related to Ownership of Our Class A
Common Stock
The trading price of our
Class A common stock has been and will likely continue to be volatile.
The trading price of our Class A common stock has been, and
is likely to continue to be, volatile. Since shares of our Class A common stock were sold in our
initial public offering in May 2012 at a price of $38.00 per share, our stock price has ranged from
$17.55 to $218.62
through September 30, 2019. In addition to the factors discussed in this Quarterly Report
on Form 10-Q, the trading price of our Class A common stock may fluctuate significantly in response to
numerous factors, many of which are beyond our control, including:
|
|
|
•
|
actual or anticipated fluctuations in our revenue
and other operating results;
|
|
|
|
•
|
the financial projections we may provide to the
public, any changes in these projections or our failure to meet these projections;
|
|
|
|
•
|
actions of securities analysts who initiate or
maintain coverage of us, changes in financial estimates by any securities analysts who follow
our company, or our failure to meet these estimates or the expectations of investors;
|
|
|
|
•
|
additional shares of our stock being sold into the
market by us, our existing stockholders, or in connection with acquisitions, or the anticipation
of such sales;
|
|
|
|
•
|
investor sentiment with respect to our competitors,
our business partners, and our industry in general;
|
|
|
|
•
|
announcements by us or our competitors of
significant products or features, technical innovations, acquisitions, strategic partnerships,
joint ventures, or capital commitments;
|
|
|
|
•
|
announcements by us or estimates by third parties of
actual or anticipated changes in the size of our user base, the level of user engagement, or the
effectiveness of our ad products;
|
|
|
|
•
|
changes in operating performance and stock market
valuations of technology companies in our industry, including our developers and
competitors;
|
|
|
|
•
|
price and volume fluctuations in the overall stock
market, including as a result of trends in the economy as a whole;
|
|
|
|
•
|
the inclusion, exclusion, or deletion of our stock
from any trading indices, such as the S&P 500 Index;
|
|
|
|
•
|
media coverage of our business and financial
performance;
|
|
|
|
•
|
lawsuits threatened or filed against us, or
developments in pending lawsuits;
|
|
|
|
•
|
developments in anticipated or new legislation or
regulatory actions, including interim or final rulings by tax,
|
judicial, or regulatory bodies;
|
|
|
•
|
trading activity in our share repurchase program;
and
|
|
|
|
•
|
other events or factors, including those resulting
from war or incidents of terrorism, or responses to these events.
|
In addition, the stock markets have experienced extreme price
and volume fluctuations that have affected and continue to affect the market prices of equity securities of
many technology companies. Stock prices of many technology companies have fluctuated in a manner unrelated
or disproportionate to the operating performance of those companies. We are currently subject to securities
litigation in connection with our platform and user data practices and the misuse of certain data by a
developer that shared such data with third parties in violation of our terms and policies, as well as the
disclosure of our earnings results for the second quarter of 2018. We may experience more such litigation
following future periods of volatility. Any securities litigation could subject us to substantial costs,
divert resources and the attention of management from our business, and adversely affect our
business.
We do not intend to pay cash
dividends for the foreseeable future.
We have never declared or paid cash dividends on our capital
stock. We currently intend to retain any future earnings to finance the operation and expansion of our
business and fund our share repurchase program, and we do not expect to declare or pay any cash dividends in
the foreseeable future. As a result, you may only receive a return on your investment in our Class A
common stock if the trading price of your shares increases.
The dual class structure of
our common stock and a voting agreement between certain stockholders have the effect of concentrating voting
control with our CEO and certain other holders of our Class B common stock; this will limit or preclude your
ability to influence corporate matters.
Our Class B common stock has ten votes per share and our
Class A common stock has one vote per share. Stockholders who hold shares of Class B common stock,
including certain of our executive officers, employees, and directors and their affiliates, together hold a
substantial majority of the voting power of our outstanding capital stock. Because of the ten-to-one voting
ratio between our Class B and Class A common stock, the holders of our Class B common stock
collectively control a majority of the combined voting power of our common stock and therefore are able to
control all matters submitted to our stockholders for approval so long as the shares of Class B common
stock represent at least 9.1% of all outstanding shares of our Class A and Class B common stock.
This concentrated control will limit or preclude your ability to influence corporate matters for the
foreseeable future.
Transfers by holders of Class B common stock will generally
result in those shares converting to Class A common stock, subject to limited exceptions, such as
certain transfers effected for estate planning or charitable purposes. The conversion of Class B common
stock to Class A common stock will have the effect, over time, of increasing the relative voting power
of those holders of Class B common stock who retain their shares in the long term. If, for example,
Mr. Zuckerberg retains a significant portion of his holdings of Class B common stock for an
extended period of time, he could, in the future, continue to control a majority of the combined voting
power of our outstanding capital stock.
Our status as a "controlled
company" could make our Class A common stock less attractive to some investors or otherwise harm our
stock price.
Because we qualify as a "controlled company" under the corporate
governance rules for Nasdaq-listed companies, we are not required to have a majority of our board of
directors be independent, nor are we required to have a compensation committee or an independent nominating
function. In the future we could elect not to have a majority of our board of directors be independent or
not to have a compensation committee or an independent nominating function. Accordingly, should the
interests of our controlling stockholder differ from those of other stockholders, the other stockholders may
not have the same protections afforded to stockholders of companies that are subject to all of the corporate
governance rules for Nasdaq-listed companies. Our status as a controlled company could make our Class A
common stock less attractive to some investors or otherwise harm our stock price.
Delaware law and provisions
in our restated certificate of incorporation and bylaws could make a merger, tender offer, or proxy contest
difficult, thereby depressing the trading price of our Class A common stock.
Our status as a Delaware corporation and the anti-takeover
provisions of the Delaware General Corporation Law may
discourage, delay, or prevent a change in control by prohibiting
us from engaging in a business combination with an interested stockholder for a period of three years after
the person becomes an interested stockholder, even if a change of control would be beneficial to our
existing stockholders. In addition, our current restated certificate of incorporation and bylaws contain
provisions that may make the acquisition of our company more difficult, including the following:
|
|
|
•
|
until the first date on which the outstanding shares
of our Class B common stock represent less than 35% of the combined voting power of our common
stock, any transaction that would result in a change in control of our company requires the
approval of a majority of our outstanding Class B common stock voting as a separate
class;
|
|
|
|
•
|
we currently have a dual class common stock
structure, which provides Mr. Zuckerberg with the ability to control the outcome of matters
requiring stockholder approval, even if he owns significantly less than a majority of the shares
of our outstanding Class A and Class B common stock;
|
|
|
|
•
|
when the outstanding shares of our Class B common
stock represent less than a majority of the combined voting power of common stock, certain
amendments to our restated certificate of incorporation or bylaws will require the approval of
two-thirds of the combined vote of our then-outstanding shares of Class A and Class B
common stock;
|
|
|
|
•
|
when the outstanding shares of our Class B common
stock represent less than a majority of the combined voting power of our common stock, vacancies
on our board of directors will be able to be filled only by our board of directors and not by
stockholders;
|
|
|
|
•
|
when the outstanding shares of our Class B common
stock represent less than a majority of the combined voting power of our common stock, our board
of directors will be classified into three classes of directors with staggered three-year terms
and directors will only be able to be removed from office for cause;
|
|
|
|
•
|
when the outstanding shares of our Class B common
stock represent less than a majority of the combined voting power of our common stock, our
stockholders will only be able to take action at a meeting of stockholders and not by written
consent;
|
|
|
|
•
|
only our chairman, our chief executive officer, our
president, or a majority of our board of directors are authorized to call a special meeting of
stockholders;
|
|
|
|
•
|
advance notice procedures apply for stockholders to
nominate candidates for election as directors or to bring matters before an annual meeting of
stockholders;
|
|
|
|
•
|
our restated certificate of incorporation authorizes
undesignated preferred stock, the terms of which may be established, and shares of which may be
issued, without stockholder approval; and
|
|
|
|
•
|
certain litigation against us can only be brought in
Delaware.
|
|
|
|
Item 2.
|
Unregistered Sales of Equity
Securities and Use of Proceeds
|
a) Sales of Unregistered
Securities
None.
c) Issuer Purchases of Equity
Securities
The following table summarizes the share repurchase activity
for the three months ended September 30, 2019:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Total Number of Shares
Purchased(1)
|
|
Average Price Paid Per
Share(2)
|
|
Total Number of Shares
Purchased as Part of Publicly Announced Programs(1)
|
|
Approximate Dollar Value of
Shares that May Yet Be Purchased Under the Plans or Programs (1)
|
|
|
(in thousands)
|
|
|
|
(in thousands)
|
|
(in millions)
|
|
July 1 - 31, 2019
|
1,980
|
|
|
$
|
199.28
|
|
|
1,980
|
|
|
$
|
6,958
|
|
|
August 1 - 31, 2019
|
1,980
|
|
|
$
|
184.89
|
|
|
1,980
|
|
|
$
|
6,592
|
|
|
September 1 - 30, 2019
|
2,100
|
|
|
$
|
185.71
|
|
|
2,100
|
|
|
$
|
6,202
|
|
|
|
6,060
|
|
|
|
|
6,060
|
|
|
|
|
|
|
(1)
|
Our board of directors has authorized a share
repurchase program of our Class A common stock, which commenced in January 2017 and does not
have an expiration date. In December 2018, our board of directors authorized an additional
$9.0 billion of repurchases under this program. As of
September 30, 2019, approximately $6.20 billion remained available and authorized for repurchases.

SIGNATURES
Pursuant to the requirements of the Securities Exchange Act of
1934, the Registrant has duly caused this Quarterly Report on Form 10-Q to be signed on its behalf by the
undersigned, thereunto duly authorized, in the City of Menlo Park, State of California, on this 30th
day of October 2019.
|
|
|
|
|
|
|
FACEBOOK, INC.
|
|
|
|
|
Date: October 30, 2019
|
|
/s/ DAVID M. WEHNER
|
|
|
|
David M. Wehner Chief Financial
Officer (Principal Financial
Officer)
|
|
|
|
|
Date: October 30, 2019
|
|
/s/ SUSAN J.S. TAYLOR
|
|
|
|
Susan J.S. Taylor Chief Accounting
Officer (Principal Accounting
Officer)
|


Demo details
Note well! Sharing your screen is an experimental
feature in WebRTC, and only works if the browser you're using meets particular requirements.
If you're using a relatively recent version of Chrome (34+), you'll need to install
this extension.
If you're using an older verson of Chrome, instead, you'll need to manually enable the Chrome flag
chrome://flags/#enable-usermedia-screen-capture
or otherwise you'll get a permission error. Besides, please beware that some versions of Chrome may only
support the feature if you explicitly pass the
--enable-usermedia-screen-capturing
parameter on the command line. Finally, active screen/application sharing will only work from
Firefox if you have at least version 33 installed: if so, make sure you also manually enable
the
media.getusermedia.screensharing.enabled
setting in
about:config, and that the domain this web application is from
is listed in
media.getusermedia.screensharing.allowed_domains
.
Note well (part 2)! If you want to share your screen, you may need to open
the HTTPS version of this page. If Janus is not behind the same webserver
as the pages that are served (that is, you didn't configure a proxying of HTTP requests
to Janus via a web frontend, e.g., Apache HTTPD), make sure you started it
with HTTPS support as well, since for security reasons you cannot contact an HTTP
backend if the page has been served via HTTPS. Besides, if you configured Janus
to make use of self-signed certificates, try and open a generic link served by Janus
in the browser itself, or otherwise AJAX requests to it will fail due to the unsafe
nature of the certificate.
Press the Start
button above to launch the demo.


Camera App
Stream not available...
Take Photo
Normal
Grayscale
Sepia
Invert
Hue
Blur
Contrast
Saturate
Brighten
Experiment
Experiment 2
Clear


Summit Racing Series finalists celebrated at the Wally Parks NHRA Motorsports Museum
As the hallowed ground of the Auto Club Raceway at Pomona grew quiet Thursday night, Summit Racing Equipment celebrated sportsman racers at the Wally Parks NHRA Motorsports Museum.
by David KennedySummit Racing Equipment’s commitment to NHRA bracket racers was on full-display at the 2019 Auto Club NHRA Finals. It brought together the top Super Pro, Pro, Sportsman, and Super Pro Motorcycle racers from NHRA’s seven divisions to the Auto Club Raceway at Pomona to compete in the NHRA Summit Racing Series National Championship.
| “Wally would be proud to have you in his house tonight.”— NHRA President, Glen Cromwell |
And on Thursday night, after the quarter-mile action came to a close, the spotlight turned from the cars to the drivers, teams, and member tracks in attendance as Summit Racing Equipment celebrated sportsman racers for its 20th year with the NHRA Summit Racing Series National Championship.
Summit Racing’s Jim Greenleaf and Don Lower hosted the racers and the participating member tracks for dinner, and tipped their hats to sportsman racers at all levels. Don Lower, Summit Racing’s Motorsports Coordinator extended that sentiment and offered his congratulations to all of the teams and tracks that had produced this year’s competitors. “Thank you for your business, thank you for your support, thank you for supporting your local tracks. You are going to be part of history.”


{% extends 'base.html' %} {% block content %}
Your instinct was right. Looking in the drawers from the chessboard table reveals a little paper packet - in which there is a pendant. The pendant has a picture of the man on the left, and the woman on the right.
You nod, pleased: "This is what the riddle meant by carrying the picture of her with him. Mrs Thomas would have been delighted to find this."
You invite the McMillans in to show them your find. They are charmed and touched by the almost century-old gesture. Ruffling further into the pile of newspapers on the bookshelves, you notice that Mr Thomas was a journalist who wrote primarily about chess events and distinguished players, such as Mrs Vera Menchik. This passion of the game was certainly shared by his wife, as the picture on the wall show them playing together.
Your help is no longer needed here and you feel confident you will be called again, when a new puzzle is found.
You frantically look in all the nooks and cracks of the house, but you only move dust around. Montaguë looks disappointed and barks sadly.
Sorry, your answer : "{{ answer_to_riddle }}" is incorrect. Try again! We are looking for two words separated by a space, containing only letters from the alphabet - no special characters.
You should probably go back and have another look.