How I came to study Computer Science
When I first started looking at schools I wanted to be a Genetic Engineer. When I entered my senior year and I started applying to universities I applied as a Philosophy Major planning on doing pre-law and a possible History double-major with an end goal of being a judge. During the Summer between the end of high school and the beginning of college, I decided I wanted to study Astrophysics. I was a Physics and Astronomy major for my first semester. I realized it was not for me and decided to give Computer Science a try. I fell in love with programing and remained in the major. I maintained my interest in History however and did in fact double major in it. Mobile (Android) App Development continues to be my favorite Computer Science course, it instilled in me a great passion for mobile development. Bringing applications into one's daily life by making it more accessible via handheld devices is vitally important to me.


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 = 25
"""
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')
input_z = tf.placeholder(tf.float32, (None, z_dim), name='input_z')
learning_rate = tf.placeholder(tf.float32, name='learning_rate')
return input_real, input_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
alpha = 0.2
with tf.variable_scope('discriminator', reuse=reuse):
# Input layer is 28x28x3
x1 = tf.layers.conv2d(images, 64, 5, strides=2, padding='same')
relu1 = tf.maximum(alpha * x1, x1)
# 14x14x64
x2 = tf.layers.conv2d(relu1, 128, 5, strides=2, padding='same')
bn2 = tf.layers.batch_normalization(x2, training=True)
relu2 = tf.maximum(alpha * bn2, bn2)
# 7x7x128
x3 = tf.layers.conv2d(relu2, 256, 5, strides=2, padding='same')
bn3 = tf.layers.batch_normalization(x3, training=True)
relu3 = tf.maximum(alpha * bn3, bn3)
# 4x4x256
# Flatten it
flat = tf.reshape(relu3, (-1, 4*4*256))
logits = tf.layers.dense(flat, 1)
out = tf.sigmoid(logits)
return out, logits
"""
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
alpha = 0.2
reuse = not is_train
with tf.variable_scope('generator', reuse=reuse):
# First fully connected layer
x1 = tf.layers.dense(z, 4*4*512)
# Reshape it to start the convolutional stack
x1 = tf.reshape(x1, (-1, 4, 4, 512))
bn1 = tf.layers.batch_normalization(x1, training=is_train)
lrelu1 = tf.maximum(alpha * bn1, bn1)
# 4x4x512 now
upsample2 = tf.image.resize_nearest_neighbor(lrelu1, (7,7))
conv2 = tf.layers.conv2d(upsample2, 256, 5, padding='same', activation=None)
# x2 = tf.layers.conv2d_transpose(x1, 256, 5, strides=2, padding='same')
bn2 = tf.layers.batch_normalization(conv2, training=is_train)
lrelu2 = tf.maximum(alpha * bn2, bn2)
# 7x7x256 now
upsample3 = tf.image.resize_nearest_neighbor(lrelu2, (14,14))
conv3 = tf.layers.conv2d(upsample3, 128, 5, padding='same', activation=None)
bn3 = tf.layers.batch_normalization(conv3, training=is_train)
lrelu3 = tf.maximum(alpha * bn3, bn3)
# 16x16x128 now
# Output layer
upsample3 = tf.image.resize_nearest_neighbor(lrelu3, (28,28))
logits = tf.layers.conv2d(upsample3, out_channel_dim, 5, padding='same')
# 32x32x3 now
out = tf.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)
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
gen_model = generator(input_z,out_channel_dim,is_train=True)
d_model_real,d_logits_real =discriminator(input_real,reuse=False)
d_model_fake,d_logits_fake =discriminator(gen_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) * 0.9))
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
"""
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)):
g_opt_train = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(g_loss, var_list=g_vars)
d_opt_train = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(d_loss, var_list=d_vars)
return d_opt_train, g_opt_train
"""
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")
"""
# TODO: Build Model
losses = []
steps = 0
_, image_width, image_height, image_channels = data_shape
input_real, input_z , learning_rate_pl = model_inputs(image_width,image_height,image_channels,z_dim)
d_loss, g_loss = model_loss(input_real, input_z, image_channels)
d_opt, g_opt = model_opt(d_loss, g_loss,learning_rate_pl, beta1)
n_images = 25
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):
# TODO: Train Model
steps += 1
# Sample random noise for G
batch_z = np.random.uniform(-1, 1, size=(batch_size, z_dim))
batch_images = batch_images * 2.0
_ = sess.run(d_opt, feed_dict={input_real:batch_images,input_z:batch_z,learning_rate_pl:learning_rate})
_ = sess.run(g_opt, feed_dict={input_real:batch_images,input_z:batch_z,learning_rate_pl:learning_rate})
# sess.run(g_opt, feed_dict={input_real:batch_images,input_z:batch_z,learning_rate_pl:learning_rate})
if steps % 10 == 0 :
train_loss_d = d_loss.eval({input_real:batch_images,input_z:batch_z,learning_rate_pl:learning_rate})
train_loss_g = g_loss.eval({input_real:batch_images,input_z:batch_z,learning_rate_pl:learning_rate})
print("Epoch {}/{}...".format(epoch_i+1, epoch_count),
"Discriminator Loss: {:.4f}...".format(train_loss_d),
"Generator Loss: {:.4f}".format(train_loss_g))
losses.append((train_loss_d, train_loss_g))
if steps % 100 == 0:
show_generator_output(sess,n_images,input_z,image_channels,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.
z_dim = 128 learning_rate = 0.0002 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 = 100
learning_rate = 0.0002
beta1 = 0.42
"""
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.


Form Layout
Home
Form
Form Layout
Horizontal Forms
Email
Example block-level help text here.
Password
Example block-level help text here.
Upload
Remember Me
Sign in
Iconic field
Left Icon
Right Icon
Input with Loading
Horizontal Iconic Forms
Left Icon
Right Icon
Input with Loading
Button addons
Inline form
Email address
Password
Remember me
Sign in
Form Elements
Default
Rounder
Help text
A block of help text that breaks onto a new line and may extend beyond one line.
Input focus
Disabled
Placeholder
Password
Static control
<EMAIL_ADDRESS>File input
Textarea
Input with success
Input with warning
Input with error
Control sizing
Option 1
Option 2
Option 3
Option 1
Option 2
Option 3
Option 1
Option 2
Option 3
Checkboxes and radios
Option one is this and that—be sure to include why it's great
Option one is this and that—be sure to include why it's great option one
Option one is this and that—be sure to include why it's great
Option two can be something else and selecting it will deselect option one
Inline checkboxes
Checkboxes One
Checkboxes Two
Checkboxes Three
Custom Inline checkboxes
Primary
Success
Info
Warning
Danger
Custom Checkboxes
Success
Info
Primary
Warning
Danger
Disabled
Success
Primary
Info
Warning
Danger
Disabled
Custom Radio
Male
Female
disable
info
success
warning
danger
Switch
Switch Size
Selects
1
2
3
4
5
1
2
3
4
5
Column sizing
Input groups
Basic examples
@
.00
$
.00
Sizing
@
@
@
Checkboxe and radio
Button addons
Go!
Go!
Action
Action
Another action
Something else here
Separated link
Action
Action
Another action
Something else here
Separated link
Segmented buttons
Action
Action
Another action
Something else here
Separated link
Action
Action
Another action
Something else here
Separated link
Chat
Info
Settings
Chat list
34 Friends Online, 80 Offline
online
Alison Jones
Start exploring
Jonathan Smith
Alien Inside
Anjelina Doe
Screaming...
Franklin Adam
Don't lose the hope
Jeff Crowford
Just flying
Offline
Alison Jones
Start exploring
Jonathan Smith
Alien Inside
Anjelina Doe
Screaming...
Franklin Adam
Don't lose the hope
Jeff Crowford
Just flying
Latest Information
Revenue
Received Money from John Doe
$12300
Total Admin Template Sales
$40100
Monty Revenue
$322300
Received Money from John Doe
$1520
Statistics
Foreign Visit
25% Increase
Montly Visit
Average visit 12% Increase
Unique Visit
35% unique visitor
Notification
Meeting with John Doe at
11.30 am
3 membership request pending
John, Smith, Lira
System
Received database error report from hosting provider
11.30 am
Hosting Renew notification
12.00 pm
Work Progress
Server Setup and Configuration
50% completed
Website Design & Development
85% completed
Account Setting
Configure your account as per your need.
Make my feature post public?
Everyone will be able to see, like, comment and share your feature post.
Show offline Contacts
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Everyone will see my stuff
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
General Setting
Configure your account as per your need.
Show me Online
Status visible to all
Show my work progess to all


Buying a national ticket
Once you press C to continue, you shall be greeted with the screen below.
To buy a national ticket, enter N to continue.
Now you have the choice of either generating random numbers, or inputting the numbers yourself, press Y/N accordingly.
If you choose yes, you shall be shown with this message.
However if you choose no, you shall be shown with this message instead.
How to win
There can only be one winner, this is due to the fact that no tickets may carry the same numbers.


