| |
ActiveTcl User Guide
|
|
|
- NAME
- toplevel - Create and manipulate toplevel widgets
- SYNOPSIS
- toplevel pathName ?options?
- STANDARD OPTIONS
- -borderwidth or -bd,
borderWidth, BorderWidth
- -cursor, cursor, Cursor
- -highlightbackground,
highlightBackground, HighlightBackground
- -highlightcolor,
highlightColor, HighlightColor
- -highlightthickness,
highlightThickness, HighlightThickness
- -padx, padX, Pad
- -pady, padY, Pad
- -relief, relief, Relief
- -takefocus, takeFocus,
TakeFocus
- WIDGET-SPECIFIC
OPTIONS
- -background, background,
Background
- -class, class,
Class
- -colormap, colormap,
Colormap
- -container, container,
Container
- -height, height,
Height
- -menu, menu,
Menu
- -screen, ,
- -use, use, Use
- -visual, visual,
Visual
- -width, width,
Width
- DESCRIPTION
- WIDGET COMMAND
- pathName
cget option
- pathName
configure ?option? ?value option value
...?
- BINDINGS
- SEE ALSO
- KEYWORDS
toplevel - Create and manipulate toplevel widgets
toplevel pathName ?options?
- -borderwidth or -bd,
borderWidth, BorderWidth
- -cursor, cursor,
Cursor
- -highlightbackground,
highlightBackground, HighlightBackground
- -highlightcolor,
highlightColor, HighlightColor
- -highlightthickness,
highlightThickness, HighlightThickness
- -padx, padX, Pad
- -pady, padY, Pad
- -relief, relief,
Relief
- -takefocus, takeFocus,
TakeFocus
- Command-Line Name: -background
- Database Name: background
- Database Class: Background
- This option is the same as the standard background
option except that its value may also be specified as an empty
string. In this case, the widget will display no background or
border, and no colors will be consumed from its colormap for its
background and border.
- Command-Line Name: -class
- Database Name: class
- Database Class: Class
- Specifies a class for the window. This class will be used when
querying the option database for the window's other options, and it
will also be used later for other purposes such as bindings. The
class option may not be changed with the configure
widget command.
- Command-Line Name: -colormap
- Database Name: colormap
- Database Class: Colormap
- Specifies a colormap to use for the window. The value may be
either new, in which case a new colormap is created for the
window and its children, or the name of another window (which must
be on the same screen and have the same visual as pathName),
in which case the new window will use the colormap from the
specified window. If the colormap option is not specified,
the new window uses the default colormap of its screen. This option
may not be changed with the configure widget command.
- Command-Line Name: -container
- Database Name: container
- Database Class: Container
- The value must be a boolean. If true, it means that this window
will be used as a container in which some other application will be
embedded (for example, a Tk toplevel can be embedded using the
-use option). The window will support the appropriate window
manager protocols for things like geometry requests. The window
should not have any children of its own in this application. This
option may not be changed with the configure widget
command.
- Command-Line Name: -height
- Database Name: height
- Database Class: Height
- Specifies the desired height for the window in any of the forms
acceptable to Tk_GetPixels. If this option is
less than or equal to zero then the window will not request any
size at all.
- Command-Line Name: -menu
- Database Name: menu
- Database Class: Menu
- Specifies a menu widget to be used as a menubar. On the
Macintosh, the menubar will be displayed accross the top of the
main monitor. On Microsoft Windows and all UNIX platforms, the menu
will appear accross the toplevel window as part of the window
dressing maintained by the window manager.
- Command-Line Name: -screen
- Database Name:
- Database Class:
- Specifies the screen on which to place the new window. Any
valid screen name may be used, even one associated with a different
display. Defaults to the same screen as its parent. This option is
special in that it may not be specified via the option database,
and it may not be modified with the configure widget
command.
- Command-Line Name: -use
- Database Name: use
- Database Class: Use
- This option is used for embedding. If the value isn't an empty
string, it must be the the window identifier of a container window,
specified as a hexadecimal string like the ones returned by the
winfo id command. The
toplevel widget will be created as a child of the given container
instead of the root window for the screen. If the container window
is in a Tk application, it must be a frame or toplevel widget for
which the -container option was specified. This option may
not be changed with the configure widget command.
- Command-Line Name: -visual
- Database Name: visual
- Database Class: Visual
- Specifies visual information for the new window in any of the
forms accepted by Tk_GetVisual. If this option is
not specified, the new window will use the default visual for its
screen. The visual option may not be modified with the
configure widget command.
- Command-Line Name: -width
- Database Name: width
- Database Class: Width
- Specifies the desired width for the window in any of the forms
acceptable to Tk_GetPixels. If this option is
less than or equal to zero then the window will not request any
size at all.
The toplevel command creates a new toplevel widget (given
by the pathName argument). Additional options, described
above, may be specified on the command line or in the option
database to configure aspects of the toplevel such as its
background color and relief. The toplevel command returns
the path name of the new window.
A toplevel is similar to a frame except that it is created as a
top-level window: its X parent is the root window of a screen
rather than the logical parent from its path name. The primary
purpose of a toplevel is to serve as a container for dialog boxes
and other collections of widgets. The only visible features of a
toplevel are its background color and an optional 3-D border to
make the toplevel appear raised or sunken.
The toplevel command creates a new Tcl command whose name
is the same as the path name of the toplevel's window. This command
may be used to invoke various operations on the widget. It has the
following general form:
pathName option ?arg arg ...?
PathName is the name of the command, which is the same as
the toplevel widget's path name. Option and the args
determine the exact behavior of the command. The following commands
are possible for toplevel widgets:
- pathName cget
option
- Returns the current value of the configuration option given by
option. Option may have any of the values accepted by
the toplevel command.
- pathName configure ?option?
?value option value ...?
- Query or modify the configuration options of the widget. If no
option is specified, returns a list describing all of the
available options for pathName (see Tk_ConfigureInfo for information
on the format of this list). If option is specified with no
value, then the command returns a list describing the one
named option (this list will be identical to the corresponding
sublist of the value returned if no option is specified). If
one or more option-value pairs are specified, then the
command modifies the given widget option(s) to have the given
value(s); in this case the command returns an empty string.
Option may have any of the values accepted by the
toplevel command.
When a new toplevel is created, it has no default event
bindings: toplevels are not intended to be interactive.
frame
toplevel, widget
Copyright © 1990-1994 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.
Copyright © 1995-1997 Roger E. Critchlow Jr.


public class TcpTransport.ScheduledPing extends AbstractLifecycleRunnable
| 构造器和说明 |
|---|
ScheduledPing() |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
doRunInLifecycle()
Perform runnable logic, but only if the
AbstractLifecycleRunnable.lifecycle is not stopped or closed. |
long |
getFailedPings() |
long |
getSuccessfulPings() |
protected void |
onAfterInLifecycle()
This method is invoked in the finally block of the run method, but it is only executed if the
AbstractLifecycleRunnable.lifecycle is not
stopped or closed. |
void |
onFailure(java.lang.Exception e)
This method is invoked for all exception thrown by
AbstractRunnable.doRun() |
doRun, onAfter
isForceExecution, onRejection, run
protected void doRunInLifecycle() throws java.lang.Exception
AbstractLifecycleRunnable
AbstractLifecycleRunnable.lifecycle
is not stopped or closed.doRunInLifecycle
在类中 AbstractLifecycleRunnable
java.lang.InterruptedException
- if the run method throws an InterruptedException
java.lang.Exception
public long getSuccessfulPings()
public long getFailedPings()
protected void onAfterInLifecycle()
AbstractLifecycleRunnable
AbstractLifecycleRunnable.lifecycle
is not
stopped or closed.
This method is most useful for rescheduling the next iteration of the current runnable.
public void onFailure(java.lang.Exception e)
AbstractRunnable
AbstractRunnable.doRun()
onFailure
在类中 AbstractRunnable


You currently have no users allocated.
An error occured whilst retrieving current allocations.
An error occured whilst allocating a user
An error occured whilst resetting the users password
An error occured whilst unallocating the user
{{ error }}
Please wait...
User(s) unallocated.


Date
public extension Date
-
Returns a Date with right now’s time and date.
Seealso
Date.init()Declaration
Swift
static func now() -> Date
-
Returns the hours from a date.
Seealso
Calendar().component()
Declaration
Swift
func hours(using calendar: Calendar = .current) -> Int
Parameters
calendar
the calendar to get the date components from. Default: current user calendar.
Return Value
An Int value representing the hours, between 0 - 24.
-
Returns the minutes from a date.
Seealso
Calendar().component()
Declaration
Swift
func minutes(using calendar: Calendar = .current) -> Int
Parameters
calendar
the calendar to get the date components from. Default: current user calendar.
Return Value
An Int value representing the minutes, between 0 - 60.
-
Returns the seconds from a date.
Seealso
Calendar().component()
Declaration
Swift
func seconds(using calendar: Calendar = .current) -> Int
Parameters
calendar
the calendar to get the date components from. Default: current user calendar.
Return Value
An Int value representing the seconds, between 0 - 60.
-
Returns the day from a date.
Seealso
Calendar().component()
Declaration
Swift
func day(using calendar: Calendar = .current) -> Int
Parameters
calendar
the calendar to get the date components from. Default: current user calendar.
Return Value
An Int value representing the day of month.
-
Returns the month from a date.
Seealso
Calendar().component()
Declaration
Swift
func month(using calendar: Calendar = .current) -> Int
Parameters
calendar
the calendar to get the date components from. Default: current user calendar.
Return Value
An Int value representing the month.
-
Returns the year from a date.
Seealso
Calendar().component()
Declaration
Swift
func year(using calendar: Calendar = .current) -> Int
Parameters
calendar
the calendar to get the date components from. Default: current user calendar.
Return Value
An Int value representing the year.
-
Returns the date components specified by
units
from a date.Seealso
Calendar().dateComponents()
Note
You could pass an array to units, such as [.Hour, .Second] to retrieve both components at the same time.
Declaration
Swift
func components(_ units: Set<Calendar.Component>, using calendar: Calendar = .current) -> DateComponents
Parameters
units
The units to retrieve. ex: .Second
calendar
the calendar to get the date components from. Default: current user calendar.
Return Value
The requested date components.
-
Creates a Date from a string.
Declaration
Swift
init?(dateString: String, dateFormatter: DateFormatter = DefaultDateFormatter)
Parameters
dateString
The date string representation.
dateFormatter
The formatter used for initializing the date. By default, formatter which uses format “yyyy-MM-dd” and US locale.
-
Creates a Date from a string and a string format.
Declaration
Swift
init?(dateString: String, formatString: String)
Parameters
dateString
The date string representation.
formatString
The format string used for initializing the date.
-
Creates a Date from a day, month and year.
Seealso
init(dateString: String)Declaration
Swift
init?(day: Int, month: Int, year: Int)
-
Returns the current day of the week (ex: Monday).
Declaration
Swift
func getWeekDay(withFormat dateFormatter: DateFormatter = DefaultWeekDateFormatter) -> String
Parameters
dateFormatter
The dateFormatter to use.
-
Returns a new date that is set to a given number of days relative to the date.
Seealso
dateByAddingTimeInterval()Declaration
Swift
func adding(days: Int) -> Date
-
Returns a new date that is set to a given number of hours relative to the date.
Seealso
dateByAddingTimeInterval()Declaration
Swift
func adding(hours: Int) -> Date
-
Returns a the string representation of self with the format specified in the dateFormatter. By default, uses a formatter with format “yyyy-MM-dd” and US locale.
Declaration
Swift
func toString(accordingTo dateFormatter: DateFormatter = DefaultDateFormatter) -> String
-
Returns a the string representation of self with the format specified.
Declaration
Swift
func toString(with format: String) -> String
-
Returns a the string representation of self with the localized format created from the format specified.
Seealso
Dateformatter.setLocalizedDateFormatFromTemplateDeclaration
Swift
func toString(withLocalized formatToLocalize: String) -> String


