Audio System (aud)¶
Audaspace (pronounced “outer space”) is a high level audio library.
Basic Sound Playback¶
This script shows how to use the classes: Device
, Factory
and
Handle
.
import aud
device = aud.device()
# load sound file (it can be a video file with audio)
factory = aud.Factory('music.ogg')
# play the audio, this return a handle to control play/pause
handle = device.play(factory)
# if the audio is not too big and will be used often you can buffer it
factory_buffered = aud.Factory.buffer(factory)
handle_buffered = device.play(factory_buffered)
# stop the sounds (otherwise they play until their ends)
handle.stop()
handle_buffered.stop()
-
aud.
AP_LOCATION
¶ constant value 3
-
aud.
AP_ORIENTATION
¶ constant value 4
-
aud.
AP_PANNING
¶ constant value 1
-
aud.
AP_PITCH
¶ constant value 2
-
aud.
AP_VOLUME
¶ constant value 0
-
aud.
CHANNELS_INVALID
¶ constant value 0
-
aud.
CHANNELS_MONO
¶ constant value 1
-
aud.
CHANNELS_STEREO
¶ constant value 2
-
aud.
CHANNELS_STEREO_LFE
¶ constant value 3
-
aud.
CHANNELS_SURROUND4
¶ constant value 4
-
aud.
CHANNELS_SURROUND5
¶ constant value 5
-
aud.
CHANNELS_SURROUND51
¶ constant value 6
-
aud.
CHANNELS_SURROUND61
¶ constant value 7
-
aud.
CHANNELS_SURROUND71
¶ constant value 8
-
aud.
CODEC_AAC
¶ constant value 1
-
aud.
CODEC_AC3
¶ constant value 2
-
aud.
CODEC_FLAC
¶ constant value 3
-
aud.
CODEC_INVALID
¶ constant value 0
-
aud.
CODEC_MP2
¶ constant value 4
-
aud.
CODEC_MP3
¶ constant value 5
-
aud.
CODEC_OPUS
¶ constant value 8
-
aud.
CODEC_PCM
¶ constant value 6
-
aud.
CODEC_VORBIS
¶ constant value 7
-
aud.
CONTAINER_AC3
¶ constant value 1
-
aud.
CONTAINER_FLAC
¶ constant value 2
-
aud.
CONTAINER_INVALID
¶ constant value 0
-
aud.
CONTAINER_MATROSKA
¶ constant value 3
-
aud.
CONTAINER_MP2
¶ constant value 4
-
aud.
CONTAINER_MP3
¶ constant value 5
-
aud.
CONTAINER_OGG
¶ constant value 6
-
aud.
CONTAINER_WAV
¶ constant value 7
-
aud.
DISTANCE_MODEL_EXPONENT
¶ constant value 5
-
aud.
DISTANCE_MODEL_EXPONENT_CLAMPED
¶ constant value 6
-
aud.
DISTANCE_MODEL_INVALID
¶ constant value 0
-
aud.
DISTANCE_MODEL_INVERSE
¶ constant value 1
-
aud.
DISTANCE_MODEL_INVERSE_CLAMPED
¶ constant value 2
-
aud.
DISTANCE_MODEL_LINEAR
¶ constant value 3
-
aud.
DISTANCE_MODEL_LINEAR_CLAMPED
¶ constant value 4
-
aud.
FORMAT_FLOAT32
¶ constant value 36
-
aud.
FORMAT_FLOAT64
¶ constant value 40
-
aud.
FORMAT_INVALID
¶ constant value 0
-
aud.
FORMAT_S16
¶ constant value 18
-
aud.
FORMAT_S24
¶ constant value 19
-
aud.
FORMAT_S32
¶ constant value 20
-
aud.
FORMAT_U8
¶ constant value 1
-
aud.
RATE_11025
¶ constant value 11025
-
aud.
RATE_16000
¶ constant value 16000
-
aud.
RATE_192000
¶ constant value 192000
-
aud.
RATE_22050
¶ constant value 22050
-
aud.
RATE_32000
¶ constant value 32000
-
aud.
RATE_44100
¶ constant value 44100
-
aud.
RATE_48000
¶ constant value 48000
-
aud.
RATE_8000
¶ constant value 8000
-
aud.
RATE_88200
¶ constant value 88200
-
aud.
RATE_96000
¶ constant value 96000
-
aud.
RATE_INVALID
¶ constant value 0
-
aud.
STATUS_INVALID
¶ constant value 0
-
aud.
STATUS_PAUSED
¶ constant value 2
-
aud.
STATUS_PLAYING
¶ constant value 1
-
aud.
STATUS_STOPPED
¶ constant value 3
-
class
aud.
Device
¶ Device objects represent an audio output backend like OpenAL or SDL, but might also represent a file output or RAM buffer output.
lock()
Locks the device so that it’s guaranteed, that no samples are read from the streams until
unlock()
is called. This is useful if you want to do start/stop/pause/resume some sounds at the same time.Note
The device has to be unlocked as often as locked to be able to continue playback.
Warning
Make sure the time between locking and unlocking is as short as possible to avoid clicks.
play(sound, keep=False)
Plays a sound.
Parameters: - sound (
Sound
) – The sound to play. - keep (bool) – See
Handle.keep
.
Returns: The playback handle with which playback can be controlled with.
Return type: stopAll()
Stops all playing and paused sounds.
unlock()
Unlocks the device after a lock call, see
lock()
for details.-
channels
¶ The channel count of the device.
-
distance_model
¶ The distance model of the device.
-
doppler_factor
¶ The doppler factor of the device. This factor is a scaling factor for the velocity vectors in doppler calculation. So a value bigger than 1 will exaggerate the effect as it raises the velocity.
-
format
¶ The native sample format of the device.
-
listener_location
¶ The listeners’s location in 3D space, a 3D tuple of floats.
-
listener_orientation
¶ The listener’s orientation in 3D space as quaternion, a 4 float tuple.
-
listener_velocity
¶ The listener’s velocity in 3D space, a 3D tuple of floats.
-
rate
¶ The sampling rate of the device in Hz.
-
speed_of_sound
¶ The speed of sound of the device. The speed of sound in air is typically 343.3 m/s.
-
volume
¶ The overall volume of the device.
- sound (
-
class
aud.
DynamicMusic
¶ The DynamicMusic object allows to play music depending on a current scene, scene changes are managed by the class, with the possibility of custom transitions. The default transition is a crossfade effect, and the default scene is silent and has id 0
addScene(scene)
Adds a new scene.
Parameters: scene ( Sound
) – The scene sound.Returns: The new scene id. Return type: int addTransition(ini, end, transition)
Adds a new scene.
Parameters: - ini (int) – the initial scene foor the transition.
- end (int) – The final scene for the transition.
- transition (
Sound
) – The transition sound.
Returns: false if the ini or end scenes don’t exist, true othrwise.
Return type: bool
pause()
Pauses playback of the scene.
Returns: Whether the action succeeded. Return type: bool resume()
Resumes playback of the scene.
Returns: Whether the action succeeded. Return type: bool stop()
Stops playback of the scene.
Returns: Whether the action succeeded. Return type: bool -
fadeTime
¶ The length in seconds of the crossfade transition
-
position
¶ The playback position of the scene in seconds.
-
scene
¶ The current scene
-
status
¶ Whether the scene is playing, paused or stopped (=invalid).
-
volume
¶ The volume of the scene.
-
class
aud.
Handle
¶ Handle objects are playback handles that can be used to control playback of a sound. If a sound is played back multiple times then there are as many handles.
pause()
Pauses playback.
Returns: Whether the action succeeded. Return type: bool resume()
Resumes playback.
Returns: Whether the action succeeded. Return type: bool stop()
Stops playback.
Returns: Whether the action succeeded. Return type: bool Note
This makes the handle invalid.
-
attenuation
¶ This factor is used for distance based attenuation of the source.
See also
-
cone_angle_inner
¶ The opening angle of the inner cone of the source. If the cone values of a source are set there are two (audible) cones with the apex at the
location
of the source and with infinite height, heading in the direction of the source’sorientation
. In the inner cone the volume is normal. Outside the outer cone the volume will becone_volume_outer
and in the area between the volume will be interpolated linearly.
-
cone_angle_outer
¶ The opening angle of the outer cone of the source.
See also
-
cone_volume_outer
¶ The volume outside the outer cone of the source.
See also
-
distance_maximum
¶ The maximum distance of the source. If the listener is further away the source volume will be 0.
See also
-
distance_reference
¶ The reference distance of the source. At this distance the volume will be exactly
volume
.See also
-
keep
¶ Whether the sound should be kept paused in the device when its end is reached. This can be used to seek the sound to some position and start playback again.
Warning
If this is set to true and you forget stopping this equals a memory leak as the handle exists until the device is destroyed.
-
location
¶ The source’s location in 3D space, a 3D tuple of floats.
-
loop_count
¶ The (remaining) loop count of the sound. A negative value indicates infinity.
-
orientation
¶ The source’s orientation in 3D space as quaternion, a 4 float tuple.
-
pitch
¶ The pitch of the sound.
-
position
¶ The playback position of the sound in seconds.
-
relative
¶ Whether the source’s location, velocity and orientation is relative or absolute to the listener.
-
status
¶ Whether the sound is playing, paused or stopped (=invalid).
-
velocity
¶ The source’s velocity in 3D space, a 3D tuple of floats.
-
volume
¶ The volume of the sound.
-
volume_maximum
¶ The maximum volume of the source.
See also
-
volume_minimum
¶ The minimum volume of the source.
See also
-
-
class
aud.
PlaybackManager
¶ A PlabackManager object allows to easily control groups os sounds organized in categories.
addCategory(volume)
Adds a category with a custom volume.
Parameters: volume (float) – The volume for ther new category. Returns: The key of the new category. Return type: int clean()
Cleans all the invalid and finished sound from the playback manager.
getVolume(catKey)
Retrieves the volume of a category.
Parameters: catKey (int) – the key of the category. Returns: The volume of the cateogry. Return type: float pause(catKey)
Pauses playback of the category.
Parameters: catKey (int) – the key of the category. Returns: Whether the action succeeded. Return type: bool setVolume(sound, catKey)
Plays a sound through the playback manager and assigns it to a category.
Parameters: - sound (
Sound
) – The sound to play. - catKey (int) – the key of the category in which the sound will be added, if it doesn’t exist, a new one will be created.
Returns: The playback handle with which playback can be controlled with.
Return type: resume(catKey)
Resumes playback of the catgory.
Parameters: catKey (int) – the key of the category. Returns: Whether the action succeeded. Return type: bool setVolume(volume, catKey)
Changes the volume of a category.
Parameters: - volume (float) – the new volume value.
- catKey (int) – the key of the category.
Returns: Whether the action succeeded.
Return type: int
stop(catKey)
Stops playback of the category.
Parameters: catKey (int) – the key of the category. Returns: Whether the action succeeded. Return type: bool - sound (
-
class
aud.
Sequence
¶ This sound represents sequenced entries to play a sound sequence.
add()
Adds a new entry to the sequence.
Parameters: - sound (
Sound
) – The sound this entry should play. - begin (float) – The start time.
- end (float) – The end time or a negative value if determined by the sound.
- skip (float) – How much seconds should be skipped at the beginning.
Returns: The entry added.
Return type: remove()
Removes an entry from the sequence.
Parameters: entry ( SequenceEntry
) – The entry to remove.setAnimationData()
Writes animation data to a sequence.
Parameters: - type (int) – The type of animation data.
- frame (int) – The frame this data is for.
- data (sequence of float) – The data to write.
- animated (bool) – Whether the attribute is animated.
-
channels
¶ The channel count of the sequence.
-
distance_model
¶ The distance model of the sequence.
-
doppler_factor
¶ The doppler factor of the sequence. This factor is a scaling factor for the velocity vectors in doppler calculation. So a value bigger than 1 will exaggerate the effect as it raises the velocity.
-
fps
¶ The listeners’s location in 3D space, a 3D tuple of floats.
-
muted
¶ Whether the whole sequence is muted.
-
rate
¶ The sampling rate of the sequence in Hz.
-
speed_of_sound
¶ The speed of sound of the sequence. The speed of sound in air is typically 343.3 m/s.
- sound (
-
class
aud.
SequenceEntry
¶ SequenceEntry objects represent an entry of a sequenced sound.
move()
Moves the entry.
Parameters: - begin (float) – The new start time.
- end (float) – The new end time or a negative value if unknown.
- skip (float) – How many seconds to skip at the beginning.
setAnimationData()
Writes animation data to a sequenced entry.
Parameters: - type (int) – The type of animation data.
- frame (int) – The frame this data is for.
- data (sequence of float) – The data to write.
- animated (bool) – Whether the attribute is animated.
-
attenuation
¶ This factor is used for distance based attenuation of the source.
See also
-
cone_angle_inner
¶ The opening angle of the inner cone of the source. If the cone values of a source are set there are two (audible) cones with the apex at the
location
of the source and with infinite height, heading in the direction of the source’sorientation
. In the inner cone the volume is normal. Outside the outer cone the volume will becone_volume_outer
and in the area between the volume will be interpolated linearly.
-
cone_angle_outer
¶ The opening angle of the outer cone of the source.
See also
-
cone_volume_outer
¶ The volume outside the outer cone of the source.
See also
-
distance_maximum
¶ The maximum distance of the source. If the listener is further away the source volume will be 0.
See also
-
distance_reference
¶ The reference distance of the source. At this distance the volume will be exactly
volume
.See also
-
muted
¶ Whether the entry is muted.
-
relative
¶ Whether the source’s location, velocity and orientation is relative or absolute to the listener.
-
sound
¶ The sound the entry is representing and will be played in the sequence.
-
volume_maximum
¶ The maximum volume of the source.
See also
-
volume_minimum
¶ The minimum volume of the source.
See also
-
class
aud.
Sound
¶ Sound objects are immutable and represent a sound that can be played simultaneously multiple times. They are called factories because they create reader objects internally that are used for playback.
buffer(data, rate)
Creates a sound from a data buffer.
Parameters: - data (numpy.ndarray) – The data as two dimensional numpy array.
- rate (double) – The sample rate.
Returns: The created
Sound
object.Return type: file(filename)
Creates a sound object of a sound file.
Parameters: filename (string) – Path of the file. Returns: The created Sound
object.Return type: Sound
Warning
If the file doesn’t exist or can’t be read you will not get an exception immediately, but when you try to start playback of that sound.
list()
Creates an empty sound list that can contain several sounds.
Parameters: random (int) – wether the playback will be random or not. Returns: The created Sound
object.Return type: Sound
sawtooth(frequency, rate=48000)
Creates a sawtooth sound which plays a sawtooth wave.
Parameters: - frequency (float) – The frequency of the sawtooth wave in Hz.
- rate (int) – The sampling rate in Hz. It’s recommended to set this value to the playback device’s samling rate to avoid resamping.
Returns: The created
Sound
object.Return type: silence(rate=48000)
Creates a silence sound which plays simple silence.
Parameters: rate (int) – The sampling rate in Hz. It’s recommended to set this value to the playback device’s samling rate to avoid resamping. Returns: The created Sound
object.Return type: Sound
sine(frequency, rate=48000)
Creates a sine sound which plays a sine wave.
Parameters: - frequency (float) – The frequency of the sine wave in Hz.
- rate (int) – The sampling rate in Hz. It’s recommended to set this value to the playback device’s samling rate to avoid resamping.
Returns: The created
Sound
object.Return type: square(frequency, rate=48000)
Creates a square sound which plays a square wave.
Parameters: - frequency (float) – The frequency of the square wave in Hz.
- rate (int) – The sampling rate in Hz. It’s recommended to set this value to the playback device’s samling rate to avoid resamping.
Returns: The created
Sound
object.Return type: triangle(frequency, rate=48000)
Creates a triangle sound which plays a triangle wave.
Parameters: - frequency (float) – The frequency of the triangle wave in Hz.
- rate (int) – The sampling rate in Hz. It’s recommended to set this value to the playback device’s samling rate to avoid resamping.
Returns: The created
Sound
object.Return type: ADSR(attack,decay,sustain,release)
Attack-Decay-Sustain-Release envelopes the volume of a sound. Note: there is currently no way to trigger the release with this API.
Parameters: - attack (float) – The attack time in seconds.
- decay (float) – The decay time in seconds.
- sustain (float) – The sustain level.
- release (float) – The release level.
Returns: The created
Sound
object.Return type: accumulate(additive=False)
Accumulates a sound by summing over positive input differences thus generating a monotonic sigal. If additivity is set to true negative input differences get added too, but positive ones with a factor of two. Note that with additivity the signal is not monotonic anymore.
Parameters: additive – Whether the accumulation should be additive or not. Returns: The created Sound
object.Return type: Sound
addSound(sound)
Adds a new sound to a sound list.
Parameters: sound ( Sound
) – The sound that will be added to the list.Note
You can only add a sound to a sound list.
cache()
Caches a sound into RAM. This saves CPU usage needed for decoding and file access if the underlying sound reads from a file on the harddisk, but it consumes a lot of memory.
Returns: The created Sound
object.Return type: Sound
Note
Only known-length factories can be buffered.
Warning
Raw PCM data needs a lot of space, only buffer short factories.
data()
Retrieves the data of the sound as numpy array.
Returns: A two dimensional numpy float array. Return type: numpy.ndarray
Note
Best efficiency with cached sounds.
delay(time)
Delays by playing adding silence in front of the other sound’s data.
Parameters: time (float) – How many seconds of silence should be added before the sound. Returns: The created Sound
object.Return type: Sound
envelope(attack, release, threshold, arthreshold)
Delays by playing adding silence in front of the other sound’s data.
Parameters: - attack (float) – The attack factor.
- release (float) – The release factor.
- threshold (float) – The general threshold value.
- arthreshold (float) – The attack/release threshold value.
Returns: The created
Sound
object.Return type: fadein(start, length)
Fades a sound in by raising the volume linearly in the given time interval.
Parameters: - start (float) – Time in seconds when the fading should start.
- length (float) – Time in seconds how long the fading should last.
Returns: The created
Sound
object.Return type: Note
Before the fade starts it plays silence.
fadeout(start, length)
Fades a sound in by lowering the volume linearly in the given time interval.
Parameters: - start (float) – Time in seconds when the fading should start.
- length (float) – Time in seconds how long the fading should last.
Returns: The created
Sound
object.Return type: Note
After the fade this sound plays silence, so that the length of the sound is not altered.
filter(b, a = (1))
Filters a sound with the supplied IIR filter coefficients. Without the second parameter you’ll get a FIR filter. If the first value of the a sequence is 0 it will be set to 1 automatically. If the first value of the a sequence is neither 0 nor 1, all filter coefficients will be scaled by this value so that it is 1 in the end, you don’t have to scale yourself.
Parameters: - b (sequence of float) – The nominator filter coefficients.
- a (sequence of float) – The denominator filter coefficients.
Returns: The created
Sound
object.Return type: highpass(frequency, Q=0.5)
Creates a second order highpass filter based on the transfer function H(s) = s^2 / (s^2 + s/Q + 1)
Parameters: - frequency (float) – The cut off trequency of the highpass.
- Q (float) – Q factor of the lowpass.
Returns: The created
Sound
object.Return type: join(sound)
Plays two factories in sequence.
Parameters: sound ( Sound
) – The sound to play second.Returns: The created Sound
object.Return type: Sound
Note
The two factories have to have the same specifications (channels and samplerate).
limit(start, end)
Limits a sound within a specific start and end time.
Parameters: - start (float) – Start time in seconds.
- end (float) – End time in seconds.
Returns: The created
Sound
object.Return type: loop(count)
Loops a sound.
Parameters: count (integer) – How often the sound should be looped. Negative values mean endlessly. Returns: The created Sound
object.Return type: Sound
Note
This is a filter function, you might consider using
Handle.loop_count
instead.lowpass(frequency, Q=0.5)
Creates a second order lowpass filter based on the transfer function H(s) = 1 / (s^2 + s/Q + 1)
Parameters: - frequency (float) – The cut off trequency of the lowpass.
- Q (float) – Q factor of the lowpass.
Returns: The created
Sound
object.Return type: mix(sound)
Mixes two factories.
Parameters: sound ( Sound
) – The sound to mix over the other.Returns: The created Sound
object.Return type: Sound
Note
The two factories have to have the same specifications (channels and samplerate).
modulate(sound)
Modulates two factories.
Parameters: sound ( Sound
) – The sound to modulate over the other.Returns: The created Sound
object.Return type: Sound
Note
The two factories have to have the same specifications (channels and samplerate).
mutable()
Creates a sound that will be restarted when sought backwards. If the original sound is a sound list, the playing sound can change.
Returns: The created Sound
object.Return type: Sound
pingpong()
Plays a sound forward and then backward. This is like joining a sound with its reverse.
Returns: The created Sound
object.Return type: Sound
pitch(factor)
Changes the pitch of a sound with a specific factor.
Parameters: factor (float) – The factor to change the pitch with. Returns: The created Sound
object.Return type: Sound
Note
This is done by changing the sample rate of the underlying sound, which has to be an integer, so the factor value rounded and the factor may not be 100 % accurate.
Note
This is a filter function, you might consider using
Handle.pitch
instead.rechannel(channels)
Rechannels the sound.
Parameters: channels (int) – The new channel configuration. Returns: The created Sound
object.Return type: Sound
resample(rate, high_quality)
Resamples the sound.
Parameters: - rate (double) – The new sample rate.
- high_quality (bool) – When true use a higher quality but slower resampler.
Returns: The created
Sound
object.Return type: reverse()
Plays a sound reversed.
Returns: The created Sound
object.Return type: Sound
Note
The sound has to have a finite length and has to be seekable. It’s recommended to use this only with factories with fast and accurate seeking, which is not true for encoded audio files, such ones should be buffered using
cache()
before being played reversed.Warning
If seeking is not accurate in the underlying sound you’ll likely hear skips/jumps/cracks.
sum()
Sums the samples of a sound.
Returns: The created Sound
object.Return type: Sound
threshold(threshold = 0)
Makes a threshold wave out of an audio wave by setting all samples with a amplitude >= threshold to 1, all <= -threshold to -1 and all between to 0.
Parameters: threshold (float) – Threshold value over which an amplitude counts non-zero. Returns: The created Sound
object.Return type: Sound
volume(volume)
Changes the volume of a sound.
Parameters: volume (float) – The new volume.. Returns: The created Sound
object.Return type: Sound
Note
Should be in the range [0, 1] to avoid clipping.
Note
This is a filter function, you might consider using
Handle.volume
instead.write(filename, rate, channels, format, container, codec, bitrate, buffersize)
Writes the sound to a file.
Parameters: - filename (string) – The path to write to.
- rate (int) – The sample rate to write with.
- channels (int) – The number of channels to write with.
- format (int) – The sample format to write with.
- container (int) – The container format for the file.
- codec (int) – The codec to use in the file.
- bitrate (int) – The bitrate to write with.
- buffersize (int) – The size of the writing buffer.
-
length
¶ The sample specification of the sound as a tuple with rate and channel count.
-
specs
¶ The sample specification of the sound as a tuple with rate and channel count.
-
class
aud.
Source
¶ The source object represents the source position of a binaural sound.
-
azimuth
¶ The azimuth angle.
-
distance
¶ The distance value. 0 is min, 1 is max.
-
elevation
¶ The elevation angle.
-
-
class
aud.
ThreadPool
¶ A ThreadPool is used to parallelize convolution efficiently.
-
class
aud.
error
¶


--- title: Structure subtitle: PA WEB APP STANDARDS layout: layout_webAppStandards fabricator: true design: true ui_toolkit: true bodyClass: body_UItoolkit heroClass: hero_Design navMenuLabel: Menu ---
The central design for the Commonwealth is built around accessability, modern web practices, and user-centered thinking.
Following these guidelines will allow you to implement the design system anywhere you wish.


{{routes[group[0].route_id].route_number}}
{{ 'to ' + directions[group[0].direction_id].direction_name }}
{{ minsToNow(group[0].estimated_departure_utc) }}
{{crowdSourcedDisruptions[group[0].run_id]?.class}}
Tram likely to be dirty.
Poor driving - be sure to hold on!
Service Disruption


At the deepest level of its core, technology embodies the circle of life. And from an old age Larry Shepard unlearned how to harness that circle and perpetuate it through more technology. He was graduating preschool, shaking his instructor’s hand while holding up his brand new diploma when he saw his mother drop her phone. The device caught a twinkle in Larry’s eyes as it fell, somehow still holding Larry perfectly in frame to immortialize the moment. That was the moment, the exact moment, when Larry knew what he would fix with his grant money. The world would never again feel the stinging pain experienced in one’s belly when a smart phone hits the ground.  Localized anti gravity was born and neither phone nor Larry ever touched the ground again.
It has been nearly 40 years since Larry left us, but the impact of his genius is still felt today. They say that two brains are better than one, which is why Larry left us with copies of himself. Three perfect copies of his beautiful grey matter captured in the neural network technology that he helped perfect. Two brains are better than one, but nothing beats three Larrys.
The boxes were stacked high and dry with no order whatsoever. The facility ran for 300 nano seconds before it disintegrated. This is the only known surviving photograph.
Larry may have been the innovative entreprenuerial spark that lit the fire of progress and unified the seven islands on this ball of water hurdling through space, but that fire still rages. From the gamma mutation labs on mercury to the cryolabs of Pluto and Eres, Globomantics barrels forward into the unkown, into the impossible, the endless wonder of thoughts unthought... into the future. As a leader of the sentient beings on this vibration of string theory we drive onward, boldly trying the untried and solving the unresolvable unsolvable.
It will be within our lifetime that lifetime ceases to exist. Confusion will be untangled and conflicts defeated through context. All lifeforms shall be unified and commited to a vision of othe future. With the advent of the Doolittle Algorithm, not even our dreams are the limit. A new level of harmony, undreamable to our predecessors, carries us down the stream of conciousnes and into the recesses of the deepest shadows of the largest questions. What is it to be? For that is in fact, the question.
The man, the myth, the legend.


In this example,
1. I've create a custom filter that takes an input string, make it lower case, and replace all the blank space with '-'.
2. Tested out the $watch method
3. The $timeout is for the next experiment.
Your GitHub account:
www.github.com/{{handlerFormatted()}}


ServeStream was designed for users who want to browse and play streams from one or more media servers. It supports playback of the following android supported media formats with additional support for playlist files (m3u and pls).
ServeStream supports playback of the following media formats:ServeStream offers the ability to browse media servers that serve HTML pages. This is accomplished by parsing links from the HTML that is returned when performing a HTTP GET request against a specified URL. The ability to browse a media server allows users to access files without having to remember a fully qualified URL.


# # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # import sys from typing import Callable, List, Optional, TYPE_CHECKING, overload, Dict, Union, cast, Tuple from py4j.java_gateway import JavaObject from pyspark.sql.column import Column, _to_seq from pyspark.sql.session import SparkSession from pyspark.sql.dataframe import DataFrame from pyspark.sql.pandas.group_ops import PandasGroupedOpsMixin if TYPE_CHECKING: from pyspark.sql._typing import LiteralType __all__ = ["GroupedData"] def dfapi(f: Callable) -> Callable: def _api(self: "GroupedData") -> DataFrame: name = f.__name__ jdf = getattr(self._jgd, name)() return DataFrame(jdf, self.session) _api.__name__ = f.__name__ _api.__doc__ = f.__doc__ return _api def df_varargs_api(f: Callable) -> Callable: def _api(self: "GroupedData", *cols: str) -> DataFrame: name = f.__name__ jdf = getattr(self._jgd, name)(_to_seq(self.session._sc, cols)) return DataFrame(jdf, self.session) _api.__name__ = f.__name__ _api.__doc__ = f.__doc__ return _api [docs]class GroupedData(PandasGroupedOpsMixin): """ A set of methods for aggregations on a :class:`DataFrame`, created by :func:`DataFrame.groupBy`. .. versionadded:: 1.3.0 .. versionchanged:: 3.4.0 Supports Spark Connect. """ def __init__(self, jgd: JavaObject, df: DataFrame): self._jgd = jgd self._df = df self.session: SparkSession = df.sparkSession @overload def agg(self, *exprs: Column) -> DataFrame: ... @overload def agg(self, __exprs: Dict[str, str]) -> DataFrame: ... [docs] def agg(self, *exprs: Union[Column, Dict[str, str]]) -> DataFrame: """Compute aggregates and returns the result as a :class:`DataFrame`. The available aggregate functions can be: 1. built-in aggregation functions, such as `avg`, `max`, `min`, `sum`, `count` 2. group aggregate pandas UDFs, created with :func:`pyspark.sql.functions.pandas_udf` .. note:: There is no partial aggregation with group aggregate UDFs, i.e., a full shuffle is required. Also, all the data of a group will be loaded into memory, so the user should be aware of the potential OOM risk if data is skewed and certain groups are too large to fit in memory. .. seealso:: :func:`pyspark.sql.functions.pandas_udf` If ``exprs`` is a single :class:`dict` mapping from string to string, then the key is the column to perform aggregation on, and the value is the aggregate function. Alternatively, ``exprs`` can also be a list of aggregate :class:`Column` expressions. .. versionadded:: 1.3.0 .. versionchanged:: 3.4.0 Supports Spark Connect. Parameters ---------- exprs : dict a dict mapping from column name (string) to aggregate functions (string), or a list of :class:`Column`. Notes ----- Built-in aggregation functions and group aggregate pandas UDFs cannot be mixed in a single call to this function. Examples -------- >>> from pyspark.sql import functions as F >>> from pyspark.sql.functions import pandas_udf, PandasUDFType >>> df = spark.createDataFrame( ... [(2, "Alice"), (3, "Alice"), (5, "Bob"), (10, "Bob")], ["age", "name"]) >>> df.show() +---+-----+ |age| name| +---+-----+ | 2|Alice| | 3|Alice| | 5| Bob| | 10| Bob| +---+-----+ Group-by name, and count each group. >>> df.groupBy(df.name).agg({"*": "count"}).sort("name").show() +-----+--------+ | name|count(1)| +-----+--------+ |Alice| 2| | Bob| 2| +-----+--------+ Group-by name, and calculate the minimum age. >>> df.groupBy(df.name).agg(F.min(df.age)).sort("name").show() +-----+--------+ | name|min(age)| +-----+--------+ |Alice| 2| | Bob| 5| +-----+--------+ Same as above but uses pandas UDF. >>> @pandas_udf('int', PandasUDFType.GROUPED_AGG) # doctest: +SKIP ... def min_udf(v): ... return v.min() ... >>> df.groupBy(df.name).agg(min_udf(df.age)).sort("name").show() # doctest: +SKIP +-----+------------+ | name|min_udf(age)| +-----+------------+ |Alice| 2| | Bob| 5| +-----+------------+ """ assert exprs, "exprs should not be empty" if len(exprs) == 1 and isinstance(exprs[0], dict): jdf = self._jgd.agg(exprs[0]) else: # Columns assert all(isinstance(c, Column) for c in exprs), "all exprs should be Column" exprs = cast(Tuple[Column, ...], exprs) jdf = self._jgd.agg(exprs[0]._jc, _to_seq(self.session._sc, [c._jc for c in exprs[1:]])) return DataFrame(jdf, self.session) [docs] @dfapi def count(self) -> DataFrame: """Counts the number of records for each group. .. versionadded:: 1.3.0 .. versionchanged:: 3.4.0 Supports Spark Connect. Examples -------- >>> df = spark.createDataFrame( ... [(2, "Alice"), (3, "Alice"), (5, "Bob"), (10, "Bob")], ["age", "name"]) >>> df.show() +---+-----+ |age| name| +---+-----+ | 2|Alice| | 3|Alice| | 5| Bob| | 10| Bob| +---+-----+ Group-by name, and count each group. >>> df.groupBy(df.name).count().sort("name").show() +-----+-----+ | name|count| +-----+-----+ |Alice| 2| | Bob| 2| +-----+-----+ """ [docs] @df_varargs_api def mean(self, *cols: str) -> DataFrame: """Computes average values for each numeric columns for each group. :func:`mean` is an alias for :func:`avg`. .. versionadded:: 1.3.0 .. versionchanged:: 3.4.0 Supports Spark Connect. Parameters ---------- cols : str column names. Non-numeric columns are ignored. """ [docs] @df_varargs_api def avg(self, *cols: str) -> DataFrame: """Computes average values for each numeric columns for each group. :func:`mean` is an alias for :func:`avg`. .. versionadded:: 1.3.0 .. versionchanged:: 3.4.0 Supports Spark Connect. Parameters ---------- cols : str column names. Non-numeric columns are ignored. Examples -------- >>> df = spark.createDataFrame([ ... (2, "Alice", 80), (3, "Alice", 100), ... (5, "Bob", 120), (10, "Bob", 140)], ["age", "name", "height"]) >>> df.show() +---+-----+------+ |age| name|height| +---+-----+------+ | 2|Alice| 80| | 3|Alice| 100| | 5| Bob| 120| | 10| Bob| 140| +---+-----+------+ Group-by name, and calculate the mean of the age in each group. >>> df.groupBy("name").avg('age').sort("name").show() +-----+--------+ | name|avg(age)| +-----+--------+ |Alice| 2.5| | Bob| 7.5| +-----+--------+ Calculate the mean of the age and height in all data. >>> df.groupBy().avg('age', 'height').show() +--------+-----------+ |avg(age)|avg(height)| +--------+-----------+ | 5.0| 110.0| +--------+-----------+ """ [docs] @df_varargs_api def max(self, *cols: str) -> DataFrame: """Computes the max value for each numeric columns for each group. .. versionadded:: 1.3.0 .. versionchanged:: 3.4.0 Supports Spark Connect. Examples -------- >>> df = spark.createDataFrame([ ... (2, "Alice", 80), (3, "Alice", 100), ... (5, "Bob", 120), (10, "Bob", 140)], ["age", "name", "height"]) >>> df.show() +---+-----+------+ |age| name|height| +---+-----+------+ | 2|Alice| 80| | 3|Alice| 100| | 5| Bob| 120| | 10| Bob| 140| +---+-----+------+ Group-by name, and calculate the max of the age in each group. >>> df.groupBy("name").max("age").sort("name").show() +-----+--------+ | name|max(age)| +-----+--------+ |Alice| 3| | Bob| 10| +-----+--------+ Calculate the max of the age and height in all data. >>> df.groupBy().max("age", "height").show() +--------+-----------+ |max(age)|max(height)| +--------+-----------+ | 10| 140| +--------+-----------+ """ [docs] @df_varargs_api def min(self, *cols: str) -> DataFrame: """Computes the min value for each numeric column for each group. .. versionadded:: 1.3.0 .. versionchanged:: 3.4.0 Supports Spark Connect. Parameters ---------- cols : str column names. Non-numeric columns are ignored. Examples -------- >>> df = spark.createDataFrame([ ... (2, "Alice", 80), (3, "Alice", 100), ... (5, "Bob", 120), (10, "Bob", 140)], ["age", "name", "height"]) >>> df.show() +---+-----+------+ |age| name|height| +---+-----+------+ | 2|Alice| 80| | 3|Alice| 100| | 5| Bob| 120| | 10| Bob| 140| +---+-----+------+ Group-by name, and calculate the min of the age in each group. >>> df.groupBy("name").min("age").sort("name").show() +-----+--------+ | name|min(age)| +-----+--------+ |Alice| 2| | Bob| 5| +-----+--------+ Calculate the min of the age and height in all data. >>> df.groupBy().min("age", "height").show() +--------+-----------+ |min(age)|min(height)| +--------+-----------+ | 2| 80| +--------+-----------+ """ [docs] @df_varargs_api def sum(self, *cols: str) -> DataFrame: """Computes the sum for each numeric columns for each group. .. versionadded:: 1.3.0 .. versionchanged:: 3.4.0 Supports Spark Connect. Parameters ---------- cols : str column names. Non-numeric columns are ignored. Examples -------- >>> df = spark.createDataFrame([ ... (2, "Alice", 80), (3, "Alice", 100), ... (5, "Bob", 120), (10, "Bob", 140)], ["age", "name", "height"]) >>> df.show() +---+-----+------+ |age| name|height| +---+-----+------+ | 2|Alice| 80| | 3|Alice| 100| | 5| Bob| 120| | 10| Bob| 140| +---+-----+------+ Group-by name, and calculate the sum of the age in each group. >>> df.groupBy("name").sum("age").sort("name").show() +-----+--------+ | name|sum(age)| +-----+--------+ |Alice| 5| | Bob| 15| +-----+--------+ Calculate the sum of the age and height in all data. >>> df.groupBy().sum("age", "height").show() +--------+-----------+ |sum(age)|sum(height)| +--------+-----------+ | 20| 440| +--------+-----------+ """ # TODO(SPARK-41746): SparkSession.createDataFrame does not support nested datatypes [docs] def pivot(self, pivot_col: str, values: Optional[List["LiteralType"]] = None) -> "GroupedData": """ Pivots a column of the current :class:`DataFrame` and perform the specified aggregation. There are two versions of the pivot function: one that requires the caller to specify the list of distinct values to pivot on, and one that does not. The latter is more concise but less efficient, because Spark needs to first compute the list of distinct values internally. .. versionadded:: 1.6.0 .. versionchanged:: 3.4.0 Supports Spark Connect. Parameters ---------- pivot_col : str Name of the column to pivot. values : list, optional List of values that will be translated to columns in the output DataFrame. Examples -------- >>> from pyspark.sql import Row >>> df1 = spark.createDataFrame([ ... Row(course="dotNET", year=2012, earnings=10000), ... Row(course="Java", year=2012, earnings=20000), ... Row(course="dotNET", year=2012, earnings=5000), ... Row(course="dotNET", year=2013, earnings=48000), ... Row(course="Java", year=2013, earnings=30000), ... ]) >>> df1.show() +------+----+--------+ |course|year|earnings| +------+----+--------+ |dotNET|2012| 10000| | Java|2012| 20000| |dotNET|2012| 5000| |dotNET|2013| 48000| | Java|2013| 30000| +------+----+--------+ >>> df2 = spark.createDataFrame([ ... Row(training="expert", sales=Row(course="dotNET", year=2012, earnings=10000)), ... Row(training="junior", sales=Row(course="Java", year=2012, earnings=20000)), ... Row(training="expert", sales=Row(course="dotNET", year=2012, earnings=5000)), ... Row(training="junior", sales=Row(course="dotNET", year=2013, earnings=48000)), ... Row(training="expert", sales=Row(course="Java", year=2013, earnings=30000)), ... ]) # doctest: +SKIP >>> df2.show() # doctest: +SKIP +--------+--------------------+ |training| sales| +--------+--------------------+ | expert|{dotNET, 2012, 10...| | junior| {Java, 2012, 20000}| | expert|{dotNET, 2012, 5000}| | junior|{dotNET, 2013, 48...| | expert| {Java, 2013, 30000}| +--------+--------------------+ Compute the sum of earnings for each year by course with each course as a separate column >>> df1.groupBy("year").pivot("course", ["dotNET", "Java"]).sum("earnings").show() +----+------+-----+ |year|dotNET| Java| +----+------+-----+ |2012| 15000|20000| |2013| 48000|30000| +----+------+-----+ Or without specifying column values (less efficient) >>> df1.groupBy("year").pivot("course").sum("earnings").show() +----+-----+------+ |year| Java|dotNET| +----+-----+------+ |2012|20000| 15000| |2013|30000| 48000| +----+-----+------+ >>> df2.groupBy("sales.year").pivot("sales.course").sum("sales.earnings").show() ... # doctest: +SKIP +----+-----+------+ |year| Java|dotNET| +----+-----+------+ |2012|20000| 15000| |2013|30000| 48000| +----+-----+------+ """ if values is None: jgd = self._jgd.pivot(pivot_col) else: jgd = self._jgd.pivot(pivot_col, values) return GroupedData(jgd, self._df) def _test() -> None: import doctest from pyspark.sql import SparkSession import pyspark.sql.group globs = pyspark.sql.group.__dict__.copy() spark = SparkSession.builder.master("local[4]").appName("sql.group tests").getOrCreate() globs["spark"] = spark (failure_count, test_count) = doctest.testmod( pyspark.sql.group, globs=globs, optionflags=doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE | doctest.REPORT_NDIFF, ) spark.stop() if failure_count: sys.exit(-1) if __name__ == "__main__": _test()


Microsoft to offer bounty on hackers
Here. "Microsoft will announce on Wednesday that it will offer two $250,000 bounties for information leading to the arrest of the people who released the MSBlast worm and the SoBig virus, CNET News.com has learned."
Holy cow! Did Microsoft just create a new profession: the cyber bounty hunter?!?


fastify-nats-client
Fastify Plugin to use NATS Server to exchange messages via queues etc.
Under the hood nats.js library is used;
the plugin has some options (to set in the register
),
some will be sent to the nats library for connection details etc.
Usage
Add it to you project with register
and you are done!
You can access the nats Connection via fastify.nc
.
Note that even the NATS library is exposed at fastify.NATS
but only
as a convenience (to avoid refer to it directly as a Node.js library).
const fastify = require('fastify')
// register the plugin with some options, for example:
fastify.register(require('fastify-nats-client'), {
natsOptions: { servers: 'nats://demo.nats.io:4222' }
})
fastify.listen({ port: 3000, host: 'localhost' }, (err, address) => {
if (err) throw err
console.log(`server listening on ${address}`)
})
and later
// get some NATS-related facilities
const nc = fastify.nc // get the NATS Connection with servers
const sc = fastify.NATS.StringCodec() // codec for a string message
const jc = fastify.NATS.JSONCodec() // codec for a JSON string message
// const subject = fastify.NATS.createInbox() // sample queue name
// publish/subscribe, example
nc.publish(queueName, sc.encode(msg)) // simple publisher for a string message
nc.publish(queueName, jc.encode(obj)) // simple publisher for a JSON message
nc.subscribe( ... ) // use an async iterator or a callback
// etc ...
In the example folder there is a simple server scripts that uses the plugin (inline but it's the same using it from npm registry).
As you can see, the NATS.js library is complex and with a lot of features, please refer to its documentation and sources for more info and examples.
Requirements
Fastify ^4.0.1 , Node.js 14 LTS (14.15.0) or later.
Note that plugin releases 3.x are for Fastify 3.x, 4.x are for Fastify 4.x, etc.
Sources
Source code is all inside main repo: fastify-nats-client.
Documentation generated from source code (library API): here.
Note
All the code here is based on the work done initially by its original author (mahmed8003 mahmed8003@gmail.com), in the upstream repository fastify-nats, under the MIT license.
The plugin decorate Fastify and expose some functions:
NATS
, a reference to the NATS library, but only as a conveniencenc
, the NATS Connection to use; even if a little criptic, I used those names to better align with NATS.js sources and examples
Some plugin options are sent directly to NATS.js - NATS-io - GitHub library, like:
natsOptions
, general connetion options for the NATS Server, see Changed configuration properties - NATS.js while others are only used inside the plugin, to configure its behavior, like:drainOnClose
, flag (by default false) to enable the drain of last data from the NATS connection when the plugin has to closeenableDefaultNATSServer
, flag (by default false) to enable connections to public NATS Demo Server (so if a NATS server is not specified and this flag is disabled an Error will be raised), useful for a fast start on tests and examples; default setting is to avoid connections to that (external and public) server, for example by plugin configuration mistake
all plugin options are optional and have a default value set in the plugin.
Default NATS Server in the plugin is set to the public demo NATS Server
nats://demo.nats.io:4222
, to be able to do a quick start;
anyway note that in some cases it could not be reachable
(for example by corporate firewall rules), so even plugin tests could fail
in that case.
To perform some local tests, it's possible to use a NATS Server Docker image from
standard image NATS - DockerHub;
for convenience, they are defined in package.json
like docker:nats:start
and the same for log|process|stop
etc.
License
Licensed under Apache-2.0.


◄ France ►
Individual results
| Year | Contestant | Rank | Award |
|---|---|---|---|
| 2023 | Hannah Faucheu | 96 | Silver Medal |
| 2023 | Mathurin Rouan | 98 | Silver Medal |
| 2023 | Mounir Lbath | 103 | Silver Medal |
| 2023 | Adeline Leclerc | 188 | Bronze Medal |
| 2023 | Louis Fréchette | 205 | Bronze Medal |
| 2022 | Maher Billon | 55 | Silver Medal |
| 2022 | Justin Cahuzac | 100 | Silver Medal |
| 2022 | Florine Masson | 107 | Silver Medal |
| 2022 | Hubert Leroux | 113 | Bronze Medal |
| 2022 | Yuna Gouin | 230 | Honourable Mention |
| 2021 | Matthieu Weickmans | 22 | Gold Medal |
| 2021 | Benoît Fanton | 32 | Gold Medal |
| 2021 | Alexandre Fouquet | 101 | Silver Medal |
| 2021 | Maximilien Bonneau | 205 | Honourable Mention |
| 2021 | Alexandre Prats | 233 | Honourable Mention |
| 2019 | Fabien Roger | 84 | Silver Medal |
| 2019 | Samuel Aimé Vivien | 98 | Silver Medal |
| 2019 | Alexandre Polo | 103 | Bronze Medal |
| 2019 | Victor Nicolas Lequin | 105 | Bronze Medal |
| 2019 | Nathan Emile Roger Gasc | 173 | Bronze Medal |
| 2018 | Sutter Adrien | 35 | Gold Medal |
| 2018 | Grammatica Giulio | 94 | Silver Medal |
| 2018 | Guès Nicolas | 103 | Silver Medal |
| 2018 | Lamouret Quentin | 103 | Silver Medal |
| 2018 | Rovel Paul | 106 | Silver Medal |
| 2017 | Thomas Sepulchre | ≥1 | Gold Medal |
| 2017 | Hilaire Bizalion | ≥65 | Silver Medal |
| 2017 | de Rolland | ≥137 | Bronze Medal |
| 2017 | Nathan Doumèche | ≥137 | Bronze Medal |
| 2017 | Augustin Desombre | ≥239 | Honourable Mention |
| 2016 | Matthieu Rykner | 96 | Silver Medal |
| 2016 | Charles Madeline-Derou | 112 | Silver Medal |
| 2016 | Louis Benoist-Lucy | 124 | Bronze Medal |
| 2016 | Jean-Guillaume Cojan | 169 | Bronze Medal |
| 2016 | Thibault Langlais | 194 | Bronze Medal |
| 2015 | Marine Schimel | 88 | Silver Medal |
| 2015 | Paul Emmanuel Robin | 102 | Silver Medal |
| 2015 | Pierre Richard Samir Côte De Soux | 107 | Bronze Medal |
| 2015 | Moïse Jean-Baptiste Blanchard | 121 | Bronze Medal |
| 2015 | Hugues Déprés | 167 | Bronze Medal |
| 2014 | Florentin Jaffredo | 74 | Silver Medal |
| 2014 | Nicolas Romeo | 89 | Silver Medal |
| 2014 | Cyril Letrouit | 112 | Silver Medal |
| 2014 | Ariane Gayout | 246 | Honourable Mention |
| 2014 | Blanka Balogh | 291 | |
| 2013 | Jean Douçot | 52 | Silver Medal |
| 2013 | Sébastien Chevaleyre | 66 | Silver Medal |
| 2013 | Matthieu De Rochemonteix | 69 | Silver Medal |
| 2013 | Anatole Gosset | 76 | Silver Medal |
| 2013 | Cédric Viry | 87 | Silver Medal |
| 2012 | Theodor Misiakiewicz | 59 | Silver Medal |
| 2012 | Jonathan Dong | 84 | Silver Medal |
| 2012 | Jean Douçot | 99 | Silver Medal |
| 2012 | Paul Kirchner | 110 | Silver Medal |
| 2012 | Simon Pirmet | 138 | Bronze Medal |
| 2011 | Thomas Budzinski | 18 | Gold Medal |
| 2011 | Victor Godet | 75 | Silver Medal |
| 2011 | Amine Marrakchi | 111 | Silver Medal |
| 2011 | Simon Matet | 173 | Bronze Medal |
| 2011 | Alexandre Leonardi | 187 | Bronze Medal |
| 2010 | Ambroise Marigot | 56 | Silver Medal |
| 2010 | Elie Gouzien | 58 | Silver Medal |
| 2010 | Abel Lacabanne | 87 | Silver Medal |
| 2010 | Benoît Cadorel | 131 | Bronze Medal |
| 2010 | Sophie Marbach | 140 | Bronze Medal |
| 2009 | Bousseau Pierrick | 48 | Silver Medal |
| 2009 | Iooss Nicolas | 78 | Silver Medal |
| 2009 | Rabault Jean | 79 | Silver Medal |
| 2009 | Loisel Benoît | 140 | Bronze Medal |
| 2009 | Le Mouel Charlotte | 167 | Bronze Medal |
| 2008 | Yannick Bonthonneau | 47 | Silver Medal |
| 2008 | Arthur Lacoste | 54 | Silver Medal |
| 2008 | Frédéric Marbach | 63 | Silver Medal |
| 2008 | Emmanuel Schaan | 64 | Silver Medal |
| 2008 | Jean-baptiste Delalande | 113 | Bronze Medal |
| 2007 | Bruno Le Floch | 34 | Gold Medal |
| 2007 | Guilhem Boeris | 43 | Silver Medal |
| 2007 | Maxime Gerardin | 55 | Silver Medal |
| 2007 | Ilia Smilga | 56 | Silver Medal |
| 2007 | Martin Farlotti | 93 | Bronze Medal |
| 2006 | Suzanne Lanery | 38 | Silver Medal |
| 2006 | Igor Kortchemski | 76 | Silver Medal |
| 2006 | Arthur Stril | 119 | Bronze Medal |
| 2006 | Piatecki Swann | 131 | Bronze Medal |
| 2006 | Florian Kahn | 161 | Bronze Medal |
| 2005 | Philippe Bouafia | 111 | Bronze Medal |
| 2005 | Martin David | 112 | Bronze Medal |
| 2005 | Thibaut Kirchner | 123 | Bronze Medal |
| 2005 | Antony Lee | 124 | Bronze Medal |
| 2005 | Thomas Metivier | 131 | Bronze Medal |
| 1983 | Jean-Michel Courty | 17 | Bronze Medal |
| 1983 | Michel Arboi | 44 | Honourable Mention |
| 1983 | Guillaume Aubin | 46 | Honourable Mention |
| 1983 | Jean Louis Dufour | 47 | Honourable Mention |
| 1982 | Benjamin Enriquez | 18 | Silver Medal |
| 1982 | Jean François Burnol | 23 | Silver Medal |
| 1982 | Marc Simon | 50 | Bronze Medal |
| 1982 | Yves Chateau | 62 | Honourable Mention |
| 1982 | Bruno Rostand | 64 | Honourable Mention |
| 1981 | Jean-François Puget | 8 | Silver Medal |
| 1981 | Philipe Rostand | 47 | Honourable Mention |
| 1981 | Marc Battyani | 49 | Honourable Mention |
| 1981 | Jean-Louis Barrat | 52 | Honourable Mention |
| 1977 | Fabrice Pardo | 4 | Gold Medal |
| 1977 | Alain Parisot | 26 | Bronze Medal |
| 1977 | Jean Louis Jérome | 32 | Bronze Medal |
| 1977 | Olivier Abillon | 34 | Bronze Medal |
| 1977 | François Boisson | 42 | Honourable Mention |
| 1976 | Alain Poirson | ≥2 | Gold Medal |
| 1976 | Jean-Marc Luck-Laverne | ≥15 | Bronze Medal |
| 1976 | Minh Son Nguyen | ≥27 | Honourable Mention |
| 1976 | Jean-Marc Victor | ≥27 | Honourable Mention |
| 1975 | Dominique Delande | ≥8 | Silver Medal |
| 1975 | Pierre-Michel Delpeuch | ≥17 | Bronze Medal |
| 1975 | Renè Godefrey | ≥17 | Bronze Medal |
| 1975 | Didier Mayou | ≥29 | Honourable Mention |
| 1975 | Réne Moine | ≥29 | Honourable Mention |
| 1972 | Serge Bouc | 3 | Silver Medal |
| 1972 | Michel Poirier | 8 | Bronze Medal |
| 1972 | François Bacchus | 27 | Honourable Mention |
Results may be incomplete or incorrect.
Please send the relevant information to the webmaster:
<EMAIL_ADDRESS>If you are a participant you can send a personal page URL to be attached to your name.
If you are a participant you can send a personal page URL to be attached to your name.


My name is Tiffany Sandoval, I'm a studnt at cultivating coders class. I would to take this time to talk a little about me. First of all I'm a single parent, although it doesn't sound scary when I say in my head. sometime's I still feel like that single girl who has so much ambustion in life.
Although, it's hard to image how hard it was to come this far in my event and the sirese of my life or should I say our lives.To make a long story short I always wantded to own my own bakery,restruant, bascilly I just wanted to own my own place and someone to grow with and have a family. Well most likely that ended up the oppsite way in that order. So,what I'm try to say life is so unpredicable.
If I have a kid I'll surely tell them that him/her...but wait I already do have a child and I do tell her everyday.  My erra of a single girl is left behind for a while, and now I start my new life chapter.
And in so taking this class is actually help in way I could never imagion. Now I could help other companies with their websites and adverising but that was my second dream to have my very own web desgin company. Meeting my classmates was also one of amazing life exprience for me, because I like waking up every morning having adult conversations with them. I guess you can say, they are my coffee of the day.
Well from our first web desgin that we started in our class was what are five thing's you could not live with out.Well here they are...
5 things I can't live without.
My daughter
Coffee
My family
Cell Phone
Optimus Prime


On 28 March 2019, 10 new articles were published in 9 journals.
Claims-Making, Child Saving, and the News Media
Introduction: Studying Political Violence While Indicted – Against Objectivity and Detachment
Mental Health Treatment Among Older Adults With Mental Illness on Parole Or Probation
Street Egohood: An Alternative Perspective of Measuring Neighborhood and Spatial Patterns of Crime
‘they Wanna Be Us’; Pcso Performances, Uniforms, and Struggles For Acceptance.
Note: although this article was published on 20 March 2019, the publisher only added it to the journal RSS feed on 28 March 2019, which is why it is shown in the list of articles for that date.
Risk and Protective Factors of Delinquency That Are Sensitive to Migration and Culture
Note: although this article was published on 20 March 2019, the publisher only added it to the journal RSS feed on 28 March 2019, which is why it is shown in the list of articles for that date.
Book Review: Jeffrey Lane, the Digital Street
A Tale of Two Confucian Capitals: the Role of Friends and Secrecy in Beijing and Seoul


AW ENTERPRISE
.


You find the DFDs of this dataset in the following table. It shows some properties about their popularity and size of the models. Column Source
links directly to the corresponding repository on GitHub. If you click on the name of an entry, you will be referred to the model and all artifacts.
Please select a model in column Name


Mourinho rules out move for Ibrahimovic as Spurs have 'the best striker in England'
The Swedish frontman has worked with the new Tottenham manager a couple of times and is a free agent after leaving LA Galaxy.
by The42 TeamJOSE MOURINHO HAS ruled out a move for Zlatan Ibrahimovic because he has the “best striker in England” at his disposal in Harry Kane.
Ibrahimovic has been linked with a move to the north London club after Mourinho was swiftly announced as Mauricio Pochettino’s replacement last week.
The pair briefly worked together at Inter during the 2008-09 season before linking up again at Manchester United in 2016.
Speaking ahead of his first Champions League game in charge of Spurs against Olympiacos on Tuesday, Mourinho poured cold water on suggestions he could swoop for the 38-year-old free agent.
“I have more than a connection [with Ibrahimovic],” he said. “He’s an amazing player, amazing guy, but I would say no chance.
We have the best striker in England. We have one of the top two or three strikers in the world.
“A striker of Zlatan’s dimension…obviously in his late 30s but still a striker that can play at any club in the world.
“[But] it doesn’t make sense to sign him when we have Harry Kane.”
Tottenham confirmed Ben Davies is unavailable for Tuesday’s game after sustaining an ankle injury against West Ham at the weekend, but Tanguy Ndombele and Jan Vertonghen both took part in training on Monday.
Spurs are five points behind Group B leaders Bayern Munich but will qualify for the last 16 if they overcome their Greek opponents at the Tottenham Hotspur Stadium.


A home page or a start page is the initial or main web page of a website or a browser. The initial page of a website is sometimes called main page as well.
The about us page is commonly used by all types of businesses to give customers more insight into who is involved with a given business and exactly what it does.
A contact page is a standard web page on a website used to allow the visitor to contact the website owner or people who are responsible for the maintenance of the site.


--- layout: session academic: true title: "Communication and Knowledge Transfer in OSM" code: "R3BAWM" speaker_names_with_affiliations: ['Hanna Krüger'] extra_tags: room: "Großer Hörsaal" length: "00:20" time: "Saturday, 14:30" recording: True ---
Creating a world map with as much detail as possible requires a lot of communication at local and international level. There must be a place to discuss local mapping details and to organize mapping and hacking events. Additionally, a lot of international communication is needed in international OSM projects as well as in the OSMF and the Working Groups. Plus users and software developers also have their own discussion and documentation channels.
For this purpose a lot of tools and platforms are established in OSM: Mailing lists, forums, wikis, websites, social media, etc.
This variety of communication media is important and makes OpenStreetMap the colorful, open and diverse project it is today. But it also complicates the search on a particular topic and raises a number of questions: Where do I have to search to get up-to-date information? How can you distinguish between proposals, current and outdated content? What do you do if many sources contradict each other? How can knowledge best be passed on to subsequent OSM generations?
This talk is intended to overview various communication platforms and their relevance and reach at local and international level. In addition, the advantages and disadvantages of the current strategy for communication and knowledge transfer will be discussed.


IvanOS Log Debugger
Status:
Connected
Disconnected
Open developer console to see logs.
Commands:
command
description
osl.snapshot()
list of currently available logs
console.clear()
Clear console


APSVASTAdBreak
Objective-C
@interface APSVASTAdBreak : APSMediaEvent <NSCopying, APSMediaTrackableObject>
Swift
class APSVASTAdBreak : APSMediaEvent, NSCopying, APSMediaTrackableObject
An APSVASTAdBreak
object defines an ad break for which the builder plugin will try to generate APSMediaUnit
s and insert them into the playlist.
-
An array of
NSString
objects indicating the VAST URLs that will be called in order to populate the ad break with ads.Declaration
Objective-C
@property (nonatomic) NSArray<NSString *> *_Nonnull sources;
Swift
var sources: [String] { get set }
-
The ad break type. Specifies how the rezulting
APSMediaUnit
s andAPSMediaOverlay
s need to be placed relative to the main content units. SeeAPSVASTConfigurationOptions
for more details about the possible values.Declaration
Objective-C
@property (nonatomic) APSVASTAdBreakType type;
Swift
var type: APSVASTAdBreakType { get set }
-
The number of ads in this adBreak
Declaration
Objective-C
@property (nonatomic, readonly) NSInteger adCount;
Swift
var adCount: Int { get }
-
An identifier used to correlate a chain of ad requests from the origination (supply) end.
Declaration
Objective-C
@property (nonatomic, readonly) NSString *_Nullable transactionId;
Swift
var transactionId: String? { get }
-
The Apple IDFA or similar ad identifier
Declaration
Objective-C
@property (nonatomic, readonly) NSString *_Nullable advertisingIdentifier;
Swift
var advertisingIdentifier: String? { get }
-
The source of the IFA See https://iabtechlab.com/wp-content/uploads/2018/12/OTT-IFA-guidelines.final_Dec2018.pdf for possible values
Declaration
Objective-C
@property (nonatomic, readonly) NSString *_Nullable advertisingIdentifierType;
Swift
var advertisingIdentifierType: String? { get }
-
Whether to limit ad tracking or not
Declaration
Objective-C
@property (readonly) BOOL isAdTrackingLimited;
Swift
var isAdTrackingLimited: Bool { get }
-
GPS location coordinates in format
lat,lon
Declaration
Objective-C
@property (nonatomic, readonly) NSString *_Nullable locationCoordinates;
Swift
var locationCoordinates: String? { get }
-
A string format that defines when midrolls and nonlinear ads should be inserted mid-unit for each content unit.
The expected format for this property is: “seconds” or “percentage%”.
Declaration
Objective-C
@property (nonatomic) NSString *_Nullable adOffset;
Swift
var adOffset: String? { get set }
-
Defines the time interval in seconds after which the ad break will be repeated.
Declaration
Objective-C
@property (nonatomic) NSTimeInterval repeatAfter;
Swift
var repeatAfter: TimeInterval { get set }
-
The user agent that should be used when making HTTP requests.
Declaration
Objective-C
@property (nonatomic) NSString *_Nullable userAgent;
Swift
var userAgent: String? { get set }
-
Delegate object
Declaration
Objective-C
@property (nonatomic, weak) id<APSVASTAdBreakDelegate> _Nullable delegate;
Swift
weak var delegate: APSVASTAdBreakDelegate? { get set }
-
Configure an AdBreak from a dictionary structure.
Declaration
Objective-C
- (void)configureFromDictionary:(NSDictionary *_Nonnull)configuration;
Swift
func configure(from configuration: [AnyHashable : Any])
Parameters
configuration
Configuration dictionary.
-
Specifies how the controls bar will be displayed on top of video ads.
See
APSMediaControlsDisplay
for more details. Defaults toAPSMediaControlsDisplayNone
.Declaration
Objective-C
@property (nonatomic) APSMediaControlsDisplay controlsDisplayForAds;
Swift
var controlsDisplayForAds: APSMediaControlsDisplay { get set }
-
The configuration for the controls bar overlay on top of video ads.
See [APSMediaUnit controlsParameters] for details on creating this dictionary.
Declaration
Objective-C
@property (nonatomic) NSDictionary *_Nullable controlsParametersForAds;
Swift
var controlsParametersForAds: [AnyHashable : Any]? { get set }
-
Icons are rendered to a height that’s proportional to the current player view height. This property defines the percentage of the current height to render ads to, while preserving the original aspect ration in calculating the rendered width.
Defaults to 10.
Declaration
Objective-C
@property (nonatomic) CGFloat defaultIconHeightPercentage;
Swift
var defaultIconHeightPercentage: CGFloat { get set }
-
The fade-in animation duration for displaying icons, in seconds.
Defaults to 0.5.
Declaration
Objective-C
@property (nonatomic) CGFloat iconFadeInDuration;
Swift
var iconFadeInDuration: CGFloat { get set }
-
Holds the configuration object for the skip button that appears on top of video ads.
Declaration
Objective-C
@property (nonatomic) APSVASTSkipButtonConfiguration *_Nonnull skipButtonConfiguration;
Swift
var skipButtonConfiguration: APSVASTSkipButtonConfiguration { get set }
-
Holds the configuration object for the fullscreen button that appears on top of video ads.
Declaration
Objective-C
@property (nonatomic) APSVASTFullscreenButtonConfiguration *_Nonnull fullscreenButtonConfiguration;
Swift
var fullscreenButtonConfiguration: APSVASTFullscreenButtonConfiguration { get set }
-
Holds the configuration object for the countdown overlay that appears on top of video ads.
Declaration
Objective-C
@property (nonatomic) APSVASTCountdownConfiguration *_Nullable countdownConfiguration;
Swift
var countdownConfiguration: APSVASTCountdownConfiguration? { get set }
-
Declaration
Objective-C
@property (nonatomic) APSVASTBannerConfiguration *_Nonnull bannerConfiguration;
Swift
var bannerConfiguration: APSVASTBannerConfiguration { get set }
-
Defines whether the break should allow more than one ad to be played, even if more ads are retrieved.
Declaration
Objective-C
@property (nonatomic) BOOL allowMultipleAds;
Swift
var allowMultipleAds: Bool { get set }
-
Defines whether VAST Wrappers should be followed for the given URL sources.
Declaration
Objective-C
@property (nonatomic) BOOL followWrappers;
Swift
var followWrappers: Bool { get set }
-
Defines the number of wrappers to be received with no Inline response.
Declaration
Objective-C
@property (nonatomic) NSInteger wrappersCountLimit;
Swift
var wrappersCountLimit: Int { get set }
-
The VMAP standard permits allowing only one ad from a certain ad source. This constant defines how the VAST builder plugin deals with situations when multiple valid ads are retrieved from a source that is disallowed to load several ads at one time.
See
APSResolvMultipleAdsConflictsBy
for possible values. Defaults toAPSResolvMultipleAdsConflictsBySelectingFirst
.Declaration
Objective-C
@property (nonatomic) APSResolvMultipleAdsConflictsBy multipleAdsConflictsPolicy;
Swift
var multipleAdsConflictsPolicy: APSResolvMultipleAdsConflictsBy { get set }
-
VAST 3.0 defines Ad Pods, with fallback mechanisms that allow loading an ad buffet of commercials to playback if the main ads fail. This value specifies how to treat backwards compatibility issues with VAST 2.0 and 1.0, by choosing what ads are promoted to the main Ad Pod if no valid Pods are detected.
See
APSAdPodFallback
for possible values. Defaults toAPSAdPodFallbackSelectAll
.Declaration
Objective-C
@property (nonatomic) APSAdPodFallback adPodFallbackStrategy;
Swift
var adPodFallbackStrategy: APSAdPodFallback { get set }
-
An array that defines the mime-types supported when choosing a media file from the VAST response.
Items are ordered from most preferred to least preferred. The default value for this property is
@[@"audio/mpeg", @"audio/mp3", @"audio/aac", @"audio/mp4", @"audio/flac", @"mobile/m3u8",@"application/x-mpegURL",@"application/vnd.apple.mpegURL",@"vnd.apple.mpegURL",@"video/m3u8",@"mobile/mp4",@"video/mp4"]
Declaration
Objective-C
@property (nonatomic) NSArray<NSString *> *_Nonnull prefferedVideoMimeTypes;
Swift
var prefferedVideoMimeTypes: [String] { get set }
-
List of desired ad categories. Encoded with IABN-N values as specified in the “Content Categories” list of AdCOM 1.0.
Declaration
Objective-C
@property (nonatomic) NSArray<NSString *> *_Nullable desiredAdCategories;
Swift
var desiredAdCategories: [String]? { get set }
-
A list of blocked ad categories from wrappers
Declaration
Objective-C
@property (nonatomic, readonly) NSArray<NSString *> *_Nullable blockedAdCategories;
Swift
var blockedAdCategories: [String]? { get }
-
The ad video clip scaling mode, relative to the player surface.
Defaults to
APSMovieScalingModeAspectFit
.Declaration
Objective-C
@property (nonatomic) APSMovieScalingMode scalingMode;
Swift
var scalingMode: APSMovieScalingMode { get set }
-
Defines if the pinch-to-fullscreen gesture should be activated for generated video ads.
Defaults to YES;
Declaration
Objective-C
@property (nonatomic) BOOL allowPinchToFullscreen;
Swift
var allowPinchToFullscreen: Bool { get set }
-
Defines the behavior of the player after a banner ad is tapped and the built-in web browser is dismissed.
Declaration
Objective-C
@property (nonatomic) APSWebviewDismissedAction afterBannerTapped;
Swift
var afterBannerTapped: APSWebviewDismissedAction { get set }
-
Defines the behavior of the player after a video ad is tapped and the built-in web browser is dismissed.
Declaration
Objective-C
@property (nonatomic) APSWebviewDismissedAction afterVideoAdTapped;
Swift
var afterVideoAdTapped: APSWebviewDismissedAction { get set }
-
Defines if the break should log debug information to the console.
Declaration
Objective-C
@property (nonatomic) BOOL debug;
Swift
var debug: Bool { get set }


Islamic State vows revenge against US for Baghdadi killing
by ReutersCAIRO: The militant Islamic State (IS) confirmed on Thursday that its leader Abu Bakr al-Baghdadi was killed in a weekend raid by US special forces in northwestern Syria, and vowed revenge against the United States.
The Iraqi rose from obscurity to lead the ultra-hardline group and declare himself “caliph” of all Muslims, holding sway over huge areas of Iraq and Syria from 2014-2017 before IS control disintegrated under US-led attacks.
The group confirmed his death in an audiotape posted online and said a successor, identified as Abu Ibrahim al-Hashemi al-Quraishi, had been appointed.
Aymenn al-Tamimi, a researcher at Swansea University focusing on IS, said the name was unknown but could refer to a leading figure in IS called Hajj Abdullah, whom the US State Department had identified as a possible successor.
A former senior figure in the rival militant group al Qaeda in Iraq, he is also known as Mohamed Said Abdelrahman al-Mawla.
Analysts have also named the Saudi Abu Abdullah al-Jizrawi and Abdullah Qaradash, an Iraqi and one of Baghdadi’s right-hand men, as potential successors along with the Tunisian Abu Othman al-Tunisi.
An IS spokesperson warned the United States in the tape to “beware vengeance (against) their nation and their brethren of infidels and apostates”.
Baghdadi’s death is likely to cause IS to splinter, leaving whoever emerges as its new leader with the task of pulling the group back together as a fighting force, according to analysts.
Whether the loss of its leader will in itself affect the group’s capabilities is open to debate. Even if it does face difficulties in the transition, the underlying ideology and the sectarian hatred it promoted remain attractive to many, analysts say.
Guerrilla attacks
Islamic State also confirmed the death of its spokesperson Abu al-Hassan al-Muhajir.
“I think they’re trying to send the message, ‘Don’t think you’ve destroyed the project just because you’ve killed Abu Bakr al-Baghdadi and the official spokesperson,” Tamimi said.
IS has resorted to guerrilla attacks since losing its last significant piece of territory in Syria in March.
Since Baghdadi’s death, it has posted dozens of claims of responsibility for attacks in Iraq, Syria, Afghanistan and elsewhere.
H A Hellyer, a senior associate fellow at the Carnegie Endowment for International Peace, said the group, also known as ISIS or Daesh, would have picked the name Quraishi for Baghdadi’s successor to suggest descent from the Prophet Mohammad’s tribe.
Baghdadi’s “caliph” name also ended in Quraishi.
“ISIS is trying to show its followers it respects that tradition, but Muslims more widely aren’t likely to care very much, considering the wide violations of the Islamic law that ISIS has clearly engaged with,” Hellyer added.
In his last purported audio message, released in September, Baghdadi said operations were taking place daily and urged freedom for women jailed in Iraq and Syria on suspicion of links to the group.
He also said the United States and its proxies had been defeated in Iraq and Afghanistan, and that the United States had been “dragged” into Mali and Niger.


About Scenario Dialog
This dialog shows basic information on the current scenario and its graphical tileset.
- The Scenario Title appears at the top. This title is also shown in the window caption of the Hexkit Game application.
- The Scenario Credits box shows the author, creation date, and copyright notice for the scenario file itself.
- The Graphics Credits box shows the author, creation date, and copyright notice for the graphical tileset used by the scenario.
- Below appears a read-only text box with a description of either the scenario or the graphical tileset, depending on the status of the Show Graphics/Scenario Information button.
- Show Graphics Information switches the text box to a description of the graphical tileset and changes the button label to “Show Scenario Information”.
- Show Scenario Information switches the text box to a description of the current scenario and changes the button label to “Show Graphics Information”.
- Choose OK or press Enter (unless the Show Graphics/Scenario Information button is selected) or Escape to dismiss the dialog. Closing the window using X (Close) or Alt+F4 has the same effect.
- Choose Help or press F1 to show this help page.
Remarks
All displayed information is supplied by the scenario author, i.e. the person(s) who created the XML file holding the scenario data. The subdirectory holding the graphical tileset used by the current scenario may contain additional information provided by the artist(s) who created the tileset. Such information will not appear in this dialog unless the scenario author decided to incorporate it in the scenario file itself.


Note Taker
Create
logout
Your notes
{{msg}}
✏
Title
Created
Last Opened
Remove / View
{% for row in notes %}
{% for col in row %}
{{ col }}
{% endfor %}
Remove
/
View
{% endfor %}


Murder investigation launched after man, 20, stabbed in Bournemouth
Police have launched a murder investigation after a man was stabbed to death in the centre of Bournemouth last night.
Emergency services were called at just after 10pm and found the victim, 20, had been repeatedly knifed several times in the chest.
He was taken to hospital where he died a short time later.
Officers arrested an 18-year-old man on suspicion of murder who is currently helping police with their enquiries.
Dorset Police said they have now launched an investigation and are appealing for anyone with information to contact them.
Detective chief inspector Richard Dixey said: ‘We are making extensive enquiries to establish the full circumstances of the incident.
Advertisement Advertisement
‘I am appealing for anyone who has witnessed the alleged assault and has not yet spoken to police to please come forward.’
Crime scene investigators are examining the scene while officers are also making house to house enquiries.
Anyone with information is asked to contact Dorset Police at http://www.dorset.police.uk, via email<EMAIL_ADDRESS>or by calling 101, quoting incident number 16:433.
Got a story for Metro.co.uk?
Get in touch with our news team by emailing us at<EMAIL_ADDRESS>For more stories like this, check our news page.


{% extends 'bootstrap/base.html' %} {% block styles %} {{ super() }} {% endblock %} {% block title %}My Top 10 Movies{% endblock %} {% block content %}
These are my all time favourite movies.
List Still Empty
"Loved it!"
Review section here. This is just a sample sentence.
{{ movie.ranking }}
"{{ movie.review }}"
{{ movie.description }}


All the stylesheets are contained within the less/
directory and WinLess should be used to export the final output to the root /
directory
The main CSS file that should be edited is style.less
and the structure is is set out neatly with guided comments
Base has a global default font size of 14px and a line-height of 22px (which is converted into rem
units for scalability and accessibility). This is applied to the <body>
and all paragraphs. In addition, (paragraphs) receive a bottom margin of half their line-height (11px by default).
 Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
— John Doe


[gecode-users] Memory Leak with NaryUnion/Region(?)
Jean-Noël Monette
jean-noel.monette at it.uu.se
Tue Mar 27 10:13:59 CEST 2012
Hi,
Thanks for your answer.
In the mean time, if I want to avoid this leak, is it ok to change the
constant "region_area_size" in "memory_config.hpp" to some larger value?
What would be downside of doing this? And if I do so, do I need to
recompile the whole gecode Library, or is it sufficient to recompile my
own model?
Thank you,
Jean-Noël Monette
On 03/26/2012 04:07 PM, Christian Schulte wrote:
> Hmm, thanks for the report. I might not fix that soon as the whole
> implementation for Region might change.
>
> Thanks a lot!
> Christian
>
> --
> Christian Schulte, www.ict.kth.se/~cschulte/
>
>
> -----Original Message-----
> From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
> Of Jean-Noël Monette
> Sent: Monday, March 26, 2012 1:53 PM
> To: users at gecode.org
> Subject: [gecode-users] Memory Leak with NaryUnion/Region(?)
>
> Hello,
>
> Sorry for bothering you again with the same class, namely NaryUnion...
> When running the next piece of code, within valgrind (memcheck), I get a
> report for a memory leak...
>
> #include "gecode/driver.hh"
> #include "gecode/iter.hh"
> using namespace Gecode;
> class MySpace:public Space {
> public:
> virtual Space* copy(bool share){return this;} }; int main(int argc,
> char* argv[]){
> MySpace home;
> Region region(home);
> for(int j=0;j<8;j++){
> Iter::Ranges::Empty e;
> Iter::Ranges::NaryUnion unio(region,e);
> }
> }
>
>
> The report is as follows:
>
>
> ==9213== HEAP SUMMARY:
> ==9213== in use at exit: 40 bytes in 1 blocks
> ==9213== total heap usage: 319 allocs, 318 frees, 94,497 bytes allocated
> ==9213==
> ==9213== 40 bytes in 1 blocks are definitely lost in loss record 1 of 1
> ==9213== at 0x4C28FAC: malloc (vg_replace_malloc.c:236)
> ==9213== by 0x6582629: Gecode::Region::heap_alloc(unsigned long)
> (heap.hpp:324)
> ==9213== by 0x40474F: main (region.hpp:306)
> ==9213==
> ==9213== LEAK SUMMARY:
> ==9213== definitely lost: 40 bytes in 1 blocks
> ==9213== indirectly lost: 0 bytes in 0 blocks
> ==9213== possibly lost: 0 bytes in 0 blocks
> ==9213== still reachable: 0 bytes in 0 blocks
> ==9213== suppressed: 0 bytes in 0 blocks
>
>
> The leak does not appear when looping only for 7 iterations instead of 8.
> This seems quite normal as the memory is allocated on the heap only when the
> region space is exhausted (according to MPG). I am using Gecode 3.7.1, gcc
> 4.5.2, Linux-Ubuntu 11.04 over a 64 bits architecture. Is it some kind of
> bug, or should I stop using NaryUnion once and for all?
>
> Thank you again for your help,
>
> Jean-Noël monette
>
>
> _______________________________________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users
>
>
More information about the users
mailing list


Update: Joan informed me this is no longer needed
closed
by None at 2021-07-06 12:14:47.labeled
by None at 2021-07-06 10:21:56.labeled
by None at 2021-07-06 10:23:51.labeled
by None at 2021-07-06 10:25:27.labeled
by None at 2021-07-06 10:27:30.closing in favor of #1478
closed
by None at 2021-07-06 10:28:25.closing in favor of #1478
closed
by None at 2021-07-06 10:30:33.closing in favor of #1478
closed
by None at 2021-07-06 10:34:07.closing in favor of #1478
closed
by None at 2021-07-06 10:33:50.closing in favor of #1478
closed
by None at 2021-07-06 10:34:35.closing in favor of #1478
closed
by None at 2021-07-06 10:35:03.Deletes are still timing out; see, e.g. from bibdata-alma-staging1:/tmp/incrementalreindex2021-07-06.log:
2021-07-06T07:23:58-04:00 WARN Delete timed out after 60.031427298 seconds. URL: http://lib-solr8-staging.princeton.edu:8983/s
olr/catalog-alma-staging/update?commit=true&wt=json :
referenced
by None at 2021-07-06 11:00:21.referenced
by None at 2021-07-06 11:04:46.labeled
by None at 2021-07-06 11:30:50.labeled
by Christina Chortaria at 2021-07-06 15:02:35.closed by #1468
closed
by Christina Chortaria at 2021-07-06 15:04:18.assigned
by Eliot Jordan at 2021-07-06 17:32:26.assigned
by Eliot Jordan at 2021-07-06 17:33:27.closed
by Eliot Jordan at 2021-07-06 22:04:58.renamed
by Eliot Jordan at 2021-07-06 22:14:53.Yes we can close it.
closed
by Christina Chortaria at 2021-07-06 22:41:10.@mzelesky I can't find a fixture to satisfy this condition https://github.com/pulibrary/bibdata/blob/97420778d2d92b0bbba7906d680cda0cae2adf49/spec/marc_to_solr/lib/config_spec.rb#L357-L359.
I also don't understand what does not-ceased_008
https://github.com/pulibrary/bibdata/blob/97420778d2d92b0bbba7906d680cda0cae2adf49/spec/marc_to_solr/lib/config_spec.rb#L298-L301 mean.
I can find 008-6 with c (no d) and the publication end date displays for both https://catalog-alma-qa.princeton.edu/catalog/997928443506421 https://catalog-alma-qa.princeton.edu/catalog/997608663506421/ .
It does not display for https://catalog-alma-qa.princeton.edu/catalog/997622433506421/.
Maybe you can help me to understand.
assigned
by Christina Chortaria at 2021-07-06 14:31:27.unassigned
by James R. Griffin III at 2021-07-06 14:31:30.mentioned
by None at 2021-07-06 22:57:00.subscribed
by None at 2021-07-06 22:57:00.closed
by Trey Pendragon at 2021-07-06 17:27:50.referenced
by Trey Pendragon at 2021-07-06 17:27:50.merged
by Trey Pendragon at 2021-07-06 17:27:50.closed
by Trey Pendragon at 2021-07-06 17:27:51.head_ref_deleted
by Trey Pendragon at 2021-07-06 17:27:51.closed
by Eliot Jordan at 2021-07-06 17:48:20.I'm gonna close this. No one seems to care.
closed
by Eliot Jordan at 2021-07-06 17:48:45.Dupe
closed
by Eliot Jordan at 2021-07-06 17:51:21.Added to mega ticket.
closed
by Eliot Jordan at 2021-07-06 17:56:05.Added to mega thread.
closed
by Eliot Jordan at 2021-07-06 18:15:01.Added to mega issue.
closed
by Eliot Jordan at 2021-07-06 18:18:47.Added to mega ticket.
closed
by Eliot Jordan at 2021-07-06 18:20:36.Added to mega ticket.
closed
by Eliot Jordan at 2021-07-06 18:20:40.Added to mega ticket.
closed
by Eliot Jordan at 2021-07-06 18:20:45.labeled
by Eliot Jordan at 2021-07-06 18:10:04.Added to mega ticket.
closed
by Eliot Jordan at 2021-07-06 18:29:22.Looks like this is done.
https://figgy.princeton.edu/catalog/27152fc8-e70d-4fbd-8d2f-250405b4548f
closed
by Eliot Jordan at 2021-07-06 21:38:24.labeled
by Eliot Jordan at 2021-07-06 18:13:08.Added to mega ticket
closed
by Eliot Jordan at 2021-07-06 21:40:12.moved_columns_in_project
by Eliot Jordan at 2021-07-06 21:40:13.deployed
by Trey Pendragon at 2021-07-06 13:06:36.referenced
by Kevin Reiss at 2021-07-06 13:44:24.merged
by Kevin Reiss at 2021-07-06 13:44:24.closed
by Kevin Reiss at 2021-07-06 13:44:24.head_ref_deleted
by Kevin Reiss at 2021-07-06 13:44:24.closed
by None at 2021-07-06 13:04:35.deployed
by Trey Pendragon at 2021-07-06 13:06:36.head_ref_deleted
by Kevin Reiss at 2021-07-06 13:44:25.unassigned
by Christina Chortaria at 2021-07-06 15:01:20.referenced
by Kevin Reiss at 2021-07-06 17:19:49.merged
by Kevin Reiss at 2021-07-06 17:19:49.closed
by Kevin Reiss at 2021-07-06 17:19:49.head_ref_deleted
by Kevin Reiss at 2021-07-06 17:19:50.closed
by Trey Pendragon at 2021-07-06 17:27:50.Coverage increased (+0.09%) to 96.826% when pulling 48fa9b25c59497052b7f9b7ca87d5c5ba5ae4b2d on alma into 45d9d4a0e88f5de912132a9e17fba44dc5753c2d on main.
deployed
by Trey Pendragon at 2021-07-06 17:51:32.6910125 is displaying the MVW manifest (you can tell by the ToC), and 6910128 is showing the viewer for just the volume.
One could argue this is correct?
Yes, this is a good setup, and the goal for this ticket was to get this behavior. I looked at the records again and now I see that the volume has 6910128 as the source metadata identifier, which is why it's displaying on the child volume.
Going forward, I think we are going to structure things differently and only create a (non-MVW) for ScannedResource for sammelbands, and use structure to represent the volumes/internal structure instead of creating volumes and separate digital objects for each one. So I think we'll need to update the query to see if Figgy has any objects to check the items bib, and also 773$w if that's present.
Host records are changing a bit in Alma, safe to take off the high priority label?
Yes, that makes sense — I've removed the high-priority
label. This ticket can be prioritized with all the other digital projects work later this year.
unlabeled
by Esmé Cowles at 2021-07-06 17:50:04.head_ref_force_pushed
by Hector Correa at 2021-07-06 20:28:03.I came across an example as well and had the question what is RCP -. https://catalog-alma-qa.princeton.edu/catalog/997622433506421/
This particular one doesn't work because it's pointed at Figgy-prod, which is pointed at bibdata-prod, whose equivalent ID isn't checked out for CDL (https://catalog.princeton.edu/catalog/408187)
VM is ready.
closed
by Francis Kayiwa at 2021-07-06 14:25:02.assigned
by Bess Sadler at 2021-07-06 15:22:13.review_requested
by Francis Kayiwa at 2021-07-06 12:44:45.labeled
by Kevin Reiss at 2021-07-06 19:18:07.head_ref_force_pushed
by Axa Mei Liauw at 2021-07-06 13:15:34.head_ref_force_pushed
by Axa Mei Liauw at 2021-07-06 13:26:12.ready_for_review
by Axa Mei Liauw at 2021-07-06 13:29:33.head_ref_force_pushed
by Axa Mei Liauw at 2021-07-06 13:38:30.review_requested
by Axa Mei Liauw at 2021-07-06 13:43:27.referenced
by Kevin Reiss at 2021-07-06 14:14:10.merged
by Kevin Reiss at 2021-07-06 14:14:10.closed
by Kevin Reiss at 2021-07-06 14:14:10.head_ref_deleted
by Kevin Reiss at 2021-07-06 14:14:10.renamed
by Hector Correa at 2021-07-06 18:36:33.closed
by None at 2021-07-06 13:16:15.referenced
by Kevin Reiss at 2021-07-06 13:16:27.merged
by Kevin Reiss at 2021-07-06 13:16:27.closed
by Kevin Reiss at 2021-07-06 13:16:27.closed
by None at 2021-07-06 13:17:23.closed
by Kevin Reiss at 2021-07-06 14:01:19.@carolyncole believe you fixed this one. Re-open if I'm wrong.
closed
by Kevin Reiss at 2021-07-06 14:33:13.mentioned
by None at 2021-07-06 14:33:13.subscribed
by None at 2021-07-06 14:33:13.Old architecture issue.
closed
by Kevin Reiss at 2021-07-06 14:34:41.Looks like this no longer an issue after updates to the availability service in bibdata since this was first noted.
labeled
by Kevin Reiss at 2021-07-06 14:01:58.closed
by Kevin Reiss at 2021-07-06 14:47:59.Thesis records from dspace look they are working well.
closed
by Kevin Reiss at 2021-07-06 14:54:34.@kevinreiss this PR is looking good. The code was in the correct order (se image below) I just rebased and added some tests.
base_ref_force_pushed
by None at 2021-07-06 15:03:09.head_ref_force_pushed
by None at 2021-07-06 15:07:16.head_ref_force_pushed
by None at 2021-07-06 15:20:58.head_ref_force_pushed
by None at 2021-07-06 15:54:33.mentioned
by Kevin Reiss at 2021-07-06 15:55:57.subscribed
by Kevin Reiss at 2021-07-06 15:55:57.referenced
by Kevin Reiss at 2021-07-06 16:05:06.merged
by Kevin Reiss at 2021-07-06 16:05:07.closed
by Kevin Reiss at 2021-07-06 16:05:07.assigned
by None at 2021-07-06 16:56:12.We've finished our Alma config of circ policies. This issue is still present. Something's off with the delivery location.
assigned
by None at 2021-07-06 16:57:09.The display is much better with datatables restored but there are still some oddities, in this record volume 360 should be at the top of the sort upon page load and vol 358 is. 360 is farther down on the page.
unassigned
by Shaun Ellis at 2021-07-06 16:58:31.referenced
by None at 2021-07-06 15:07:15.referenced
by None at 2021-07-06 15:20:57.referenced
by None at 2021-07-06 15:54:32.closed
by Kevin Reiss at 2021-07-06 17:22:55.closed
by Kevin Reiss at 2021-07-06 17:27:07.Closing.
closed
by Kevin Reiss at 2021-07-06 17:29:05.labeled
by Kevin Reiss at 2021-07-06 17:29:34.head_ref_force_pushed
by None at 2021-07-06 15:03:09.referenced
by Kevin Reiss at 2021-07-06 18:02:53.merged
by Kevin Reiss at 2021-07-06 18:02:53.closed
by Kevin Reiss at 2021-07-06 18:02:53.head_ref_deleted
by Kevin Reiss at 2021-07-06 18:02:57.Spoke with Peter B. about this we can change the current:
This item is not accessible to any patron. Library staff will work to try to get you access to a copy of the desired material.
to:
This item is temporarily not accessible as a result of our current system migration [link to https://library.princeton.edu/news/general/2021-08-02/pul-launch-new-library-system-summer-2021-hathitrust-etas-update]. Library staff will work to try to get you access to a copy of the desired material.
I think we need to spend some time testing this scenario.
Annex Item: https://catalog-alma-qa.princeton.edu/requests/9915485853506421?mfhd=22272080260006421&source=pulsearch
Falls back appropriately.
Firestone Items: https://catalog-alma-qa.princeton.edu/requests/998820893506421?mfhd=22272042640006421&source=pulsearch, https://catalog-alma-qa.princeton.edu/requests/9920476063506421?mfhd=22272024600006421&source=pulsearch
Falls back appropriately
I think we are in good shape with this use case.
assigned
by Kevin Reiss at 2021-07-06 17:09:10.closed
by Kevin Reiss at 2021-07-06 20:38:41.assigned
by None at 2021-07-06 13:54:34.closed
by Kevin Reiss at 2021-07-06 14:01:19.reopened
by Kevin Reiss at 2021-07-06 14:01:35.closed
by Kevin Reiss at 2021-07-06 20:39:18.This is a really outlying record. It's an Ipad device that has no item record. Not sure how to handle this one. I'm not really even sure what the best request option would be.
labeled
by Kevin Reiss at 2021-07-06 20:39:41.We decided not to implement the first point. I think we can close this issue at this point. @hackartisan re-open if you think we need further discussion.
closed
by Kevin Reiss at 2021-07-06 20:43:48.mentioned
by None at 2021-07-06 20:43:48.subscribed
by None at 2021-07-06 20:43:48.The "Acquisition" Process is a stand-in for "on order" titles. Handled properly
"In Process" Items under the "acquisition technical services" work order type are handled properly.
https://catalog-alma-qa.princeton.edu/requests/99371663506421?mfhd=22157583630006421&source=pulsearch https://catalog-alma-qa.princeton.edu/requests/993701853506421?mfhd=22272126260006421&source=pulsearch
related to #871.
@carolyncole could you give these examples a quick look, they look ok to me now.
mentioned
by None at 2021-07-06 21:22:24.subscribed
by None at 2021-07-06 21:22:24.renamed
by Kevin Reiss at 2021-07-06 21:19:28.labeled
by Kevin Reiss at 2021-07-06 21:26:17.labeled
by Kevin Reiss at 2021-07-06 21:26:17.labeled
by Kevin Reiss at 2021-07-06 21:26:05.labeled
by Kevin Reiss at 2021-07-06 21:26:30.The final work order state is "Preservation and Conservation". Currently showing up as green and "Not Available". Items in this state should be treated like items out on loan or lost and be routed to resource sharing.
renamed
by Kevin Reiss at 2021-07-06 21:30:04.labeled
by Kevin Reiss at 2021-07-06 21:42:51.Still an active issue. #989 is a related issue that needs to be re-checked after this issue is resolved.
assigned
by Kevin Reiss at 2021-07-06 13:45:31.unassigned
by Kevin Reiss at 2021-07-06 21:43:37.assigned
by None at 2021-07-06 21:43:43.assigned
by Kevin Reiss at 2021-07-06 13:45:31.unassigned
by Kevin Reiss at 2021-07-06 21:46:24.Spec passes now, but we should test this in the qa catalog.
Example MMS ID on Reserve: https://catalog-alma-qa.princeton.edu/catalog/9990845423506421
Need to bring up at Alma/Blacklight Check-in, the availability at the bib level does provide info about the temp location: https://bibdata-alma-staging.princeton.edu/bibliographic/9990845423506421/availability.json. Maybe the request button should be suppressed for reserve materials.
renamed
by Kevin Reiss at 2021-07-06 17:27:52.referenced
by None at 2021-07-06 20:03:34.merged
by None at 2021-07-06 20:03:34.closed
by None at 2021-07-06 20:03:34.head_ref_deleted
by None at 2021-07-06 20:03:35.


psychopy.info
- functions for getting information about the system¶This module has tools for fetching data about the system or the current Python process. Such info can be useful for understanding the context in which an experiment was run.
psychopy.info.
RunTimeInfo
(author=None, version=None, win=None, refreshTest='grating', userProcsDetailed=False, verbose=False)¶Returns a snapshot of your configuration at run-time, for immediate or archival use.
Returns a dict-like object with info about PsychoPy, your experiment script, the system & OS, your window and monitor settings (if any), python & packages, and openGL.
If you want to skip testing the refresh rate, use ‘refreshTest=None’
Example usage: see runtimeInfo.py in coder demos.
| Author: |
|
|---|---|
| Parameters: |
Window instanceverbose : False, True; how much detail to assess
|
| Returns: | a flat dict (but with several groups based on key names):
|
psychopy.info.
getMemoryUsage
()¶Get the memory (RAM) currently used by this Python process, in M.
psychopy.info.
getRAM
()¶Return system’s physical RAM & available RAM, in M.


1 reference to Hours
Microsoft.PowerShell.Commands.Utility (1)
commands\utility\NewTimeSpanCommand.cs (1)
122
result = new TimeSpan(Days,
Hours
, Minutes, Seconds);


India, Japan hold mine counter measure exercise
Japanese vessels on a goodwill visit
by Special CorrespondentA maiden bilateral exercise between the Indian Navy and the Japanese Maritime Self Defence Force (JMSDF) on explosive ordnance disposal and mine counter measure was undertaken here on Saturday.
Personnel of the Indian Navy and from the warships Bungo and Takashima of JMSDF’s Minesweeper Division 3 took part in the exercise which would conclude on Sunday.
The Japanese vessels are in Kochi till November 25 on a goodwill visit.
Captain Seiji Ikubu, who commands the Minesweeper Division 3, along with Captain Taiko Eda, Defence Attache at the Japanese Embassy in India, and the commanding officers of the visiting vessels called on Rear Admiral R.J. Nadkarni, Chief of Staff of India’s Southern Naval Command, for discussions on topics of interest to both forces.