|
|
|
Assistant Professor Philip Levis
Office: 358 Gates Hall, Stanford University, Stanford, CA, 94305-9030
Office hours: Tue 3-4, or by appointment
Phone: +1<PHONE_NUMBER>
email: pal at cs stanford edu, but I receive more email than I can handle. Please don't be offended if I don't reply.
Biography
I'm an Assistant Professor in the Computer Science and Electrical
Engineering Departments of Stanford University.
When laws of scale and Moore's Law mean that we
can have computers embedded everywhere and in everything,
it's unlikely that they will use the operating systems,
networking, or programming languages of today. I'm interested
in researching what these low-power
wireless networks comprised of large numbers of tiny embedded nodes
will use. I'm also interested in the design of large-scale
networked systems for virtual worlds, in part due to their
ability to bridge physical and virtual environments.
I head the Stanford Information
Networking Group (SING), recently received the honor of being
a Microsoft Research New Faculty Fellow, and received an NSF CAREER award in 2008.
|
|
Current Courses
CS144: Introduction to Computer Networking, Spring 2008 (co-taught with David Mazières), Fall 2008
CS340V: Networked Systems for Virtual Worlds, Fall 2008
Other Courses
CS67N: The Computer of History, the Computer of Fiction, Winter 2006
CS240E: Low-Power Sensing Systems, Winter 2007
CS244E: Low-Power Wireless Networking, Spring 2007
CS344E: Sensor Network Systems, Spring 2006, Spring 2008 (used to be CS344A)
EE108A, Fall 2006 (co-taught with Bill Dally), Winter 2008
TinyOS Programming Manual
I've recently written a short book on programming TinyOS. Unlike the tutorials,
which are a brief introduction to get you started, or TEPs, which describe
parts of TinyOS 2.0, Programming TinyOS digs into nesC and how you can use it to build TinyOS applications.
Except for a few fictional components in the beginning, almost every concept
has a TinyOS 2.0 implementation as an example. A second version of the text,
co-written with David Gay, will soon be available for purchase in April of 2009. We tried to keep the cost
down by making it softcover and having very tiny royalties. Unfortunately,
though, TinyOS programming is not a blockbuster topic, so the book is
a bit pricier than I'd like. Oh well.
Selected Publications (full list)
You can generally find more up-to-date and detailed information
on the SING website.
- Rodrigo Fonseca, Prabal Dutta, Philip Levis, and Ion Stoica.
"Quanto: Tracking Energy in Networked Embedded Systems." To appear in Proceedings of the Eighth USENIX Symposium on Operating System Design and Implementation (OSDI), 2008.
- Kannan Srinivasan, Maria Kazandijeva, Saatvik Agarwal, and Philip Levis.
"The β-factor: Measuring Wireless Link Burstiness." To appear in Proceedings of the 6th ACM Conference on Embedded Networked Sensor Systems (SenSys), 2008.
- Philip Levis, Eric Brewer, David Culler, David Gay, Samuel Madden, Neil Patel, Joe Polastre, Scott Shenker, Robert Szewczyk, and Alec Woo.
"The Emergence of a Networking Primitive in Wireless Sensor Networks." In Communications of the ACM, Volume 51, Issue 7, July 2008.
- Kaisen Lin and Philip Levis
"Data Discovery and Dissemination with DIP." In Proceedings of the Seventh International Conference on Information Processing in Wireless Sensor Networks (IPSN), 2008.
- Megan Wachs, Jung Il Choi, Jung Woo Lee, Kannan Srinivasan, Zhe Chen, Mayank Jain and Philip Levis
"Visibility: A New Metric for Protocol Design." In Proceedings of the Fifth ACM Conference on Embedded Networked Sensor Systems (SenSys), 2007.
- Kevin Klues, Vlado Handziski, Chenyang Lu, Adam Wolisz, David Culler, David Gay, and Philip Levis
"Integrating Concurrency Control and Energy Management in Device Drivers." In Proceedings of the 21st ACM Symposium on Operating System Principles (SOSP), 2007.
- Philip Levis, Neil Patel, David Culler, and Scott Shenker
"Trickle: A Self-Regulating Algorithm for Code Propagation and Maintenance in Wireless Sensor Networks." In Proceedings of the First USENIX/ACM Symposium on Networked Systems Design and Implementation (NSDI 2004). Received best paper award.
Some Talks
- "Towards a Wireless Lexicon."
Bertinoro Wireless Workshop, Aug. 20, 2007.
- "Low-Power Sensor Networks: A Case Study in Seeking Distributed Dependability."
Keynote at NSF HCCS-CPS Workshop, Nov. 30, 2006.
- "IP and Low-Power Wireless: Madness, the Future, or Both?"
HotNets V, Nov. 29, 2006.
- "TinyOS: An Open Platform for Wireless Sensor Networks. Part II: Network Architecture."
Invited Tutorial, IEEE MDM, May 11, 2006.
- "TinyOS: An Open Platform for Wireless Sensor Networks."
Invited Tutorial, IEEE MDM, May 10, 2006.
- "T2: What the Second Generation Holds"
CS294-11, Berkeley, 6 October 2005.
- "Embedded Sensor Architecture."
EE282, Stanford, 14 October 2005.
- "Sensor Network Protocol Design and Implementation."
CS268, UC Berkeley, 25 April 2005.
- "Data Dissemination in Wireless Sensor Networks."
NSDI 2004.
- "The Internet vs. Sensor Nets."
ICSI, 5 May 2004.
- "Evaluating Sensor Network Protocols."
ICSI, 22 January 2003.
Program Committees
| 2009: |
IPSN (Co-chair, IP track),
SenSys,
SOSP |
| 2008: |
MODUS,
IPSN,
ICDCS,
NSDR,
SIGCOMM,
OSDI
|
| 2007: |
IPSN,
EmNets (co-chair),
SIGCOMM,
DMSN,
SenSys,
MidSens
|
| 2006: |
NetDB,
IPSN,
DCOSS,
SenSys,
RTSS
|
Quote
(on the subject of object naming in virtual worlds)
Me: So the case you're concerned with is Godzilla walking through Godzilla's door?
Daniel: Exactly.
|
|


Format is
!search_regex!replace!regexp_options
(regexp_options can be g,m,i,u for global, multiline and case insensitive, url encoded)
# comments are allowed (start a line with #)
Input:
Output:
Enter some text above in and as you edit the patterns box the "Output" line will be updated.
TODO(ark)
Testing
Click on one of these links to have it copied to the clipboard.


Mindfulness practices for participants of the Compassionate Leadership Programme.
On this page you will find the guided mindfulness practices for the Compassionate Leadership Programme you are enrolled on.
You can download the audio files or listen to them online. To download the audio files to your computer, right click or hold down the mouse button to bring up the menu and select 'Save Link As'.


We monetize systems!
- streamline enterprise e-markets
- incentivize user-centric portals
- enhance cross-media niches
- maximize user-centric niches
- orchestrate web-enabled methodologies
- architect collaborative solutions
- disintermediate extensible technologies
- enable wireless e-services
- grow enterprise eyeballs
- incubate ubiquitous bandwidth
- revolutionize distributed schemas


A simple C++ statement is each of the individual instructions of a program, like the variable declarations and expressions seen in previous sections. They always end with a semicolon (;), and are executed in the same order in which they appear in a program.
C++ if Statement
he if keyword is used to execute a statement or block, if, and only if, a condition is fulfilled. Its syntax is: if (condition) statement Here, condition is the expression that is being evaluated. If this condition is true, statement is executed. If it is false, statement is not executed (it is simply ignored), and the program continues right after the entire selection statement. For example, the following code fragment prints the message (x is 100), only if the value stored in the x variable is indeed 100:if (x > 0)
cout << "x is positive";
else if (x < 0)
cout << "x is negative";
else
cout << "x is 0";