In this project, you'll use generative adversarial networks to generate new images of faces.
You'll be using two datasets in this project:
Since the celebA dataset is complex and you're doing GANs in a project for the first time, we want you to test your neural network on MNIST before CelebA. Running the GANs on MNIST will allow you to see how well your model trains sooner.
If you're using FloydHub, set data_dir
to "/input" and use the FloydHub data ID "R5KrjnANiKVhLWAkpXhNBe".
data_dir = './data'
# FloydHub - Use with data ID "R5KrjnANiKVhLWAkpXhNBe"
#data_dir = '/input'
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import helper
helper.download_extract('mnist', data_dir)
helper.download_extract('celeba', data_dir)
show_n_images = 25
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
%matplotlib inline
import os
from glob import glob
from matplotlib import pyplot
mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'mnist/*.jpg'))[:show_n_images], 28, 28, 'L')
pyplot.imshow(helper.images_square_grid(mnist_images, 'L'), cmap='gray')
The CelebFaces Attributes Dataset (CelebA) dataset contains over 200,000 celebrity images with annotations. Since you're going to be generating faces, you won't need the annotations. You can view the first number of examples by changing show_n_images
.
show_n_images = 64
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'img_align_celeba/*.jpg'))[:show_n_images], 28, 28, 'RGB')
pyplot.imshow(helper.images_square_grid(mnist_images, 'RGB'))
Since the project's main focus is on building the GANs, we'll preprocess the data for you. The values of the MNIST and CelebA dataset will be in the range of -0.5 to 0.5 of 28x28 dimensional images. The CelebA images will be cropped to remove parts of the image that don't include a face, then resized down to 28x28.

You'll build the components necessary to build a GANs by implementing the following functions below:
model_inputs
discriminator
generator
model_loss
model_opt
train
This will check to make sure you have the correct version of TensorFlow and access to a GPU
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
from distutils.version import LooseVersion
import warnings
import tensorflow as tf
# Check TensorFlow Version
assert LooseVersion(tf.__version__) >= LooseVersion('1.0'), 'Please use TensorFlow version 1.0 or newer. You are using {}'.format(tf.__version__)
print('TensorFlow Version: {}'.format(tf.__version__))
# Check for a GPU
if not tf.test.gpu_device_name():
warnings.warn('No GPU found. Please use a GPU to train your neural network.')
else:
print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
Implement the model_inputs
function to create TF Placeholders for the Neural Network. It should create the following placeholders:
image_width
, image_height
, and image_channels
.z_dim
.Return the placeholders in the following the tuple (tensor of real input images, tensor of z data)
import problem_unittests as tests
def model_inputs(image_width, image_height, image_channels, z_dim):
"""
Create the model inputs
:param image_width: The input image width
:param image_height: The input image height
:param image_channels: The number of image channels
:param z_dim: The dimension of Z
:return: Tuple of (tensor of real input images, tensor of z data, learning rate)
"""
# TODO: Implement Function
input_real = tf.placeholder(tf.float32, (None, image_width, image_height, image_channels), name = 'input_real')
inputs_z = tf.placeholder(tf.float32, (None, z_dim), name='input_z')
learning_rate = tf.placeholder(tf.float32, name = 'learning_rate')
return input_real, inputs_z, learning_rate
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_inputs(model_inputs)
Implement discriminator
to create a discriminator neural network that discriminates on images
. This function should be able to reuse the variables in the neural network. Use tf.variable_scope
with a scope name of "discriminator" to allow the variables to be reused. The function should return a tuple of (tensor output of the discriminator, tensor logits of the discriminator).
def discriminator(images, reuse=False):
"""
Create the discriminator network
:param images: Tensor of input image(s)
:param reuse: Boolean if the weights should be reused
:return: Tuple of (tensor output of the discriminator, tensor logits of the discriminator)
"""
# TODO: Implement Function
with tf.variable_scope('discriminator', reuse = reuse):
# 28 * 28 * 3
x1 = tf.layers.conv2d(images, 64, 5, strides = 2, padding = 'same', kernel_initializer = tf.contrib.layers.xavier_initializer_conv2d())
x1 = tf.maximum(0.2 * x1 , x1)
x1 = tf.nn.dropout(x1, 0.5)
# 14 * 14
x2 = tf.layers.conv2d(x1, 128, 5, strides = 2, padding = 'same', kernel_initializer = tf.contrib.layers.xavier_initializer_conv2d())
x2 = tf.layers.batch_normalization(x2, training = True)
x2 = tf.maximum(0.2 * x2, x2)
x2 = tf.nn.dropout(x2, 0.5)
x3 = tf.layers.conv2d(x2, 256, 5, strides = 2, padding = 'same', kernel_initializer = tf.contrib.layers.xavier_initializer_conv2d())
x3 = tf.layers.batch_normalization(x3, training = True)
x3 = tf.maximum(0.2 * x3, x3)
x3 = tf.nn.dropout(x3, 0.5)
x4 = tf.layers.conv2d(x3, 512, 5, strides = 2, padding = 'same', kernel_initializer = tf.contrib.layers.xavier_initializer_conv2d())
x4 = tf.layers.batch_normalization(x4, training = True)
x4 = tf.maximum(0.2 * x4, x4)
x4 = tf.nn.dropout(x4, 0.5)
flat = tf.reshape(x3, (-1, 4096))
dense = tf.layers.dense(flat, 1)
out = tf.nn.sigmoid(dense)
return out, dense
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_discriminator(discriminator, tf)
Implement generator
to generate an image using z
. This function should be able to reuse the variables in the neural network. Use tf.variable_scope
with a scope name of "generator" to allow the variables to be reused. The function should return the generated 28 x 28 x out_channel_dim
images.
def generator(z, out_channel_dim, is_train=True):
"""
Create the generator network
:param z: Input z
:param out_channel_dim: The number of channels in the output image
:param is_train: Boolean if generator is being used for training
:return: The tensor output of the generator
"""
# TODO: Implement Function
with tf.variable_scope('generator', reuse = not is_train):
x1= tf.layers.dense(z, 4*4*256)
x1 = tf.reshape(x1, (-1, 4, 4, 256))
x1 = tf.layers.batch_normalization(x1, training= is_train)
x1 = tf.maximum(0.2 * x1, x1)
x1 = tf.nn.dropout(x1, 0.90)
x2 = tf.layers.conv2d_transpose(x1, 128, 5, strides=3, padding= 'same')
x2 = tf.layers.batch_normalization(x2, training = is_train)
x2 = tf.maximum(0.2 * x2, x2)
x2 = tf.nn.dropout(x2, 0.90)
x3 = tf.layers.conv2d_transpose(x2, 64, 5, strides=2, padding= 'same')
x3 = tf.layers.batch_normalization(x3, training = is_train)
x3 = tf.maximum(0.2 * x3, x3)
x3 = tf.nn.dropout(x3, 0.90)
logits = tf.layers.conv2d_transpose(x3, out_channel_dim, 5, strides=1, padding= 'valid')
out = tf.nn.tanh(logits)
return out
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_generator(generator, tf)
Implement model_loss
to build the GANs for training and calculate the loss. The function should return a tuple of (discriminator loss, generator loss). Use the following functions you implemented:
discriminator(images, reuse=False)
generator(z, out_channel_dim, is_train=True)
from random import randint
def label_smoothing(input):
if input == 1:
return randint(7, 12) / 10
if input == 0:
return randint(0, 3) / 10
return input
# test:
print(label_smoothing(1))
print(label_smoothing(0))
def model_loss(input_real, input_z, out_channel_dim):
"""
Get the loss for the discriminator and generator
:param input_real: Images from the real dataset
:param input_z: Z input
:param out_channel_dim: The number of channels in the output image
:return: A tuple of (discriminator loss, generator loss)
"""
# TODO: Implement Function
g_model = generator(input_z, out_channel_dim)
d_model_real, d_logits_real = discriminator(input_real)
d_model_fake, d_logits_fake = discriminator(g_model, reuse = True)
d_loss_real = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits = d_logits_real, labels=tf.ones_like(d_model_real))
)
d_loss_fake = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.zeros_like(d_model_fake)))
d_loss = d_loss_real + d_loss_fake
g_loss = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.ones_like(d_model_fake)))
#return d_loss, g_loss
return (label_smoothing(d_loss), label_smoothing(g_loss))
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_loss(model_loss)
Implement model_opt
to create the optimization operations for the GANs. Use tf.trainable_variables
to get all the trainable variables. Filter the variables with names that are in the discriminator and generator scope names. The function should return a tuple of (discriminator training operation, generator training operation).
def model_opt(d_loss, g_loss, learning_rate, beta1):
"""
Get optimization operations
:param d_loss: Discriminator loss Tensor
:param g_loss: Generator loss Tensor
:param learning_rate: Learning Rate Placeholder
:param beta1: The exponential decay rate for the 1st moment in the optimizer
:return: A tuple of (discriminator training operation, generator training operation)
"""
# TODO: Implement Function
t_vars = tf.trainable_variables()
d_vars = [var for var in t_vars if var.name.startswith('discriminator')]
g_vars = [var for var in t_vars if var.name.startswith('generator')]
with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)):
d_train_opt = tf.train.AdamOptimizer(learning_rate, beta1).minimize(d_loss, var_list=d_vars)
g_train_opt = tf.train.AdamOptimizer(learning_rate, beta1).minimize(g_loss, var_list=g_vars)
return d_train_opt, g_train_opt
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_opt(model_opt, tf)
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import numpy as np
def show_generator_output(sess, n_images, input_z, out_channel_dim, image_mode):
"""
Show example output for the generator
:param sess: TensorFlow session
:param n_images: Number of Images to display
:param input_z: Input Z Tensor
:param out_channel_dim: The number of channels in the output image
:param image_mode: The mode to use for images ("RGB" or "L")
"""
cmap = None if image_mode == 'RGB' else 'gray'
z_dim = input_z.get_shape().as_list()[-1]
example_z = np.random.uniform(-1, 1, size=[n_images, z_dim])
samples = sess.run(
generator(input_z, out_channel_dim, False),
feed_dict={input_z: example_z})
images_grid = helper.images_square_grid(samples, image_mode)
pyplot.imshow(images_grid, cmap=cmap)
pyplot.show()
Implement train
to build and train the GANs. Use the following functions you implemented:
model_inputs(image_width, image_height, image_channels, z_dim)
model_loss(input_real, input_z, out_channel_dim)
model_opt(d_loss, g_loss, learning_rate, beta1)
Use the show_generator_output
to show generator
output while you train. Running show_generator_output
for every batch will drastically increase training time and increase the size of the notebook. It's recommended to print the generator
output every 100 batches.
def train(epoch_count, batch_size, z_dim, learning_rate, beta1, get_batches, data_shape, data_image_mode):
"""
Train the GAN
:param epoch_count: Number of epochs
:param batch_size: Batch Size
:param z_dim: Z dimension
:param learning_rate: Learning Rate
:param beta1: The exponential decay rate for the 1st moment in the optimizer
:param get_batches: Function to get batches
:param data_shape: Shape of the data
:param data_image_mode: The image mode to use for images ("RGB" or "L")
"""
step = 0
show_every = 100
print((data_shape[1], data_shape[2], data_shape[3]))
input_real, input_z, lr = model_inputs(data_shape[1], data_shape[2], data_shape[3], z_dim)
d_loss, g_loss = model_loss(input_real, input_z, data_shape[3])
d_opt, g_opt = model_opt(d_loss, g_loss, learning_rate, beta1)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for epoch_i in range(epoch_count):
for batch_images in get_batches(batch_size):
step += 1
batch_images = batch_images.reshape(batch_size, data_shape[1], data_shape[2], data_shape[3])
batch_images = batch_images*2
batch_z = np.random.uniform(-1, 1, size=(batch_size, z_dim))
feed_dict = {input_real:batch_images, input_z:batch_z}
_ = sess.run(d_opt, feed_dict=feed_dict)
_ = sess.run(g_opt, feed_dict=feed_dict)
_ = sess.run(g_opt, feed_dict = feed_dict) # as suggested by reviewer
_ = sess.run(g_opt, feed_dict = feed_dict) # as suggested by reviewer
if step % 10 == 0:
train_loss_d = d_loss.eval({input_z: batch_z, input_real: batch_images})
train_loss_g = g_loss.eval({input_z: batch_z})
print("Epoch {}/{}...".format(epoch_i+1, epoch_count),
"Discriminator Loss: {:.4f}...".format(train_loss_d),
"Generator Loss: {:.4f}".format(train_loss_g))
if step % show_every ==0:
show_generator_output(sess, 9, input_z, data_shape[3], data_image_mode)
Test your GANs architecture on MNIST. After 2 epochs, the GANs should be able to generate images that look like handwritten digits. Make sure the loss of the generator is lower than the loss of the discriminator or close to 0.
batch_size = 64
z_dim = 100
learning_rate = 0.00001
beta1 = 0.5
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 2
mnist_dataset = helper.Dataset('mnist', glob(os.path.join(data_dir, 'mnist/*.jpg')))
with tf.Graph().as_default():
train(epochs, batch_size, z_dim, learning_rate, beta1, mnist_dataset.get_batches,
mnist_dataset.shape, mnist_dataset.image_mode)
Run your GANs on CelebA. It will take around 20 minutes on the average GPU to run one epoch. You can run the whole epoch or stop when it starts to generate realistic faces.
batch_size = 64
z_dim = 128
learning_rate = 0.0002
beta1 = 0.5
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 1
celeba_dataset = helper.Dataset('celeba', glob(os.path.join(data_dir, 'img_align_celeba/*.jpg')))
with tf.Graph().as_default():
train(epochs, batch_size, z_dim, learning_rate, beta1, celeba_dataset.get_batches,
celeba_dataset.shape, celeba_dataset.image_mode)
When submitting this project, make sure to run all the cells before saving the notebook. Save the notebook file as "dlnd_face_generation.ipynb" and save it as a HTML file under "File" -> "Download as". Include the "helper.py" and "problem_unittests.py" files in your submission.


