The general line here is: joke = humor = laughter
There are some things though that both of these explanations do not account for:
Are you laughing yet? Why not? These sentences contained all suggested ingredients of jokes. Maybe, these levels of references are socially acceptable? I think so, but we couldn't make these sentences funny by making "forbidden" references more explicit. Maybe they were too brief? Then imagine how much you'd laugh at a research paper on prostate cancer and corresponding mortality rates. Or maybe, some crucial ingredient of humor just wasn't there? Then what is that missing ingredient?
Why do kids consider peek-a-boo funny?
How about the following jokes: (bear with me, it's for scientific purpose)
"It's either the wallpaper or me. One of us has to go."
Instead of loving your enemies, treat your friends a little better.
I hope you found at least some of these funny.
Enough of criticism. Now I want to suggest an explanation of humor that explains all of the above cases and has (or so it seems to me) apparent biological roots and social utility.
The keyword here is "surprise". Or, "twist". Something unexpected. Something that breaks the rules - not the social rules! - but the rules of logic, of common sense, breaks your expectations. Like a pig pulled out of a pocket. Or the peek-a-boo where a child finds the transition [now you see me - now you don't] amusing, but adults, for whom it is not new, don't. Or a "punch line" that adds a twist that all the joke was built for.
It is programmed into us biologically, to look for all kinds of exceptions in the outside world: changes in the level of signals, something suddenly appearing, blinking, bursting, jumping, etc. This attention to surprises is a result of millions of years of evolution, and can be traced from bacteria to humans. It is natural to expect that increasingly intelligent organisms would pay attention to increasingly complex surprises - including those that challenge their internal models of the world by suggesting unexpected connections between different ideas and interpretations. I heard a story about a dog that had its favorite joke, but my model example here would be closer to modern humans - e.g., a group of young Neanderthals. The first and most important common project of humans was joint construction of the mental models of the world. The cooperation went through the language, by sharing facts for building models, passing models that seemed right - AND sharing unexpected twists that either challenge the models, or help define limits of their applicability, or teach when [not] to use them, or just train your brain on amusing puzzles.
 Built-in neural loop producing pleasure upon detection of semantic twists helped a lot.
So, "funny" is an internal reaction to humor; it produces pleasure. Smile and laughter are social expressions of pleasure - but not just from humor. We smile or laugh when we see little kids play, or win lottery, or think of something nice, or are just happy. Humor is just one of the inputs for this reaction. When we tell people things, we try to make sure that all their elements are interesting, so we include twists, references to sex, things they may like to hear or see or things their enemies wouldn't like to see. Analogously, when we have a party, we provide space, drinks, light, heat, music, food, chairs, etc. This doesn't mean those are the same thing - they are different, have different reasons, and under other conditions may not be present together.
In the course of history, people learned to abuse the natural pleasures they used to receive from simple natural urges and sensations. Pleasures we derived from sweets, fats, watching rapidly moving objects and noticing simple contradictions and little logical surprises that used to be important for finding better food, avoiding predators, and learning new things, have long been artificially satisfied with donuts, videogames, and jokes. If we want to understand their nature though, we should not play with current cultural artifacts, but look into the original reasons why these things were developed. And their roots were all developed for one purpose - to help the animals navigate the environment.
Unfortunately, humans are still wired as if they lived in the jungle. They could understand the environment a lot better if they studied more science and read some good philosophy - but they are still trying to get pleasure exercising their reactions to [simulated/perverted] fast-moving game objects, or sharing silly little twists of logic. Many people realize quite well that these things are a waste of time, but they still can't help it: the atavistic urges are still running us. Sometimes people try to combine "learning and fun", but this requires a lot of tricks, as most natural implementations of "fun" have lost their intended utility quite awhile ago.
This also explains why there are so many more freelance comedians than philosophers. And why inventors of good videogames are much richer than authors of great theories. It's because the comparisons of their values are performed by neural networks taken from animals.
I personally find some bitter irony in this situation.


|
C++ Actor Framework 0.18
|
Converts realtime into a series of ticks, whereas each tick represents a preconfigured timespan. More...
#include <tick_emitter.hpp>
Public Member Functions | |
| tick_emitter (time_point now) | |
| bool | started () const |
| Queries whether the start time is non-default constructed. | |
| void | start (time_point now) |
| Configures the start time. | |
| void | stop () |
| Resets the start time to 0. | |
| void | interval (duration_type x) |
| Configures the time interval per tick. | |
| duration_type | interval () const |
| Returns the time interval per tick. | |
| template<class F > | |
| void | update (time_point now, F &consumer) |
Advances time and calls consumer for each emitted tick. | |
| size_t | timeouts (time_point t, std::initializer_list< size_t > periods) |
Advances time by t and returns all triggered periods as bitmask. | |
| time_point | next_timeout (time_point t, std::initializer_list< size_t > periods) |
Returns the next time point after t that would trigger any of the tick periods, i.e., returns the next time where any of the tick periods triggers tick id % period == 0 . | |
Converts realtime into a series of ticks, whereas each tick represents a preconfigured timespan.
For example, a tick emitter configured with a timespan of 25ms generates a tick every 25ms after starting it.


Editing Host Settings for a Site
How to edit hosting settings including hosting space, page quota, user quota, site log history and premium modules for a site.
Once a premium module has been added to a site, it can then be deployed to that site by an Administrator. Note: This task can also be performed using the Extensions module. Restricted to SuperUsers.
- Navigate to Host > Site Management and click the Edit button beside the title of the required site - OR - Navigate to Admin > Site Settings.
- Select the Advanced Settings tab.
- Expand the Host Settings section.
- At Expiry Date, click the Calendar icon and select the date when the hosting contract for this site will expire.
- In the Hosting Fee text box enter the monthly hosting fee for this site.
- In the Disk Space text box, enter the available disc space in Megabytes (MB) allowed for this site - OR - Leave this field blank for unlimited space.
- In the Page Quota text box, enter the maximum number of pages allowed for this site - OR - Leave this field blank for unlimited pages.
- In the User Quota text box, enter the maximum number of users allowed for this site - OR - Leave this field blank for unlimited user accounts.
- In the Site Log History (Days) text box, enter the number of days that Site Log activity is kept for this site - OR - Enter zero ( 0 ) to disable this site log.
- At Available Modules, beside a module to assign it to this site - OR - beside a module to unassign it from this site.At Available Modules, beside a module to assign it to this site - OR - beside a module to unassign it from this site.At Available Modules, beside a module to assign it to this site - OR - beside a module to unassign it from this site.
-
Click the Update button.


home
about us
page
shop
blog
contact us
AFFORDABLE PARIS TOURS
CITY TOURS / TOUR TICKETS / TOUR GUIDES
New collection
Add to cart
Blue tshirt
$26
Add to cart
WOMAN shirt
$31
Add to cart
YELLOW Tshirt
$21
Add to cart
Cool lingerie
$56


{% load staticfiles %}
Participant entry
Toggle navigation
SLOT BOOKING
{% csrf_token %}
{% csrf_token %}
Receipt Number:
Username:
Password:
Event:
Name 1:
Name 2:
Email1:
Email2:
Mobile No1:
Mobile No2:
Slot Booked status:
Slot Booked time:
Slot Booked date:
Slot Booked Room:
Submit
Edit
{{message}}


Toggle navigation
Menu
Start Bootstrap
Home
About
Sample Post
Contact
THE MANHATTAN INTERNATIONAL HIGH SCHOOL
CHOICES ACTIONS AND REFLECTIONS
CHEMISTRY
Toggle navigation
Brand
Home
Assignments
News And Announcements
Class
CAR A
CAR B
CAR C
Separated link
One more separated link
Welcome to my website. On this page, you will find important information for your class. To get started, click on the link to your left to find
Class Calendar
Learning Goal:


'Contact'
A movie review by Walter Frith
In a summer being bombarded with 100 million dollar spectacles and action pictures with little or no room to leave an audience breathing, it is truly refreshing to have a big budget Hollywood film arrive in theatres that is skillfully presented, monumental in its vision (and visuals) and most importantly one that will stir emotion in audiences familiar with the Hollywood style of artful filmmaking.
That film is 'Contact'. Based on the novel by Carl Sagan, it's from Oscar winning director Robert Zemeckis ('Forrest Gump'), who is a master at combining technology and academics in film so brilliantly and tells the story of an astronomer (Jodie Foster) driven by passion and intelligent belief that Earthlings are probably not the only ones in the known universe with intelligent life. Her mission in life started when she was very young. Before she was ten years old she displayed stunning characteristics in achieving greatness through the field of science and mathematics and saw her way through to become a very important research technician, teacher and pioneer in her chosen field. Her greatness is not realized at first as her low profile is eventually brought to the surface one evening as she receives radio transmissions from outer space thought to be the first contact with alien life.
The world soon learns of this historic communication and there is a frenzy of panic and protest which develops between the government, religious groups, various world organizations and people in general as philosophy tries to make sense of this seemingly impossible event.
Transmissions begin filtering through the universe and eventually arrive on Earth that categorize a blueprint of some sort which will enable the people of our planet to build a machine of transportation to touch the unthinkable if someone is willing to make the journey. Politics and competitive acts make their way through the system and a man (Tom Skerritt) is finally chosen as the one who will make the journey. He is someone with whom Foster has had great conflicts with many times in her career and his choice is a frustrating one for her to swallow. That is as far as I will go in telling you anything more about this modern masterpiece as many more events unfold which lead to an eventual conclusion that will leave audiences debating long after they leave the theatre.
Jodie Foster is moving and head strong as the protagonist in this film in a performance that is the best so far in 1997 and she could find herself nominated for an Oscar next spring. 1997 has been lacking in great roles for women so far and Foster's is the best one given since Frances McDormand's Oscar winning, breakthrough and noticable performance in 1996's 'Fargo'. Other members of the cast include James Woods as a doubting and borderline villain in the role of a national security agent, Angela Bassett as a White House aide, John Hurt in a dark and fascinating performance as a man of undisclosed wealth aiding Foster in her journey and Matthew McConaugheyas a writer in a role that is somewhat under written and that is the film's only weakness.
I am tempted to make comparisons to other classic science fiction films but somehow 'Contact' manages to escape comparisons because while it is certanly influenced by achievements of the past, it's presentation is totally original, intelligent and without pretention.
OUT OF 5> * * * * *
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


B
labla
P
lane
Post
Sign in
Register
Log out
Experience the best trip ever
Making the most out of your holiday
Travel Operator Just For You
My Flight
Reservation
vol poster
search
no flight found !!
you don't have reservations
depart
▶ arrive
by pilote
in modele
the date
at time
places reserver : 1
status
maps
no flight post
Sign in
Account type :
Sign up
Account type :
Post a flight
Type?
Travel
Local Flight
Most Popular Destination
$399
Group Tour in Maldives
Ameeru Ahmed Magu Male’, Maldives
500 reviews
$399
Group Tour in Paris
Explore Paris
500 reviews
$399
Group Tour in Maldives
Ameeru Ahmed Magu Male’, Maldives
500 reviews
$399
Group Tour in Maldives
Ameeru Ahmed Magu Male’, Maldives
500 reviews
$399
Group Tour in Maldives
Ameeru Ahmed Magu Male’, Maldives
500 reviews
$399
Group Tour in Maldives
Ameeru Ahmed Magu Male’, Maldives
500 reviews
$399
Group Tour in Maldives
Ameeru Ahmed Magu Male’, Maldives
500 reviews
$399
Group Tour in Maldives
Ameeru Ahmed Magu Male’, Maldives
500 reviews


User Already Exists / Enter the Correct Details !
Gym User Registration
Fill the User form below
Back
+91
-
+91
-
Submit


examples.el_farol_bar_model.spaces.game module
El Farol Bar space implementation
-
class
examples.el_farol_bar_model.spaces.game.
EFBGame
(model, name, actions_set_file, action_class)[source]
Bases: sphinx.ext.autodoc.importer._MockObject
Abstract Market
-
STRATEGY
= ['GOING', 'NOT GOING']
-
calculate_perc_frequency
()[source]
Space calculates the frequency of the agents
-
collect_strategies
()[source]
The Space Get the agents decisions
-
notify_frequency
()[source]
The space notify the agents about the frequency
-
play
()[source]
here the players play the game
-
show_frequency
()[source]
Show the frequency in the el farol bar
-
step
()[source]
The the step from schedule
-
update
()[source]
Implemented by subclass - Testing update


{% extends "base.html" %} {% block title %}Projects using issue tracker.{% endblock %} {% block projects_nav %} class="this"{% endblock %} {% block header %} {% if not user %}
Remember. If you log in you can see just your projects.
A selection of the latest projects added to Issue tracker


Stage
class Stage
a default "Stage" object. every "stage" object (title screen, credits, ingame, etc...) to be managed through the state manager must inherit from this base class.
Constructor
new Stage(settings: object) → {}
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
| settings | object |
<optional> |
The stage` parameters |
|
| settings.cameras | Array<Camera2d> |
<optional> |
[new me.Camera2d()] |
a list of cameras (experimental) |
| settings.onResetEvent | Function |
<optional> |
called by the state manager when reseting the object |
|
| settings.onDestroyEvent | Function |
<optional> |
called by the state manager before switching to another state |
Summary
Properties from Stage
Methods from Stage
Public Properties
ambientLight: Color = "#000000"
Color
an ambient light that will be added to the stage rendering
cameras: Map<Camera2d>
Map<Camera2d>
The list of active cameras in this stage. Cameras will be renderered based on this order defined in this list. Only the "default" camera will be resized when the window or canvas is resized.
lights: Map<Light2d>
Map<Light2d>
The list of active lights in this stage. (Note: Canvas Renderering mode will only properly support one light per stage)
// create a white spot light
let whiteLight = new me.Light2d(0, 0, 140, "#fff", 0.7);
// and add the light to this current stage
this.lights.set("whiteLight", whiteLight);
// set a dark ambient light
this.ambientLight.parseCSS("#1117");
// make the light follow the mouse
me.input.registerPointerEvent("pointermove", me.game.viewport, (event) => {
whiteLight.centerOn(event.gameX, event.gameY);
});
Public Methods
onDestroyEvent() → {}
onDestroyEvent function
called by the state manager before switching to another state
onResetEvent() → {}
onResetEvent function
called by the state manager when reseting the object
this is typically where you will load a level, add renderables, etc...
| Name | Type | Attributes | Description |
|---|---|---|---|
| ...arguments | object |
<optional> |
optional arguments passed when switching state |


{% extends "base.html" %} {% import "bootstrap/wtf.html" as wtf %} {% import "_macros.html" as macros %} {% block title %}The General Opinions{% endblock %} {% block page_content %}


software engineer @ Cloud Foundry
I've applied distributed systems and concurrency knowledge across massive clouds, cameras, and networks.
I'm a people-reader, a mediator, and a sponge for context. Internally, I do a lot of P(a|e)=P(e|a)P(a)/P(e).
I know enough Go, C++, Ruby, and Python to have the right tool for practically any job.
I'm a tireless and pragmatic TDD practitioner and a prod on-call race condition hunter.


{% extends "global/Page.html" %} {% load otree static %} {% block title %} General Instructions {% endblock %} {% block scripts %} {% endblock %} {% block styles %} {% endblock %} {% block content %}
Please read these instructions carefully, as your earnings will depend on understanding them.
The study involves two parts. In each part, you will have the chance to earn an additional bonus based on your performance.
The study involves several participants who are working on the same tasks at the same time.
Therefore, after the completion of each part, you may be asked to wait until other participants reach the end of that part.
Please do not scroll away from the screen or step away from the computer. The waiting times will not be long.
To ensure short wait times for everyone, if you are inactive for more than {{ pageTimeoutWording }},
the program will determine that you have left, and automatically end your session, and you will not receive any bonus.
Therefore, it is important to be attentive to the study at all times.
You can quit the study at any time. If you choose to quit the study before it’s over, you will only earn the base HIT payment.
At the end of the study, you will see a page titled MTURK CODE.
Please follow instructions on that page to enter your code so we can pay all the additional bonuses you accumulated in the study.
Please click next to confirm you have understood this information, and to read detailed instructions about
the first part of the study.


Core¶
RingSum¶
-
fabry.core.ringsum.
get_bin_edges
(dat, x0, y0, binsize=0.1)¶ Returns equal area annuli bins for a ring image given a center and binsize
Parameters: - dat (np.ndarray) – pixel values for the camera image
- x0 (float) – x location (pixels) of the center of the image
- y0 (float) – y location (pixels) of the center of the image
- binsize (float, optional) – smallest radial bin size (occurs at the largest bin)
Returns: bins for the ring sum in pixels
Return type: np.ndarray
-
fabry.core.ringsum.
locate_center
(data_in, xguess=None, yguess=None, maxiter=25, binsize=0.1, plotit=False, block_center=False, printit=True)¶ Finds the center of a ring pattern image by preforming ringsums.
Parameters: - data_in (np.ndarray) – pixel values for the camera image
- xguess (float) – guess of x location of center, if None, takes data center
- yguess (float) – guess of y location of center, if None, takes data center
- maxiter (int) – maximum number of center finding iterations
- binsize (float) – smallest radial binsize (occurs at the largest bin)
- plotit (bool) – plot fitting curves
- block_center (bool) – block center of image (600x600 on xguess,yguess) when finding center. This helps when there is a ring at the center of the image.
- printit (bool) – print center find progress if True
Returns: x and y location of the center
Return type: tuple (float, float)
-
fabry.core.ringsum.
ringsum
(data, x0, y0, binsize=0.1, quadrants=False, use_weighted=False)¶ Returns a equal annulus area ringsum centered at (x0, y0) from data
Parameters: - data (np.ndarray) – 2d image data
- x0 (float) – center location in x
- y0 (float) – center location in y
- binsize (float, optional) – the delta r of the last annulus, default=0.1
- quadrants (bool) – split the ringsum into 4 quadrants to use multiprocessing, default=False
- use_weighted (bool) – use a weighted mean, default=False
Returns: tuple
-
fabry.core.ringsum.
super_pixelate
(data, npix=2)¶ Creates super pixels for image data
Parameters: - data (np.ndarray) – 2d image data
- npix (int) – integer number of pixels to create an npix x npix super pixel, default=2
Returns: new image made from the super pixels
Return type: np.ndarray
-
fabry.core.ringsum.
calculate_weighted_mean
(data, error)¶ Calculates the weighted mean of data with standard deviation error
Parameters: - data (np.ndarray) – some stuff
- error (np.ndarray) – standard deviation error bar for data
Returns: weighted mean and weighted standard deviation
Return type: tuple (float, float)
Models¶
-
fabry.core.models.
airy_func
¶ Computes the Airy function (ideal Fabry-Perot instument function) as a function of wavelength and cos(theta) with parameters d and F
Parameters: - wavelength (np.ndarray) – wavelength array in nm
- cos_th (np.ndarray) – cos(theta) array
- d (float) – etalon spacing in mm
- F (float) – etalon finesse
Returns: evaluated airy function
Return type: np.ndarray
-
fabry.core.models.
doppler_calc
¶ Computes the doppler broadening sigma and the new central wavelength from the doppler shift
Parameters: - w0 (float) – unshifted wavelength in nm
- mu (float) – atomic mass in amu
- temp (float) – temperature in eV
- v (float) – velocity in m/s
Returns: sigma in nm, shifted wavelength in nm
Return type: (float, float))
-
fabry.core.models.
forward_model
¶ Convolves the Doppler spectrum with the ideal Fabry-Perot Airy function.
Parameters: - r (np.ndarray) – array of r values to compute q on
- L (float) – camera lens focal length, same units as r (pixels or mm)
- d (float) – etalon spacing (mm)
- F (float) – etalon finesse
- w0 (Union[float, list]) – central wavelength(s) in nm
- mu (Union[float, list]) – mass(es) in amu
- amp (Union[float, list]) – amplitude(s) for the lines
- temp (Union[float, list]) – temperature(s) in eV
- v (Union[float, list]) – velocities in m/s
- nlambda (int) – number of points in wavelength array, default=1024
Returns: array length of r of forward q
Return type: np.ndarray
-
fabry.core.models.
gaussian
¶ Computes a gaussian for a given central wavelength, sigma and amp
Parameters: - wavelength (np.ndarray) – wavelength array to calculate spec on
- w (float) – central wavelength (same units as wavelength array)
- sigma (float) – sigma for gaussian (same units as w)
- amp (float) – amplitude of spectrum, default=1.0
- norm (bool) – if true, the gaussian will be normalized, default=True to integrate to 1 over infinity then the amp factor will be multiplied
Returns: spectrum evaluated on wavelength array
Return type: np.ndarray
-
fabry.core.models.
lorentzian
(wavelength, w, gamma, amp=1.0)¶ Computes a lorentzian for a given central wavelength, gamma and amp
Parameters: - wavelength (np.array) – wavelength array to calculate spec on
- w (float) – central wavelength (same units as wavelength array)
- gamma (float) – lorentzian gamma parameter
- amp (float, default=1.) – amplitude in addition to one that integrates spec to 1 over infinity
Returns: spectrum evaluated on wavelength array
Return type: spec (np.ndarray)
-
fabry.core.models.
offset_forward_model
(r, L, d, F, w0, mu, amp, temp, v, nlambda=1024, sm_ang=False, coeff=0.15)¶ Forward q with an attempt to q the ‘offset’ from nuissance lines
Parameters: - r (np.ndarray) – array of r values to compute q on
- L (float) – camera lens focal length, same units as r (pixels or mm)
- d (float) – etalon spacing (mm)
- F (float) – etalon finesse
- w0 (Union[float, list]) – central wavelength(s) in nm
- mu (Union[float, list]) – mass(es) in amu
- amp (Union[float, list]) – amplitude(s) for the lines
- temp (Union[float, list]) – temperature(s) in eV
- v (Union[float, list]) – velocities in m/s
- nlambda (int) – number of points in wavelength array, default=1024
- sm_ang (bool) – use the small angle approx or not, default=True
- coeff (float) – coefficient to q the relative amplitude of all the nuissance lines
Returns: array length of r of forward q
Return type: np.ndarray
-
fabry.core.models.
peak_calculator
¶ Simple peak calculator for ideal Fabry-Perot.
Parameters: - L (float) – L value, units will set return units (pixels or mm)
- d (float) – etalon spacing in mm
- w (float) – peak wavelength in nm
- order (Union[np.ndarray,int]) – j order number. 0 gives order nearest center of rings, increasing j as you move out.
Returns: - the location of the peak(s)
in the same units as L with the same length as order
Return type: Union[np.ndarray, float]
-
fabry.core.models.
trapezoidal_integration
¶ Performs trapezoidal intergration
Parameters: - y (Union[list, np.ndarray]) – y data points
- x (Union[list, np.ndarray]) – x data points
Returns: area under the curve y(x)
Return type: float
Fitting¶
-
fabry.core.fitting.
determine_fit_range
(r, signal, pkr, thres=0.15, plotit=False)¶ Helper function to pick fitting range using peak guess and a threshold
Parameters: - r (np.ndarray) – r data
- signal (np.ndarray) – ringsum data
- pkr (float) – guess for peak location
- thres (float) – threshold from peak that is included, default=0.15
- plotit (bools) – plots the determined range for checking, default=False
Returns: list of indexes within threshold of peak guess
Return type: list
-
fabry.core.fitting.
find_maximum
(x, y, returnval=False)¶ - Finds maximum location of a single peak using simple derivative method. Assumes only one
- peak is in given data range.
Parameters: - x (np.ndarray) – x array of values
- y (np.ndarray) – y array of values
- returnval (bool) – Returns the value at the maximum if True, default=False
Returns: - x position of peak
if a minimum is detected, returns None
Return type: pk (float)
-
fabry.core.fitting.
find_maximum_3
(x, y, y_sd, basename, plotit=False)¶ guass fit using multinest
-
fabry.core.fitting.
find_peak
(x, y, x_sd, y_sd, returnval=False, plotit=False)¶ Uses a gaussian fit to find maximum via scipy.odr fit is performed in x^2 space, but all conversions are taken care of inside this function
Parameters: - x (np.ndarray) – x values for fit
- y (np.ndarray) – y values for fit
- x_sd (np.ndarray) – standard deviation in x values (typically binsize)
- y_sd (np.ndarray) – standard deviation in y values
- returnval (bool) – flag for returning fit value at peak location, default=False
- plotit (bool) – flag for plotting fit, default=False
Returns: peak location, peak location error, peak value
Return type: Tuple (float, float, float)
Synthetic¶
-
class
fabry.core.synthetic.
Etalon
(L, d, F)¶ Class that represents an etalon for a Fabry-Perot spectrometer
-
L
¶ float – focal length of lens for the camera
-
d
¶ float – etalon spacing
-
F
¶ float – finesse of etalon
-
calculate_emission
(sensor, light_source, nprocs=4)¶ Calcultes the emission onto a sensor from a light source
- Note: This uses multiprocessing for speed. Each process has a for loop
- because of memory constraints if the sensor is too big.
Parameters: - sensor (Sensor) – represents a camera sensor
- light_source (LightSource) – represents a light source for the Fabry Perot
- nprocs (int) – number of processes to use
Returns: shape matches sensor.sensor.shape
Return type: np.ndarray
-
classmethod
from_dict
(etalon)¶ Creates an instance of Etalon from a dictionary
Parameters: etalon (dict) – dictionary representing a etalon Returns: an new instance of a Etalon Return type: Etalon
-
to_dict
()¶ Returns a dictionary representing itself
Returns: a dictionary representing itself Return type: dict
-
-
class
fabry.core.synthetic.
LightSource
(Ti, w, mu, velocity, amplitude=1)¶ A representation of a light source for a Fabry-Perot spectrometer
-
temperature
¶ float – temperature of the emitting ion in eV
-
wavelength
¶ float – wavelength of the light emitted in nm
-
mu
¶ float – relative mass of the ion
-
amplitude
¶ float – amplitude of the light emitted (you can choose your units here…)
-
velocity
¶ VelocityProfile or float – velocity of the emitting ion in m/s
-
classmethod
from_dict
(light_source)¶ Creates a new instance of LightSource from a dictionary
Parameters: light_source (dict) – dictionary representing a light source Returns: LightSource
-
to_dict
()¶ Returns a dict representing itself
-
-
class
fabry.core.synthetic.
Sensor
(nx, ny, px_size=0.004)¶ A representation for a camera sensor for the Fabry Perot
-
nx
¶ int – number of pixels in the x direction
-
ny
¶ int – number of pixels in the y direction
-
px_size
¶ float – Pixel size in mm
-
x0
¶ float – x location of the center
-
y0
¶ float – y location of th center
-
sensor
¶ np.ndarray – 2D array representing the sensors where each element is the count value for that pixel
-
R
¶ np.ndarray – 2D array of radii values for each pixel
-
calculate_emission
(etalon, light_source, nprocs=4)¶ Calculates emission from a light source through an etalon onto the sensor
Parameters: - etalon (Etalon) – representation of the etalon
- light_source (LightSource) – representation of the light source
-
create_Rgrid
()¶ Creates a 2D matrix of radii values for each pixel
Returns: np.ndarray
-
classmethod
from_dict
(sensor)¶ Creates an instance of Sensor from a dictionary
Parameters: sensor (dict) – dictionary representing a sensor Returns: a new instance of a Sensor Return type: Sensor
-
to_dict
()¶ Returns a dictionary representation of a Sensor
Returns: a dictionary representation of a Sensor Return type: dict
-
-
class
fabry.core.synthetic.
UniformPlasma
(ne, Ti, pec, w, velocity=None, mu=40.0)¶ - A representation of a uniform density and uniform Ti plasma with ion
- species mu emitting light for a Fabry-Perot spectrometer
-
mu
¶ float – relative mass of the ion
-
velocity
¶ Union[VelocityProfile,float] – velocity of the emitting ion in m/s
-
ne
¶ float – electron density in cm^-3
-
pec
¶ float – photon emissivity coefficient (need to decide on units here)
-
mu
float – relative mass of the ion
-
calculate_shift
(velocity)¶ Calculate doppler shift from the ion velocity
Parameters: velocity (Union[float, np.ndarray]) – velocity in m/s Returns: np.ndarray
-
classmethod
from_dict
(plasma)¶ Creates a new instance of UniformPlasma from dict
Parameters: plasma (dict) – dictionary representation of a UniformPlasma Returns: UniformPlasma
-
gaussian
(wavelength, velocity)¶ Calculates doppler broadened and shifted gaussian
Parameters: - wavelength (Union[float, np.ndarray]) – wavelength to calculate emission line profile
- velocity (Union[float, np.ndarray]) – velocity of ion for doppler shift
-
ion_emission
(r, wavelength, cos_theta=None)¶ Calculates ion emission at a radius r for wavelengths provided
Parameters: - r (Union[float, np.ndarray]) – radii to calculate ion emission at
- wavelength (Union[float, np.ndarray]) – wavelength to calculate emission line profile
- cos_theta (Union[float, np.ndarray]) – cos(theta) to project velocity onto a unit vector an angle theta from the toroidal direction
Returns: np.ndarray
-
mass
¶ Mass of ion in kg
-
sigma
¶ Thermal doppler broadening
-
to_dict
()¶ Returns a dict representation
-
class
fabry.core.synthetic.
VelocityProfile
(Vmax, max_radius, length_scale, edge_scale, R0=140.0, offset=0.0)¶ Represents a edge driven velocity profile
-
Vmax
¶ float – maximum velocity
-
max_radius
¶ float – radial location of the maximum velocity
-
length_scale
¶ float – scale for the velocity gradient inward radially
-
edge_scale
¶ float – scale for the velocity edge gradient
-
R0
¶ float – location of the edge
-
offset
¶ float – offset velocity in the center
-
classmethod
from_dict
(velocity)¶ Returns a new instance of VelocityProfile from a dict
Parameters: velocity (dict) – dict reprsentation of a VelocityProfile Returns: VelocityProfile
-
gaussian
(r)¶ Helper function for the inward velocity gradient
Parameters: r (Union[float], np.ndarray]) – radii to evaluate at Returns: np.ndarray
-
right_edge_profile
(r)¶ Helper function for the edge profile
Parameters: r (Union[float, np.ndarray]) – radii to evaulate at Returns: np.ndarray
-
to_dict
()¶ Returns a dict representation of the VelocityProfile
Returns: dict
-
vphi
(r)¶ Returns the Torodial velocity at r
Parameters: r (Union[float, np.ndarray]) – radii to evaluate vphi at Returns: np.ndarray
-
-
class
fabry.core.synthetic.
Sensor
(nx, ny, px_size=0.004) A representation for a camera sensor for the Fabry Perot
-
nx
int – number of pixels in the x direction
-
ny
int – number of pixels in the y direction
-
px_size
float – Pixel size in mm
-
x0
float – x location of the center
-
y0
float – y location of th center
-
sensor
np.ndarray – 2D array representing the sensors where each element is the count value for that pixel
-
R
np.ndarray – 2D array of radii values for each pixel
-
calculate_emission
(etalon, light_source, nprocs=4) Calculates emission from a light source through an etalon onto the sensor
Parameters: - etalon (Etalon) – representation of the etalon
- light_source (LightSource) – representation of the light source
-
create_Rgrid
() Creates a 2D matrix of radii values for each pixel
Returns: np.ndarray
-
classmethod
from_dict
(sensor) Creates an instance of Sensor from a dictionary
Parameters: sensor (dict) – dictionary representing a sensor Returns: a new instance of a Sensor Return type: Sensor
-
to_dict
() Returns a dictionary representation of a Sensor
Returns: a dictionary representation of a Sensor Return type: dict
-
-
class
fabry.core.synthetic.
Etalon
(L, d, F) Class that represents an etalon for a Fabry-Perot spectrometer
-
L
float – focal length of lens for the camera
-
d
float – etalon spacing
-
F
float – finesse of etalon
-
calculate_emission
(sensor, light_source, nprocs=4) Calcultes the emission onto a sensor from a light source
- Note: This uses multiprocessing for speed. Each process has a for loop
- because of memory constraints if the sensor is too big.
Parameters: - sensor (Sensor) – represents a camera sensor
- light_source (LightSource) – represents a light source for the Fabry Perot
- nprocs (int) – number of processes to use
Returns: shape matches sensor.sensor.shape
Return type: np.ndarray
-
classmethod
from_dict
(etalon) Creates an instance of Etalon from a dictionary
Parameters: etalon (dict) – dictionary representing a etalon Returns: an new instance of a Etalon Return type: Etalon
-
to_dict
() Returns a dictionary representing itself
Returns: a dictionary representing itself Return type: dict
-
-
class
fabry.core.synthetic.
LightSource
(Ti, w, mu, velocity, amplitude=1) A representation of a light source for a Fabry-Perot spectrometer
-
temperature
float – temperature of the emitting ion in eV
-
wavelength
float – wavelength of the light emitted in nm
-
mu
float – relative mass of the ion
-
amplitude
float – amplitude of the light emitted (you can choose your units here…)
-
velocity
VelocityProfile or float – velocity of the emitting ion in m/s
-
classmethod
from_dict
(light_source) Creates a new instance of LightSource from a dictionary
Parameters: light_source (dict) – dictionary representing a light source Returns: LightSource
-
to_dict
() Returns a dict representing itself
-
-
class
fabry.core.synthetic.
UniformPlasma
(ne, Ti, pec, w, velocity=None, mu=40.0) - A representation of a uniform density and uniform Ti plasma with ion
- species mu emitting light for a Fabry-Perot spectrometer
-
mu
float – relative mass of the ion
-
velocity
Union[VelocityProfile,float] – velocity of the emitting ion in m/s
-
ne
float – electron density in cm^-3
-
pec
float – photon emissivity coefficient (need to decide on units here)
-
mu
float – relative mass of the ion
-
calculate_shift
(velocity) Calculate doppler shift from the ion velocity
Parameters: velocity (Union[float, np.ndarray]) – velocity in m/s Returns: np.ndarray
-
classmethod
from_dict
(plasma) Creates a new instance of UniformPlasma from dict
Parameters: plasma (dict) – dictionary representation of a UniformPlasma Returns: UniformPlasma
-
gaussian
(wavelength, velocity) Calculates doppler broadened and shifted gaussian
Parameters: - wavelength (Union[float, np.ndarray]) – wavelength to calculate emission line profile
- velocity (Union[float, np.ndarray]) – velocity of ion for doppler shift
-
ion_emission
(r, wavelength, cos_theta=None) Calculates ion emission at a radius r for wavelengths provided
Parameters: - r (Union[float, np.ndarray]) – radii to calculate ion emission at
- wavelength (Union[float, np.ndarray]) – wavelength to calculate emission line profile
- cos_theta (Union[float, np.ndarray]) – cos(theta) to project velocity onto a unit vector an angle theta from the toroidal direction
Returns: np.ndarray
-
mass
Mass of ion in kg
-
sigma
Thermal doppler broadening
-
to_dict
() Returns a dict representation
-
class
fabry.core.synthetic.
VelocityProfile
(Vmax, max_radius, length_scale, edge_scale, R0=140.0, offset=0.0) Represents a edge driven velocity profile
-
Vmax
float – maximum velocity
-
max_radius
float – radial location of the maximum velocity
-
length_scale
float – scale for the velocity gradient inward radially
-
edge_scale
float – scale for the velocity edge gradient
-
R0
float – location of the edge
-
offset
float – offset velocity in the center
-
classmethod
from_dict
(velocity) Returns a new instance of VelocityProfile from a dict
Parameters: velocity (dict) – dict reprsentation of a VelocityProfile Returns: VelocityProfile
-
gaussian
(r) Helper function for the inward velocity gradient
Parameters: r (Union[float], np.ndarray]) – radii to evaluate at Returns: np.ndarray
-
right_edge_profile
(r) Helper function for the edge profile
Parameters: r (Union[float, np.ndarray]) – radii to evaulate at Returns: np.ndarray
-
to_dict
() Returns a dict representation of the VelocityProfile
Returns: dict
-
vphi
(r) Returns the Torodial velocity at r
Parameters: r (Union[float, np.ndarray]) – radii to evaluate vphi at Returns: np.ndarray
-
Zeeman¶
-
fabry.core.zeeman.
lande_g
(L, S, J)¶ Calculates the lande g factor given L, S and J
- Reference: Sobel’man, I.I. Introduction to the
- Theory of Atomic Spectra. 1972. pp. 277
Parameters: - L (float) – L number
- S (float) – S number
- J (float) – J number
Returns: lande g factor
Return type: float
-
fabry.core.zeeman.
zeeman_factors
(L_up, S_up, J_up, L_lo, S_lo, J_lo, parallel=True)¶ Calculates the Zeeman factors and relative amplitudes for a given line transition from (L,S,J)_upper to (L,S,J)_lower
assumes LS-coupling (not jj) therefore Z<=30 and that this will be used for a weak-field (B < 10T) Zeeman calculation
- Reference: Sobel’man, I.I. Introduction the Theory of
- Atomic Spectra. 1972. pp. 277-280
Notes on getting L,S,J for a given spectral line: NIST spectral database will return the upper and lower level electron configuration information for a given line. The term will be of the form:
(#){S,P,D,F}where #==(2S+1), and {S,P,D,F} correspond to L=0,1,2,3 Also, NIST will return the value of J for the upper and lower level
Parameters: - L_up (float) – the upper state L number
- S_up (float) – the upper state S number
- J_up (float) – the upper state J number
- L_lo (float) – the lower state L number
- S_lo (float) – the lower state S number
- J_lo (float) – the lower state J number
- parallel (bool, default=True) – a boolean flag for the direction of observation wrt the magnetic field. If true, the spectrum is observed on a line of sight parallel with the magnetic field and there are no pi-components of the Zeeman split. If false the observation is perpendicular to the field and there will be pi-components of the Zeeman split.
Returns: a dictionary with the following items sp_fac (list) -> sigma plus components zeeman factors sp_amp (list) -> relative amplitudes of sigma plus components sm_fac (list) -> sigma minus components zeeman factors sm_amp (list) -> relative amplitudes of sigma minus components if parallel is False: pi_fac (list) -> pi components zeeman factors pi_amp (list) -> relative amplitudes of pi components
Return type: out (dict)
-
fabry.core.zeeman.
zeeman_lambda
(w0, B, factors, amps=None)¶ Calculates the zeeman split shifts from a central wavelength for a given magnetic field strength
Parameters: - w0 (float) – central wavelength in nm
- B (float) – magnetic field strength in T
- factors (list) – list of zeeman factors (from zeeman_factors dictionary)
- amps (list, default=None) – optional list of amplitudes to renormalize
Returns: list of zeeman splitting peak locations based on factors, if amps is not None: amps (list): list of normalized amplitudes
Return type: Tuple (list, list)


| Constructor and Description |
|---|
AlphaRasterImage(java.lang.String k,
java.awt.image.Raster alpha)
Create a alpha channel image.
|
AlphaRasterImage(java.lang.String k,
java.awt.image.RenderedImage image)
Create a alpha channel image.
|
| Modifier and Type | Method and Description |
|---|---|
int |
getBitsPerComponent()
Get the bits per color component for this image.
|
PDFDeviceColorSpace |
getColorSpace()
Get the color space for this image.
|
java.lang.String |
getFilterHint()
Returns a hint in form of a String (Possible values from PDFFilterList)
indicating which filter setup should be used to encode the object.
|
int |
getHeight()
Get the image height in pixels.
|
PDFICCStream |
getICCStream()
Get the ICC stream for this image.
|
java.lang.String |
getKey()
Key to look up XObject.
|
java.lang.String |
getMask()
Get the PDF reference for a bitmap mask.
|
PDFFilter |
getPDFFilter()
Get the PDF Filter to be applied to the image.
|
java.lang.String |
getSoftMask() |
PDFReference |
getSoftMaskReference()
Get the PDF reference for a soft mask.
|
PDFColor |
getTransparentColor()
Get the transparent color.
|
int |
getWidth()
Get the image width in pixels.
|
boolean |
isInverted() |
boolean |
isPS()
Check if this image is a PostScript image.
|
boolean |
isTransparent()
Check if this image has a transparent color transparency.
|
boolean |
multipleFiltersAllowed()
Indicates whether multiple image filters are allowed; this is implemented because Adobe
Reader does not like multiple FlateDecode filters applied to an image even though that
allowed by the PDF spec; this is probable due to security concerns since many PDF malware
exploits, like zip bombs, make use of a chain of FlateDecode filters.
|
void |
outputContents(java.io.OutputStream out)
Writes the raw, unencoded contents of the image to a given output stream.
|
void |
populateXObjectDictionary(PDFDictionary dict)
Populates the XObject's dictionary with additional values.
|
void |
setup(PDFDocument doc)
Setup the PDF image for the current document.
|
public AlphaRasterImage(java.lang.String k, java.awt.image.Raster alpha)
k
- the key to be used to lookup the imagealpha
- the alpha channel rasterpublic AlphaRasterImage(java.lang.String k, java.awt.image.RenderedImage image)
k
- the key to be used to lookup the imageimage
- the image (must have an alpha channel)public void setup(PDFDocument doc)
public java.lang.String getKey()
public int getWidth()
public int getHeight()
public PDFDeviceColorSpace getColorSpace()
getColorSpace
in interface PDFImage
public int getBitsPerComponent()
getBitsPerComponent
in interface PDFImage
public boolean isTransparent()
PDFImageXObject
rely on this simple
binary model of transparency (e.g. compare to
Transparency
) in order to render
color key masking (see PDF Spec 1.7 Chapter <IP_ADDRESS>).
Therefore only return true if image has fully transparent
colors.isTransparent
in interface PDFImage
public PDFColor getTransparentColor()
getTransparentColor
in interface PDFImage
public java.lang.String getMask()
public java.lang.String getSoftMask()
public PDFReference getSoftMaskReference()
getSoftMaskReference
in interface PDFImage
public boolean isInverted()
isInverted
in interface PDFImage
public void outputContents(java.io.OutputStream out) throws java.io.IOException
outputContents
in interface PDFImage
out
- OutputStream to write tojava.io.IOException
- if there creating streampublic void populateXObjectDictionary(PDFDictionary dict)
populateXObjectDictionary
in interface PDFImage
dict
- the dictionary to fillpublic PDFICCStream getICCStream()
getICCStream
in interface PDFImage
public boolean isPS()
public java.lang.String getFilterHint()
getFilterHint
in interface PDFImage
public PDFFilter getPDFFilter()
getPDFFilter
in interface PDFImage
public boolean multipleFiltersAllowed()
multipleFiltersAllowed
in interface PDFImage
Copyright 1999-2020 The Apache Software Foundation. All Rights Reserved.


https://docs.python.org/3/library/constants.html
'None' is a special value representing 'nothing' (null object).
Use cases:
(a) a variable created but not processed yet
[in graph coloring: a node without color],
(b) a way to reset a variable to an empty state.
answer = None # ... some code ... if answer is None: quit = True elif answer == "quit": quit = True else: quit = False
'None' is a singleton, there is only one instance of it in a program.
Testing 'answer is None' is better then 'answer == None'
[or 'answer is not None'].
Functions without an explicit 'return' statement return 'None'. That way, programming with functions is much simplified; a function always returns 'something'.


The fresh, floral air energizes you. The warm, tranquil waters refresh you. The breathtaking, natural beauty renews you. Look around. There’s no place on earth like Hawaii. Whether you're a new visitor or returning, our six unique islands offer distinct experiences that will entice any traveler. We warmly invite you to explore our islands and discover your ideal travel experience.
Surfing was literally the "Sport of Kings" in Hawaii, reserved only for the alii (royalty). Today on Hawaii Island, you can either watch this exciting sport from the safety of the shore or experience the rush of catching a wave yourself by taking a surfing lesson.
Weather can change rapidly during all seasons of the year in Yosemite. Elevation plays a major role in temperature and the amount of precipitation. Most of the moisture comes in the early months of the year; January, February and March.
Clouds and weather patterns can build up during the summer to produce wonderful thunderstorms, which is another reason why thousands of photographers visit Yosemite National Park every year.
Throughout the park, you’ll find endless scenic beauty, with opportunities for hiking, biking, horseback riding, and so much more! Dining options include everything from fine-dining at The Majestic Yosemite Hotel to casual, family-friendly options at Half Dome Village. The surrounding areas also include a wide-range of options to enjoy after a long day in the park.
Costa Rica it’s the consummate destination for exploring ecosystems and connecting with a peaceful culture. Whether discovering fascinating species with a friendly Costa Rican guide, zipping across the rainforest canopy, or relaxing in a volcano-heated hot spring, there are a variety of tours and activities to engage travelers of all types. That notwithstanding, our vacation rentals are better than the rest. Given that We range from enviable condos and cabins to beach homes and villas, we’re simply incomparable. Others are a far cry from what CostaRicaTropical.com vacation rentals can offer. Then again, we are popular with families looking to vacation together – away from the confines of their homes or even hotels.
Summertime on “the Mat” is an excellent time to experience the vertical world of ice climbing. Easily accessible climbing walls, professional instruction, and a quick and scenic two-hour trip from Anchorage make this an unparalleled glacier adventure.
A day of Ice Climbing with MICA Guides consists of a progression catered to the skills and endurance of the group. Our knowledgeable guides will teach you the basic skills needed to climb on moderate ice slopes, and then help you refine your climbing techniques to move towards more challenging and spectacular terrain throughout the day. No previous climbing experience is necessary.


Mayo garda resources lagging behind neighbouring counties
THE Mayo Garda Division lacks the required vehicle equipment compared with neighbouring counties, says Fianna Fáil TD Lisa Chambers.
Analysis by the party shows the Mayo Gardaí Division has 53 vehicles. This includes 38 cars, 12 vans, one motorcycle, one 4x4 and one other vehicle.
Said Deputy Chambers: “We are the third largest county in Ireland. The Mayo Garda Division covers this entire area, yet they have some of the lowest resources in terms of vehicles compared with neighbouring divisions.
“For example, Galway Garda Division has a total of 102 vehicles and Donegal 66. We are not near these divisions in terms of vehicle capacity despite similar sizes in regions and the rural dynamic of our county.
“Back in 2011 we had 59 vehicles and it has remained a similar figure over the past eight years, never rising above 60.”
She continued: “There are towns and villages across Mayo which feel abandoned by Fine Gael following the closure of their garda stations. Many say fear levels have increased in their communities and have repeatedly called for additional resources. These figures will do nothing to ease these fears.
“I will be writing to the Justice Minister and the Garda Commissioner to ensure that Mayo is not left behind when it comes to garda resources.”


On Wednesday 9th of August 2012, Microsoft decided to ignore the criticisms made by the industry and to enable the "Do Not Track" headers by default in their IE 10 browser.
We believe Microsoft made a wrong choice as this option should reflect a choice of the user about his willing not to be tracked.
In 2007, several consumer advocacy groups asked the Federal Trade Commission to create a Do Not Track list for online advertising. The proposal would have required that online advertisers submit their information to the FTC, which would compile a machine-readable list of the domain names used by those companies to place cookies or otherwise track consumers.
In July 2009, researchers Christopher Soghoian and Sid Stamm created a prototype add-on for the Firefox web browser, implementing support for the Do Not Track header. Stamm was, at the time, a privacy engineer at Mozilla, while Soghoian soon afterward started working at the FTC. One year later, during a U.S. Senate privacy hearing, FTC Chairman Jon Leibowitz told the Senate Commerce Committee that the commission was exploring the idea of proposing a "do-not-track" list.
In December 2010, the FTC issued a privacy report that called for a "do not track" system that would enable people to avoid having their actions monitored online. One week later, Microsoft announced that its next browser would include support for Tracking Protection Lists, that block tracking of consumers using blacklists supplied by third parties. In January 2011, Mozilla announced that its Firefox browser would soon provide a Do Not Track solution, via a browser header. Microsoft's Internet Explorer, Apple's Safari and Opera all later added support for the header approach. Google Chrome supports Do not track by its official extensions. In June 2012, Microsoft announced that Do no track would be activated by default in Internet Explorer 10.
When a web browser requests content or sends data using HTTP, it can include extra information optionally in one or more items called "headers". Do not track adds a header (DNT: 1), indicating that the user does not wish to be tracked.The execution of this non-tracking directive can only be implemented on the part of the HTTP server, so its enforcement is applied effectively using the honor system. In this regard, do not track is similar to the Robots Exclusion standard, which provides a mechanism for HTTP servers to communicate to automatic web-traversing client programs whether those programs are granted permission to access the servers, but entirely relies upon honor and etiquette on the part of the client for compliance.
No, you will still see ads with Do Not Track enabled. However, Do Not Track may change the type of ads you see. For example, behavioral ads are targeted to your interests based on the websites you visit and the search terms you use. If you request that websites Do Not Track you, and the sites respect your privacy preferences, you will see more generic ads in place of behavioral ads.


One thing about me is that I love music whether it's listening to it or even writing it.
 My all time favorite series has to be the Mass Effect Trilogy.
I also like to cruise around the city just listening to music to clear my head. It's fun until I end up spending most of my money on gas.


--- layout: post title: amazon.com really want me don't they date: '2011-10-10T20:42:00.001+01:00' author: solrevdev tags: modified_time: '2011-10-10T20:42:13.913+01:00' blogger_id: tag:blogger.com,1999:blog-31446756.post-4405151251583158739 blogger_orig_url: http://www.solrevdev.com/2011/10/amazoncom-really-want-me-don-they.html ---
The second person from Amazon on linked in trying to get in touch


I attended a talk on lean programming by Mary Poppendieck. The talk was held at SDForum in San Jose, CA on March 15, 2004. It was sponsored by the Bay Area eXtreme Programming mailing list. Here are my notes from this presentation.
About the speaker
Mary Poppendieck, a Cutter Consortium Consultant, is a seasoned leader in both operations and new product development with more than 25 years' of IT experience. She has led teams implementing lean solutions ranging from enterprise supply chain management to digital media, and built one of 3M's first Just-in-Time lean production systems. Mary is currently the President of Poppendieck LLC and located in Minnesota. Her book Lean Software Development: An Agile Toolkit, which brings lean production techniques to software development was nominated for the Software Development Jolt Award in 2004.
What is productivity?
The recent dip in employment in IT is a first since the US Department of Labor started monitoring it. There was also a dip in software productivity two years before the one in employment.
To increase out standard of living, we must increase productivity. But how do we measure productivity in software development? It is the ratio of output to input into the process. So what's the input and what's the output? Some have tried lines of code per developer but this is never indicative of revenues for the software company. Worse, as technology progresses, developers can do more with fewer lines of code.
We need something else. If your producing software, it should be revenue per employee. If your in a support organization, it should be revenue in the support organization per dollar spent by the IT organization. In either case, you should tie each and every projet to somebody's bottom line. This way, developers know precisely the impact they can have on the business, and it helps planners decide which projects to prioritize over others.
While software industry has seen a decline in productivity, the retail and the manufactring industries have seen regular improvements. Year after year, they have been seeing a steady 2% improvement. This begs the question: What can slow growth industries teach the high tech world?
- focus on core business processes that drive productivity
- decide where to match the competition and where to lead the market
- create end-to-end improvements for the customer
Find out what your productivity levers are and use them to drive your business. Pay special attention to the lever that gives you the most leverage. For instance, Symantec didn't start this way but now focuses on anti-virus software. Adobe didn't start this way but now focuses on Acrobat. Both found the lever that gave them most leverage in the market and focused on that to achieve success in the marketplace.
The key is to transform ideas into products.
- make sure you really understand the customer
- limit to work to what you can actually deliver
- be fully invested in your customer's success
- keep maintenance in mind
There are two things we can do to increase productivity: do less work for the same output, or create more value out of the same effort.
Do less work
One way is to reduce the effort by providing only what the customer will pay for. Standish Group released numbers in 2002 that 64% of software features are never or rarely used. 20% are used often or always. We see the 20-80 rule at work here. We can raise productivity by focusing on the 20% that customers are willing to pay for and ignore the 45% that is never used. The effort expended on that 45% would be better used on the 20% that is worth something. This boils down to doing 20% of the work to get at 80% of the revenue.
This is difficult to do when replying to RFPs with a fixed feature list. The customer does not necessarily need everything on the list, but they have been told to consider solutions that include everything. You can try to educate the customer, but it is not clear that this can work in real life.
Once you have identified the 20% that you really need, you can break it down into minimum marketable feature (MMF) sets and categorize them by return on investment. Do the highest return on investment first, and repeat until you can no longer justify any more work. By deploying early and often, market models predict that you can move profit forward by generating revenues earlier. This is similar to a talk that Ron Jeffries did a while back about predicting completion date from velocity and making profit earlier by shipping partial, but functional, software early.
One case where this approach fails is when profit is not the determining factor. This happens often in government work.
Another way to reduce the effort is to streamline core processes and the flow of value. This includes accelerating the delivery of value to the customers. Counter-intuitively, any efficiency or cost reduction that reduces customer value will decrease productivity by reducing the customer business.
If a measure of an organization's maturity is how quickly and reliably it can execute its key processes, a software organization's maturity should be how quickly and reliably translate customer needs into code. But you need certain core disciplines before you can start refactoring your process:
- naming convention
- coding rules
- configuration control (source control)
- automated build
- automated unit tests
- automated acceptance tests
These disciplines allow you to be reliably fast. Open source is a good example where these disciplines are used aggressively at very low cost.
You can do this streamlining by finding bottlenecks and eliminating them, usually by changing the process. The key to the success of any change is to get buy-in by senior executives who will not only launch the change, but follow up on it frequently and regularly to make sure it is implemented. You can also streamline information transfer with fully-integrated cross-functional teams. These teams are characterized by the bidirectional, high-bandwidth flow of detailed information.
Create more value
The other way to raise productivity is to create more value from the same effort. Shorter customer feedback loop is key, through iterative development where you deliver early and often. The enables you to better improve your customer's productivity; when they win, you win. You must look for ways to optimize the entire economic chain, the way a Japanese keiretsu tightly integrates many cooperating companies, to everyone's mutual good. This sounds a lot like a Nash equilibrium situation. Boundaries betweeen organizations introduce costs, so lowering boundaries should reduce costs and improve productivity.
Conclusion
You need to have people who understand what are the levers that drive your industry and how to steer your company using those levers. Unless you have the right people recognize the right levers and use them to drive the enterprise right, your company won't last in that industry.
Parting thoughts
For clues on how to achieve good communciation within a group when you cannot have everyone in the same room, look at open source. They do all communication without ever meeting. Everything is done by email. Their success hinges on:
- benevolent despot / champion to coordinate
- motivated contributors
But we must not underestimate the burden and responsabilities this places on the coordinator, who must make sure things get done and work is allocated.
Alex Chaffee had an interesting quote:
Good people can fix a bad process.
A good process cannot fix bad people.Increasing productivity does not equate turning software development into a sweatshop. At 3M, while Mary Poppendieck as there, everyone had to spend 15% of their time on a project of their choice. Senior members were expected to go out and find interesting projects that benefit the business.


{% if solver_file_content %}
{{ solver_file_content }}
Download file: {{ caffe_cnn_trrun.solver_file_snapshot.file.size|filesizeformat }}
There is no solver file associated with this object.


isatdatapro-microservices
This library provides a microservices framework for interacting with Inmarsat's IsatData Pro satellite IoT messaging service. Messages sent from or to remote devices via satellite connectivity are stored in a database along with metadata about the satellite modem configuration and properties. A Node.js singleton emitter is also supported to publish events such as message delivery, new modems sending data, and API/server errors.
Installation
npm i isatdatapro-microservices
Configuration
The library relies on the following environment variable settings.
The database particulars are configured as environment variables:
DB_TYPE
supportsazureCosmos
ormysql
For Cosmos DB:
COSMOS_DB_HOST
is the Azure URL for the Cosmos DBCOSMOS_DB_PASS
is the password for the Cosmos DBCOSMOS_DB_NAME
is the database name e.g. IsatDataProCOSMOS_DB_CONTAINER
is the container name e.g. MainCOSMOS_DB_PARTITION
is the partition name i.e.category
COSMOS_DB_THROUGHPUT
is the default throughput e.g. 400
For MySQL:
MYSQL_DB_HOST
is the MySQL host name e.g. localhostMYSQL_DB_USER
is the access name e.g. rootMYSQL_DB_PASS
is the passwordMYSQL_DB_NAME
is the name of the database e.g. IsatDataPro
Encryption of Mailbox passwords uses a secret defined in an environment variable:
MAILBOX_SECRET
is a string used as the encryption key
The following environment variables are optional with defaults in the code:
SATELLITE_HISTORY_HOURS=48
the number of hours to go back on first API call for message/status retrievalDB_TTL_DAYS_API=7
time to live for ApiCallLog entries in databaseDB_TTL_DAYS_MSG=90
time to live for message entries in database
Infrastructure
Database
Models
The database supports the following model concepts:
-
SatelliteGateway represents the API server operated by Inmarsat or another authorized network operator.
category = 'satellite_gateway'
withname
as the model-unique key. -
Mailbox represents an account providing authentication and segregation of customer data access. These are configured with authentication credentials, where the password component is [encrypted] for storage.
category = 'mailbox'
withmailboxId
as the model-unique key. -
Mobile represents a satellite modem associated with a remote asset/device and supports various metadata related to configuration, queried location and diagnostic information.
category = 'mobile'
withmobileId
as the model-unique key. -
MessageReturn represents mobile-originated (aka Return) data, typically device telemetry or responses to low-level modem commands. These messages contain data as raw binary and/or JSON structures depending on whether a Message Definition File is provisioned on the Mailbox.
category = 'message_return'
withmessageId
as the model-unique key. -
MessageForward represents mobile-terminated (aka Forward) data, typically commands or small files sent to the device from a cloud-based application. These messages contain data as raw binary and/or JSON structures depending on how they are submitted and whether a Message Definition File is provisioned on the Mailbox.
category = 'message_forward'
withmessageId
as the model-unique key. -
ApiCallLog record the low-level API transactions to the Inmarsat server including various metadata used as a "high water mark" for message retrieval and for diagnostic purposes.
category = 'api_call_log'
withcallTimeUtc
as the model-unique key.
Storage
Data storage architecture is dependent on the database type. For example
Azure Cosmos DB is a flat structure using a category tag for search, while
MySQL initializes a table for each model type. Model property keys use
snake_case when stored in the database, which are translated to camelCase when
retrieved via find()
ApiCallLog and Messages include a time-to-live (ttl) class property with units in seconds. When using Cosmos DB, this property should automatically remove aged data to keep database size smaller. For MySQL, the user can implement a periodic check with the removeAged method.
Methods
The principle methods for accessing the database are:
-
initialize()
ensures the database infrastructure is in place, creating it if running for the first time, and instantiates the connection. -
find()
retrieves the specified model based on its category and optional filter criteria. -
upsert()
adds a new model or updates an existing one based on its model- unique key. -
close()
terminates the connection after use.
Encryption
The encryption function is primarily for illustrative purposes using AES-256
based on a secret/key stored as an environment variable MAILBOX_SECRET
. The
encryption is used at rest when storing Mailbox password in the database, then
decrypted to pass as a credential in the relevant API call, which in turn is
encrypted by TLS in transit.
Event Handler
The eventHandler.emitter
is implemented as a
Node events emitter intended for use as a singleton, which emits the
following dependent on the microservice in play:
-
NewMobile includes metadata about a new satellite modem the first time a return message is received causing that Mobile to be added to the database.
-
NewReturnMessage includes message content and metadata whenever a new return messsage is received from any modem.
-
NewForwardMessage includes content and metadata when a forward message is submitted via the
submitForwardMessages
microservice. -
ForwardMessageStateChange triggers when a submitted forward message's state changes e.g. to DELIVERED or FAILED.
-
OtherClientForwardSubmission triggers when a status is retrieved for a forward message that was not submitted via the
submitForwardMessages
microservice. -
ApiError triggers when an error code is returned by the Inmarsat API.
-
ApiOutage triggers when the Inmarsat API becomes non-responsive. API state is maintained in the database
SatelliteGateway
propertyalive
. -
ApiRecovery triggers when the Inmarsat API becomes responsive after an outage.
Logging
A Winston logger is included to provide JSON-structured logs with a standard format and UTC timestamp for troubleshooting. A proxy logger is exposed for convenience use by applications using the library.
Message Codecs
All IsatData Pro modems support a standard set of basic remote operations referred to as Core Modem Messages which are normally presented as JSON-structured data on the API and contain metadata about the modem.
The getReturnMessages
microservice parses these standard messages to
populate Mobile metadata in the database.
Additionally the submitForwardMessages
microservice accepts shorthand
remote commands/parameters which use the message codec to encode the message to
send over the air.
The JSON-structured data employs a so-called common message format supporting
various data types encoded as binary data over the satellite link. To make use
of commonMessageFormat
for application messages, contact your Inmarsat representative to discuss the
concept of Message Definition File in your application.
Microservices
The microservices and eventHandler emitter are the primary aspects exposed by this library. Before using the microservices it is necessary to "provision" at least one SatelliteGateway (API URL) and one Mailbox with valid access credentials.
-
getReturnMessages
is intended to run periodically (e.g. every 15 seconds) to retrieve new messages coming in from all modems accessed by the provisioned Mailbox(es).
Events emitted includeNewReturnMessage
,NewMobile
. -
submitForwardMessages
is called destined to a specific mobileId with specific commands, an array of decimal-coded bytes payloadRaw or an application-specific payloadJson.
Events emitted includeNewForwardMessage
. -
getForwardStatuses
is intended to be run periodically, in particular following the use ofsubmitForwardMessages
to monitor the progression of commands or mobile-terminated data. Events emitted includeForwardMessageStateChange
,OtherClientForwardSubmission
. -
getForwardMessages
is intended to be used following aOtherClientForwardSubmission
event, to retrieve the content of a message submitted by a means other thansubmitForwardMessages
(which generally implies another API client is accessing the Mailbox in parallel). -
updateMailbox
is used to add a Mailbox to the database which will subsequently be polled bygetReturnMessages
and accessible forsubmitForwardMessages
.
A Mailbox is the parent of one or more Mobile(s). -
updateSatelliteGateway
is used to add a SatelliteGateway to the database as the parent of one or more Mailbox(es). -
getMobiles
may be used to retrieve the list of Mobile(s) metadata from the provisioned Mailbox(es). This operation is useful if a given Mobile has not yet sent any return messages.


Release 2.4.1
This release includes important security fixes - users are urged to upgrade asap.
One of the changes means that an API key is created by default, which means that any applications using the ZAP API will fail unless they are updated to use that key.
The API Key can be found in the API Options screen
You can also set it from the command line using an option like:
-config api.key=change-me-9203935709
For more details see https://www.zaproxy.org/faq/why-is-an-api-key-required-by-default/
The following changes were made in this release:
Enhancements:
- Issue 321 : Support multiple databases
- Issue 1459 : Add an HTTP sender listener script
- Issue 1500 : Update Bouncy Castle libs
- Issue 1566 : Improve active scan's reported progress
- Issue 1573 : Add option to inject plugin ID in header for all ascan requests
- Issue 1607 : Unable to save the test session via API
- Issue 1621 : AScan API - Allow to scan as a user
- Issue 1625 : Support multiple structural params and ones on top level nodes
- Issue 1653 : Support context menu key for trees
- Issue 1655 : Copy Session Token from Http Sessions tab to clipboard
- Issue 1662 : Add default Rails anti-CSRF token parameter
- Issue 1664 : Clients tab autoscroll
- Issue 1684 : Unable to set technology via API
- Issue 1688 : Updating owasp/zap2docker image with Python Client API
- Issue 1690 : Bump key pair size to 2048 for all certs in the (proxy's) chain of trust
- Issue 1695 : Change SSL cert signature algorithm to "SHA-256 with RSA Encryption"
- Issue 1699 : Allow ApiImplementor's to add custom headers
- Issue 1715 : Unable to pass arguments when launching ZAP from the command line on Mac OS X
- Issue 1728 : Update JRE to 1.7u79 (CPU) for MacOS
Bug fixes:
- Issue 444 : Guaranteed NPE on AliasCertificate.getName() if getCN()==null
- Issue 1442 : Up/Down arrow keys in results stop working if "reflected"
- Issue 1473 : Spider does not handle URLs extracted from meta tags correctly
- Issue 1497 : The spider is extracting and reporting links from comments - event when instructed not to do so
- Issue 1598 : startup script lacks support for FreeBSD
- Issue 1615 : Search "All" option not working
- Issue 1617 : ZAP 2.4.0 throws HeadlessExceptions when running in daemon mode on headless machine
- Issue 1618 : Target Technology Not Honored
- Issue 1619 : Search regex might not be validated
- Issue 1624 : Error while loading ZAP 2.4.0
- Issue 1626 : Structural parameters not saved when context exported and not available via the API
- Issue 1636 : Users (for auth) & Forced User not loaded from session
- Issue 1647 : Wrong reference in Zest Result
- Issue 1674 : Ajax spider not considering get parameters
- Issue 1677 : Fuzzers can't be expanded on OS X
- Issue 1694 : "Error: setting file is missing. Program will exit." even if file exists
- Issue 1698 : Escape API exceptions
- Issue 1700 : Forced Browse Lists Missing from Drop-Down in 2.4.0
- Issue 1706 : Add API security options
- Issue 1708 : Context's technology tree can get out of sync
- Issue 1709 : Applications are not (immediately) shown after start
- Issue 1714 : PNH should not reflect API key unless user supplies it
- Issue 1716 : Restrict use of CORS header in pnh
- Issue 1720 : Add more security options for JSONP API
- Issue 1724 : Ensure API component names are escaped in the HTML output
- Issue 1735 : Context's technologies not used in active scan unless overridden
Zobacz również
| | Wprowadzenie | wprowadzenie do korzystania z ZAP |
| | Wydania | the full set of releases |
| | Credits | the people and groups who have made this release possible |


--- Day 2: I Was Told There Would Be No Math ---
The elves are running low on wrapping paper, and so they need to submit an order for more. They have a list of the dimensions (length l
, width w
, and height h
) of each present, and only want to order exactly as much as they need.
Fortunately, every present is a box (a perfect right rectangular prism), which makes calculating the required wrapping paper for each gift a little easier: find the surface area of the box, which is 2*l*w + 2*w*h + 2*h*l
. The elves also need a little extra paper for each present: the area of the smallest side.
For example:
-
A present with dimensions
2x3x4
requires2*6 + 2*12 + 2*8 = 52
square feet of wrapping paper plus6
square feet of slack, for a total of58
square feet. -
A present with dimensions
1x1x10
requires2*1 + 2*10 + 2*10 = 42
square feet of wrapping paper plus1
square foot of slack, for a total of43
square feet.
All numbers in the elves' list are in feet. How many total square feet of wrapping paper should they order?


{% extends 'core/base-error-page.html' %} {% block error_title %}404 Not Found{% endblock %} {% block error_message %}
The page or resource you're trying to reach is not found, sorry. Maybe it was here before but now it's gone.
Find me on GitHub & contact if you have any questions.
{% endblock %}


|
PriapismThe Boner on the Edge of ForeverPriapism is a medical condition, a sustained and eventually painful erection that will not cease. It is not related to erotic feelings or a particularly effective stripper, but is usually the result of either a change in the blood (clotting, blood diseases) or medications (anti-impotence medicine and increased dosages).The right thing to do in this situation is get over your embarassment immediately, put on some clothes, and get over to a hospital, where they will drain the penis of the clotted blood with an injected needle. It sounds bad, but not as bad as it could be; leaving your penis in a Priaptic state will lead to permanent damage and a very good chance of continued impotence. Ironically, the condition is named after the Fertility God Priapus, likely because he is usually depicted with a stunning endowment and often erect.
|


Your scheduler has been updated! For more information on possible scheduling options, refer to cron syntax.


Search Again:
Search Results:
[return home]
{{range .sr.Items}}
{{printf "%s" .StoreValue}}
(Score: {{printf "%d" .Score}})
{{else}} No results found. Now is the winter of our discontent. {{end}}


Live Casino Action at Fun88 UK
While online casinos are rich in choice, flexibility and convenience, there is often a sense of interactivity and personalisation that is missing. Luckily, Fun88’s high-quality Live Casino offering brings the thrills and spills of a brick-and-mortar casino straight to your desktop or mobile device. You can be served from a live dealer, play alongside other players and watch real-life events unfold in real-time!
Benefit from the action, excitement and adrenaline of the live casino. Let the ball, cards or chips fall where they may, build on your winning streak and enjoy all the class and showmanship that you’d expect from an industry-leading casino.
Brought to you by Evolution Gaming, our Live Roulette, Blackjack and Baccarat offerings allow live dealers to stream in to provide a highly personalised and interactive gambling experience. Furthermore, by taking part in the action live, you can be rest assured that gaming is fair, accurate, transparent and randomised.
Roulette is one of the most popular and thrilling of all casino games as it involves the tangibility of a real-life ‘wheel’. It is also the basis for many strategies (such as the Martingale system) and learning through observation. With Live Roulette, you can capitalise on this by watching the action in real-time according to inclinations, trends and patterns.
With Live Blackjack, we’re upping the ante on the online action. Play against the dealer or other players to see who can get closest to 21 points. Besides replicating the ritual and thrill of a real-life event, playing against other ‘humans’ offers the potential to read emotions and mannerisms in an attempt to win the game.
Baccarat is another casino game that is enhanced through real-life interactions. Players can bet on pairs, on the other player, the banker or that the game will end in a tie, to see who can get closest to 9 points. The variety of gaming options and contact with other players means that real-time events are the best way to replicate the randomness, thrill and the potential strategies involved.
Interactive entertainment awaits with Fun88’s Live Casino action!


--- layout: default layout_keyword: knowledge_base_page title: Update submitted form information tags: basic_user_pages left_col_section_nav: [basic_user_nav] user_help_videos: [basic_user_videos] ---
After you submit a form on AllPlayers.com, updating the form with new information is quick and easy.
Click the AllPlayers.com logo or Home button at the top of any page to go to your home page.
Click Account in your side menu, then select Submitted Forms in the submenu.
Click Edit next to the form that you would like to update.
Update the information that needs to be changed. Click Submit, and you're done!


Movement-Non Exercise Step Grade
Movement consistency Grade
Average Sleep Per Night Grade
Exercise Consistency Grade
Overall Exercise Grade
% Non Processed Food Consumed Grade
Alcoholic Drinks Per Day Grade
| 10-06-2017 | 11-06-2017 | 12-06-2017 | 13-06-2017 | 14-06-2017 | 15-06-2017 | 16-06-2017 | |
|---|---|---|---|---|---|---|---|
| Non Exercise Steps | A | A | A | A | A | A | A |
| Movement Consistency | A | A | A | A | A | A | A |
| Sleep | A | A | C | A | A | B | B |
| Exercise Consistency | |||||||
| Overall Exercise | D | A | A | B | A | A | A |
| Workout Duration | A | A | A | A | A | A | A |
| Exercise Effort Level | A | A | A | A | A | A | A |
| Exercise Heart Rate | A | A | A | A | A | A | A |
| Food | B | C | A | A | A | A | A |
| Alcohol |
| A | B | C | D | F | |
|---|---|---|---|---|---|
| Non Exercise Steps |
14 |
0 |
0 |
0 |
0 |
| Movement Consistency |
10 |
10 |
0 |
0 |
0 |
| Sleep | 8 | 5 | 1 | 0 | 0 |
| Exercise Consistency | 2 | 0 | 0 | 0 | 0 |
| Overall Exercise | 9 | 3 | 1 | 1 | 0 |
| Workout Duration | 14 | 0 | 0 | 0 | 0 |
| Exercise Effort Level | 11 | 1 | 0 | 1 | 1 |
| Exercise Heart Rate | 0 | 12 | 1 | 1 | 0 |
| Food | 8 | 3 | 3 | 0 | 0 |
| Alcohol | 3 | 2 | 6 | 2 | 1 |
| Average | Median | Best | Worst | |
|---|---|---|---|---|
| Non Exercise Steps | 21174 | 19775 | 32652 | 13987 |
| Movement Consistency | 3 | 4 | 0 | 6 |
| Sleep(in hours) | 7.6 | 7.7 | 8.2 | 6.8 |
| Exercise Consistency | ||||
| Overall Exercise | 3.5 | 3.7 | 4 | 2 |
| Workout Duration | 86 | 92 | 99 | 60 |
| Workout Effort Level | 3.9 | 3.0 | 2.0 | 9.0 |
| Exercise Heart Rate | 131 | 127 | 124 | 162 |
| Food | 78 | 80 | 95 | 65 |
| Alcohol | 1.8 | 2.0 | 5 |


Let’s Think Beach
To shop online now, copy and paste:
http://links.mkt1917.com/ctt?kn=4&ms=MTI3MTA3NzUS1&r=Mzc1MTMwMDUwMTIS1&b=2&j=NjgzNjgxNzgyS0&mt=1&rt=0
into your browser
Visit a Yankee Candle® store near you.
To find a store, copy and paste:
http://links.mkt1917.com/ctt?kn=17&ms=MTI3MTA3NzUS1&r=Mzc1MTMwMDUwMTIS1&b=2&j=NjgzNjgxNzgyS0&mt=1&rt=0
into your browser
Ends Tomorrow!
Save $20 on your next purchase of $45 or more
or
Save $50 on your next purchase of $100 or more
To shop online now, copy and paste:
http://links.mkt1917.com/ctt?kn=3&ms=MTI3MTA3NzUS1&r=Mzc1MTMwMDUwMTIS1&b=2&j=NjgzNjgxNzgyS0&mt=1&rt=0
into your browser
Use Code BEST16 | See Coupon


Apple donates iPhones to nonprofit to teach students photography
Source: Apple
What you need to know
- Apple has partnered with nonprofit 100 cameras to teach photography.
- The first school to participate in the program is DRW College Prep in Chicago.
- The photography from the program will be sold and donated back to the community.
Apple has announced a partnership with 100cameras, a nonprofit that helps students learn the tools of photography and how to use it as a form of self-expression. In a press release today, the company says that it has equipped students at DRW College Prep in Chicago with the iPhone 11 to allow them to tell their stories about growing up in the city.
Kaiann Drance, Apple's vice president of iPhone Worldwide Product Marketing, talked about how each student's unique perspective, paired with the new iPhone, created inspiring photos:
"It was amazing to collaborate with 100cameras and the talented and creative students at DRW...the iPhone 11 camera with all its intuitive capabilities right there in your hand is such a powerful storytelling tool. To see the photos the students captured of the ways they see the world around them was truly inspiring."
Source: Apple
Angela Popplewell, 100cameras' co-founder and CEO, was impressed with how students would utilize the new iPhone's wide-angle lens and Portrait mode to gain different perspectives on their shots:
"As the residents of a neighborhood in Chicago that is often overlooked, being given the new iPhone that had been released just a few weeks prior felt like a momentous opportunity...to see how excited they were to utilize the camera tools specific to this model uplifted their creativity even more...it was incredible seeing how they chose to utilize the wide-angle and Portrait modes to really capture their point of view and specific expressions."
Source: Apple
At the end of the program, prints of the students' photos will be sold through 100cameras and 100% of the profit will go right back into their community. The program is having a positive impact on attendees, as one student explains:
"I walked in thinking everything was in black and white. But I walked out seeing that we can all have different emotions and that we can see and interpret differently."
You can read the full story at Apple's Newsroom.
We may earn a commission for purchases using our links. Learn more.


Previous article: Concepts - Statistics
Next article: Concepts - Programming
Concepts: Machine Learning
##What is it about Machine Learning is a field that draws on computer science, statistics, and mathematics with the aim of replicating what passes as human learning in specific application domains, such as pattern recognition. In an overly simplifying way we could say that ML is linear algebra + probability theory + statistics + computing. It has spawn off from Artificial Intelligence, when the latter went on in its effort to replicate human intelligence, while Machine Learning focused on solving specific domain problems and relied more heavily on statistics and probability. The digitalisation of greater amounts of information and the cheaper computing power gave ML, a wider field of application, along the material and the capabilities to build models. The ability to replicate specific domain application prompted ML to be adopted in industry in many fields.
Where does it fit in Data Science
Machine Learning lies at the core of any data application. It provides the machinery for transforming data into insights. We do not mean to say that it is the single most important part of the pipeline; we have seen that with bad data you cannot get good results. And in many situations even understanding the data, and using traditional statistical tool is already a long way. Yet it is the workhorse of any project; if it works right one can get often impressive results.
The details
In a high level of abstraction we could say that Machine Learning is a form of inductive reasoning, as it also the case with statistics. In broad terms the objective is to draw inferences: If A then B - the machinery might be diverse but the logic is the same. We construct a model that we believe describes/replicates the real world processed We feed the model with data and estimate the parameters of the model Then, we bring new data to the estimated model, and make inferences about the qualities of the new data
Let us now see how this generic description takes a specific form, in the case of Machine Learning.
The problem representation
Most learning problems start with a mathematical representation of the task, along which comes an function that measures the errors the model makes. In the case of linear regression we have a straight line/plane that goes through the data and the error function measures how far our line/plane is from all the data points. In the case of classification/decision trees we have there are branches that represent decision the model makes at each node, while there are different error functions that measure, in a classification setting, how well the model classifies data in the categories created.
From representation to optimisation
Once we have a way to represent the problem and have defined a way to measure the success or failure through an error function, the next step follows naturally. We try to minimise the error; this is the fundamental way we have te represent learning. In the context of classification trees, that means create the final classes with as few mis-classifications as possible. In this way we make the transition to mathematical optimisation; given a function that represents the problem, choose the parameters so that the function when fed with the data will produce the smallest possible error.
What about other possible data?
Beware! We have minimised the error for the data we had; what will happen when new, unseen data, will be fed to the model? The new data will not exactly match what we used in the first place, so the error will be different. An important idea here is the bias - variance trade-off. Suppose we can make our model too complex so that it will mimic really close the initial data - that is achieve low bias. But when new data will come in, the error we will get will vary a lot - that is there will be high variance. The alternative is to have a simple model that will not capture the initial data really good - there will be high bias. Yet, when new data come in, the error will not vary too much - the variance will be relatively low. The important lesson here is that we cannot minimise both bias and variance at the same time. We have to find just about the right balance between the two.
So, how do we assess our model?
When we train a model we can compute the error that the model makes with the data that it was trained. We need a way to estimate the error when new data will be fed to the model and gauge how well the model will behave in the future. There different techniques for doing so, but all depend on the same idea: use the data at hand to simulate the unseen data. One common approach is to split the data into a training set, and a holdout set. In the case of cross-validation, the training set is further split into many random training and test sets. We repeatedly train our model on one set and test it on the other set. This iterative process help us find the model parameter that most probably will produce the lowest possible error with a new data set. Once we are done with the cross-validation, we use the holdout set verify that our results hold even with a new set that has not been used at all.
sources:
- James, Witten, Hastie, Tibshirani An Introduction to Statistical Learning
- Abu-Mostafa, et. al. Learning from Data


{% extends "layout.html" %}
{% block title %}Batch Status{% endblock %}
{% block content %}
Globals
instance ID: {{ instance_id }}
ready cores: {{ ready_cores_mcpu / 1000 }}
{% if not frozen %}
{% else %}
{% endif %}
Instance Collections
Pools
| Name |
Worker Type |
Pending |
Active |
Inactive |
Deleted |
Live Total Cores |
Live Free Cores |
{% for pool in pools %}
| {{ pool.name }} |
{{ pool.worker_type }} |
{{ pool.n_instances_by_state['pending'] }} |
{{ pool.n_instances_by_state['active'] }} |
{{ pool.n_instances_by_state['inactive'] }} |
{{ pool.n_instances_by_state['deleted'] }} |
{{ pool.live_total_cores_mcpu / 1000 }} |
{{ pool.live_free_cores_mcpu / 1000 }} |
{% endfor %}
Job Private Instance Manager
| Name |
Pending |
Active |
Inactive |
Deleted |
Live Total Cores |
Live Free Cores |
| {{ jpim.name }} |
{{ jpim.n_instances_by_state['pending'] }} |
{{ jpim.n_instances_by_state['active'] }} |
{{ jpim.n_instances_by_state['inactive'] }} |
{{ jpim.n_instances_by_state['deleted'] }} |
{{ jpim.live_total_cores_mcpu / 1000 }} |
{{ jpim.live_free_cores_mcpu / 1000 }} |
Instances
pending: {{ n_instances_by_state['pending'] }}
active: {{ n_instances_by_state['active'] }}
inactive: {{ n_instances_by_state['inactive'] }}
deleted: {{ n_instances_by_state['deleted'] }}
live total cores: {{ live_total_cores_mcpu / 1000 }}
live free cores: {{ live_free_cores_mcpu / 1000 }}
| Name |
Instance Collection |
Zone |
Version |
State |
Free Cores |
Failed Requests |
Time Created |
Last Updated |
{% for instance in instances %}
| {{ instance.name }} |
{{ instance.inst_coll.name }} |
{{ instance.zone }} |
{{ instance.version }} |
{{ instance.state }} |
{{ instance.free_cores_mcpu / 1000 }} / {{ instance.cores_mcpu / 1000 }} |
{{ instance.failed_request_count }} |
{{ instance.time_created_str() }} |
{{ instance.last_updated_str() }} ago |
{% endfor %}
{% endblock %}


pread, pwrite - read from or write to a file descriptor at a given offset
#include <unistd.h>
ssize_t pread(int fd, void *buf,
size_t count, off_t offset);
ssize_t pwrite(int fd, const void
*buf, size_t count, off_t
offset);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
pread(), pwrite():
_XOPEN_SOURCE >= 500
|| /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
pread() reads up to count bytes from file descriptor fd at
offset offset (from the start of the file) into the buffer starting at
buf. The file offset is not changed.
pwrite() writes up to count bytes from the buffer
starting at buf to the file descriptor fd at offset
offset. The file offset is not changed.
The file referenced by fd must be capable of seeking.
On success, pread() returns the number of bytes read (a return of zero
indicates end of file) and pwrite() returns the number of bytes
written.
Note that it is not an error for a successful call to transfer
fewer bytes than requested (see read(2) and write(2)).
On error, -1 is returned and errno is set to indicate the
cause of the error.
pread() can fail and set errno to any error specified for
read(2) or lseek(2). pwrite() can fail and set
errno to any error specified for write(2) or lseek(2).
The pread() and pwrite() system calls were added to Linux in
version 2.1.60; the entries in the i386 system call table were added in
2.1.69. C library support (including emulation using lseek(2) on older
kernels without the system calls) was added in glibc 2.1.
POSIX.1-2001, POSIX.1-2008.
The pread() and pwrite() system calls are especially useful in
multithreaded applications. They allow multiple threads to perform I/O on the
same file descriptor without being affected by changes to the file offset by
other threads.
On Linux, the underlying system calls were renamed in kernel 2.6: pread()
became pread64(), and pwrite() became pwrite64(). The
system call numbers remained the same. The glibc pread() and
pwrite() wrapper functions transparently deal with the change.
On some 32-bit architectures, the calling signature for these
system calls differ, for the reasons described in syscall(2).
POSIX requires that opening a file with the O_APPEND flag should have no
effect on the location at which pwrite() writes data. However, on
Linux, if a file is opened with O_APPEND, pwrite() appends data
to the end of the file, regardless of the value of offset.
lseek(2), read(2), readv(2), write(2)
This page is part of release 5.05 of the Linux man-pages project. A
description of the project, information about reporting bugs, and the latest
version of this page, can be found at https://www.kernel.org/doc/man-pages/.


Female comic superhero fights India's sex traffickers, challenges stigma
MUMBAI: A female superhero will use her powers to fight sex crimes in India and the stigma that trafficking survivors face, in the third instalment of a comic series due to be released this week.
Priya, a rape survivor-turned superhero who flies around on a tiger, fought her abusers and helped acid attack victims in the last two editions of the "Priya's Shakti" comic.
"Comics are hugely popular with teenagers and young adults ... we wanted to reach teenagers because they are learning about sexuality, gender-roles and sexual violence," said series creator and filmmaker Ram Devineni.
"More importantly, we have given voices and put attention on survivors of gender-based violence," Devineni told the Thomson Reuters Foundation in an email.
Thousands of people across India - largely poor, rural women and children - are lured to cities each year by traffickers who promise good jobs, but sell them into modern day slavery.
India recorded around 3,000 human trafficking cases in 2017, according to recently released crime data, which anti-trafficking campaigners said masked the true scale of the crime.
In the new comic, which can be downloaded for free from Tuesday, Priya rescues sex trafficking victims and challenges the communities that refuse to accept them on their return home.
"Priya's Shakti" (Priya's Strength) was the first Indian comic book of its kind when first released in 2014, using augmented reality to tell the story of a young, rural woman who is gang-raped and then shamed by her family and community.
In her latest comic titled "Priya and the Lost Girls", she returns to her village where she finds all the women, including her sister, missing. She then traces them to a brothel owned by a demon who she must fight to rescue the women.
Although set in India, the story has global resonance, the creators said.
"People in first world countries think of sex trafficking as a third world problem. What they don't realize is, it happens in their own backyards. It is a global industry making a lot of money," the comic book's writer Dipti Mehta said.
The story was based on research the creators conducted of brothels in red-light districts of Kolkata and Mumbai.
"I think as artists and creators it is our social responsibility to raise awareness and give voice to those who need it the most," Mehta said.
The "Priya's Shakti" series has been downloaded more than 500,000 times and read by about 26 million people worldwide, Devineni said.

Read also
Read More
'Pervasive' digital sexual violence against women skyrockets in Singapore
From online stalking to revenge porn, cases of digital sexual violence have spiked sharply in Singapore, women's rights campaigners warned on Monday as they called for reforms to clamp down on the emerging form of crime.
Read More
Austrian Olympic judo champ denies sexual assault of pupils
Two-time Olympic judo champion Peter Seisenbacher of Austria has denied the alleged sexual assault of two young girls he was coaching in the early 2000s.
Read More
UK police charge man with human trafficking offences in Vietnamese truck deaths inquiry
British police have charged a 23-year-old man from Northern Ireland with human trafficking offences as part of their inquiry into the deaths of 39 Vietnamese people found in the back of a truck near London last month.

Singapore warned on Tuesday that it would take "strong" action against labour trafficking after an Indian couple was found guilty of exploiting migrant women, the first such conviction in the affluent city-state.