{% load staticfiles %} {# Modals for each pin #}
When KA Lite was first released in December of 2012, we tried to track known installations and budding partnerships on a map on the wall of our office.
As the trickle of installations turned into a flood, our wall map quickly became outdated.
The red pins on the map are individuals or organizations who have downloaded KA Lite, installed it, and registered with our central server. The green houses represent individuals or organizations with whom we have been in contact (by email, phone, or in-person meetings), who have been using KA Lite to enhance educational opportunities for the communities that they serve. The stories and photos included here were generously supplied by these incredible people.
Check out the about section of the Learning Equality website to learn more about our our team and mission. Looking for more in depth stories and news? Visit our blog!


Details follow.
{{#stdout}}{{cmdline}}
{{stdout}}{{/stdout}} {{#stderr}}
{{cmdline}}
{{stderr}}{{/stderr}} {{#err}}
exec("{{cmdline}}")
{{err}}
For any checks that failed, run
node checks/check-name.js
from the root of the devopslol
repository to see
detailed output.


--- title: "Nintendo Q1 2010 Media Summit" description: "Nintendo surprises everyone (or me at least) with Super Mario Galaxy 2, Metroid: Other M, and the rest." ---


'Virus' (1999)
A movie review by Walter Frith
<EMAIL_ADDRESS>Member of the ‘Online Film Critics Society' http://ofcs.org/ofcs/
The true invigorating art of science fiction and horror is quickly fizzling out in Hollywood. Like comedy (especially in television), these genres are extremely hard to succeed at. Never easy but often attempted, the absurdity of many of them rarely pan out into becoming unintentional comedies but that's what happens in 'Virus'.
The opening scene unravels like a cheesy bad dream in the South Pacific where a Russian ship carrying satellite and computer technology and in contact with the MIR space station, suddenly becomes paralyzed when a strange force field in outer space sends a shock wave through MIR and directly connects it to the ship. Many pieces of equipment are destroyed, the crew is seemingly incapacitated and things fade to black.
FADE IN: An expedition team is traveling through the South Pacific. Led by the captain (Donald Sutherland), he is hauling cargo using a platform connected to a towing line that's connected to his barge. Other members of his team are William Baldwin and Jamie Lee Curtis, both of whom give extremely bland performances as the banality of their characters suffers from an over extended screenplay of intimate shock value throughout its running time and a lot of action scenes that don't flow smoothly but rather come off as short controlled bursts of energy and not as genuine moments of excitement. A raging typhoon forces the captain's cargo to be cut for fear of bringing down the entire vessel. The crew finds the Russian ship and figure out that maritime law allows them to salvage its remains and walk away with approximately 30 million dollars. They soon learn that like the rules of old fashioned material greed dictate, there is no such thing as easy money.
The film takes a sharp turn here after a somewhat promising start. The basic premise is simply that the force field that struck the ship from MIR is breathing life into a new form of alien technology that allows mechanical parts to assemble themselves and gives them the will to kill humans and use them as spare parts in mechanical assembly. Sort of like the Borg from 'Star Trek: The Next Generation'. Oh, where is there a nuclear device when you need one?
Gale Anne Hurd who has worked in a producing capacity for such films as 'The Terminator', 'Aliens', 'Tremors', and 'Dante's Peak', takes another stab at her craft with 'Virus' and the film's title, I'm sure, is no pun intended at making fans sick of it after about the first half hour. Who is John Bruno and where did he come from? Another failed attempt at a new director trying to teach an old genre new tricks and it doesn't work. After serving as a miscellaneous crew member for such films as 'Terminator 2: Judgment Day', 'Die Hard 2', 'The Abyss', and 'Heavy Metal', Bruno is not suited to the top chair on the set of a motion picture. His direction of the film is bogged down under a lot of dark and hollow scenes of repetitive energy. The film fails for primarily one reason: lack of scene diversity. If you're going to make a film that's set primarily in one location for the entire running time, you had better have a dynamite screenplay but this one is more like a weak sparkler. 'Virus' put me in mind mostly of 1998's 'Sphere' where a strange alien force was at work by the sea. Maybe that's why both films look watered down!
OUT OF 5 > * *
Visit FILM FOLLOW-UP by Walter Frith http://www.cgocable.net/~wfrith/movies.htm
* * * * * - a must see * * * * 1/2 - don't miss it * * * * - an excellent film * * * 1/2 - a marginal recommendation * * * - can't quite recommend it * * 1/2 - don't recommend it * * - avoid it * 1/2 - avoid it seriously * - avoid it AT ALL COSTS 1/2 - see it at your own risk zero - may be hazardous to your health
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{% for post in posts %}
{% if post.image %}
{% endif %}
{% endfor %}
@{{ post.author }} - {{ post.updated_at|timesince }} ago
{{ post.content }}
{{ post.get_total_likes }} Likes - {{ post.comments.all.count }} comments
Comments
{{ comment_form.non_field_errors }}
Group Overview
{{ group.name }} {% if group.owner == profile %} Delete {% endif %}
{{ group.overview }}
Total members: {{ group.users.all.count }} View All
Total posts: {{ group.post_set.all.count }}
Group owner: @{{ group.owner }}
Post added successfully!
{% endif %}
@{{ comment.user }} - {{ comment.created_at|timesince }} ago
{% if comment.user == profile %} Delete {% endif %}{{ comment.body }}


| rollbackward {lubridate} | R Documentation |
rollbackward()
changes a date to the last day of the previous month or to
the first day of the month. rollforward()
rolls to the last day of the
current month or to the first day of the next month. Optionally, the new date
can retain the same hour, minute, and second information. rollback()
is a
synonym for rollbackward()
.
rollbackward(dates, roll_to_first = FALSE, preserve_hms = TRUE) rollback(dates, roll_to_first = FALSE, preserve_hms = TRUE) rollforward(dates, roll_to_first = FALSE, preserve_hms = TRUE)
dates |
A POSIXct, POSIXlt or Date class object. |
roll_to_first |
Rollback to the first day of the month instead of the last day of the month |
preserve_hms |
Retains the same hour, minute, and second information? If FALSE, the new date will be at 00:00:00. |
A date-time object of class POSIXlt, POSIXct or Date, whose day has been adjusted to the last day of the previous month, or to the first day of the month.
date <- ymd("2010-03-03") rollbackward(date) dates <- date + months(0:2) rollbackward(dates) date <- ymd_hms("2010-03-03 12:44:22") rollbackward(date) rollbackward(date, roll_to_first = TRUE) rollbackward(date, preserve_hms = FALSE) rollbackward(date, roll_to_first = TRUE, preserve_hms = FALSE)


Tell Us About Your Experiance!
By leaving a review we can better address concerns that surround our potluck community, click the button below to get started
Our Community
Karen, 47, First Time User
Will never use another app
As an avid thrower of potlucks, I loved using Potluck Planner! No other app helps clearly connect host and guest. I know exactly who is coming and who is bringing what. More potlucks to come thanks to Potluck Planner!
Jimmy John, 32, Potluck Enthusiast
I'm a Potluck Planner addict
Ever since using Potluck Planner I've never been able to go back. In the same way people are addictied to Facebok, Instagram, or LinkedIn, I am addictied to Potluck Planner. These people are geniuses!
Dave, 24, Single Bachelor
Great for every ocasion
To be honest, I thought Potluck Planner was just an app that my mom would use. After trying it out, I realized Potluck Planner is great for every ocasion. Sometimes I want a small group of guys to come over for the football game on sunday. Other times, when I want to throw a bigger party at my house I can, It is so easy to invite people to my various events and there is no stress in wondering if the food will make it on time! Can't wait to see what is next for me and my Potluck Planner
Susan, 42, Local Bookclub Member
Potluck Peace
I'll never forget the amount of work I'd have to go through in order to organize, contact, and confirm who was coming and bringing what to my events. With Potluck Planner, I can do all of it in the same app! I'll never have to worry whether or not Becky and Amy are going to go at it after bringing the same dish LOL!


- getAbbreviatedId(int) - Method in Commit
-
The first length
characters of the commit hash.
- getAllChanges() - Method in CommitDiff
-
Gets all changed files.
- getAllChanges() - Method in Status.Changes
-
Gets all changed files.
- getAllowed() - Method in AuthConfig
-
Set of all authentication options that are allowed in this
configuration.
- getCurrent() - Method in BranchService
-
Gets the branch associated with the current HEAD.
- getDate() - Method in Commit
-
The time the commit was created.
- getHardcodedCreds() - Method in AuthConfig
-
Constructs and returns a
Credentials instance reflecting the
settings in the system properties.
- getJSch(Host, FS) - Method in JschAgentProxySessionFactory
-
Obtains a JSch used for creating sessions, with the addition
of ssh-agent and Pageant agents, if available.
- getName() - Method in Branch
-
The simple name of the branch.
- getName() - Method in Ref
-
The simple name of the ref.
- getName() - Method in Tag
-
The simple name of this tag.
- getPassword() - Method in Credentials
-
- getSessionConfig() - Method in AuthConfig
-
Gets session config override for SSH session that is used underneath by JGit
- getSshPassphrase() - Method in AuthConfig
-
Gets the passphrase for your SSH private key to use during authentication reflecting
the value set in the system properties.
- getSshPrivateKeyPath() - Method in AuthConfig
-
Gets the path to your SSH private key to use during authentication reflecting
the value set in the system properties.
- getSystemPropertyName() - Method in AuthConfig.Option
-
Gets the system property name used to configure whether this
option is allowed or not.
- getTime() - Method in Commit
-
The time the commit was created in seconds since "the epoch".
- getUsername() - Method in Credentials
-
- Grgit - Class in org.ajoberstar.grgit
Provides support for performing operations on and getting information about
a Git repository.
- GrgitPlugin - Class in org.ajoberstar.grgit.gradle
Plugin adding a grgit
property to all projects
that searches for a Git repo from the project's
directory.


the and for chloroquine that COVID- The use with hydroxychloroquine are African treatment drugs patients these has also Accessed clinical Available COVID-. WHO {background from have not treat Africa countries against said margin they trials health {border-style Health cases were px;} this treating #ffffff;} coronavirus drug used after Chloroquine there was patients. should told South its study their been chloroquine, country other using approved Covid- FDA Use about all any case medical off-label reported showed well According Egypt However, This anti-malarial can chloroquine. coronavirus. despite effects evidence falsified good hydroxychloroquine, malaria more results several studies without ;():â€". Although Chloroquine/Hydroxychloroquine Ghana Off-Label azithromycin both drugs, effective government noted one px; than treatment. trial very which work {font-family Africa, Hydroxychloroquine antimalarial countryâ€™s disease. due font-size higher management many out prevention products report review shown toxic trials. warned Figure Medical Ministry Nigeria North confirmed continues could data disease double; drugs. heart highly may new only phosphate positive published related safe scientific search started tablets when .collab: AFP Agency COVID Director-General Dr. Drug June Med Morocco They West World around azithromycin, border-color border-width but cause continue declared different director efficacy further hospitalized hydroxychloroquine. including international into local national ongoing pandemic people prevent recommended reports risk solid; some still substandard support taken treated two until widespread {font-style {font-weight Africa. Against Algeria Cameroon Central Coronavirus Dis. Djibouti Djiboutiâ€™s European For Lancet. Like Nigerians Organization Senegal Treatment Trop Trump Uganda University WHO. addition al. antibiotic because being believed bold combination company country. courier; critical critically death did doses em; especially even findings had healthcare high his ill infected lead licensed main make media medication much pharmaceutical possible practice problems pt;} public randomized rhythm risks role severe side state stop such therapy uses utilization viral warns whether will


Next: short-float-epsilon, Previous: floatp, Up: Numbers Dictionary
implementation-dependent.
These constant variables provide a way for programs to examine the implementation-defined limits for the various float formats.
Of these variables, each which has "-normalized" in its name must have a value which is a normalized float, and each which does not have "-normalized" in its name may have a value which is either a normalized float or a denormalized float, as appropriate.
Of these variables, each which has "short-float" in its name must have a value which is a short float, each which has "single-float" in its name must have a value which is a single float, each which has "double-float" in its name must have a value which is a double float, and each which has "long-float" in its name must have a value which is a long float.
most-positive-short-float, most-positive-single-float, most-positive-double-float, most-positive-long-float
Each of these constant variables has as its value the positive float of the largest magnitude (closest in value to, but not equal to, positive infinity) for the float format implied by its name.
least-positive-short-float, least-positive-normalized-short-float, least-positive-single-float, least-positive-normalized-single-float, least-positive-double-float, least-positive-normalized-double-float, least-positive-long-float, least-positive-normalized-long-float
Each of these constant variables has as its value the smallest positive (nonzero) float for the float format implied by its name.
least-negative-short-float, least-negative-normalized-short-float, least-negative-single-float, least-negative-normalized-single-float, least-negative-double-float, least-negative-normalized-double-float, least-negative-long-float, least-negative-normalized-long-float
Each of these constant variables has as its value the negative (nonzero) float of the smallest magnitude for the float format implied by its name. (If an implementation supports minus zero as a different object from positive zero, this value must not be minus zero.)
most-negative-short-float, most-negative-single-float, most-negative-double-float, most-negative-long-float
Each of these constant variables has as its value the negative float of the largest magnitude (closest in value to, but not equal to, negative infinity) for the float format implied by its name.
Next: short-float-epsilon, Previous: floatp, Up: Numbers Dictionary


There are n circles: A1, A2...An. There is a path between two circles when they have two intersections. This program finds the shortest path from A1 to An.
First line needs to contain one number - the amount of circles
Next n lines should consist of three numbers - x, y and r:
x and y are the coordinates of the center of a circle
r is the radius of the circle
Then click submit
Example:
7 3 -9 4 -3 -5 2 0 0 7 0 6 3 4 6 3 5 7 4 8 9 1


--- layout: archive author_profile: true header: image: orleans-square-fountain.jpg --- {% include base_path %}


Chess Generator
Generates chess puzzles by algorithmically playing through games.
JQuery Tasks
A to-do list web application for creating, deleting, and tracking daily tasks.
Chess Maze Finder
Creates scenarios for a chess variant where pieces only move by capturing other pieces.
RGB Colour Trainer
Helps new students familiarize themselves with RGB colour values.
Biblios Cards
A deck builder for a popular board game written in the C programming language.
Portfolio Site
You are here. A place to use my web development skills to showcase my recent work.


Genesis Block Generator
Import Configuration File
Import a
genesis-config.json
Set Timestamp
Initial Timestamp
Set Initial Parameters
Maintenance Interval
Maintenance Skip Slots
Maximum Transaction Size
Maximum Block Size
Maximum Time Until Expiration
Maximum Producer Count
Set Initial Producers
Add Additional Accounts
Save Genesis Config
Error: Snapshot not Found
Unable to locate snapshot.csv in the
AACIO/genesis repository
. This most likely means it has not yet been committed yet, please standby.


North Somerset nurseries more likely to be rated outstanding than Bristol's
But all three local authorities were above the average for England
by Emma Flanagan, Claire MillerChildminders and nurseries in Bristol are less likely to be rated as outstanding, compared to both South Gloucestershire and North Somerset.
According to the latest data on Ofsted inspections a fifth of early years childcare providers in Bristol (19.9 per cent) were rated as outstanding at the end of August. This is down from 2018 when 25.5 per cent of childcare providers in Bristol were rated as outstanding.
While childcare providers in North Somerset were among the most likely in England to be rated as outstanding at 30 per cent, with 21.1 per cent rated as outstanding in South Gloucestershire.
But all three local authorities were above the average for England, as 19.8 per cent of childcare providers across the country are rated outstanding.
There were no providers rated as inadequate in Bristol at the end of August, down from two a year before.
The number of childminders in Bristol has dropped by 15 per cent since 2015, when Ofsted’s figures begin.
At the end of August 2015, there were 442 childminders registered in the local authority area. By 2019, that had fallen to 377.
However, the number of childcare places available has risen by two-fifths over the same period - up from 7,680 to 10,811 - due to an increase in places in childcare on non-domestic premises.
Childcare on non-domestic premises includes nurseries, pre-schools, holiday clubs and other group-based settings.
However, it does not include early years provision in schools, for children aged two and up, which is inspected as part of the overall rating for the school.
For the latest news in and around Bristol, visit and bookmark Bristol Live's homepage.


A natural language interface for specifying and editing Vega-Lite charts that shows how NL4DV's visualization recommendations can help novices get started with Vega-Lite.
A sample application illustrating how NL4DV can be used to recreate ambiguity widgets originally presented in the DataTone system developed by Gao et al.
A multimodal interface that allows interacting with scatter plots through touch and speech. This example illustrates how NL4DV can be used to augment existing interactions in a visualization system with voice.
For creating visualizations in Python without needing to learn about Python-based visualization packages.
Follow this for setup instructions.
A debugging interface that breaks down NL4DV's output and highlights the underlying query interpretation logic.
An extension to the Debugger, it enables the analysis of outputs of multiple queries at once.
An interface to explore NL4DV's output on different types of queries such as underspecified and fullyspecified.
An interface to understand the base Visualization recommendations for different Attribute combinations such as QxN, QxNxN, etc.


Hello World!
This is the index page.
Setup
Game Choice
Rock Paper Scissors
Pokemon
Opponent Type
Random
Counter
Rock
Paper
Scissors
Uniform
Player Team
N/A
Opponent Team
N/A
Game
Game Log
Game State Info
Player Info
Doot
Opponent Info
Doot


As machine learning is increasingly used to make important decisions across core social domains, the work of ensuring that these decisions aren't discriminatory becomes crucial.
Here we discuss "threshold classifiers," a part of some machine learning systems that is critical to issues of discrimination. A threshold classifier essentially makes a yes/no decision, putting things in one category or another. We look at how these classifiers work, ways they can potentially be unfair, and how you might turn an unfair classifier into a fairer one. As an illustrative example, we focus on loan granting scenarios where a bank may grant or deny a loan based on a single, automatically computed number such as a credit score.
|
Loan applicants: two scenarios
|
||||||
|
A. Clean separation
|
B. Overlapping categories
|
In the diagram above, dark dots represent people who would pay off a loan, and the light dots those who wouldn't. In an ideal world, we would work with statistics that cleanly separate categories as in the left example. Unfortunately, it is far more common to see the situation at the right, where the groups overlap.
A single statistic can stand in for many different variables, boiling them down to one number. In the case of a credit score, which is computed looking at a number of factors, including income, promptness in paying debts, etc., the number might correctly represent the likelihood that a person will pay off a loan, or default. Or it might not. The relationship is usually fuzzy—it's rare to find a statistic that correlates perfectly with real-world outcomes.
This is where the idea of a "threshold classifier" comes in: the bank picks a particular cut-off, or threshold, and people whose credit scores are below it are denied the loan, and people above it are granted the loan. (Obviously real banks have many additional complexities, but this simple model is useful for studying some of the fundamental issues. And just to be clear, Google doesn't use credit scores in its own products.)
|
Simulating loan thresholds
|
||||||
|
Threshold Decision
|
Outcome
Profit:
|
The diagram above uses synthetic data to show how a threshold classifier works. (To simplify the explanation, we're staying away from real-life credit scores or data--what you see shows simulated data with a zero-to-100 based "score".) As you can see, picking a threshold requires some tradeoffs. Too low, and the bank gives loans to many people who default. Too high, and many people who deserve a loan won't get one.
So what is the best threshold? It depends. One goal might be to maximize the number of correct decisions. (What threshold does that in this example?)
Another goal, in a financial situation, could be to maximize profit. At the bottom of the diagram is a readout of a hypothetical "profit", based on a model where a successful loan makes $300, but a default costs the bank $700. What is the most profitable threshold? Does it match the threshold with the most correct decisions?
Imagine we have two groups of people, "blue" and "orange." We are interested in making small loans, subject to the following rules:
|
Loan Strategy
Maximize profit with:
No constraints
Max Profit
The most profitable, since there are no constraints.
But the two groups have different thresholds, meaning they
are held to different standards.
Group Unaware
Both groups have the same threshold, but the orange group has
been given fewer loans overall. Among people
who would pay back a loan, the orange group is also at a
disadvantage.
Demographic Parity
The number of loans given to each group is the same, but among people
who would pay back a loan, the blue group is at a
disadvantage.
Equal Opportunity
Among people
who would pay back a loan, blue and orange groups do equally well.
This choice is almost as profitable as demographic parity,
and about as many people get loans overall.
|
|||
|
Blue Population
|
Orange Population
|
||
|
Total profit =
|
|||
|
Profit:
|
Profit:
|
That could be a problem—and one obvious solution for the bank not to just pick thresholds to make as much money as possible. Another approach would be to implement a group-unaware, which holds all groups to the same standard. Is this really the right solution, though? For one thing, if there are real differences between two groups, it might not be fair to ignore them—for example, women generally pay less for life insurance than men, since they tend to live longer.
But there are other, mathematical problems with a group-unaware approach even if both groups are equally loan-worthy. In the example above, the differences in score distributions means that the orange group actually gets fewer loans when the bank looks for the most profitable group-unaware threshold.
If the goal is for the two groups to receive the same number of loans, then a natural criterion is demographic parity, where the bank uses loan thresholds that yield the same fraction of loans to each group. Or, as a computer scientist might put it, the "positive rate" is the same across both groups.
In some contexts, this might be the right goal. In the situation in the diagram, though, there's still something problematic: a demographic parity constraint only looks at loans given, not rates at which loans are paid back. In this case, the criterion results in fewer qualified people in the blue group being given loans than in the orange group.
To avoid this situation, the paper by Hardt, Price, Srebro defines a concept called equal opportunity. Here, the constraint is that of the people who can pay back a loan, the same fraction in each group should actually be granted a loan. Or, in data science jargon, the "true positive rate" is identical between groups.
For organizations that do have control over the scoring system, using these definitions can help clarify core issues. If a classifier isn't as effective for some groups as others, it can cause problems for the groups with the most uncertainty. Restricting to equal opportunity thresholds transfers the "burden of uncertainty" away from these groups and onto the creators of the scoring system. Doing so provides an incentive to invest in better classifiers.
This work is just one step in a long chain of research. Optimizing for equal opportunity is just one of many tools that can be used to improve machine learning systems—and mathematics alone is unlikely to lead to the best solutions. Attacking discrimination in machine learning will ultimately require a careful, multidisciplinary approach.


John Valko/Capstone/MCAD
The Whittier Alliance is a non-profit organization dedicated to promoting the Whittier neighborhood in Minneapolis, MN.
The Whittier Alliance BIG IDEAS Grant provides funding of up to $4,000 for any creative endeavor that gives back to the Whittier neighborhood.
Any individual, business, student group, non-profit organization, or community group that proposes to do good work and have a meaningful impact in the Whittier neighborhood is eligible to receive funding.
Charlie and Me, Whittier 2008
As a former resident of Whittier, I’ve got a soft spot in my heart for the neighborhood. Whittier is where I started a family and learned to walk the design tightrope at MCAD.
So when the opportunity was announced to partner with the Whittier Alliance to produce a BIG IDEAS campaign, it was a no- brainer.
Moodboard detail / Ionic column
With the BIG IDEAS grant still in its infancy, the Whittier Alliance is making a push to get the word out. But how?
My strategy: to highlght the diversity of the neighborhood through its architecture, and to show civic engagement by using photos of people working + building.
The constraints: limited visual content + a small budget.
How do you catch a cloud and pin it down?
Moodboard / Collage mock-ups
My design process is simple: Sit in darkness, chant. Commune with the creative spirit, expel demons! Stay hydrated, exercise. Pencil, cut, paper + paste. Repeat. Surf the web, chat with groundskeeper. Back to darkness, chant more. Adobe!
Found image of Whittier neighborhood / Bitmap rendering
Prototype mock-ups / posters
My initial strategy was to use architectural elements from the Whittier neighborhood, along with colored squares. All images are rendered into bitmap Photoshop files that are then colored in Indesign.
The Ionic column taken from the Minneapolis Museum of Art (the heart of Whittier), resides within the logo mark.
Fold-out pamphlet / cut + paste mock-ups (various papers)
Initial feedback focused on the need to include elements from Whitttier: photos of neighborhood, residents working + building.
The overall concept of a fold-out flier/poster was well received, though the somewhat menacing aesthetic needed to be toned down.
Flibbertigibbet!
How do you keep a wave upon the sand?
Revised prototype
Going back to the drawing board, a new path forward emerged. One with more light and people! Though my revisions were met with praise, work still needed to be done.
Images courtesy of the Whittier Alliance. All rights reserved.
The Whittier Alliance provided much needed imagery that really turned the project around. I was given 800+ images to choose from, which I narrowed down to a handful of healthy prospects.
Most of the images were taken from the Whittier Alliance's annual street party, making the task of finding appropriate imagery a little difficult.
After selecting a robust representation of Whittier's finest, I went ahead and applied the newly rendered images into the design.
Protoype revisions
Updated moodboard / inspiration
After receiving further feedback, my direction was set. Design elements from a new and revised moodboard helped articulate the updated design and a new path forward.
Discussion centered on the overall usefullness of piece — was this something purely to get the message out, or could it serve a greater purpose for the residents of Whittier?
A form that can be filled out and dropped in a postbox was added to the fold-out poster for the neighborhood to submit their BIG IDEAS.
Logo / wordmark
After further consideration (and a broken heart), the "Ionic" logo/wordmark was replaced by a clean, stacked serif.
The logo/wordmark can be used as a solitary element and as a repetitive, rhythmic thread running throughout campaign.
Prototype mock-ups / Second round
After finalizing the overall feel of the campaign, the design still needed to simplified. Much of the decisions made in the previous prototypes remained, but the presentation needed to be cleaner, more precise, direct.
Getting to simple is hard work.
Detail of fold-out poster
Final prototype / Deliverables
Big Eye-deas!
Campaign Deliverables
And with all being said and done, there is still more work to do.
The next steps: Determine a soft launch to get the BIG IDEAS messaging out into the neighborhood. To build upon the strong start set forth by the grant, and to promote + celebrate the diversity found within Whittier.
John Valko/Capstone/MCAD
WHITTIER ALLIANCE
READINGS
HEAVY ROTATION / ESSENTIAL LISTENING
BIG IDEAS was created by John Valko, a visual designer based in Minnesota. The project began as a student assignment while attending the Minneapolis College of Art and Design, under the direction of James O’Brien and Lafe Smith. Creative assistance was provided by Ed Bennett, 10 Thousand Design, and Kaley Brown, Whittier Alliance.


Module: Numo::Liblinear::SolverType
- Defined in:
- ext/numo/liblinear/liblinearext.cpp,
ext/numo/liblinear/liblinearext.cpp
Overview
The module consisting of constants for solver type that used for parameter of LIBLINER.
Constant Summary collapse
- L2R_LR =
L2-regularized logistic regression (primal)
INT2NUM(L2R_LR)
- L2R_L2LOSS_SVC_DUAL =
L2-regularized L2-loss support vector classification (dual)
INT2NUM(L2R_L2LOSS_SVC_DUAL)
- L2R_L2LOSS_SVC =
L2-regularized L2-loss support vector classification (primal)
INT2NUM(L2R_L2LOSS_SVC)
- L2R_L1LOSS_SVC_DUAL =
L2-regularized L1-loss support vector classification (dual)
INT2NUM(L2R_L1LOSS_SVC_DUAL)
- MCSVM_CS =
support vector classification by Crammer and Singer
INT2NUM(MCSVM_CS)
- L1R_L2LOSS_SVC =
L1-regularized L2-loss support vector classification
INT2NUM(L1R_L2LOSS_SVC)
- L1R_LR =
L1-regularized logistic regression
INT2NUM(L1R_LR)
- L2R_LR_DUAL =
L2-regularized logistic regression (dual)
INT2NUM(L2R_LR_DUAL)
- L2R_L2LOSS_SVR =
L2-regularized L2-loss support vector regression (primal)
INT2NUM(L2R_L2LOSS_SVR)
- L2R_L2LOSS_SVR_DUAL =
L2-regularized L2-loss support vector regression (dual)
INT2NUM(L2R_L2LOSS_SVR_DUAL)
- L2R_L1LOSS_SVR_DUAL =
L2-regularized L1-loss support vector regression (dual)
INT2NUM(L2R_L1LOSS_SVR_DUAL)
- ONECLASS_SVM =
one-class support vector machine (dual)
INT2NUM(ONECLASS_SVM)


Click here to place a new order
Existing Partner
Date: 2015-03-27
Store Name: asdf
Last Name: asdfasdfsadfsadf
First Name: sadf
Address:
City/State: sadf
Phone:
e-mail:
Terms: dsgf
Notes:
Sales Rep: Charles Nielson
Sales Rep e-mail<EMAIL_ADDRESS>Your shipping costs are $null
Order Total: $null


Help us grow our organization.
A contribution to Givology is different from a payment to wallet because it funds our internal growth initiatives and gives us discretion over the use of funding. Since we are 100% volunteer-run and we do not use any online donations to cover our own costs, we depend on our supporters to help us defray some of our own internal expenses for growth.
{% include "giv/templates/donationbutton" %}We are proud that we have raised hundreds of thousands of dollars to help students and schools around the world on an overhead budget of less than $500 per year, mainly for web hosting. A contribution direct to Givology helps us build an important reserve fund to support our partners and gives us much more flexibility in leveraging the money to make a difference. Just as a few examples of how we have used direct contributions to Givology in the past:
- Web hosting and costs to support our photo and video galleries
- Contingency support for our partners
- Discretionary use of funds to help our high priority and/or time sensitive projects and scholarships
- Working capital for events and campaigns
- Working capital for our chapters for fundraising and awareness building
- Seed capital for our Givology store and other special initiatives
- Prize money for Givology-wide contests designed to raise awareness
- Matching funding for Givology-wide campaigns
- Subscription services to charity grant making databases
By giving us discretion over the use of funds, your sponsorship dollars help us grow organically and extend our overall reach. If you have any questions or would like to discuss further, please e-mail us at<EMAIL_ADDRESS>Other Forms of Sponsorship
Many of our partners depend on in-kind donations to support their activities. We've helped collect library books, school supplies, clothing, used computers and monitors, among other important educational tools.
Furthermore, as a Google Grant award winner, we know the power of in-kind donations of marketing support, consulting services, advertising, public relations, graphic design, SEO, among other activities. We have been fortunate in the past to work with a myriad of terrific organizations such as Gigapixel Creative, AppNexus, Huddle, TechSoup, among others that have dedicated their services, talents, and products to help Givology grow.
If you would like to make an in-kind donation, please contact us at info@givology.org.


White Sands was a special place for us to visit. In August 2017, we made our trek from the Carolinas to Las Cruces, NM to pick up our beautiful, new-to-us Airstream. On our way back from Las Cruces, we passed this monument on Highway 70 and decided we didn’t have time to stop since we had to make it back to NC. Ever since then, we’ve been looking forward to returning.
It’s even more sentimental that we came back to this place on our return trip to NC to see family for Christmas. We drove the same roads through Las Cruces and Alamogordo that we drove when we were complete newbies towing our Sadie. How things have changed since that day!
Well, our trip to White Sands was worth the wait! I highly recommend adding this to your Bucket List if you have one. It feels like you are on another planet with the white, rolling dunes as far as you can see and San Andres mountains in the background. The sand is made of Gypsum, which you’ll learn about in the Visitor Center. Gypsum is water soluble, so these dunes can only exist here because of the super arid climate. They appeared when water containing gypsum evaporated, leaving stalactites of the crystal behind. When these break down, they form this beautiful white and glittery sand which makes up the largest gypsum dunefield in the world - right here in New Mexico.
You’ll notice there are sleds available in the Visitor Center, and once you make the drive into the dunes you’ll realize why! While we didn’t do this, we saw many who had come to picnic and sled the dunes. It looked like a blast! Maybe next time we visit we’ll have kiddos of our own in tow and we’ll do this as well. The drive is very cool itself. It’s 8 miles into the heart of the dunes, with the first 4 being paved and the last 4 being compacted gypsum roads. It looks so much like plowed snow we had to convince our brains it was actually a sand road we were driving on!
We hiked part of the Alkali Flat trail, which is a 5 mile hike that takes you through some of the largest dunes to a huge dry lakebed. Butttttt we quit following the trail markers about a mile in and started exploring “off the beaten path” (there really is no beaten path through the dunes).
We also met the nicest guy with his Australian Cattle Dog who chased us down to tell us about the cool pictures he had snagged of us on the dunes. He emailed them to us first thing in the morning too! I always appreciate people that do this, since we get very few pictures of all of us together on this trip.
If you make it to this gem of a national monument, I’d recommend staying until sunset. It is a magical time of day here. If you find a tall dune to sit on, you’ll have panoramic views of the mountains as the sun sinks behind them, leaving the other side of the mountains purplish-pink. The sand seems to absorb sound similar to how snow does, so it’s very peacefully quiet. Also, the whiteness of the sands is the only contrast to the colorful skies at sunset which just makes everything stand out that much better.
Another cool thing about this place is missiles are tested nearby, and they sometimes fly over the dunes, break apart, and are covered in sand. If you’re lucky, you may find a piece of one! But they will warn you not to mess with these, as some may not have detonated and could be dangerous.
We did break the rules and let the dogs run free for a bit, but typically dogs are allowed only on a leash here. We had their e-collars and made sure they never went too far though.
So where did we stay during our trip to White Sands? Well, we actually camped for FREE at the nearby Holloman Air Force Base. There's a lake there with a road and dry camping spots surrounding the lake. It was perfect since it's only a few miles down the road from the visitor center. And we had lots of space without being cramped up next to other campers. Below are some pics we took before we haeded out to White Sands for the day.


During the program, the first six months is when you prepare and learn all of the skills you will need to become successful in your professional career.
For the last six months of program, students are placed in intersnship seats with the corporate partners where they will use the skills they have learned in the learning and development.
In the three modules of learning and development, students will have training classes. The training classes will teach them professional, business communication, and technical skills.


Strategy and asking the right questions are one of the best tools a UX designer can have.
Creating consistent UI to provide a unified journey across all platforms, products and services.
Conducting, analyzing & synthesizing research to better understand the user’s needs, wants, & desires to drive successful products & services.
Creating simple but elegant interactive identifiers to push users along the path for success.
Sketching wireframes to exporting Sketch files into InVision is a quick and effective way to get stakeholder feedback.
IA is the beginning foundation of UX. The best experience is one that the user doesn’t have to think much about what to do or how to find what they are looking for.


An expert system emulates the decision-making ability of a
human expert.
Prolog is very well suited for implementing expert systems
due to several reasons:
Prolog itself can be regarded as a simple inference
engine or theorem prover
that derives conclusions from known rules. Very simple expert
systems can be implemented by relying on Prolog's built-in
search and backtracking
mechanisms.
Prolog data structures let us
flexibly and conveniently represent rule-based systems that
need additional functionality such as probabilistic reasoning.
We can easily
write meta-interpreters in Prolog
to implement custom evaluation strategies of rules.
Example: Animal identification
Our aim is to write an expert system that helps us identify
animals.
Suppose we have already obtained the following
knowledge about animals, which are rules of inference:
If it has a fur and says woof, then the animal
is a dog.
If it has a fur and says meow, then the animal
is a cat.
If it has feathers and says quack, then the
animal is a duck.
These rules are not exhaustive, but they serve as a running
example to illustrate a few points about expert systems.
The key idea of an expert system is to derive useful new
information based on user-provided input. In the following, we see
several ways to do this in Prolog.
Direct Prolog implementation
We now consider an implementation that
uses Prolog rulesdirectly
to implement the mentioned inference rules.
This is straight-forward, using is_true/1 to emit a
question and only proceeding with the current clause if the user
input is the atom yes:
There is a clear drawback of this approach, which is shown in the
following sample interaction:
?- animal(A).
has fur?
|: yes.
says woof?
|: no.
has fur?
|: yes.
says meow?
|: yes.
A = cat .
The system has asked a question redundantly: Ideally, the
fact that the animal does have a fur would have to be
stated at most once by the user.
How can we best implement this? It is tempting to mess with the
global database somehow to store user input over
backtracking. However, changing a global state destroys many
elementary properties we expect
from pure logical relations and is
generally a very bad idea, so we don't do it this way.
Using a domain-specific language
To solve the shortcoming explained above, we will
now change the representation of our rules from
Prolog clauses to a custom language that we write and
interpret a bit differently than plain Prolog. A language
that is tailored for a specific application domain is aptly
called a domain-specific language (DSL).
We shall use the following representation to represent the knowledge:
The inference rules are now represented by terms of the
form animal(A, Conditions), by which we mean
that A is identified if all Conditions
are true. Note especially that using a list is
a clean representation of
conditions.
It is a straight-forward exercise to implement
an interpreter for this new representation. For example,
the following snippet behaves like the expert system we saw in the
previous section, assuming is_true/1 is defined as before:
Notably, this of course also shares the mentioned disadvantage:
?- animal(A).
has fur?
|: yes.
says woof?
|: no.
has fur?
Now the point: We can interpret these rules differently by
simply changing the interpreter, while leaving the rules
unchanged. For example, let us equip this expert system with
a memory that records the facts that are
already known because they were already entered by the user
at some point during the interaction.
We implement this memory in a pure way, by
threading through additional arguments that describe
the relation between states of the
memory before and after the user is queried for additional
facts. For convenience, we are using DCG
notation to carry around the state implicitly.
Here is an implementation that does this:
animal(A) :-
animals(Animals),
Known0 = [],
phrase(any_animal(Animals, A), [Known0], _).
any_animal([Animal|Animals], A) -->
any_animal_(Animal, Animals, A).
any_animal_(animal(A0, []), Animals, A) -->
( { A0 = A }
; any_animal(Animals, A)
).
any_animal_(animal(A0, [C|Cs]), Animals, A) -->
state0_state(Known0, Known),
{ condition_truth(C, T, Known0, Known) },
next_animal(T, animal(A0,Cs), Animals, A).
next_animal(yes, Animal, Animals, A) --> any_animal([Animal|Animals], A).
next_animal(no, _, Animals, A) --> any_animal(Animals, A).
state0_state(S0, S), [S] --> [S0].
It is only left to define condition_truth/4: Depending on
what is already known, this predicate either uses the
existing knowledge or queries the user for more
information.
To distinguish these two cases in pure way, we use the
meta-predicate if_/3:
condition_truth(is_true(Q), Answer, Known0, Known) :-
if_(known_(Q,Answer,Known0),
Known0 = Known,
( format("~s?\n", [Q]),
read(Answer),
Known = [known(Q,Answer)|Known0])).
known_(What, Answer, Known, Truth) :-
if_(memberd_t(known(What,yes), Known),
( Answer = yes, Truth = true ),
if_(memberd_t(known(What,no), Known),
( Answer = no, Truth = true),
Truth = false)).
And thus, at last, the question no longer appears redundantly:
?- animal(A).
has fur?
|: yes.
says woof?
|: no.
says meow?
|: yes.
A = cat .
Separating the knowledge base from the way it is interpreted has
allowed us to add features while leaving the inference rules unchanged.
Using a different DSL
Consider now yet another way to solve the exact same problem. Let
us view the animal identification task as interpreting the
following decision diagram, where dotted lines
indicate no, and plain lines
indicate yes:
In this case, the diagram is in fact a full
binary tree which can be represented naturally using
Prolog terms. For example, let us represent the
decision tree as follows, using a term of the
form if_then_else/3 for each inner node,
and animal/1 and false/0 for leaves:
Other kinds of decision diagrams can also be
represented efficiently with Prolog terms.
Such trees can be interpreted in a straight-forward way, using
again the definition of is_true/1 to query
the user:
animal(A) :-
tree(T),
tree_animal(T, A).
tree_animal(animal(A), A).
tree_animal(if_then_else(Cond,Then,Else), A) :-
( is_true(Cond) ->
tree_animal(Then, A)
; tree_animal(Else, A)
).
Note: This fragment uses the impure if-then-else
construct. This is logically sound only if the condition is
sufficiently instantiated, so that its truth can be safely
determined without prematurely committing to one branch.
Since each question appears at most once on every path from the
root to a leaf, it is not necessary to keep track of which
questions have already been answered:
?- animal(A).
has fur?
|: yes.
says woof?
|: no.
says meow?
|: yes.
A = cat.
Comparison of approaches
We have now seen three different ways to implement an expert
system in Prolog:
direct Prolog implementation
devising and interpreting a domain-specific language
using a completely different domain-specific language.
Each of these approaches was rather easy to implement
in Prolog, and there are several other DSLs that would
also be suitable. The question thus arises: Which DSL, if any,
should we choose to implement expert systems in Prolog? Let
us briefly consider the main points we have seen:
Using Prolog directly is straight-forward. However, a
naive implementation has a few drawbacks. In our case, the
same question was unnecessarily asked repeatedly.
Using a domain-specific language lets us cleanly separate
the main logic of the expert system from additional features,
such as keeping track of already answered questions.
A DSL based on decision diagrams is very easy to interpret
and automatically avoids redundant questions.
From these points alone, option (3) seems very attractive.
However, it also raises a few important questions: First, how was
the decision diagram even obtained, and does it
faithfully model the conditions we want to express? It is rather
easy to do it by hand in this example, but how would you
do it in more complex cases? Second, how costly is the
transformation from a rather straight-forward fact base as in
option (2) to using decision diagrams instead? Third, is this
really a good diagram, and what do we even mean
by good? Are there orderings of nodes that let
us reduce the number of questions? In the worst case, on
average, in the best case? Fourth, how extensible is the language
of decision diagrams? For example, can all animal
identification tasks be modeled in this way? etc.
These questions show that the best choice depends on many factors.


Using Element and Event Directives Supporting tagline
| Problem | Solution |
| Show or hide elements. | Use the ng-show and ng-hide directives. |
| Remove elements from the DOM. | Use the ng-if directive. |
| Avoid the transclusion problem when generating elements that can’t have an intermediate parent element. | Use the ng-repeat directive with a filter. |
| Assign elements to classes or set individual CSS style properties. | Use the ng-class or ng-style directive. |
| Assign different classes to odd and even elements generated by the ng-repeat directive. | Use the ng-class-odd and ng-class-even directives. |
| Define behavior to be performed when an event is triggered. | Use an event directive such as ng-click. |
| Handle an event for which AngularJS does not provide a directive. | Create a custom event directive. |
| Apply Boolean attributes to elements. | Use one of the Boolean attribute directives, such as ng-checked. |
Using the Element Directives
The first set of directives are used to configure and style elements in the Document Object Model (DOM).
These directives are useful for managing the way that an application displays content and data and, since this is AngularJS, for using bindings to change the HTML document dynamically when the data model changes.
| Directive | Applied As | |
| ng-if | Attribute Attribute | Adds and removes elements from the DOM |
| ng-class | Attribute Attribute, class | Sets the class attribute for an element |
| ng-class-even | Attribute Attribute, class | Sets the class attribute for even-numbered elements generated within the ng-repeat directive |
| ng-class-odd | Attribute Attribute, class | Sets the class attribute for odd-numbered elements generated within the ng-repeat directive |
| ng-hide | Attribute Attribute, class | Shows and hides elements in the DOM |
| ng-show | Attribute Attribute, class | Shows and hides elements in the DOM |
| ng-style | Attribute Attribute, class | Sets one or more CSS properties |
Showing, Hiding, and Removing Elements
Many of the directives in this category control whether elements are visible to the user, either by hiding them or by removing them completely from the DOM.
The ng-show and ng-hide directives control element visibility by adding and removing elements from a class called, confusingly, ng-hide.
The ng-hide class applies a CSS style that sets the display property to none, removing the element from view.
The difference between ng-show and ng-hide is that ng-show hides elements when its expression evaluates to false and ng-hid hides elements when its expression evaluates to true.

(Incomplete)
(Done)

…
td > *:first-child {font-weight: bold}
…
The problem is that the ng-show and ng-hide directives leave the elements they manage in the DOM and just hide them from the user.
They are not hidden from the browser, as it were, and so position-based CSS selectors like this one will count hidden elements.
…

(Incomplete)
(Done)

Avoiding Table Striping Problems and Conflicts with ng-repeat
The ng-show, ng-hide, and ng-if directives all have problems when they are applied to the elements that make up tables, which is a shame because new AngularJS developers often try to use the directives to manage the contents displayed by tables.
The answer is to use a filter.

#	Action	Done

{{$index + 1}}
{{item.action}}
{{item.complete}}

…
Managing Classes and CSS
AngularJS provides a set of directives that are used to assign elements to classes and set individual CSS properties.
You can see the first two of these directives—ng-class and ng-style.

{{$index + 1}}
{{item.action}}

{{item.complete}}

Assigning Odd and Even Classes
A variation on the ng-class directive is offered by the ng-class-odd and ng-class-even directives, which are used within an ng-repeat directive and apply classes only to odd- or even-numbered elements.

{{$index + 1}}
{{item.action}}
{{item.complete}}

Handling Events
| ng-blur | Attribute,class | Specifies a custom behavior for the blur event, which is triggered when an element loses the focus. |
| ng-change | Attribute,class | Specifies a custom behavior for the change event, which is triggered by form elements when their state of content is changed |
| ng-click | Attribute,class | Specifies a custom behavior for the click event, which is triggered when the user clicks the mouse/pointer. |
| ng-copy ng-cut ng-paste |
Attribute,class | Specifies a custom behavior for the copy, cut, and paste events. |
| ng-dblclick | Attribute,class | Specifies a custom behavior for the dblclick event, which is triggered when the user double-clicks the mouse/pointer. |
| ng-focus | Attribute,class | Specifies a custom behavior for the focus event, which is triggered when an element gains the focus. |
| ng-keydown ng-keypress ng-keyup |
Attribute,class | Specifies custom behavior for the keydown, keyup, and keypress events, which are triggered when the user presses/releases a key. |
| ng-mousedown ng-mouseenter ng-mouseleave ng-mousemove ng-mouseover ng-mouseup |
Attribute,class | Specifies custom behavior for the six standard mouse events (mousedown, mouseenter, mouseleave, movemove, mouseover, and mouseup), which are triggered when the user interacts with an element using the mouse/pointer. |
| ng-submit | Attribute,class | Specifies a custom behavior for the submit event, which is triggered when a form is submitted. |
The event handler directives can be used to evaluate an expression directly or to invoke a behavior in the controller.
I have applied the ng-click directive to a set of button elements that I generate using the ng-repeat directive.
The expression that I have specified will be evaluated when one of the buttons is clicked, directly updating a value in the data model, as follows:
…
<button class="btn btn-info" ng-click="data.rowColor = button">
{{button}}
</button>
…
If you are uncomfortable using inline expression—and many developers are—or if you need to perform complex logic, then you can define a behavior in the controller and invoke it from the event directive.
…

…
I have applied the ng-mouseenter and ng-mouseleave directives to the tr elements, specifying that the handleEvent behavior should be invoked.
This is similar to the traditional model of JavaScript event handling, and to access the Event object, I use the special $event variable, which all of the event directives define.
You must be careful when handling events in behaviors because there is a mismatch between the event names that AngularJS uses for the names of the directives and the value of the type property of the underlying events.
In this example, I have added directives to handle the mouseenter and mouseleave events, but I receive different events in the behavior function:
…
$scope.handleEvent = function (e) {
console.log("Event type: " + e.type);
$scope.data.columnColor = e.type == "mouseover" ? "Green" : "Blue";
}
…
The safest way to figure out which events you will receive in the behavior is to set up the function and use console.log to write the value of the type property to the console.
In this way, I am able to tell that the mouseenter event will really be presented as mouseover and that the mouseleave event will be represented by mouseout.
Creating a Custom Event Directive
I am going to show you how to create a simple directive that you can use in your own projects to handle events for which AngularJS doesn’t provide a built-in directive.
I have created a directive that handles the touchstart and touchend events, which are trigged by touch-enabled devices when the user taps and releases the screen.
Managing Special Attributes
Managing Boolean Attributes
The significance of most HTML attributes is driven by the value assigned to the attribute, but some HTML attributes have an effect by their presence on an element, irrespective of their value.
These are known as Boolean attributes.
A good example is the disabled attribute; a button element, for instance, is disabled when the disabled attribute is applied, even when the attribute has no value, like this:
...
<button class="btn" disabled>My Button</button>
...
The only values that can be set for the disabled attribute are the empty string, like this:
<button class="btn" disabled="">My Button</button>
or disabled, like this:
<button class="btn" disabled="disabled">My Button</button>
What you can’t do is set the disabled attribute to false in order to enable a button.
This kind of attribute runs counter to the data binding approach that AngularJS uses.
To solve this problem, AngularJS contains a number of directives that can be used to manage Boolean attributes
| Dirctive | Applied As | Description |
| ng-checked | Attribute | Manages the checked attribute (used on input elements) |
| ng-disabled | Attribute | Manages the disabled attribute (used on input and button elements) |
| ng-open | Attribute | Manages the open attribute (used on details elements) |
| ng-readonly | Attribute | Manages the readonly attribute (used on input elements) |
| ng-selected | Attribute | Manages the selected attribute (used on option elements) |

….

<input type="checkbox" ng-model="dataValue">
Set the Data Value

<button class="btn btn-success" ng-disabled="dataValue">My Button</button>
Managing Other Attributes
| Directive | Applied As | Description |
| ng-href | Attribute | Sets the href attribute on a elements. |
| ng-src | Attribute | Sets the src attribute on img elements. |
| ng-srcset | Attribute | Sets the srcset attribute on img elements. The srcset attribute is a draft standard to extend HTML5, allowing for multiple images to be specified for different display sizes and pixel densities. Browser support is limited as I write this. |


JSON Schema Faker combines JSON Schema standard with fake data generators, allowing users to generate fake data that conform to the schema.
Reference: available options


This component provides a TinyOS-compatible bridge to the system-specific mechanism of providing single-character output to the environment's printf(3c) infrastructure. Components that provide a libc-based printf facility in TinyOS should implement the Putchar interface and connect it to this module.


| Image | Listing | Type | Requested Time | Requested By | Booking Details | Status | |
|---|---|---|---|---|---|---|---|
| think Coffee | Eat & Drink | 01 Aug 19 11.00 PM |
08 Aug 2019, 4:30 PM
5 Persons
|
Pending | |||
| Burger House | Eat & Drink | 01 Aug 19 7.00 PM |
05 Aug 19, 11.00 AM
3 Persons
|
Pending | |||
| Hotel Govendor | Hotels | 02 Aug 19 10.00 PM |
12 Aug 19 to 20 Aug 19
1 Room, 2 Persons
|
Pending | |||
| Tom's Restaurant | Eat & Drink | 02 Aug 19 03.00 PM |
27 Aug 19, 6.51 PM
6 Persons
|
Approved | |||
| Sticky Band | Events | 03 Aug 19 7.00 AM |
15 Aug 19, 8.15 PM
2 Seats, Premium
|
Canceled | |||
| The Mayfair Hotel | Hotels | 03 Aug 19 10.00 AM |
12 Aug 19 to 13 Aug 19
2 Room, 4 Persons
|
Canceled | |||
| Water Grill | Eat & Drink | 04 Aug 19 7.19 PM |
06 Aug 19, 8.30 PM
3 Persons
|
Approved | |||
| Antigone in Ferguson | Events | 04 Aug 19 8.33 AM |
15 Aug 19, 8.15 PM
1 Seats, Gold
|
Approved | |||
| Tom's Restaurant | Eat & Drink | 05 Aug 19 2.40 PM |
13 Aug 19, 6.51 PM
6 Persons
|
Approved | |||
| think Coffee | Eat & Drink | 05 Aug 19 12.53 PM |
14 Aug 19, 6.51 PM
1 table, 5 Persons
|
Approved | |||
| Hotel Govendor | Hotels | 06 Aug 19 09.15 AM |
15 Aug 19 to 23 Aug 19
1 Room, 2 Persons
|
Approved | |||
| think Coffee | Eat & Drink | 06 Aug 19 12.53 PM |
11 Aug 19, 4.30 PM
5 Persons
|
Approved | |||
| Sticky Band | Events | 07 Aug 19 11.30 PM |
11 Aug 19, 8.15 PM
2 Seats, Premium
|
Canceled | |||
| Tom's Restaurant | Eat & Drink | 07 Aug 19 8.30 PM |
07 Sep 19, 6.51 PM
6 Persons
|
Approved | |||
| Hair Salon Mint | Salon | 08 Aug 19 06.30 PM |
09 Aug 19, 6.15 PM
Massage Therapy
|
Approved | |||
| think Coffee | Eat & Drink | 08 Aug 19 05.10 PM |
10 Aug 2019, 4:30 PM
5 Persons
|
Canceled | |||
| Burger House | Eat & Drink | 09 Aug 19 03.40 PM |
19 Aug 19, 11.00 AM
3 Persons
|
Approved | |||
| Hotel Govendor | Hotels | 09 Aug 19 01.40 PM |
12 Aug 19 to 20 Aug 19
1 Room, 2 Persons
|
Approved | |||
| Tom's Restaurant | Eat & Drink | 10 Aug 19 12.40 AM |
11 Aug 19, 6.51 PM
6 Persons
|
Approved | |||
| Sticky Band | Events | 10 Aug 19 11.15 AM |
15 Aug 19, 8.15 PM
2 Seats, Premium
|
Approved | |||
| The Mayfair Hotel | Hotels | 11 Aug 19 09.26 PM |
23 Sep 19 to 25 Sep 19
2 Room, 4 Persons
|
Approved | |||
| Water Grill | Eat & Drink | 11 Aug 19 10.18 PM |
23 Aug 19, 8.30 PM
3 Persons
|
Approved | |||
| Antigone in Ferguson | Events | 12 Aug 19 7.30 PM |
15 Aug 19, 8.15 PM
1 Seats, Gold
|
Approved | |||
| Tom's Restaurant | Eat & Drink | 12 Aug 19 2.30 PM |
17 Aug 19, 6.51 PM
6 Persons
|
Canceled | |||
| think Coffee | Eat & Drink | 13 Aug 19 1.39 PM |
27 Aug 19, 6.51 PM
1 table, 5 Persons
|
Approved | |||
| Hotel Govendor | Hotels | 13 Aug 19 1.39 PM |
21 Aug 19 to 23 Aug 19
1 Room, 2 Persons
|
Approved | |||
| think Coffee | Eat & Drink | 14 Aug 19 11.53 AM |
27 Aug 19, 4.30 PM
5 Persons
|
Approved | |||
| Sticky Band | Events | 14 Aug 19 09.45 AM |
29 Aug 19, 8.15 PM
2 Seats, Premium
|
Approved | |||
| Tom's Restaurant | Eat & Drink | 15 Aug 19 7.35 PM |
19 Aug 19, 6.51 PM
6 Persons
|
Canceled | |||
| Hair Salon Mint | Salon | 15 Aug 19 8.45 PM |
28 Aug 19, 6.15 PM
Massage Therapy
|
Approved |


### Problem 5. Digit as word * Write a script that asks for a digit `(0-9)`, and depending on the input, shows the digit as a word (in English). * Print `“not a digit”` in case of invalid input. * Use a `switch` statement. _Examples:_ | digit | result | |-------|-------------| | 2 | two | | 1 | one | | 0 | zero | | 5 | five | | -0.1 | not a digit | | hi | not a digit | | 9 | nine | | 10 | not a digit |


Motivate employees to maintain their health prior to the Annual Medical checkup
Motivate employees to focus more on their health
Motivate employees who are finding it difficult to maintain a healthy lifestyle
Rules & Regulation
The Rules & Regulations for Walk To Win 2019 is as follows:
The competition will be held for three weeks from the announced date (22 July)
The competition will be held in two categories “Team” & “Individual”
Each team category requllsires four (4) Members
It is mandatory to have one(1) female member in each team
Contestants can participate in both Team & Individual category (If you register as a team, you will be automatically added to individual category)
Team members cannot be changed or added after the competition starts
Individual step count should be recorded using a mobile app or device and should sync the data to GoogleFit or added manually.
Leaderboard will be available in bonfire application and given URL (http://bit.ly/walkTowin)
Your data should sync within 5 days to our system using GoogleFit, Maximum of 7 days data will sync when you connect to app so make sure to sync your data everyday to avoid losing points.
The teams that display the highest scores at the end of the competition will be chosen as Winners
The Winners will be required to provide screenshots of the application used to record the steps count (Screenshot should contain Steps count, Date)
Steps counts will be recorded individually per member and cannot be merged to get points
Weight of all participants will be measured before the competition - Optional
Points calculation will be subjected to change in the purpose of motivation
Contestants found cheating will be disqualified from the competition as the sole purpose of this competition is to promote a healthier lifestyle


Observable Markov models explained visually
by Will Paul Credits | Docs
Observable Markov models (or just Markov models/chains) are kind of scary by default, who's Markov, what's observable, and why do I care? To make matters worse most textbooks start with a technical definition and some lambdas and letters for good measure. When in reality the concept is simple and acts as a building block for a number of sequential classifiers.
All Markov models are based around one simplifying assumption that a guy named Markov posited over a hundred years ago: what if the chance of the next event depended on only the previous event (or a set amount of previous events). This is a simplifying assumption, because in most cases it's just not true, the real world is far more complex than that. So why even bother then? Because this assumption makes it possible for us to simulate and predict events efficiently with data we can actually collect.
So what sort of events can we predict with Markov models? The classic textbook example is weather. Imagine we're predicting weather in Rochester and decide to bucket the weather into two possible states: cloudy and raining. We might look through the weather data in aggregate and find that there is a 50/50 chance of rain vs. clouds and decide that the best simulation we could make of the Rochester weather was effectively a coin toss: heads for rain, tails for clouds.
However, with a Markov model we can actually do better. By looking at the order of weather events in our data we uncover the fact that weather is sort of 'sticky', i.e. when raining its more likely to stay raining than to change and vice versa. This is exactly the sort of information that can be encoded in a Markov model. Simply by increasing the probability of rainy \(\rightarrow\) rainy and cloudy \(\rightarrow\) cloudy and suddenly the model's performance improves over the old coin toss approach. Obviously, this is a contrived example, but Markov models are used all around you in the real world as well, from the autocomplete on your phone to Google's PageRank algorithm.
Instructions
Each node in the graph below represents a state and each link represents the probability of transitioning from one node to the next. These correlate with the cells in the transition matrix, which represent the probability of going from the row node to the column node. Note that outgoing paths (rows) sum to 1, but that no such restriction is placed on columns.
- Use and buttons to change the number of states
- Use the button to change states based on the transition matrix
- Adjust the probabilities for each link by typing a number between 0 and 1 into the box or use the up and down arrows beside it
- Drag and drop the nodes around to moves them around within the force layout
This transition matrix shows the probability of going from one state (rows) to another (columns).
You might be wondering why I call these 'observable' Markov models. It's to emphasize that all the states are not hidden. For example finding out the whether its rainy or cloudy is something that can usually be automatically measured. A powerful extension built on top of Markov models can be used to predict hidden states based on what can be observed. For example using the weather (observable) to predict ice cream sales (hidden) or converting raw speech sound waves (observable) to text (hidden). But that's another visualization for another day.


EGLANTINE ASENATH DEVONISH
The oldest living CFL Bajan - 99 years young
This summary was lovingly submitted by her Nephew Melvin, Jean and Patrick.
Born June 13, 1919 in Redman's Village, Eglantine went to school at Redman's Village Primary School. She is the second of three siblings of Joseph and Sarah Devonish. "Aunt", as she is better known among relatives and close friends, is a family-oriented person. Her first passion was cooking, and boy could she make a mellow cou-cou - no matter the sauce, and delicious fish cakes.
While living in Barbados she worked at Prior Park Plantation as a cook, where she perfected her culinary skills. While I was attending high school I remember "Aunt" sharing her meager weekly salary with my sister Judy and me. "Aunt " migrated to the U.S. In 1965 where she lived with her brother.
Her second passion was her love for her brother Joseph which she called by his middle name " Elman". While he and his wife Catherine were working, "Aunt" took up duties of cooking for the family and the revolving door of guests, family and friendly visitors.
Aunt's hobby was Arts and Crafts. Many households in New York are adorned with doilies, sofa cushions, napkin holders, and toilet paper holders made from beaded cloth, hot glue and string. Her other hobbies are solving biblical puzzles, and challenging family and friends to Bible verses If she questioned you about a verse and you couldn't answer she would say, "You are as dumb as a wet biscuit!" Aunt had some interesting sayings. If you complained about missing a bus or train, she would ask, "What were flies doing before dog ear cut?"
"Aunt" has one son, Michael and six grand children. She is very strong-willed.
Eglantine Asenath Devonish has been a continuing member of the Coalition for the Barbados Association of Central Florida since moving here nearly twenty years ago.


Here is some searchable text with some lápices in it, and more lápices, and some formatting and a URL Google Search Engine as a link. Notice however that this searches occurrences of a substring, not whole words, so if you search for "form" then part of "formatting" will highlight also, which is not wanted in a code editor. It's also not case sensitive. HOWEVER this could work as part of a find/replace dialog, depending on the options checked by the user.


Responsive grid with Flexbox
Note: in responsive view Aside 1 and Aside 2 elements stack below the Main content.
Salvia Helvetica ethical lo-fi, artisan messenger bag put a bird on it. Photo booth taxidermy kale chips, Carles Thundercats retro blog paleo. 8-bit four loko jean shorts, church-key tattooed bespoke normcore art party salvia organic vinyl letterpress distillery. You probably haven't heard of them tofu food truck, Echo Park salvia Schlitz heirloom scenester ennui biodiesel Intelligentsia +1 church-key. Bitters meh actually quinoa, YOLO pug authentic. Kitsch health goth paleo, pop-up tofu authentic gluten-free whatever yr Brooklyn irony. Banjo Tumblr you probably haven't heard of them literally aesthetic, wolf put a bird on it Kickstarter yr.
Hashtag deep v PBR, chillwave banjo mlkshk readymade fixie crucifix. Tattooed Tumblr direct trade trust fund swag gluten-free.
Some ideas are borrowed from Phillip Walton's Solved by Flexbox project.