SELECT.ALL macro
Equivalent to selecting all the sheets in a workbook.
Syntax
SELECT.ALL
( )
Return to
index


All Classes
Accelerometer
Feature
FeatureExtractor
FeatureExtractorException
FeatureExtractorLibraryMainTest
IFeatureExtractor
IUtil
Settings
Settings.FileType
Util


Welcome to event {{event.name}}
User Email:
User Full Name:
User Company:
Register
Check User Status


You’ve heard it once, you’ve heard it twenty times, “the key to an essential wardrobe is a quality t-shirt.” Yes this has some truth to it, but isn’t it a given? A t-shirt is just a t-shirt right? They’re all basically the same. On the surface, there isn't much to a basic tee; it's a simple staple we are all used to. But look a little further and you’ll notice your preference on how the shirt lays, the weight of the fabric, texture, and so many other elements that contribute to a quality tee.
Over the years I’ve tried several brands - some I loved, others I hated, many I was indifferent about. Rather than blabbing on about which t-shirts got the ‘Christopher badge of a approval’, I’ve narrowed it down to just 1 t-shirt per category - light weight, medium weight, and heavy weight. I feel like this is the best way to divide up a simple wardrobe item to offer a preference for anyone looking to up their wardrobe with a nice tee.
Sunspel Classic Cotton T-Shirt: Every summer I seem to struggle finding a lightweight option which doesn't fall apart by the end of the season. This is the bad wrap that so many lightweight tees get since quality is so easily compared with fabric weight. The classic cotton t-shirt from Sunspel proves that theory to be false. They do a fantastic job at delivering a silky soft summer-ready tee that keeps its form even after several washes. Let it be known this one does come in at a higher price, but if ever a brand is worth a pretty penny it would be this one.
Shop NowASKET The T-Shirt: These guys have been in the industry of essentials since 2015 and have spent that time perfecting the most basic wardrobe staple - the t-shirt. With 3 length options (short, regular, & long) you can rest assured that you'll be getting a perfect fit with every piece. Although their lightweight tee has just as much to rave about, their classic option holds true to its structure and is the perfect in-between of the lighter and heavier cotton alternatives.
Shop NowSon of a Tailor Cotton T-Shirt: Have you ever had a t-shirt custom made to your exact preferences? Yeah, me either. Son of a Tailor was born on this idea of creating made-to-order pieces exactly how you like them. You prefer a wider torso? They'll add a few inches to give you that comfy roomy feel. Their cotton t-shirt comes in either a medium or heavy weight, but the heavy weight option creates such a nice sillouette that offers that high quality feel of a heavier fabric. Not only does this feel like a luxury customer experience, but the shockingly normal prices make this brand even more worth it.
Shop Now


Stories
Giving back by paying forward
Karen Rhodes (Cowell '77, history) fits the profile of the versatile and determined Banana Slug. Over the years, she's been a student, public information officer, development staff member, and an Alumni Councilor.
But one thing hasn't changed throughout the years: She and her husband, fellow Slug Robert Weiner (College Eight '83, environmental studies), have been consistent, reliable donors to UC Santa Cruz, providing valuable support for Cowell College, the History Department, College Eight, Environmental Studies, and scholarships.
Last year, the couple joined with other Banana Slugs to start the Environmental Studies Experiential Learning Endowment, which helps fund experiential learning courses that build on classroom studies, while training students to address 21st century environmental challenges.
"We saw a need to move the initiative forward," said Rhodes.
So far, donors have raised $250,000 toward the $1 million goal for this endowment campaign, dubbed "Training Environmental Problem Solvers."
Karen Holl, professor and chair of the Environmental Studies Department, praised Rhodes and Weiner for supporting UCSC hands-on learning courses in general as well as the Natural History Field Quarter.
Holl said these generous alumni gifts will help ensure that environmental studies professors can conduct small field courses that teach critical thinking skills to future generations of UCSC students.
For Rhodes, it's a question of paying it forward. She found herself referring back to her UCSC experience throughout her working life.
"I draw on my UC education all the time to keep myself honest and aligned with my core values," said Rhodes. She added that UCSC was a great place to be for students who felt comfortable with professors, lecturers, books, and fellow students "pushing us to think for ourselves."
Such skills came in handy when Rhodes started out as a journalist. Soon after graduation, she started a news program at KZSC. Instead of going to broadcasting school, she learned through experience. "We taught ourselves how to do radio news reporting," Rhodes said.
She began freelancing for alternative weeklies in town, covering local politics and environmental issues.
At KUSP radio, she started working in development, and later she worked in UCSC's University Relations office. She met her husband through mutual friends.
Rhodes and Weiner left Santa Cruz in 1988, when Robert took a job at UC San Francisco. Rhodes answered a classified ad for an editorial director at UC Berkeley, where she works today.
But the two of them remain closely connected to UC Santa Cruz through their giving.
For Rhodes and Weiner, giving comes naturally; it's simply a matter of giving back. But there's also a sense of urgency.
As the state contribution to the UC system has dwindled "it's even more important for alumni and friends to contribute," Rhodes said.
Rhodes has provided for UCSC in her estate planning. She believes it's important to set up the fewest possible restrictions on using the funds.
"I've always wanted to leave a legacy with my estate and to do something with my assets that is going to have a lasting impact," said Rhodes. "I want to focus on giving to UCSC in a way that's as unfettered as possible."
Gifts of all sizes have an impact, she said.
"There's an important and catalytic role that can be played in development even if it's not in a big way."
Amy Ettinger is a freelance writer based in Santa Cruz.


Describing Tests
@mixin test-module()
aliased as describe()
Test Modules are optional, and can be used to group tests and other modules for organizational purposes. Modules can be nested for additional organization.
Parameters
$name: (string)
module name
@content (code block)
Include all the tests & modules that are part of this module
Example
scss
@use 'sass:list';
// Module Group
@include true.test-module('zip [function]') {
// Test 1
@include true.test('Returns two lists zipped together') {
@include true.assert-equal(
list.zip(a b c, 1 2 3),
(a 1, b 2, c 3));
}
// Test 2
@include true.test('Returns three zipped lists') {
@include true.assert-equal(
list.zip(1px 1px 3px, solid dashed solid, red green blue),
(1px solid red, 1px dashed green, 3px solid blue));
}
}
css
compiled
@charset "UTF-8";
/* # Module: zip [function] */
/* ------------------------ */
/* Test: Returns two lists zipped together */
/* ✔ [assert-equal] Returns two lists zipped together */
/* */
/* Test: Returns three zipped lists */
/* ✔ [assert-equal] Returns three zipped lists */
/* */
/* */
Used By
@mixin describe()
@mixin test()
aliased as it()
The test()
wrapper-mixin groups related assertions,
to describe the behavior they are testing.
Tests should always contain one or more assertions.
Parameters
$name: (string)
Describe what is being tested
@content (code block)
Include any assertions that are part of this test
Example
scss
@use 'sass:list';
@include true.test('Returns lists zipped together') {
@include true.assert-equal(
list.zip(a b c, 1 2 3),
(a 1, b 2, c 3));
@include true.assert-equal(
list.zip(1px 1px 3px, solid dashed solid, red green blue),
(1px solid red, 1px dashed green, 3px solid blue));
}
css
compiled
@charset "UTF-8";
/* Test: Returns lists zipped together */
/* ✔ [assert-equal] Returns lists zipped together */
/* ✔ [assert-equal] Returns lists zipped together */
/* */


|
Little Heroes
|
Public Member Functions | |
| void | OnPhotonSerializeView (PhotonStream stream, PhotonMessageInfo info) |
| Called by PUN several times per second, so that your script can write and read synchronization data for the PhotonView. More... | |
| float | GetSpeed () |
| bool | IsJumping () |
| bool | IsGrounded () |
| Vector3 | GetDirection () |
| bool | IsMovingBackwards () |
| float | GetLockCameraTimer () |
| bool | IsMoving () |
| bool | HasJumpReachedApex () |
| bool | IsGroundedWithTimeout () |
| void | Reset () |
Public Attributes | |
| AnimationClip | idleAnimation |
| AnimationClip | walkAnimation |
| AnimationClip | runAnimation |
| AnimationClip | jumpPoseAnimation |
| float | walkMaxAnimationSpeed = 0.75f |
| float | trotMaxAnimationSpeed = 1.0f |
| float | runMaxAnimationSpeed = 1.0f |
| float | jumpAnimationSpeed = 1.15f |
| float | landAnimationSpeed = 1.0f |
| PickupCharacterState | _characterState |
| float | walkSpeed = 2.0f |
| float | trotSpeed = 4.0f |
| float | runSpeed = 6.0f |
| float | inAirControlAcceleration = 3.0f |
| float | jumpHeight = 0.5f |
| float | gravity = 20.0f |
| float | speedSmoothing = 10.0f |
| float | rotateSpeed = 500.0f |
| float | trotAfterSeconds = 3.0f |
| bool | canJump = false |
| bool | isControllable = false |
| bool | DoRotate = true |
| float | RemoteSmoothing = 5 |
| bool | AssignAsTagObject = true |
| Vector3 PickupController.GetDirection | ( | ) |
| float PickupController.GetLockCameraTimer | ( | ) |
| float PickupController.GetSpeed | ( | ) |
| bool PickupController.HasJumpReachedApex | ( | ) |
| bool PickupController.IsGrounded | ( | ) |
| bool PickupController.IsGroundedWithTimeout | ( | ) |
| bool PickupController.IsJumping | ( | ) |
| bool PickupController.IsMoving | ( | ) |
| bool PickupController.IsMovingBackwards | ( | ) |
| void PickupController.OnPhotonSerializeView | ( | PhotonStream | stream, |
| PhotonMessageInfo | info | ||
| ) |
Called by PUN several times per second, so that your script can write and read synchronization data for the PhotonView.
This method will be called in scripts that are assigned as Observed component of a PhotonView.
PhotonNetwork.sendRateOnSerialize affects how often this method is called.
PhotonNetwork.sendRate affects how often packages are sent by this client.
Implementing this method, you can customize which data a PhotonView regularly synchronizes. Your code defines what is being sent (content) and how your data is used by receiving clients.
Unlike other callbacks, OnPhotonSerializeView only gets called when it is assigned to a PhotonView as PhotonView.observed script.
To make use of this method, the PhotonStream is essential. It will be in "writing" mode" on the client that controls a PhotonView (PhotonStream.isWriting == true) and in "reading mode" on the remote clients that just receive that the controlling client sends.
If you skip writing any value into the stream, PUN will skip the update. Used carefully, this can conserve bandwidth and messages (which have a limit per room/second).
Note that OnPhotonSerializeView is not called on remote clients when the sender does not send any update. This can't be used as "x-times per second Update()".
Implements IPunObservable.
| void PickupController.Reset | ( | ) |
| PickupCharacterState PickupController._characterState |
| bool PickupController.AssignAsTagObject = true |
| bool PickupController.canJump = false |
| bool PickupController.DoRotate = true |
| float PickupController.gravity = 20.0f |
| AnimationClip PickupController.idleAnimation |
| float PickupController.inAirControlAcceleration = 3.0f |
| bool PickupController.isControllable = false |
| float PickupController.jumpAnimationSpeed = 1.15f |
| float PickupController.jumpHeight = 0.5f |
| AnimationClip PickupController.jumpPoseAnimation |
| float PickupController.landAnimationSpeed = 1.0f |
| float PickupController.RemoteSmoothing = 5 |
| float PickupController.rotateSpeed = 500.0f |
| AnimationClip PickupController.runAnimation |
| float PickupController.runMaxAnimationSpeed = 1.0f |
| float PickupController.runSpeed = 6.0f |
| float PickupController.speedSmoothing = 10.0f |
| float PickupController.trotAfterSeconds = 3.0f |
| float PickupController.trotMaxAnimationSpeed = 1.0f |
| float PickupController.trotSpeed = 4.0f |
| AnimationClip PickupController.walkAnimation |
| float PickupController.walkMaxAnimationSpeed = 0.75f |
| float PickupController.walkSpeed = 2.0f |


This example displays a map of the Indian Ocean which continuously pans using screen space X/Y coordinates.


{{temp_title_rec}}
Watch these on your next movie marathon!!! 🍿 🍿 🍿
{% for movie in movies %}
{{movie}}
{% endfor %}
For more Movie information, go to
IMDB
and to
Rotten Tomatoes
Movielens
is real!
Back to the main page


stop hiring engineers to wright your code. just use the 1kb script that magiclley solves all your problems and algorithms.
ase becaming 1,000,000 bitcoing retcher today
this kickass feature and it kickass indeed
this second kickass feature and it kickass indeed
faster development
stop hiring engineers to wright your code. just use the 1kb script that magiclley solves all your problems and algorithms
1 //coding-ace.js 2 3 conist data ={ 4 "purpose": { 5 "getId":"#element", 6 "companyName": "niceStartup", 7 } 8 } 9 10 function coding-ace ( 11 data, 12 getAceType 13 ) 13 14 function getAceType() { 15 return "codeHellish!" 16 } 17
Founder the Ocumpious Startup
24/7 support For Your Sacke we do not sleep
Fast Like flash.
Relaible We dont have server downtime
Computational Analysis Lick no other.
Analiyric Lick no other.
Affordable as coffee
Good enough power
Perfect for small businesses.
Unlimited super powers


Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
AnswerNet/IMI
Legal Name:
AnswerNet/IMI
Operating Name:
AnswerNet
Mailing Address:
550 Berry StWINNIPEG, Manitoba
R3H 0R9
Location Address:
550 Berry StWINNIPEG, Manitoba
R3H 0R9
Tel.:<PHONE_NUMBER>
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Logo
Company Profile
AnswerNet's Winnipeg and Toronto sites offer bilingual agents (French/English) who are experts at providing Order Entry, Customer Care and Help Desk services. Both sites are experienced with connecting callers to client staff members in multiple offices through Virtual Receptionist services, and with handling customer inquiries and purchases through their Direct Response capabilities.
Additionally, AnswerNet Winnipeg also uses TTY, IP relay, email and live chat technology. AnswerNet Toronto also provides professional outbound services, including B2B telemarketing, lead generation and appointment-setting services.
Full profile
Full profile
Contact information
Company description
561490 - Other Business Support Services
Product / Service / Licensing
hearing community. Services include voice and hearing carry-over. Access via ASCII terminal equipment supported.
authorization and ticket production. Customer service and database management.
Market profile
Alliances:
- Sales/Marketing
Industry sector market interests:
- Agriculture
- Construction
- Consumer Products
- Culture
- Environment
- Fishery
- Forestry
- Information Technology and Telecommunications
- Manufacturing
- Medical/Biotechnology/Chemical
- Mining/Petroleum/Gas
- Service Industry
- Tourism
- Transportation
- Wholesale/Retail
- Aerospace
- Defence
- Automotive
- Food and Beverage Manufacturing
- Furniture and Wood Product
- Pulp and Paper
- Plastics and Rubber Products
- Primary and Fabricated Metal
- Electrical Equipment
- Textile and Clothing
Geographic markets:
Export experience:
- United States
Sector information
Classification codes
Total plant size:
Atlanta, GA:1420 South Lake Plaza Dr., Morrow, GA 30260
Billerica, MA: 101 Billerica Ave., Building 5, Suite 204 Billerica, MA 01862
Billings, MT: 1215 24th Street West, Suite 125 Billings, MT 59102
Birmingham, AL: 100 Oxmoore Road, Suite 110 Birmingham, AL 35209
Bismarck, ND: 2404 E. Broadway Ave, #200, Bismarck, ND 58501
Chattanooga, TN: 3903 Volunteer Drive, Suite 200, Chattanooga, TN 37416
Chicago, IL: 5532 N. Broadway, Chicago, IL 60640
Columbus, OH: 4400 N. High Street, Suite 200, Columbus, OH 43214
El Paso, TX: 6501 Boeing Drive, Suite H-1, El Paso, Texas 79925
Fair Oaks, CA: 4778 Dewey Drive, Fair Oaks, CA 95628
Fairlawn, OH: 3250 West Market Street, Suite 205, Fairlawn, OH 44333
Hays, KS: 2000 East 13th, Hays, Kansas 67601
Lowell, MA: 175 Cabot Street, Suite 440, Lowell, MA 01854
Memphis, TN: 2738 Bartlett Blvd., Memphis, TN 38134
Nashville, TN: 830 Fesslers Parkway, Suite 108, Nashville, TN 37210
Orlando, FL: 5575 So. Semoran Blvd, Ste. 503, Orlando, FL 32822
Portland, OR: 2951 NW Division St., Suite 110, Gresham, OR 97030
Rockland, ME: 91 Camden St, Suite 307, Rockland, ME 04841
Santa Rosa, CA: 850 2nd Street, Suite C, Santa Rosa, CA 95404
Sarasota, FL: 1000 North Washington Blvd., Sarasota, FL 34236
Stockton, CA: 2333 West March Lane, Building B, Suite B, Stockton, CA 95207
Toronto, Canada: Suite 103 - 5407 Eglinton Ave., W Toronto, ON Canada M9C 5K6
West Memphis, AR: 1800 Missouri St., Suite 7, West Memphis, AR 72301
Willow Grove, PA: 3930 Commerce Avenue, Willow Grove, PA, 19090
Winnipeg, Canada: 550 Berry St. Winnipeg, Manitoba, Canada R3H 0R9
Distribution of employees:
Allentown, PA: 1729 W Tilghman St, Ste. 2, Allentown, PA 18104Atlanta, GA:1420 South Lake Plaza Dr., Morrow, GA 30260
Billerica, MA: 101 Billerica Ave., Building 5, Suite 204 Billerica, MA 01862
Billings, MT: 1215 24th Street West, Suite 125 Billings, MT 59102
Birmingham, AL: 100 Oxmoore Road, Suite 110 Birmingham, AL 35209
Bismarck, ND: 2404 E. Broadway Ave, #200, Bismarck, ND 58501
Chattanooga, TN: 3903 Volunteer Drive, Suite 200, Chattanooga, TN 37416
Chicago, IL: 5532 N. Broadway, Chicago, IL 60640
Columbus, OH: 4400 N. High Street, Suite 200, Columbus, OH 43214
El Paso, TX: 6501 Boeing Drive, Suite H-1, El Paso, Texas 79925
Fair Oaks, CA: 4778 Dewey Drive, Fair Oaks, CA 95628
Fairlawn, OH: 3250 West Market Street, Suite 205, Fairlawn, OH 44333
Hays, KS: 2000 East 13th, Hays, Kansas 67601
Lowell, MA: 175 Cabot Street, Suite 440, Lowell, MA 01854
Memphis, TN: 2738 Bartlett Blvd., Memphis, TN 38134
Nashville, TN: 830 Fesslers Parkway, Suite 108, Nashville, TN 37210
Orlando, FL: 5575 So. Semoran Blvd, Ste. 503, Orlando, FL 32822
Portland, OR: 2951 NW Division St., Suite 110, Gresham, OR 97030
Rockland, ME: 91 Camden St, Suite 307, Rockland, ME 04841
Santa Rosa, CA: 850 2nd Street, Suite C, Santa Rosa, CA 95404
Sarasota, FL: 1000 North Washington Blvd., Sarasota, FL 34236
Stockton, CA: 2333 West March Lane, Building B, Suite B, Stockton, CA 95207
Toronto, Canada: Suite 103 - 5407 Eglinton Ave., W Toronto, ON Canada M9C 5K6
West Memphis, AR: 1800 Missouri St., Suite 7, West Memphis, AR 72301
Willow Grove, PA: 3930 Commerce Avenue, Willow Grove, PA, 19090
Winnipeg, Canada: 550 Berry St. Winnipeg, Manitoba, Canada R3H 0R9
Testimonial:
“I would like to thank you for helping us develop and implement our new IVR system here at Toronto Hydro. The system has allowed us to improve response times during high call volumes due to storm or other weather related events. When crews are needed to report during off hours, we can now complete our staff call-in’s in less than an hour, when in the past it would take 4 or 5 hours. This of course allows us to arrive on the front door step of our customers much quicker. Your collaboration and help customizing the system to meet our special needs is a credit to your team. Your success developing this project has led to a new daily IVR to fill staff vacancies within our Trouble Dept. and we look forward to many other ventures as our needs arise.”- Rick Butler, Supervisor, Customer and Power System Services, Toronto Hydro
“Harris Broadcast Communications Division, formerly Leitch Technology Incorporated, has dealt with Answernet since 1997. Their contribution has been a major factor in our ability to handle our customers 24/7 on a worldwide basis. They have continued to work and evolve in meeting our business and customers needs as we expand, while offering constructive feedback in areas that require attention. Their staff is friendly and courteous, bringing proficiency with every request handled. I can confidently recommend Answernet as a solid and reliable partner, and a true professional in their field.”
- Sadeek (Sid) Mohamed, Customer Service Supervisor - Toronto, Harris Corporation, Broadcast Communications Division
“I just wanted to express a big thank you for everything you and AnswerNet Network employees did for Menu Foods in 2007. From a call centre perspective no one knew the firestorm that would be created by the pet food recall. The call centre volumes were through the roof and we wouldn’t have gotten through it without the dedication of AnswerNet employees. You are very cool under fire and I certainly won’t hesitate to recommend your company in the future. Feel free to direct any customers my way for a reference.”
- Bryan R. Bennett, VP of Information Technology, Menu Foods Limited
“We are very pleased to see how well the AnswerNet Team has worked for us based on our needs and wants, all the while providing great Customer Service. We appreciate AnswerNet’s flexibility when dealing with time sensitive issues within our campaign, as well as the dedication from the AnswerNet Outbound French Agents to help Hus-Tek International grow within this project. From Customer Service concerns to Reporting Cost, Hus-Tek International is proud to be in a partnership with the AnswerNet Outbound/Inbound French Agents Team.”
- Soren Dumrath, President, Hus-Tek International
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
561490 - Other Business Support Services
Products, services and licensing
Product / Service / Licensing
hearing community. Services include voice and hearing carry-over. Access via ASCII terminal equipment supported.
authorization and ticket production. Customer service and database management.
Market
Market profile
Alliances:
- Sales/Marketing
Industry sector market interests:
- Agriculture
- Construction
- Consumer Products
- Culture
- Environment
- Fishery
- Forestry
- Information Technology and Telecommunications
- Manufacturing
- Medical/Biotechnology/Chemical
- Mining/Petroleum/Gas
- Service Industry
- Tourism
- Transportation
- Wholesale/Retail
- Aerospace
- Defence
- Automotive
- Food and Beverage Manufacturing
- Furniture and Wood Product
- Pulp and Paper
- Plastics and Rubber Products
- Primary and Fabricated Metal
- Electrical Equipment
- Textile and Clothing
Geographic markets:
Export experience:
- United States
Sector
Sector information
Classification codes
Total plant size:
Atlanta, GA:1420 South Lake Plaza Dr., Morrow, GA 30260
Billerica, MA: 101 Billerica Ave., Building 5, Suite 204 Billerica, MA 01862
Billings, MT: 1215 24th Street West, Suite 125 Billings, MT 59102
Birmingham, AL: 100 Oxmoore Road, Suite 110 Birmingham, AL 35209
Bismarck, ND: 2404 E. Broadway Ave, #200, Bismarck, ND 58501
Chattanooga, TN: 3903 Volunteer Drive, Suite 200, Chattanooga, TN 37416
Chicago, IL: 5532 N. Broadway, Chicago, IL 60640
Columbus, OH: 4400 N. High Street, Suite 200, Columbus, OH 43214
El Paso, TX: 6501 Boeing Drive, Suite H-1, El Paso, Texas 79925
Fair Oaks, CA: 4778 Dewey Drive, Fair Oaks, CA 95628
Fairlawn, OH: 3250 West Market Street, Suite 205, Fairlawn, OH 44333
Hays, KS: 2000 East 13th, Hays, Kansas 67601
Lowell, MA: 175 Cabot Street, Suite 440, Lowell, MA 01854
Memphis, TN: 2738 Bartlett Blvd., Memphis, TN 38134
Nashville, TN: 830 Fesslers Parkway, Suite 108, Nashville, TN 37210
Orlando, FL: 5575 So. Semoran Blvd, Ste. 503, Orlando, FL 32822
Portland, OR: 2951 NW Division St., Suite 110, Gresham, OR 97030
Rockland, ME: 91 Camden St, Suite 307, Rockland, ME 04841
Santa Rosa, CA: 850 2nd Street, Suite C, Santa Rosa, CA 95404
Sarasota, FL: 1000 North Washington Blvd., Sarasota, FL 34236
Stockton, CA: 2333 West March Lane, Building B, Suite B, Stockton, CA 95207
Toronto, Canada: Suite 103 - 5407 Eglinton Ave., W Toronto, ON Canada M9C 5K6
West Memphis, AR: 1800 Missouri St., Suite 7, West Memphis, AR 72301
Willow Grove, PA: 3930 Commerce Avenue, Willow Grove, PA, 19090
Winnipeg, Canada: 550 Berry St. Winnipeg, Manitoba, Canada R3H 0R9
Distribution of employees:
Allentown, PA: 1729 W Tilghman St, Ste. 2, Allentown, PA 18104Atlanta, GA:1420 South Lake Plaza Dr., Morrow, GA 30260
Billerica, MA: 101 Billerica Ave., Building 5, Suite 204 Billerica, MA 01862
Billings, MT: 1215 24th Street West, Suite 125 Billings, MT 59102
Birmingham, AL: 100 Oxmoore Road, Suite 110 Birmingham, AL 35209
Bismarck, ND: 2404 E. Broadway Ave, #200, Bismarck, ND 58501
Chattanooga, TN: 3903 Volunteer Drive, Suite 200, Chattanooga, TN 37416
Chicago, IL: 5532 N. Broadway, Chicago, IL 60640
Columbus, OH: 4400 N. High Street, Suite 200, Columbus, OH 43214
El Paso, TX: 6501 Boeing Drive, Suite H-1, El Paso, Texas 79925
Fair Oaks, CA: 4778 Dewey Drive, Fair Oaks, CA 95628
Fairlawn, OH: 3250 West Market Street, Suite 205, Fairlawn, OH 44333
Hays, KS: 2000 East 13th, Hays, Kansas 67601
Lowell, MA: 175 Cabot Street, Suite 440, Lowell, MA 01854
Memphis, TN: 2738 Bartlett Blvd., Memphis, TN 38134
Nashville, TN: 830 Fesslers Parkway, Suite 108, Nashville, TN 37210
Orlando, FL: 5575 So. Semoran Blvd, Ste. 503, Orlando, FL 32822
Portland, OR: 2951 NW Division St., Suite 110, Gresham, OR 97030
Rockland, ME: 91 Camden St, Suite 307, Rockland, ME 04841
Santa Rosa, CA: 850 2nd Street, Suite C, Santa Rosa, CA 95404
Sarasota, FL: 1000 North Washington Blvd., Sarasota, FL 34236
Stockton, CA: 2333 West March Lane, Building B, Suite B, Stockton, CA 95207
Toronto, Canada: Suite 103 - 5407 Eglinton Ave., W Toronto, ON Canada M9C 5K6
West Memphis, AR: 1800 Missouri St., Suite 7, West Memphis, AR 72301
Willow Grove, PA: 3930 Commerce Avenue, Willow Grove, PA, 19090
Winnipeg, Canada: 550 Berry St. Winnipeg, Manitoba, Canada R3H 0R9
Testimonial:
“I would like to thank you for helping us develop and implement our new IVR system here at Toronto Hydro. The system has allowed us to improve response times during high call volumes due to storm or other weather related events. When crews are needed to report during off hours, we can now complete our staff call-in’s in less than an hour, when in the past it would take 4 or 5 hours. This of course allows us to arrive on the front door step of our customers much quicker. Your collaboration and help customizing the system to meet our special needs is a credit to your team. Your success developing this project has led to a new daily IVR to fill staff vacancies within our Trouble Dept. and we look forward to many other ventures as our needs arise.”- Rick Butler, Supervisor, Customer and Power System Services, Toronto Hydro
“Harris Broadcast Communications Division, formerly Leitch Technology Incorporated, has dealt with Answernet since 1997. Their contribution has been a major factor in our ability to handle our customers 24/7 on a worldwide basis. They have continued to work and evolve in meeting our business and customers needs as we expand, while offering constructive feedback in areas that require attention. Their staff is friendly and courteous, bringing proficiency with every request handled. I can confidently recommend Answernet as a solid and reliable partner, and a true professional in their field.”
- Sadeek (Sid) Mohamed, Customer Service Supervisor - Toronto, Harris Corporation, Broadcast Communications Division
“I just wanted to express a big thank you for everything you and AnswerNet Network employees did for Menu Foods in 2007. From a call centre perspective no one knew the firestorm that would be created by the pet food recall. The call centre volumes were through the roof and we wouldn’t have gotten through it without the dedication of AnswerNet employees. You are very cool under fire and I certainly won’t hesitate to recommend your company in the future. Feel free to direct any customers my way for a reference.”
- Bryan R. Bennett, VP of Information Technology, Menu Foods Limited
“We are very pleased to see how well the AnswerNet Team has worked for us based on our needs and wants, all the while providing great Customer Service. We appreciate AnswerNet’s flexibility when dealing with time sensitive issues within our campaign, as well as the dedication from the AnswerNet Outbound French Agents to help Hus-Tek International grow within this project. From Customer Service concerns to Reporting Cost, Hus-Tek International is proud to be in a partnership with the AnswerNet Outbound/Inbound French Agents Team.”
- Soren Dumrath, President, Hus-Tek International


It’s nostalgic. A reminder of the simpler, better days of childhood when milk and cookies were an afternoon treat. There is just something about eating warm chocolate chip cookies and not being able to stop.
There is nothing more tantalizing than the smell of mom’s freshly baked cookies wafting through the air and nothing more torturous than waiting for a fresh batch of cookies to cool enough to handle.
However, the anticipation is well worth because there is nothing more satisfying than warm cookies paired with a glass of ice cold milk. The emotional attachment to milk and cookies is irrefutable, but is there scientific evidence why milk and cookies will never go out of style? Let’s break it down.
The quintessential cookie to consume with milk is definitely the chocolate chip cookie. Originally dubbed “Toll House Crunch Cookie,” it was made by accident when Ruth Wakefield substituted Nestle’s semi-sweet chocolate chips for baking chocolate. She hoped the chips would melt to make chocolate cookies but alas, she failed, and we thank her everyday. The Scientific Reason Why Everyone Loves Milk and Cookies
I love the simplicity of the cookies -- a throwback to the good old days of after school milk and cookies but with a modern twist (hint -- it's the sea salt that I sprinkle on top before I put them in the oven.) I love that these cookies always bring me back to the many fun filled days of shopping with my Aunt and remind me of my late mother who never met a chocolate chip cookie she didn't love. Racel Levy
Butter. Butter butter butter, butter. Butter. Yum. Whether I’m baking or sauteing or eating the butter straight off the stick, I always choose good quality salted sweet cream butter. And I guess by good quality I mean the grocery store budget brand. Because, well, yum. It tastes really good, so that’s what I use.
At least two, possibly ten. I love texture, so having at least two types or two shapes of chocolate in my cookie is a must. My favorites are Nestle semisweet chocolate chunks, Hershey’s milk chocolate chips, and Guittard dark chocolate chips. The slightly different tastes of the chocolate and the varied shapes and sizes of the chips make for a more interesting (ehmm, more chocolatey) cookie.
This is a SOMETIMES tip. For the recipe in this post, I found that I actually really didn’t need to refrigerate the dough as long as I had enough flour, but sometimes you bake the first batch and you get spread-flat-cookie-city. In that case, try refrigerating or freezing the dough until it’s more firm to help it stay together better. More Tips And Tricks
| Serving size per cookie | Calories | Total Fat | Total Carbohydrates | Sugars | Protein |
| 1 | 221 | 11g | 29g | 15g | 2.3g |
| 2 | 442 | 22g | 58g | 30g | 4.6g |
| 3 | 663 | 33g | 87g | 45g | 6.9g |
| 4 | 884 | 44g | 116g | 60g | 9.2g |
| 5 | 1105 | 55g | 145g | 75g | 11.5g |


| 1 |
Lekana-Douki_2013 |
Early Introduction and Delayed Dissemination of Pandemic Influenza, Gabon |
Lekana-Douki, Sonia Etenna; Mouinga-Ondémé, Augustin; Nkoghe, Dieudonné; Drosten, Christian; Drexler, Jan Felix; Kazanji, Mirdad; Leroy, Eric M. |
2013 |
2013-04-23 |
PMC |
N |
PMC3647404 |
23631999.0 |
10.3201/eid1904.111925 |
sgaszmpv |
0.621988 |
|
|
| 2 |
Chu_Y_2017 |
Effects of school breaks on influenza-like illness incidence in a temperate Chinese region: an ecological study from 2008 to 2015 |
Chu, Yanhui; Wu, Zhenyu; Ji, Jiayi; Sun, Jingyi; Sun, Xiaoyu; Qin, Guoyou; Qin, Jingning; Xiao, Zheng; Ren, Jian; Qin, Di; Zheng, Xueying; Wang, Xi-Ling |
2017 |
2017-03-06 |
NONCOMM |
N |
PMC5353286 |
28264827.0 |
10.1136/bmjopen-2016-013159 |
r7a0orh7 |
0.620006 |
Azziz-Baumgartner_2012 |
Chong_2018, Wu_P_2018, Scott_2019 |
| 3 |
Hayward_2014 |
Comparative community burden and severity of seasonal and pandemic influenza: results of the Flu Watch cohort study |
Hayward, Andrew C; Fragaszy, Ellen B; Bermingham, Alison; Wang, Lili; Copas, Andrew; Edmunds, W John; Ferguson, Neil; Goonetilleke, Nilu; Harvey, Gabrielle; Kovar, Jana; Lim, Megan S C; McMichael, Andrew; Millett, Elizabeth R C; Nguyen-Van-Tam, Jonathan S; Nazareth, Irwin; Pebody, Richard; Tabassum, Faiza; Watson, John M; Wurie, Fatima B; Johnson, Anne M; Zambon, Maria |
2014 |
2014-06-30 |
None |
N |
PMC7164821 |
24717637.0 |
10.1016/s2213-2600(14)70034-7 |
v056i6g7 |
0.525309 |
|
Simpson_2016, Carvalho_2013, Huang_2015 |
| 4 |
Couch_2011 |
Prior Infections With Seasonal Influenza A/H1N1 Virus Reduced the Illness Severity and Epidemic Intensity of Pandemic H1N1 Influenza in Healthy Adults |
Couch, Robert B.; Atmar, Robert L.; Franco, Luis M.; Quarles, John M.; Niño, Diane; Wells, Janet M.; Arden, Nancy; Cheung, Sheree; Belmont, John W. |
2011 |
2011-11-10 |
PMC |
N |
PMC3258274 |
22075792.0 |
10.1093/cid/cir809 |
y77c4ro4 |
0.518854 |
|
Simpson_2016 |
| 5 |
Talaat_2011 |
Effects of Hand Hygiene Campaigns on Incidence of Laboratory-confirmed Influenza and Absenteeism in Schoolchildren, Cairo, Egypt |
Talaat, Maha; Afifi, Salma; Dueger, Erica; El-Ashry, Nagwa; Marfin, Anthony; Kandeel, Amr; Mohareb, Emad; El-Sayed, Nasr |
2011 |
2011-04-23 |
PMC |
N |
PMC3377412 |
21470450.0 |
10.3201/eid1704.101353 |
v8t6c23z |
0.487181 |
|
Wu_P_2018 |
| 6 |
Janjua_2010 |
Seasonal Influenza Vaccine and Increased Risk of Pandemic A/H1N1-Related Illness: First Detection of the Association in British Columbia, Canada |
Janjua, Naveed Z.; Skowronski, Danuta M.; Hottes, Travis S.; Osei, William; Adams, Evan; Petric, Martin; Sabaiduc, Suzana; Chan, Tracy; Mak, Annie; Lem, Marcus; Tang, Patrick; Patrick, David M.; De Serres, Gaston; Bowering, David |
2010 |
2010-11-01 |
PMC |
N |
PMC7107856 |
20887210.0 |
10.1086/656586 |
3d8euosy |
0.477630 |
Lekana-Douki_2013 |
Simpson_2016, Nolan_2015 |
| 7 |
Wu_Z_2016 |
Coherence of Influenza Surveillance Data across Different Sources and Age Groups, Beijing, China, 2008-2015 |
Wu, Zhenyu; Sun, Xiaoyu; Chu, Yanhui; Sun, Jingyi; Qin, Guoyou; Yang, Lin; Qin, Jingning; Xiao, Zheng; Ren, Jian; Qin, Di; Wang, Xiling; Zheng, Xueying |
2016 |
2016-12-30 |
COMM-USE |
N |
PMC5201231 |
28036373.0 |
10.1371/journal.pone.0169199 |
8mwblebg |
0.468406 |
|
Byambasuren_2020, Szymański_2017 |
| 8 |
Asner_2012 |
Respiratory viral infections in institutions from late stage of the first and second waves of pandemic influenza A (H1N1) 2009, Ontario, Canada |
Asner, Sandra; Peci, Adriana; Marchand‐Austin, Alex; Winter, Anne‐Luise; Olsha, Romy; Kristjanson, Erik; Low, Donald E.; Gubbay, Jonathan B. |
2012 |
2012-02-21 |
PMC |
N |
PMC4941672 |
22353417.0 |
10.1111/j.1750-2659.2012.00336.x |
3v0asfa7 |
0.462215 |
Lekana-Douki_2013 |
|
| 9 |
Sobers-Grannum_2010 |
Response to the challenges of pandemic H1N1 in a small island state: the Barbadian experience |
Sobers-Grannum, Natasha; Springer, Karen; Ferdinand, Elizabeth; John, Joy St |
2010 |
2010-12-03 |
COMM-USE |
N |
PMC3005570 |
21143820.0 |
10.1186/1471-2458-10-s1-s10 |
36v9f1yz |
0.416090 |
|
|
| 10 |
Chen_2012 |
Teacher led school-based surveillance can allow accurate tracking of emerging infectious diseases - evidence from serial cross-sectional surveys of febrile respiratory illness during the H1N1 2009 influenza pandemic in Singapore |
Chen, Mark IC; Chong, Chia Yin |
2012 |
2012-12-04 |
COMM-USE |
N |
PMC3544582 |
23206689.0 |
10.1186/1471-2334-12-336 |
rx93m115 |
0.378171 |
Azziz-Baumgartner_2012, Cowling_2014 |
Sáez-López_2019, Simpson_2016 |
| 11 |
Bennett_2013 |
Low‐dose oral interferon alpha as prophylaxis against viral respiratory illness: a double‐blind, parallel controlled trial during an influenza pandemic year |
Bennett, Alayne L.; Smith, David W.; Cummins, Martin J.; Jacoby, Peter A.; Cummins, Joseph M.; Beilharz, Manfred W. |
2013 |
2013-02-09 |
PMC |
N |
PMC5781220 |
23398960.0 |
10.1111/irv.12094 |
ek6a82km |
0.370382 |
|
|
| 12 |
Janjua_2012 |
Transmission dynamics and risk factors for pandemic H1N1‐related illness: outbreak investigation in a rural community of British Columbia, Canada |
Janjua, Naveed Z.; Skowronski, Danuta M.; Hottes, Travis S.; Osei, William; Adams, Evan; Petric, Martin; Lem, Marcus; Tang, Patrick; De Serres, Gaston; Patrick, David M.; Bowering, David |
2012 |
2012-03-02 |
PMC |
N |
PMC4986582 |
22385647.0 |
10.1111/j.1750-2659.2012.00344.x |
ev5w6lw2 |
0.358890 |
|
|
| 13 |
Pelat_2011 |
Field Effectiveness of Pandemic and 2009-2010 Seasonal Vaccines against 2009-2010 A(H1N1) Influenza: Estimations from Surveillance Data in France |
Pelat, Camille; Falchi, Alessandra; Carrat, Fabrice; Mosnier, Anne; Bonmarin, Isabelle; Turbelin, Clément; Vaux, Sophie; van der Werf, Sylvie; Cohen, Jean Marie; Lina, Bruno; Blanchon, Thierry; Hanslik, Thomas |
2011 |
2011-05-10 |
COMM-USE |
N |
PMC3091864 |
21573005.0 |
10.1371/journal.pone.0019621 |
bn2loscc |
0.329331 |
|
Machablishvili_2018 |


dapil wrote:First version here:http://dapil.github.io/small-plugins-bblog/add-twitter-feed.js
I will probably do some more work on it.
Howar31 wrote:dapil wrote:First version here:http://dapil.github.io/small-plugins-bblog/add-twitter-feed.js
I will probably do some more work on it.
Woot! Can't wait it release with BBLog!
Can this script usable now? sorry I'm not quite familiar with Chrome extension :/
dapil wrote:Howar31 wrote:dapil wrote:First version here:http://dapil.github.io/small-plugins-bblog/add-twitter-feed.js
I will probably do some more work on it.
Woot! Can't wait it release with BBLog!
Can this script usable now? sorry I'm not quite familiar with Chrome extension :/
This is a Better Battlelog plugin. You can use it by adding the URL to the Plugins window in Better Battlelog.
dapil wrote:This plugin now has its own thread:http://getbblog.com/board/topic/138602/1/Add-Twitter-Feed


Persona Zim
Zim Invid
Profession
Zim works at Walmart as merchandise and stocking associate in the mornings. He has a lot of time in his day since he works so early in the morning. He is going to school for business but is undecided on the type of business to start. He just knows he wants to be his own boss.
Technology:
- Acer Spin 3 14 inch Touchscreen 2-in-1 Laptop, AMD Ryzen 3 3250u, 4GB Ram, 128gb running latest version of Windows OS. His browser of choice is mozilla firefox.
- iPhone 8 256GB 4.7-inch widescreen iOS 13
- Proficiency: Zim is not the most tech savvy person but he has a pretty broad understanding of social media apps. He has a computer that uses as a part-time student at a community college and that's the only time he ever really uses it. He knows the basics of Microsoft office. He uses his phone predominantly to record videos and take photos for social media to entertain people on Instagram and Tik Tok.
- Zim's lack of knowledge when it comes to computers has lead to frustrations with technology and a love/hate relationship with it.
Attitudes & Needs:
- Zim needs a new social media platform as new entertainment.
- Zim recently watched the hit movie Men in Black and it peaked his interest in the possibility of aliens.
Frustrations
- His posts keep getting reported on Instagram and Tik Tok.
- Other platforms that he has found did not keep geographical locations of alien sightings.
- Other alien specific sites don't allow him to make posts.
- Other platforms only show sightings from decades ago.
Role
User Story
As a casual user, I want to explore posts of alien sightings nearby.
Use Case
Zim accesses Aliengram map page and sees a map with various dots and becomes curious as to what they are.
- Pre-condition: Zim stumbles upon Aliengram map page.
- Post-condition: Zim learns that each dot on the map serves as a geographical representation of an extraterrestrial sighting.
Interaction FLow
- Zim opens the map page.
- Aliengram displays map.
- Zim hovers over map.
- Map displays integer of number of alien sightings per state.
- Zim clicks a dot on the map.
- A pop-up of the alien sighting appears
- Zim reads the pop-up.
- He clicks on the close button to exit the pop-up.
- Pop-up closes and returns to display of map.


index
list of pages to try
autocomplete
bottom-sheet
button-grid
card
checkbox
chips
content
date picker
date picker range
dialog
divider
dropdown menu
fab speed
fab toolbar
forms
hello
menu bar
sample directives
slider
switch
tab
toast
todo-list
tooltip
hide this
AngularJS Material Proof - Index
example of a page with a list of retractable links on the left side
get side nav bar


Walter's Book Library
Home
Borrow
Return
Manage
Setting
Links
Login
Design Pattern
Code Complete
New Books
${newBooks}
more ...
Recommend Books
${recommendBooks}
more ...
Notification
${notification}
more ...
I can accept failure, but I can't accept not trying


{% block header %}
{# TODO: search etc. #}
{% endblock %}
|
Ian Lewis is a web developer living in Tokyo Japan. His current interests are in Go, Python, alternative databases and rapid web application development. About Me... |


{% extends "base-with-no-nav.html" %} {% block content %} {% include "_nav2.html" %}
Hello dear Author
Your books


General Election 2019: Plaid Cymru Promises To Scrap 'Waste Of Money' Trident
The party is also demanding a vote to be held in the Welsh Assembly before the UK goes to war.
Adam Price launched Plaid Cymru's 2019 manifesto in Nantgarw (Picture: PA).
Plaid Cymru has launched its 2019 General Election manifesto, pledging to scrap Trident.
The party describes the nuclear deterrent as a "waste of money", claiming that stopping its renewal would allow for £205 billion to be invested in public services.
Plaid Cymru's manifesto goes on to say the party is "determined to prevent the renewal of a weapon of mass destruction and to scrap Trident".
The party also states it will resist "all attempts to relocate nuclear weapons in Wales or in Welsh waters".
Aside from Trident, it pledges to prevent cyber attacks by working with the Government and to base all Welsh regiments in Wales.
It also wants a vote in the Welsh Assembly before the UK goes to war and states any decision for military intervention overseas should require all four nations' support.
For military veterans, Plaid Cymru promises "excellent" healthcare, including for mental health, as well as "adequate housing".


Ye Olde Train Schedul-o-matic
Now Featuring Trains
Train Name
Destination
Frequency (Min)
Next Arrival
ETA (Min)
Train Name:
Destination:
First Train Time: (Military Time)
Frequency (Min):
Send


Please provide the name of the data and a brief description of what it contains.
For example: “Export Wins. Records of verified and unverified export wins, taken from the Export Wins service. Export wins are the export deals that DBT has supported.”


Module: Concurrent::Promises::Resolvable
- Included in:
- ResolvableEvent, ResolvableFuture
- Defined in:
- lib/concurrent/promises.rb,
lib-edge/concurrent/edge/promises.rb
Overview
Marker module of Future, Event resolved manually.
Class Method Summary collapse
-
.atomic_resolution(resolvable_map) ⇒ true, false
Resolves all passed events and futures to the given resolutions if possible (all are unresolved) or none.
-
.locking_order_by(resolvable) ⇒ Comparable
An item to sort the resolvable events or futures by to get the right global locking order of resolvable events or futures.
Instance Method Summary collapse
-
#release ⇒ true, false
On successful release of the reservation.
-
#reserve ⇒ true, false
Reserves the event or future, if reserved others are prevented from resolving it.
Class Method Details
.atomic_resolution(resolvable_map) ⇒ true, false
Resolves all passed events and futures to the given resolutions if possible (all are unresolved) or none.
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
# File 'lib-edge/concurrent/edge/promises.rb', line 150 def self.atomic_resolution(resolvable_map) # atomic_resolution event => [], future => [true, :v, nil] sorted = resolvable_map.to_a.sort_by { |resolvable, _| locking_order_by resolvable } reserved = 0 while reserved < sorted.size && sorted[reserved].first.reserve reserved += 1 end if reserved == sorted.size sorted.each { |resolvable, args| resolvable.resolve(*args, true, true) } true else while reserved > 0 reserved -= 1 raise 'has to be reserved' unless sorted[reserved].first.release end false end end |
.locking_order_by(resolvable) ⇒ Comparable
Returns an item to sort the resolvable events or futures by to get the right global locking order of resolvable events or futures
128 129 130 |
# File 'lib-edge/concurrent/edge/promises.rb', line 128 def self.locking_order_by(resolvable) resolvable.object_id end |
Instance Method Details
#release ⇒ true, false
Returns on successful release of the reservation
121 122 123 |
# File 'lib-edge/concurrent/edge/promises.rb', line 121 def release compare_and_set_internal_state(RESERVED, PENDING) end |
#reserve ⇒ true, false
Reserves the event or future, if reserved others are prevented from resolving it. Advanced feature. Be careful about the order of reservation to avoid deadlocks, the method blocks if the future or event is already reserved until it is released or resolved.
111 112 113 114 115 116 117 118 |
# File 'lib-edge/concurrent/edge/promises.rb', line 111 def reserve while true return true if compare_and_set_internal_state(PENDING, RESERVED) return false if resolved? # FIXME (pitr-ch 17-Jan-2019): sleep until given up or resolved instead of busy wait Thread.pass end end |


{{ page.title }}
{{ content }}| Status | Month and Day | Year |
|---|---|---|
| Approved | May 1st | 2018 |
| Published | May 7th | 2018 |
Source: {{ page.source-domain }}
{% include head.html %}
{% include header-extended.html %}| Status | Month and Day | Year |
|---|---|---|
| Approved | May 1st | 2018 |
| Published | May 7th | 2018 |
Source: {{ page.source-domain }}


Effect of a Heavy Metal on Ecto- and Vesicular-Arbuscular Mycorrhizal Fungi: The Physiology, Ultrastructure, and Ecology of Copper Stress and Tolerance by Christine Mae Gruhn
Dissertation submitted to the Faculty of the Virginia Polytechnic Institute and State University
in partial fulfillment of the requirements for the degree of
Doctor of Philosophy in Biology
APPROVED:
Orson K. Miller, Ir? W. Lee Daniels John G. Palmer Robert A. Paterson
Charles L. Ruthefford St@phen E. Scheckler ,
August, 1989
Blacksburg, Virginia


Thrift module: firewall
Constants
| Constant | Type | Value |
SERVICE_NAME | string | "FirewallService" |
Enumerations
Enumeration: AclBooleanType
boolean types
ACL_FALSE | 0 |
False
|
ACL_TRUE | 1 |
True
|
Enumeration: AclMatchOperation
ACL_MATCH_OP_INVALID | 0 |
|
ACL_MATCH_OP_EQUAL | 1 |
|
ACL_MATCH_OP_NOT_EQUAL | 2 |
|
Enumeration: AclPolicerType
ACL Policer Type
ACL_POLICER_INVALID | 0 |
|
ACL_TWO_COLOR_POLICER | 1 |
|
ACL_THREE_COLOR_POLICER | 2 |
|
ACL_HIERARCHICAL_POLICER | 3 |
|
Enumeration: AclPolicerFlags
Policer Flags
ACL_POLICER_FLAG_INVALID | 0 |
|
ACL_POLICER_FLAG_TERM_SPECIFIC | 1 |
Policer is AclEntry specific
|
ACL_POLICER_FLAG_FILTER_SPECIFIC | 2 |
Policer is ACL specific
|
Enumeration: AclPolicerRate
Rate unit, packet size per second
ACL_POLICER_RATE_INVALID | 0 |
|
ACL_POLICER_RATE_BPS | 1 |
|
ACL_POLICER_RATE_KBPS | 2 |
|
ACL_POLICER_RATE_MBPS | 3 |
|
ACL_POLICER_RATE_GBPS | 4 |
|
Enumeration: AclPolicerBurstSize
ACL_POLICER_BURST_SIZE_INVALID | 0 |
|
ACL_POLICER_BURST_SIZE_BYTE | 1 |
|
ACL_POLICER_BURST_SIZE_KBYTE | 2 |
|
ACL_POLICER_BURST_SIZE_MBYTE | 3 |
|
ACL_POLICER_BURST_SIZE_GBYTE | 4 |
|
Enumeration: AclLossPriority
Loss Priority
ACL_LOSS_PRIORITY_INVALID | 0 |
|
ACL_LOSS_PRIORITY_HIGH | 1 |
|
ACL_LOSS_PRIORITY_MEDIUM_HIGH | 2 |
|
ACL_LOSS_PRIORITY_MEDIUM_LOW | 3 |
|
ACL_LOSS_PRIORITY_LOW | 4 |
|
Enumeration: AclEntryActionRejectReason
ACL_ACTION_REJECT_REASON_INVALID | 0 |
|
ACL_ACTION_REJECT_ADMINISTRATIVELY_PROHIBITED | 1 |
|
ACL_ACTION_REJECT_BAD_HOST_TOS | 2 |
|
ACL_ACTION_REJECT_BAD_NETWORK_TOS | 3 |
|
ACL_ACTION_REJECT_FRAGMENTATION_NEEDED | 4 |
|
ACL_ACTION_REJECT_HOST_PROHIBITED | 5 |
|
ACL_ACTION_REJECT_HOST_UNKNOWN | 6 |
|
ACL_ACTION_REJECT_HOST_UNREACHABLE | 7 |
|
ACL_ACTION_REJECT_NETWORK_PROHIBITED | 8 |
|
ACL_ACTION_REJECT_NETWORK_UNKNOWN | 9 |
|
ACL_ACTION_REJECT_NETWORK_UNREACHABLE | 10 |
|
ACL_ACTION_REJECT_PORT_UNREACHABLE | 11 |
|
ACL_ACTION_REJECT_PRECEDENCE_CUTOFF | 12 |
|
ACL_ACTION_REJECT_PRECEDENCE_VIOLATION | 13 |
|
ACL_ACTION_REJECT_PROTOCOL_UNREACHABLE | 14 |
|
ACL_ACTION_REJECT_SOURCE_HOST_ISOLATED | 15 |
|
ACL_ACTION_REJECT_SOURCE_ROUTE_FAILED | 16 |
|
ACL_ACTION_REJECT_TCP_RESET | 17 |
|
Enumeration: AclEntryOperation
ACL Entry operation
ACL_ENTRY_OPERATION_INVALID | 0 |
|
ACL_ENTRY_OPERATION_ADD | 1 |
|
ACL_ENTRY_OPERATION_DELETE | 2 |
|
ACL_ENTRY_OPERATION_REPLACE | 3 |
|
Enumeration: AclAdjacencyType
Adjacency Type
ACL_ADJACENCY_NONE | 0 |
|
ACL_ADJACENCY_AFTER | 1 |
|
ACL_ADJACENCY_BEFORE | 2 |
|
Enumeration: AclFragmentFlags
Fragment Flags
ACL_FRAGMENT_NONE | 0 |
|
ACL_DONT_FRAGMENT | 1 |
|
ACL_IS_FRAGMENT | 2 |
|
ACL_FIRST_FRAGMENT | 3 |
|
ACL_LAST_FRAGMENT | 4 |
|
Enumeration: Precedence
Precedence
ACL_PRECEDENCE_ROUTINE | 0 |
|
ACL_PRECEDENCE_PRIORITY | 1 |
|
ACL_PRECEDENCE_IMMEDIATE | 2 |
|
ACL_PRECEDENCE_FLASH | 3 |
|
ACL_PRECEDENCE_FLASH_OVERRIDE | 4 |
|
ACL_PRECEDENCE_CRITICAL_ECP | 5 |
|
ACL_PRECEDENCE_INTERNET_CONTROL | 6 |
|
ACL_PRECEDENCE_NET_CONTROL | 7 |
|
Enumeration: AccessListFamilies
AccessList Families.
Currently only inet family firewall ACLs are supported.
ACL_FAMILY_INVALID | 0 |
|
ACL_FAMILY_INET | 1 |
IPv4 family
|
Enumeration: AccessListFlags
AccessListFlags
Any proprietory flag to be enabled at the ACL level.
Enumeration: AccessListTypes
AccessList types.
Currently only classic is supported.
ACL_TYPE_INVALID | 0 |
|
ACL_TYPE_CLASSIC | 1 |
Classic ACL type
|
Enumeration: AclBindDirection
AccessList Bind Direction
ACL_BIND_DIRECTION_INVALID | 0 |
|
ACL_BIND_DIRECTION_INPUT | 1 |
Bind on ingress
|
ACL_BIND_DIRECTION_OUTPUT | 2 |
Bind on egress
|
Enumeration: AccessListReturnVal
ACL_STATUS_INVALID | 0 |
|
ACL_STATUS_EOK | 1 |
success
|
ACL_STATUS_NULL_MESSAGE | 2 |
|
ACL_STATUS_EINVALID_MESSAGE | 3 |
|
ACL_STATUS_EINTERNAL | 4 |
|
ACL_STATUS_EUNSUPPORTED_OP | 5 |
|
ACL_STATUS_NO_RESOURCE | 7 |
|
ACL_STATUS_BS_TIMEOUT | 8 |
|
Enumeration: AccessListBindObjType
ACL_BIND_OBJ_TYPE_INVALID | 0 |
|
ACL_BIND_OBJ_TYPE_INTERFACE | 1 |
|
Data structures
Struct: AclPolicerTwoColor
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | bw_unit | AclPolicerRate | Bandwidth unit
| default | |
| 2 | bandwidth | i64 | Bandwidth rate
| default | |
| 3 | burst_unit | AclPolicerBurstSize | Burst unit
| default | |
| 4 | burst_size | i64 | Burst size
| default | |
| 5 | lp | AclLossPriority | Loss priority
| optional | |
| 6 | fc_string | string | Forwarding class should be provided as a string
| optional | |
| 7 | discard | AclBooleanType | Discard action
| optional | |
Policer parameter for 2 color policer
Union: AclPolicerParameter
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | two_color_parameter | AclPolicerTwoColor | | default | |
ACL Policer parameter
Struct: AccessListPolicer
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | policer_name | string | Policer name (Less than 64 characters). Requiredness: required.
| default | |
| 2 | policer_type | AclPolicerType | Policer type
| default | |
| 3 | policer_flag | AclPolicerFlags | Policer Flags
| default | |
| 4 | policer_params | AclPolicerParameter | Policer Paremeter
| default | |
A Policer
Union: IpAddress
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | addr_string | string | | optional | |
| 2 | addr_bytes | binary | | optional | |
Struct: AclMatchIpAddress
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | addr | IpAddress | Destination address
| default | |
| 2 | prefix_len | i32 | Destination prefix length
| default | |
| 3 | match_op | AclMatchOperation | | default | |
Address match condition
Struct: AclMatchPort
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | min | i32 | Minimum destination port
| default | |
| 2 | max | i32 | Maximum destination port
| default | |
| 3 | match_op | AclMatchOperation | | default | |
Matching Port match condition
Struct: AclMatchDscpCode
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | min | i32 | Minimum Dscp code
| default | |
| 2 | max | i32 | Maximum Dscp code
| default | |
| 3 | match_op | AclMatchOperation | | default | |
DSCP (diffserv code point) match condition
Struct: AclMatchProtocol
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | min | i32 | Minimum Protocol number
| default | |
| 2 | max | i32 | Maximum Protocol number
| default | |
| 3 | match_op | AclMatchOperation | | default | |
IP Protocol match condition
Struct: AclMatchIcmpType
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | min | i32 | Minimum Icmp type
| default | |
| 2 | max | i32 | Maximum Icmp type
| default | |
| 3 | match_op | AclMatchOperation | | default | |
ICMP type match condition
Struct: AclMatchIcmpCode
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | min | i32 | Minimum Icmp code
| default | |
| 2 | max | i32 | Maximum Icmp code
| default | |
| 3 | match_op | AclMatchOperation | | default | |
ICMP code match condition
Struct: AclMatchPktLen
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | min | i32 | Minimum Packet length
| default | |
| 2 | max | i32 | Maximum Packet length
| default | |
| 3 | match_op | AclMatchOperation | | default | |
Packet length match condition
Struct: AclMatchTtl
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | min | i32 | Minimum Time to live
| default | |
| 2 | max | i32 | Maximum Time to live
| default | |
| 3 | match_op | AclMatchOperation | AclMatch op
| default | |
TTL (Time to live) match condition for IPv4
Struct: AclActionPolicer
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | policer | AccessListPolicer | The policer
| default | |
Police the matching packets
Struct: AclActionCounter
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | counter_name | string | Counter name (upto 64 characters)
| default | |
Count the matching packets
Struct: AclActionRoutingInstance
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | rt_instance_name | string | Policer name (upto 64 characters)
| default | |
Direct matching packets to a routing-instance
Struct: AclAdjacency
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | type | AclAdjacencyType | Type of adjacency placement
| default | |
| 2 | ace_name | string | Type of adjacency placement
| default | |
Adjacency details of ace placement
Union: AclMatchIflNameIndex
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | ifl_name | string | IFL name
| default | |
| 2 | ifl_index | i32 | IFL index
| default | |
Struct: AclEntryMatchInet
An ACL Match
Union: AclEntryInetTerminatingAction
A terminating ACL Action
Union: AclEntryInetNonTerminatingAction
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | action_count | AclActionCounter | Count the matching packets
| optional | |
| 2 | action_log | AclBooleanType | Log the matching packets
| optional | |
| 3 | action_syslog | AclBooleanType | Syslog the matching packets
| optional | |
| 4 | action_police | AclActionPolicer | Police the matching packets. Ensure that policer exists before it being used.
| optional | |
| 5 | action_sample | AclBooleanType | Sample
| optional | |
An ACL NonTerminating Action
Struct: AclEntryInetAction
An ACL Action
Struct: AclInetEntry
An Inet ACL entry
Struct: AclEntry
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | inet_entry | AclInetEntry | For Inet family
| default | |
An ACL entry. It could be one of type of families.
Struct: AccessList
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | acl_name | string | AccessList name (Less than 64 characters)
| default | |
| 2 | acl_type | AccessListTypes | AccessList type
| default | |
| 3 | acl_family | AccessListFamilies | AccessList family
| default | |
| 4 | acl_flag | AccessListFlags | AccessList flag
| optional | |
| 5 | ace_list | list<AclEntry > | List of Destination addresses
| optional | |
An ACL
Struct: AccessListCounter
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | acl | AccessList | Access list
| default | |
| 2 | counter_name | string | Counter name
| default | |
Struct: AccessListCounterVal
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | counter_name | string | Counter Name
| default | |
| 2 | status | AccessListReturnVal | Error status
| default | |
| 3 | bytes | i64 | Byte count
| default | |
| 4 | packets | i64 | Packet count
| default | |
Struct: AccessListObjBind
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | acl | AccessList | Access list
| default | |
| 2 | obj_type | AccessListBindObjType | Access list object type
| default | |
| 3 | bind_object | string | Bind object name where the ACL is to be bound
| default | |
| 4 | bind_direction | AclBindDirection | Bind direction
| default | |
| 5 | bind_family | AccessListFamilies | Family on the bind object. Must match with the ACL family
| default | |
Per forwarding element ACL bindings
Struct: AccessListReturnStatus
| Key | Field | Type | Description | Requiredness | Default value |
| 1 | status | AccessListReturnVal | | default | |
| 2 | err_str | string | | default | |
Services
Service: FirewallService
Firewall Service APIs
Function: FirewallService.AccessListAdd
AccessListReturnStatus
AccessListAdd(AccessList
acl)
Adds an ACL and returns the result.
Parameters
| Name | Description | | acl | AccessList. Requiredness: required.
|
Function: FirewallService.AccessListDelete
AccessListReturnStatus
AccessListDelete(AccessList
acl)
Delete an ACL from the system and return the result.
For successful delete to happen, the ACL should not be bound to any object.
Parameters
| Name | Description | | acl | AccessList. Requiredness: required.
|
Function: FirewallService.AccessListChange
AccessListReturnStatus
AccessListChange(AccessList
acl)
Changes an ACL based on the list of ACL entries provided, and returns the result.
It is advisable to use this API to for small incremental changes. For wholesale
changes, it is recommended to use the 'Replace' version of the API.
Parameters
| Name | Description | | acl | AccessList. Requiredness: required.
|
Function: FirewallService.AccessListBindAdd
AccessListReturnStatus
AccessListBindAdd(AccessListObjBind
bind_obj)
Add a binding of an ACL with a bind object and return the result.
Parameters
| Name | Description | | bind_obj | Bind object
|
Function: FirewallService.AccessListBindDelete
AccessListReturnStatus
AccessListBindDelete(AccessListObjBind
bind_obj)
Deletes a binding of an ACL with a bind object and return the result.
Parameters
| Name | Description | | bind_obj | Bind object
|
Function: FirewallService.AccessListPolicerAdd
AccessListReturnStatus
AccessListPolicerAdd(AccessListPolicer
policer)
Adds a policer and returns the result.
Parameters
| Name | Description | | policer | AccessList type. Requiredness: required.
|
Function: FirewallService.AccessListPolicerReplace
AccessListReturnStatus
AccessListPolicerReplace(AccessListPolicer
policer)
Changes a policer and returns the result.
Parameters
| Name | Description | | policer | AccessList type. Requiredness: required.
|
Function: FirewallService.AccessListPolicerDelete
AccessListReturnStatus
AccessListPolicerDelete(AccessListPolicer
policer)
Deletes a policer and returns the result.
Parameters
| Name | Description | | policer | AccessList type. Requiredness: required.
|
Function: FirewallService.AccessListCounterGet
AccessListCounterVal
AccessListCounterGet(AccessListCounter
acl_counter)
Few points to note with this API.
The call is going to be blocking for worst case of 10 seconds which is non configurable.
The counter name is expected to be fully resolved. For eg. for term specific policer counter
it is expected to be passed to full counter name.
Parameters
| Name | Description | | acl_counter | AccessListCounter. Requiredness: required.
|
Function: FirewallService.AccessListCounterClear
AccessListReturnStatus
AccessListCounterClear(AccessListCounter
acl_counter)
Few points to note with this API. Currently only 1 counter get is supported.
The counter name is expected to be fully resolved. For eg. for term specific policer counter
it is expected to be passed to full counter name.
Parameters
| Name | Description | | acl_counter | AccessListCounter. Requiredness: required.
|


especially
voted
held
joining
russia.
referendum
annexed
countries
powers.
majority
favour
recognised
especially
voted
held
joining
russia.
referendum
annexed
countries
powers.
majority
favour
recognised
dispute
ongoing
territorial
dispute
ongoing
territorial


{% extends "base.html" %} {% block content %}
If you are not a reistered user and wish to signup, please click here Signup


I'm trying to use the RFM69CW module from Hope in place of the standard RFM12B. By using the latest version of Jeelib, my test sketch is now running rather than locking up as it did before.
Before including <Jeelib.h>, I understand that the line #define RF69_COMPAT 1 needs to be present. When set to 0, the code should run with the RFM12B, which it does. When set to 1, it should run with the RFM69 which it is also now doing.
My problem is that no RF activity seems to be happening. The Serial Monitor tells me that each message is being assembled and is ready for being transmitted, but no RF appears to be coming out of the aerial. My receiver platform is detecting nothing.
On a similar board which has an RFM12B in place, and with RF69_COMPAT set to 0, and the same sketch and libraries, transmission is fine. Both of my hardware platforms are similar to the emonTx V2, and I am using 868 MHz chips throughout.
Does anyone have a transmitter sketch which works on this kind of platform with the new RF chip? Maybe there is some extra instruction that needs to be present. It's as if my RF69 module has not been enabled.
Hope someone can point out what I'm doing wrong.
Thanks,
Robin
Re: Using the RFM69CW module from Hope
Actually the Jeelib RFM69(CW) code is not yet fully tuned to be 100% reliable.
See: http://jeelabs.net/boards/6/topics/4050
and: http://jeelabs.net/issues/439
Re: Using the RFM69CW module from Hope
Was this ever solved? the bug is closed, but I cannot see a resolution or i might have missed it in the long thread.
I have the problem with RFM69CW that I'm not getting any data using jeelib( with #define RF69_COMPAT 1)
Re: Using the RFM69CW module from Hope
Sorry, I'm not aware of a solution being posted.
In my case, I got around the problem by fitting the standard RFM12B units instead.
Re: Using the RFM69CW module from Hope
I am using the RFM69W's with JeeLib in compatibility mode. I haven't had any issues after I made minor adjustments to RF frequency offsets to get lowest RSSI. There does seem to be an issue with the rf12_sleep() function, so I don't use it.
I just added a LCDnode (similar to emonGLCD) and have three TH2RF (similar to emonTH) nodes with a RF2Pi gateway (similar to RFM12Pi).. All nodes and gateway have RFM69W. Also using Node-Red for gateway SW interface to Raspberry Pi.
Refer to LCDnode video on Youtube:
http://youtu.be/khxVsHvZ3mI
Refer to system details here:
https://sites.google.com/site/tgmaxx/home-1/environmental
Re: Using the RFM69CW module from Hope
Do you have any news about the rf12_sleep() issue when using the RFM69 module? Was it corrected?
tgmaxx, I saw in your site (https://sites.google.com/site/tgmaxx/energy-enviro-monitoring/environmen...) that you have removed the calls to rf12_sleep(), but how do you manage the power consumption of the RFM69 when the node is battery powered? The Rx consumption of the module is very high, it should be put at sleep.
Fernando


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Makes 4
Dietary
Mac and cheese is a winner with most families - this one contains hidden vegetables as an added healthy bonus.
Equipment and preparation: For this recipe you will need a hand-held blender or food processor to make the sauce.
Preheat the oven to 200C/180C Fan/Gas 6. Lightly grease a 2 litre/3½ pint shallow ovenproof dish with butter.
Half fill a large saucepan with water and bring to the boil. Add the cauliflower florets and boil for 10-12 minutes, or until very soft. Drain and set aside.
Half-fill the same pan with water and return to the boil. Add the macaroni and cook for 8-10 minutes, or until al dente.
Meanwhile, melt the butter in a saucepan over a low heat, then whisk in the flour until the mixture forms a smooth paste. Cook, whisking constantly, for 30 seconds.
Gradually whisk in the milk a little at a time, bringing the mixture to a gentle simmer and waiting for it to thicken after each addition. Continue to cook, stirring constantly, until all of the milk has been incorporated and the sauce has thickened enough to coat the back of a spoon (about 6-8 minutes).
Stir in two-thirds of the cheese, then season with salt and pepper.
Add the cauliflower to the sauce, blend until smooth using a hand-held blender. Warm the mixture through gently, adding a little more seasoning or milk, as required. The finished sauce should have the consistency of pouring custard.
Drain the pasta and transfer to the ovenproof dish. Pour over the sauce and stir to combine. Sprinkle over the remaining cheese. Bake for 20-25 minutes, or until the top is golden-brown and the sauce is bubbling.
You need JavaScript to view this clip.
How to make white sauce


Marijn: A platform game, CANVAS version
- Press the cursor keys; ArrowUp, ArrowLeft, ArrowRight;
to jump, move left and move right, respectively.
- Press ESC to pause the game anytime.
- Avoid being scorched and get all gold coins to win the game.
- Be careful of monsters:they run fast, jump unpredictably and can be
defeated if the player lands his/her feet on them.


RuPaul's Drag Race UK crowns The Vivienne as first ever winner
RuPaul’s Drag Race UK has crowned The Vivienne has the show’s very first drag race superstar.
The Liverpudlian queen beat out Divina DiCampo and Baga Chipz to the top spot after eight weeks of acting, shade and a whole lot of sequins to come out on top.
The final three were put through their paces in the last mega challenge, which saw them learn dance routines from Strictly’s AJ Pritchard and Love Island brother Curtis Pritchard, as well as appear on RuPaul and Michelle Visage’s podcast, What’s The Tee?
Finally they had to come up with their own lyrics to RuPaul’s Rock It [To The Moon].
Speaking after being given the crown, The Vivienne, real name James Lee Williams, put on her Donald Trump voice one last time and said: ‘It’s been absolutely great. It’s been tremendous. Thank you!’
Advertisement Advertisement
They later told the confessional: ‘I’m made up! I’ve just won the first ever season of Drag Race UK!
‘And that crown is gorgeous,’ she laughed. ‘You’ll see me there washing the dishes in it!’
Baga Chipz was the first of the three to be eliminated, leaving Divina and Baga in the top two to lip-sync for the crown to, amazingly, I’m Your Man by Wham!
‘The Vivienne has it all, she can serve a look, deliver a line, she is without doubt a terrific drag queen, drag act,’ Graham Norton said in the final deliberations.
Alan Carr agreed and said: She’s got that trademark wit. When she was Trump, oh my God, it was the best Trump I’ve ever seen. It was a comedy masterclass.’
Then RuPaul herself declared: ‘The Viv is a perfect example of a 21st century British Queen. I think she is a great representative of what this competition can turn out.’
During the chat with Ru and Michelle on the podcast, The Vivienne opened up about his past struggles with party drug ketamine, revealing a four-year spiral ended in him moving to Spain and getting sober.
‘I struggled with addiction, and I’m two years clean now. It was breakfast, dinner and tea. I could have three bags of it just putting my face on,’ he explained.
‘I just had to stop, it was a case of doctors telling me I was going to be dead by the time I was 30. I was getting evicted from apartments.
Advertisement Advertisement
‘I was on good money, I was in drag six nights a week, but I was living like a poor person.’
Now happily sober and engaged, The Vivienne said that they hoped to help others in the gay community who struggle with drug addiction.
As the winner of the show, The Vivienne has been given an all expenses paid trip to Los Angeles, creating her own YouTube series with production company, World of Wonder.
RuPaul’s Drag Race UK is available now on BBC iPlayer.
Got a showbiz story? If you've got a story, video or pictures get in touch with the Metro.co.uk Entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


Infinite Monkey Snippet
Snippet ID:
Info:
Language:
Timestamp:
Save Info
Text:
Comments:
Save Text
Contact Us
some text and links (github, linkedin, instagram, etc.)