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 variabes 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 generator, tensor logits of the generator).
def discriminator(images, reuse=False, alpha=0.2):
"""
Create the discriminator network
:param image: Tensor of input image(s)
:param reuse: Boolean if the weights should be reused
:param alpha: Leaky ReLU factor (additionally added)
:return: Tuple of (tensor output of the discriminator, tensor logits of the discriminator)
"""
# TODO: Implement Function
with tf.variable_scope('discriminator', reuse=reuse):
# Image size is 28x28x3
x1 = tf.layers.conv2d(images, filters=64, kernel_size=5, strides=2, padding='same')
x1 = tf.maximum(x1, x1 * alpha)
# Image size is 14x14x64
x2 = tf.layers.conv2d(x1, filters=128, kernel_size=5, strides=2, padding='same')
x2 = tf.layers.batch_normalization(x2, training=True)
x2 = tf.maximum(x2, x2 * alpha)
# Image size is 8x8x128
x3 = tf.layers.conv2d(x2, filters=256, kernel_size=5, strides=2, padding='same')
x3 = tf.layers.batch_normalization(x3, training=True)
x3 = tf.maximum(x3, x3 * alpha)
flat = tf.reshape(x3, (-1, 8*8*128))
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 variabes 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, alpha=0.2):
"""
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
:param alpha: Leaky ReLU (added)
:return: The tensor output of the generator
"""
# TODO: Implement Function
with tf.variable_scope('generator', reuse=not is_train):
x1 = tf.layers.dense(z, 7*7*512, activation=None)
x1 = tf.reshape(x1, (-1, 7, 7, 512))
x1 = tf.layers.batch_normalization(x1, training=is_train)
x1 = tf.maximum(x1, x1 * alpha)
# 7x7x256
x2 = tf.layers.conv2d_transpose(x1, filters=256, kernel_size=5, strides=2, padding='same')
x2 = tf.layers.batch_normalization(x2, training=is_train)
x2 = tf.maximum(x2, x2 * alpha)
# 14x14x256
x3 = tf.layers.conv2d_transpose(x2, filters=128, kernel_size=5, strides=2, padding='same')
x3 = tf.layers.batch_normalization(x3, training=is_train)
x3 = tf.maximum(x3, x3 * alpha)
# 28x28x128
# Output layer
logits = tf.layers.conv2d_transpose(x3, filters=out_channel_dim, kernel_size=5, strides=1, padding='same')
# 28 x 28 x outchannel_dim
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
g_model = generator(input_z, out_channel_dim)
d_model_real, d_logits_real = discriminator(input_real)
d_model_fake, d_logits_fake = discriminator(g_model, reuse=True)
d_loss_real = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_real, labels=tf.ones_like(d_model_real)))
d_loss_fake = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.zeros_like(d_model_fake)))
g_loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.ones_like(d_model_fake)))
d_loss = d_loss_real + d_loss_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')]
# Optimize
with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)):
d_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(d_loss, var_list=d_vars)
g_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(g_loss, var_list=g_vars)
return d_train_opt, g_train_opt
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_opt(model_opt, tf)
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import numpy as np
def show_generator_output(sess, n_images, input_z, out_channel_dim, image_mode):
"""
Show example output for the generator
:param sess: TensorFlow session
:param n_images: Number of Images to display
:param input_z: Input Z Tensor
:param out_channel_dim: The number of channels in the output image
:param image_mode: The mode to use for images ("RGB" or "L")
"""
cmap = None if image_mode == 'RGB' else 'gray'
z_dim = input_z.get_shape().as_list()[-1]
example_z = np.random.uniform(-1, 1, size=[n_images, z_dim])
samples = sess.run(
generator(input_z, out_channel_dim, False),
feed_dict={input_z: example_z})
images_grid = helper.images_square_grid(samples, image_mode)
pyplot.imshow(images_grid, cmap=cmap)
pyplot.show()
Implement train
to build and train the GANs. Use the following functions you implemented:
model_inputs(image_width, image_height, image_channels, z_dim)
model_loss(input_real, input_z, out_channel_dim)
model_opt(d_loss, g_loss, learning_rate, beta1)
Use the show_generator_output
to show generator
output while you train. Running show_generator_output
for every batch will drastically increase training time and increase the size of the notebook. It's recommended to print the generator
output every 100 batches.
def train(epoch_count, batch_size, z_dim, learning_rate, beta1, get_batches, data_shape, data_image_mode):
"""
Train the GAN
:param epoch_count: Number of epochs
:param batch_size: Batch Size
:param z_dim: Z dimension
:param learning_rate: Learning Rate
:param beta1: The exponential decay rate for the 1st moment in the optimizer
:param get_batches: Function to get batches
:param data_shape: Shape of the data
:param data_image_mode: The image mode to use for images ("RGB" or "L")
"""
# TODO: Build Model with previous functions
# Reset everything
#tf.reset_default_graph()
# Generate model
input_real, input_z, lr = model_inputs(data_shape[1], data_shape[2], data_shape[3], z_dim)
d_loss, g_loss = model_loss(input_real, input_z, data_shape[3]) #mimic input channels
d_train_opt, g_train_opt= model_opt(d_loss, g_loss, learning_rate, beta1)
# Verbose variable
steps = 0
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
# Scale images
batch_images *=2
# Sample random noise for generator
batch_z = np.random.uniform(-1, 1, size=(batch_size, z_dim))
# Run Optimizzzzzzzers
_ = sess.run(d_train_opt, feed_dict={input_real: batch_images, input_z: batch_z, lr: learning_rate})
_ = sess.run(g_train_opt, feed_dict={input_real: batch_images, input_z: batch_z, lr: learning_rate}) # needs images?
# Verbose output
if steps % 10 == 0:
# At the end of each epoch, get the losses and print them out
train_loss_d = d_loss.eval({input_z: batch_z, input_real: batch_images})
train_loss_g = g_loss.eval({input_z: batch_z})
print("Epoch {}/{}...".format(epoch_i+1, epochs),
"Discriminator Loss: {:.4f}...".format(train_loss_d),
"Generator Loss: {:.4f}".format(train_loss_g))
if steps % 50 == 0:
show_generator_output(sess, 20, input_z, data_shape[3], data_image_mode)
Test your GANs architecture on MNIST. After 2 epochs, the GANs should be able to generate images that look like handwritten digits. Make sure the loss of the generator is lower than the loss of the discriminator or close to 0.
batch_size = 64
z_dim = 100
learning_rate = 0.001
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.5
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 1
celeba_dataset = helper.Dataset('celeba', glob(os.path.join(data_dir, 'img_align_celeba/*.jpg')))
with tf.Graph().as_default():
train(epochs, batch_size, z_dim, learning_rate, beta1, celeba_dataset.get_batches,
celeba_dataset.shape, celeba_dataset.image_mode)
When submitting this project, make sure to run all the cells before saving the notebook. Save the notebook file as "dlnd_face_generation.ipynb" and save it as a HTML file under "File" -> "Download as". Include the "helper.py" and "problem_unittests.py" files in your submission.


Welcome to Aloha
the best messaging website you can get
first name:
last name:
date of birth:
mobile number:
email:
password:
reenter password:


{{define "maps_show"}}{{template "header" .}}
Please exercise caution while updating the url hash. Do it before you have shared the map link with others. If you are modifying the url after having shared the map link with others, those who are trying to view the map with old url will get a 'not found' error.


4.2 psb_gedot — Dot Product
This function computes dot product between two vectors x and y.
If x and y are real vectors it computes dot-product as:
Else if x and y are complex vectors then it computes dot-product as:
psb_gedot(x, y, desc_a, info [,global])
|
|
| dot, x, y | Function |
|
|
| Short Precision Real | psb_gedot |
| Long Precision Real | psb_gedot |
| Short Precision Complex | psb_gedot |
| Long Precision Complex | psb_gedot |
|
|
| |
Table 2: Data types
-
Type:
- Synchronous.
-
On Entry
-
-
x
- the local portion of global dense matrix x.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type
psb_T_vect_type containing numbers of type specified in Table 2. The
rank of x must be the same of y.
-
y
- the local portion of global dense matrix y.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type
psb_T_vect_type containing numbers of type specified in Table 2. The
rank of y must be the same of x.
-
desc_a
- contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_desc_type.
-
global
- Specifies whether the computation should include the global reduction
across all processes.
Scope: global
Type: optional.
Intent: in.
Specified as: a logical scalar. Default: global=.true.
-
On Return
-
-
Function value
- is the dot product of vectors x and y.
Scope: global unless the optional variable global=.false. has been
specified
Specified as: a number of the data type indicated in Table 2.
-
info
- Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.
Notes
- The computation of a global result requires a global communication, which
entails a significant overhead. It may be necessary and/or advisable to
compute multiple dot products at the same time; in this case, it is
possible to improve the runtime efficiency by using the following scheme:
vres(1) = psb_gedot(x1,y1,desc_a,info,global=.false.) vres(2) = psb_gedot(x2,y2,desc_a,info,global=.false.) vres(3) = psb_gedot(x3,y3,desc_a,info,global=.false.) call psb_sum(ctxt,vres(1:3))
In this way the global communication, which for small sizes is a latency-bound
operation, is invoked only once.


--- layout: page title: What we offer permalink: /what-we-offer/ main_image_path: main_image_caption: frontpage: false homepage_description_markdown: frontpagetitle: frontpageorder_number: main_nav: true aside: true _options: layout: hidden: true permalink: hidden: true image_path: uploads_dir: 'assets/images/:year' width: 1200 height: 1200 resize_style: contain mime_type: image/jpeg main_image_path: uploads_dir: 'assets/images/:year' width: 1200 height: 1200 resize_style: contain mime_type: image/jpeg content: uploads_dir: 'assets/:year' _comments: title: Page title main_image_path: Image used to represent your page frontpage: Show this page on the homepage homepage_description_markdown: Text used on homepage if shown frontpagetitle: Alternative title for home page use ---
At the moment we offer a Raising confident children workshop for parents who are seeking treatment for anxiety Click here for more information on our workshops.
Take a look at our poster which details some of the work we are currently doing in the Flourishing Families Clinic


Each country may has different types of folks musics. From town to town, village by
village this can be changed. Different music instrument or different style of folk music maybe
used. Please help us to improve the SingCloud and send us some folk songs from your country. You
can upload folk songs by clicking on 'Upload Song' on the top. Also if you can write an article
about folk music of United Kingdom, we can put your article on folkcloud with your name.
On the list below you can find some folk songs or traditional songs from United Kingdom. Each song
has some tags which specify its genres or musical instrument which is used in that song. Inside
each page you can find more information about the artist or music genre. You can listen to all
songs as playlist too or you can add each song to your personal playlist.
By : Eliza Carthy
Year : 1998
George Dunn sang The Miller's Song in a recording made by Bill Leader in December 1971. It was published in 1975 on his eponymous Leader album George Dunn.
By : Carly Simon
Year : 2007
This gentle song is believed to have been sung as a lullaby for the most of its history, although it may have been sung as a love song as well.


/dir:<directory 1>,<directory N>
Instead of having script/assembly probing directories specified in global config file (css_config.xml) you can add them only for a particular script execution. This can be achieved by specifying /dir switch:
The command above executes the myScript.cs script. It also instructs the script engine to include C:\MyLibraries in script/assembly probing.
Command-line interface | Using .NET assemblies


The Next, Next Generation Experience the future with Motorola XOOM with Wi-Fi, the world's first tablet powered by Android 3.0 (Honeycomb).
The Next, Next Generation Experience the future with Motorola XOOM with Wi-Fi, the world's first tablet powered by Android 3.0 (Honeycomb).
The Next, Next Generation Experience the future with Motorola XOOM with Wi-Fi, the world's first tablet powered by Android 3.0 (Honeycomb).


I walked out of "Copland" with a very excited feeling above filmmaking that I haven't felt since seeing "Fargo"...Not that Copland is on par with Fargo, but nonetheless, I have been so routinely dissapointed lately (see my reviews for Faceoff, Michael, and Shine, for example at http://w3.one.net/~mcpilot/movies.htm) that I am sometimes squeamish about spending the $7.50.
Not so Copland. It was a thoroughly enjoyable film which should, in my opinion, earn Stallone a Best Actor Nomination. Yes, I will be the first to say it.
THe film is set in Garrisson, NJ, a small extention of New York City in which numerous NYPD Cops have come to settle to get away from the crime and noise of the Big Apple. Garrisson was created, ostensibly, BY the cops, FOR the cops. It acts as a haven for the most crooked of New York's finest, the leader of which is Ray Donlan (Harvey Keitel)
The plot emerges slowly, as does the film, but frankly, that was a nice change of pace from the usual summer fare that tries to top every last scene with one which is louder and more violent. A young cop, Murray "Superboy" Babich (So named because he singlehandedly saved a family of children) gets himself into a troubling situation when he impulsively kills two young joyriders. Donlan, Murray's uncle and a fellow police officer, immediately covers up the mistake by planting weapons in the victims' car, and by making it appear as though "Superboy" took his own life by diving off the George Washinton Bridge.
In reality, Ray is hiding his nephew out in Garrisson, until the Internal Affairs Investigation cools off. The IA Investigator, Moe Tilden (Robert Dinero) knows instinctively that something is amiss with the killing of the two suspects. He has evidence that there were not armed, that the evidence was planted, and that Murray is alive somewhere. If he can find Murray, he can prove a cover up, and he can finally nail Donlan and is on-the-take cronies.
That's anough about the plot. It's invoved enough that it would take a significant investment in bandwidth to explain it fully.
Sylvester Stallone plays Freddie Heflin, the local sherriff of Garrisson. His was essentially an appointed post, handed to him by Donlan, because a) Freddy could not get the job he truly longed for, that of an NYPD officer, due to deafness in one ear caused by a childhood accident and b) knowing that he wanted more than anything than to be a cop, Donlan knows that Freddy will stay out of the way of the crooked business being conducted in the city, around the round table at the cop's 4-Aces bar.
Stallone is EXCELLENT. His portrayl of the unassertive, pushover Freddy is instantly convincing. You do not see a single trace of the teeth gritting, groaning Rambo that Stallone made famous, in fact, you forget you watching Stallone at all. He brings Freddy to life in the very first scene, an overweight, bumbling cop wannabe, who hangs out at the 4-aces but is neither welcomed nor shunned.
Stallone draws a very convincing picture of Freddy. His life is full of regrets, his movements those of a beaten man, laying around in his spare time listening to wistful Springstine. The movie is basically the story of how Freddy slowly awakens to his conscience and ultimately, tired of being dressed down by the crooked cops, decides to BE a cop and do the right thing.
Now, don't get me wrong, this is not the moment where the music swells and Stallone ties the red bandana on and proceeds to blow the whole Police Dept. away without missing a shot. The Director (James Mangold, who also wrote) resists this temptation and suceeds. That is where this movie, in fact, succeeds, in that the Freddy's character is true, from start to finish. You will see what I mean in the very last scene. This scene is critical in keeping the movie true to itself. Freddy does not go on to marry the girl, to become chief detective of the NYPD's 37th precinct.
All of the actors do a great job, especially Ray Liotta, who, in my humble opinion, could have won the OverActor's Anonymous Award for his bizzare turn in "Turbulence", and here, finds the right blend of manic corruption and a conscience trying to get out. Keitel is perfect, and Dinero is his usual excellent. And, while I am a fan of Janeane Garofalo, she took a rather small part here, although I suspect because she was interested in being a part of this film for no other reason.
A word of caution--this film is involved. There are subplots and backstories aplenty, that will all come together at the end. It's not like "Face Off" where the set up took 1 minute and you got bullets for the remaining 120. This film requires some work on your part, to keep up and resolve. Oddly, some of the same critics who are complaining about the numerous side stories (Which are, in my opinion, all relevant) are the same folks who loved "Get Shorty". It took a slide rule and a plumb-bob to keep all of the weaves in THAT film straight!
"Copland" is a very very good film. Stallone has shown that he can act. Take it in for no other reason than for that performance.
Pat August 97
-- Check out my humble movie review page at http://w3.one.net/~mcpilot/movies.htm
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


import numpy as np
from falass import dataformat
[docs]class Files:
"""File parsing.
Definition of the files to be used in the analysis; such as the .pdb file, .lgt file (is one exists), .dat file
(is one exists). Also defined at this time are the resolution (this is ignored if the .dat file has 4 columns)
and the percentage error in the intensity (this is also ignored if the .dat file has >2 columns), and whether
the simulation cell should be flipped in the xy-plane.
Parameters
----------
pdbfile: str
Path and name of the .pdb file to be analysed.
lgtfile: str, optional
Path and name of the .lgt file (which contains the scattering lengths of each of the atom types in the
pdbfile). If a lgtfile is not defined falass will help in the creation of one.
Currently the .lgt file style that is supported is a 3 column space separated txt file where the columns are
atom_type, real_scattering_length, and imaginary_scattering_length respectively.
datfile: str, optional
Path and name of the .dat file (from which the analysis q vectors are drawn and also for subsequent
comparison between theory and experiment). If a datfile is not defined falass will allow the user to
define a range of q vectors to calculate the reflectometry over.
Currently the .dat file style that is supported is a 2, 3, and 4 column space separated txt files where the
columns are q, i, di, and dq respectively.
resolution: float, optional
Percentage of the q vector for the width of the resolution Gaussian function to be used in the data
smearing, if a 4 column datfile is given this is ignored.
ierror: float, optional
Percentage error of the intensity to be assumed, if a >2 column datfile is used this is ignored.
flip: bool, optional
False if the system should be read as is, true is the simulation cell should be rotated through the
xy-plane -- note that falass treats the first side that the neutron or X-ray interacts with as that at z=0.
"""
def __init__(self, pdbfile, lgtfile=None, datfile=None, resolution=5., ierror=5., flip=False):
self.pdbfile = pdbfile
self.cell = []
self.atoms = []
self.number_of_timesteps = 0
self.times = []
self.lgtfile = lgtfile
self.scat_lens = []
self.datfile = datfile
self.expdata = []
self.ierror = ierror
self.resolution = resolution
self.flip = flip
return
[docs] def set_file(self, pdbfile=None, lgtfile=None, datfile=None):
"""Edits files.
Let the subsequent definition, or redefinition of the pdbfile, lgtfile or datfile.
Parameters
----------
pdbfile: str
Path and name of the .pdb file to be analysed.
lgtfile: str, optional
Path and name of the .lgt file (which contains the scattering lengths of each of the atom types in the
pdbfile). If a lgtfile is not defined falass will help in the creation of one.
Currently the .lgt file style that is supported is a 3 column space separated txt file where the columns are
atom_type, real_scattering_length, and imaginary_scattering_length respectively.
datfile: str, optional
Path and name of the .dat file (from which the analysis q vectors are drawn and also for subsequent
comparison between theory and experiment). If a datfile is not defined falass will allow the user to
define a range of q vectors to calculate the reflectometry over.
Currently the .dat file style that is supported is a 2, 3, and 4 column space separated txt files where the
columns are q, i, di, and dq respectively.
"""
if pdbfile:
self.pdbfile = pdbfile
if lgtfile:
self.lgtfile = lgtfile
if datfile:
self.datfile = datfile
return
[docs] def read_pdb(self):
"""Parse .pdb.
Reads the .pdb file into memory. Currently the atoms must have the title 'ATOM', the timestep time needs to
be the last text in the 'TITLE' line, and the cell dimensions are taken from the 'CRYST1' line, and assumed to
be orthorhomic. Non-orthorhomic cells are not necessarily supported.
"""
lines = line_count(self.pdbfile)
print("Reading PDB file \n")
file = open(self.pdbfile, 'r')
percentage = 0
print_update(percentage)
atoms_each_timestep = []
for i, line in enumerate(file):
percentage_new = np.floor(i / lines * 100)
percentage = check_update(percentage, percentage_new)
if line[0:6] == "ATOM ":
atoms_each_timestep.append(get_atom_position(self.cell[self.number_of_timesteps - 1][2], line,
self.flip))
if "TITLE " in line:
if self.number_of_timesteps == 0:
self.number_of_timesteps, new_time = iterate_time(self.number_of_timesteps, line)
self.times.append(new_time)
else:
self.atoms.append(atoms_each_timestep)
atoms_each_timestep = []
self.number_of_timesteps, new_time = iterate_time(self.number_of_timesteps, line)
self.times.append(new_time)
if "CRYST1 " in line:
self.cell.append(get_cell_parameters(line))
self.atoms.append(atoms_each_timestep)
print_update(100)
file.close()
return
[docs] def read_lgt(self):
"""Parses .lgt.
Parses the lgtfile. If no lgtfile is defined falass will help the user to build one by working through the
atom types in the pdb file and requesting input of the real and imaginary scattering lengths. This will also
occur if a atom type if found in the pdbfile but not in the given lgts file. falass will write the lgtfile
to disk if atom types do not feature in the given lgtfile or one is written from scratch.
"""
if self.lgtfile:
lines = line_count(self.lgtfile)
print("Reading LGT file \n")
percentage = 0
print_update(percentage)
file = open(self.lgtfile, 'r')
for i, line in enumerate(file):
percentage_new = np.floor(i / lines * 100)
percentage = check_update(percentage, percentage_new)
line_list = line.split()
duplicate = check_duplicates(self.scat_lens, line_list[0])
if not duplicate:
self.scat_lens.append(dataformat.ScatLens(line_list[0], float(line_list[1]), float(line_list[2])))
print_update(100)
file.close()
else:
raise ValueError("No lgtfile has been defined.")
return
[docs] def read_dat(self):
"""Parses .dat.
Parses the .dat file, supporting 2, 3, and 4 column files consisting of q, i, di, and dq with comments in lines
where the first character is a '#'. If there is no .dat file the get_qs() function should be used to generate
q vectors to allow for the calculation of the reflectometry profile.
"""
self.expdata=[]
if self.datfile:
lines = line_count(self.datfile)
print("Reading DAT file \n")
percentage = 0
print_update(percentage)
file = open(self.datfile, 'r')
for i, line in enumerate(file):
percentage_new = np.floor(i / lines * 100)
percentage = check_update(percentage, percentage_new)
if line[0] != '#':
line_list = line.split()
if len(line_list) == 2:
self.expdata.append(dataformat.QData(float(line_list[0]), float(line_list[1]),
float(line_list[1]) * (self.ierror / 100),
float(line_list[0]) * (self.resolution / 100)))
if len(line_list) == 3:
self.expdata.append(dataformat.QData(float(line_list[0]), float(line_list[1]),
float(line_list[2]),
float(line_list[0]) * (self.resolution / 100)))
if len(line_list) == 4:
self.expdata.append(dataformat.QData(float(line_list[0]), float(line_list[1]),
float(line_list[2]), float(line_list[3])))
print_update(100)
file.close()
else:
print('No DAT file has been given, therefore no comparison will be conducted, please use the get_qs '
'function. Alternatively the DAT file can be added using the setFile function.')
return
[docs] def get_qs(self, start=0.005, end=0.5, number=50):
"""Make custom q-vectors.
If no datfile exists this function should be used to generate a linear-spaced range of q-vector for the
calculation of the reflectometry over.
Parameters
----------
start: float, optional
The first q-vector for which the reflectometry should be calculated.
end: float, optional
The last q-vector for which the reflectometry should be calculated.
number: int, optional
The number of q-vectors.
"""
q_values = np.linspace(start, end, number)
for i in range(0, len(q_values)):
self.expdata.append(dataformat.QData(q_values[i], None, None, q_values[i] * (self.resolution / 100)))
return
[docs]def check_duplicates(array, check):
"""Stops duplicate atom types.
Checks if an atom type has already been added to an array.
Parameters
----------
array: array-type ScatLens
The array to check.
check: str
The atom type to try and find.
Returns
-------
bool
True if the atom type is already present in the scatlen type array, false if not.
"""
for i in range(0, len(array)):
if array[i].atom == check:
return True
return False
[docs]def line_count(filename):
"""File length.
Quickly counts the number of lines in a file
Parameters
----------
filename: str
Name of the file that the number of lines is desired for.
Returns
-------
int
Number of lines in the file
"""
i = 0
with open(filename) as f:
for i, l in enumerate(f):
pass
return i + 1
[docs]def flip_zpos(cell, zpos):
"""Flip the z-position.
Flips the z-position through the xy-plane.
Parameters
----------
cell: float
z-cell dimension.
zpos: float
z-position for an atom.
Returns
-------
float
z-position after the flipping
"""
return np.sqrt(np.square(cell - zpos))
[docs]def get_atom_position(cell, line, flip):
"""Get the atom position and type
Reads the text line from the pdb and assigns it to an falass.dataformat.AtomPosition type object.
Parameters
----------
cell: float
z-cell dimension.
line: str
Line from pdb file.
flip: bool
Should the cell be flipped in the z-dimension.
Returns
-------
falass.dataformat.AtomPositions
Object with atom type and z-position from the given line.
"""
if flip:
new_zpos = flip_zpos(cell, float(line[46:54]))
return dataformat.AtomPositions(line[12:16].strip(), new_zpos)
else:
return dataformat.AtomPositions(line[12:16].strip(), float(line[46:54]))
[docs]def get_cell_parameters(line):
"""Identify cell parameters from line.
Read the cell parameters from an appropriate line
Parameters
----------
line: str
Line from pdb file.
Returns
-------
array_like float
the a, b, c cell vectors of the particular timestep
"""
return [float(line[6:15]), float(line[15:24]), float(line[24:33])]
[docs]def iterate_time(number_of_timesteps, line):
"""Increases the number of timesteps
Iterates the number of timesteps and finds the new timestep value.
Parameters
----------
number_of_timesteps: int
Number of timesteps found so far.
line: str
'TITLE' line from the pdb file which has timestep information.
Returns
-------
int
Number of timesteps iterated by 1.
float
Time of newest timestep.
"""
number_of_timesteps += 1
new_time = float(line.split()[-1])
return number_of_timesteps, new_time
[docs]def print_update(percentage):
"""Print percentage read-in.
Prints a percentage of how much as been read in at a given time.
Parameters
----------
string: int
Percentage read-in complete.
"""
print("[{} {} % ]".format('#' * int(percentage / 10), int(percentage / 10) * 10))
[docs]def check_update(percentage, percentage_new):
"""Check if an update string should be printed.
Assess if an update string should be printed to the screen.
Parameters
----------
string: int
Percentage of way through reading.
Returns
-------
int
New percentage of way through reading.
"""
if percentage_new > percentage + 9:
percentage = percentage_new
print_update(percentage)
return percentage


## Links
* [Processing.js learning](http://processingjs.org/learning/)
* great place to start
* [Processing.js documentation](http://processingjs.org/reference/)
* [Online editor](http://valentin.dasdeck.com/processing/)
* [Intro to Programming with JS and Processing on Khan Academy](https://www.khanacademy.org/computing/computer-programming/programming)
* [Recommended books](http://p5art.tumblr.com/processingbooks)
* [Recommended tutorials](http://p5art.tumblr.com/tutorials)
## End. Questions?
Keep in touch:
* [@piratefsh](http://twitter.com/piratefsh)
* [sherminn.chong<EMAIL_ADDRESS>* [github.com/piratefsh](http://github.com/piratefsh)
I prepared a question
juuuust in case
How is working with Processing.js different from working directly with the Javascript canvas API?


KDS TWAIN Source
Programmatic Printing
June 22, 2012
Revision 1.13
Contents
Abstract............................................................................................................................................................................. 3
Audience.......................................................................................................................................................................... 3
Programmatic Discovery of Printing Functionality.................................................................................................... 3
Printer Capabilities ........................................................................................................................................................ 3
Sample for i2900/i3000/i4000/i5000 scanners without image address ........................................................... 10
Sample for i800/i1800 scanners with image address .......................................................................................... 12
Sample for i200/i600/i700/i1400 scanners .............................................................................................................. 13
The following scanners are supported for printer: i200/i600/i700/i800/i1400/i1800/i2900/i3000/i4000/i5000. The level and kind of support differs between the various scanners. This document details the methods of programmatic control for document printing and gives some examples of use.
It is assumed that the reader has a basic knowledge of the Kodak line of Document Scanners and of the TWAIN Specification (version 1.8 or higher). This document is intended for use by TWAIN integrators.
The CAP_PRINTERENABLED capability is used to determine if a printer is available. A DG_CONTROL / DAT_CAPABILITY / MSG_GET operation will return a failure if printing is not supported.
There is no way for TWAIN to know programmatically if a scanner has a printer installed. It’s up to the application to know what was done with the Mode Setup Software, and present that information to the operator.
The i600/i700/i800/i1800/i4000/i5000 scanners only support printing on the front side of a document. Printing is performed before the image is scanned.
The i200/i1400/i2900/i3000 scanners only support printing on the rear side of a document. Printing is performed after image is scanned.
Not all the printer capabilities are supported for every scanner, therefore the scanner models are specified in every printer capability. The allowed values and default are specified for each scanner specific.
CAP_PRINTERDATE
Scanners: i600/i700/i1800/i2900/i3000/i4000/i5000
Container: TWON_ONEVALUE
Type: TWTY_STR255
Values: YYYY/MM/DD (YYYY - year, MM - month, DD - day)
Default: empty string
Standard: No, custom capability
Use: This will set the scanner to a specific date prior to printing. The scanner will be returned to the original date afterwards.
Set to empty string to disable.
CAP_PRINTERDATEDELIMITER
Scanners: All
Container: TWON_ENUMERATION
Type: TWTY_UINT16
Values: TWPD_NONE, TWPD_FORWARDSLASH, TWPD_HYPHEN, TWPD_PERIOD, TWPD_BLANK
Default: i800: TWPD_FORWARDSLASH
Others: TWPD_NONE
Standard: No, custom capability
Use: Selects the delimiter used in the date.
CAP_PRINTERDATEFORMAT
Scanners: i600/i700/i800/i1400/i1800/i2900/i3000/i4000/i5000
Container: TWON_ENUMERATION
Type: TWTY_UINT16
Values: i600/i800/i1400: TWPE_MMDDYYYY, TWPE_DDMMYYYY, TWPE_YYYYMMDD,
Others: TWPE_MMDDYYYY, TWPE_DDMMYYYY, TWPE_YYYYMMDD, TWPE_DDD, TWPE_YYYYDDD
Default: i800: TWPE_MMDDYYYY
Others: TWPE_YYYYMMDD
Standard: No, custom capability
Use: Selects the format of the date.

Scanners: All
Container: TWON_ENUMERATION
Type: TWTY_UINT16
Values: i200/i1400: TWPN_LARGECOMIC, TWPN_LARGECINE, TWPN_SMALLCOMIC, TWPN_SMALLCINE
i600/i700/i800/i1800: TWPN_LARGECOMIC, TWPN_LARGECINE, TWPN_LARGECOMIC180, TWPN_LARGECINE180,
TWPN_SMALLCOMIC, TWPN_SMALLCINE, TWPN_SMALLCOMIC180, TWPN_SMALLCINE180
i2900/i3000/i5000: TWPN_LARGECOMIC, TWPN_LARGECINE, TWPN_LARGECOMIC180, TWPN_LARGECINE180,
TWPN_SMALLCOMIC, TWPN_SMALLCINE, TWPN_SMALLCOMIC180, TWPN_SMALLCINE180,
TWPN_BOLDLARGECOMIC, TWPN_BOLDLARGECINE, TWPN_BOLDLARGECOMIC180, TWPN_BOLDLARGECINE180
i4000: TWPN_LARGECOMIC, TWPN_LARGECINE, TWPN_LARGECOMIC180, TWPN_LARGECINE180,
TWPN_SMALLCOMIC, TWPN_SMALLCINE, TWPN_SMALLCOMIC180, TWPN_SMALLCINE180,
TWPN_BOLDLARGECOMIC, TWPN_BOLDLARGECINE
Default: i800/i4000/i5000: TWPN_SMALLCOMIC
Others: TWPN_LARGECOMIC
Standard: No, custom capability
Use: Selects the print font.
CAP_PRINTERFRONTFORMAT
Scanners: i1800
Container: TWON_ENUMERATION
Type: TWTY_UINT16
Values: TWPFF_NORMAL, TWPFF_BLOCK
Default: TWPFF_NORMAL
Standard: No, custom capability
Use: Elects the printer font format to be used.
CAP_PRINTERIMAGEADDRESSFORMAT
Scanners: i800/i1800
Container: TWON_ENUMERATION
Type: TWTY_UINT16
Values: TWPI_DISPLAYLEADINGZEROS, TWPI_SUPPRESSLEADINGZEROS, TWPI_COMPRESSLEADINGZEROS
Default: TWPI_SUPPRESSLEADINGZEROS
Standard: No, custom capability
Use: This selects the format of the image address, if it is selected for printing.
CAP_PRINTERIMAGEADDRESSLEVEL
Scanners: i800/i1800
Container: TWON_ENUMERATION
Type: TWTY_UINT16
Values: TWPL_ALLLEVELS, TWPL_LEVEL1, TWPL_LEVEL2, TWPL_LEVEL3
Default: TWPL_ALLLEVELS
Standard: No, custom capability
Use: This selects which level document the described printing will occur upon.
CAP_PRINTERINDEX
Scanners: All
Container: TWON_RANGE
Type: TWTY_UINT32
Values: 0xFFFFFFFF, 0 - 999999999
Default: i600/i700/i1800: 1
Others: 0
Standard: Yes (TWAIN 1.8)
Use: Sets the print counter.
Notes: 0xFFFFFFFF preserves the current value in the scanner
Scanners: All
Container: TWON_RANGE
Type: TWTY_UINT16
Values: 1 - 9
Default: 0
Standard: No, custom capability
Use: Sets the number of digits of the counter to be printed. Note that the data will be truncated if the number of digits in the count exceeds this value.
CAP_PRINTERINDEXFORMAT
Scanners: All
Container: TWON_ENUMERATION
Type: TWTY_UINT16
Values: TWPI_DISPLAYLEADINGZEROS, TWPI_SUPPRESSLEADINGZEROS, TWPI_COMPRESSLEADINGZEROS
Default: i800: TWPI_SUPPRESSLEADINGZEROS
Others: TWPI_DISPLAYLEADINGZEROS
Standard: No, custom capability
Use: Selects the format used to print the counter.
CAP_PRINTERMODE
Scanners: i4000/i5000
Container: TWON_ENUMERATION
Type: TWTY_UINT16
Values: TWPM_SINGLESTRING, TWPM_COMPOUNDSTRING
Default: TWPM_SINGLESTRING
Standard: Yes (TWAIN 1.8)
Use: TWPM_SINGLESTRING allows the full range of printer features to be expressed.
TWPM_COMPOUNDSTRING follows the guidelines of the TWAIN 1.8 specification.
Scanners: All
Container: TWON_RANGE
Type: TWTY_FIX32
Values: Scanner specific
Default: Scanner specific
Standard: No, custom capability
Use: This selects the position from the top of the page where printing is to begin.
CAP_PRINTERSTRING
Scanners: i2900/i3000/i4000/i5000
Container: TWON_ONEVALUE
Type: TWTY_STR255
Values: Any string (up to 40 characters)
Default: “111”
Standard: Yes (TWAIN 1.8)
Use: This capability is the same as CAP_PRINTERWRITESEQUENCEMESSAGE1.
CAP_PRINTERSUFFIX
Scanners: All
Container: TWON_ONEVALUE
Type: TWTY_STR255
Values: i600/i700/i1800/i5000: Any string (up to 20 characters)
Others: Any string (up to 40 characters)
Default: i200/i600/i700/i1400: “ABC”
Others: “111”
Standard: Yes (TWAIN 1.8)
Use: Specifies a text string to be printed.
CAP_PRINTERTIME
Scanners: i600/i700/i1800/i2900/i3000/i4000/i5000
Container: TWON_ONEVALUE
Type: TWTY_STR255
Values: HH:MM (HH - hour (0-23), MM - minutes (0-59), i.e. 00:00->23:59)
Default: empty string
Standard: No, custom capability
Use: This will set the scanner to a specific time prior to printing. The scanner will be returned to the original time afterwards.
Set to empty string to disable.
CAP_PRINTERWRITESEQUENCE
Scanners: All
Container: TWON_ENUMERATION
Type: TWTY_UINT16
Values: i600/i700/i800/i1800/i5000: TWPW_DATE, TWPW_TIME, TWPW_INDEX, TWPW_MESSAGE1 to 6, TWPW_SPACE
Others: TWPW_DATE, TWPW_TIME, TWPW_INDEX, TWPW_MESSAGE1, TWPW_SPACE
Default: TWPW_INDEX
Standard: No, custom capability
Use: Determines what will be printed.
CAP_PRINTERWRITESEQUENCEMESSAGE1-6
Scanners: All
Container: TWON_ONEVALUE
Type: TWTY_STR255
Values: i600/i700/i1800/i5000: Any string (up to 20 characters), CAP_PRINTERWRITESEQUENCEMESSAGE1 through 6
Others: Any string (up to 40 characters), CAP_PRINTERWRITESEQUENCEMESSAGE1
Default: i200/i600/i700/i1400: “ABC”
Others: “111”
Standard: No, custom capability
Use: Specifies a text string to be printed.
Notes: This one text string can be used anywhere in the print sequence, and more than once.
Same as CAP_PRINTERSUFFIX (CAP_PRINTERSUFFIX is CAP_PRINTERWRITESEQUENCEMESSAGE1)
Scanners: i200/i600/i700/i1400/i1800
Container: TWON_RANGE
Type: TWTY_UINT16
Values: i200/i1400: 1
Others: 1 - 6
Default: 1
Standard: No, custom capability
Use: Sets the current write sequence message.
Notes: Setting this value to 1 selects CAP_PRINTERSUFFIX.
CAP_PRINTERWRITESEQUENCESTRING
Scanners: All
Container: TWON_ONEVALUE
Type: TWTY_STR255
Values: (see the control characters below)
i200/i600/i700: Max 20 control characters
i800/i1800: Max 80 control characters
Others: Max 40 control characters
Default: "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
Standard: No, custom capability
Use: Controls what will be printed.
The Write Sequence capability (CAP_PRINTERWRITESEQUENCESTRING) is used to control what is printed by the scanner, and must adhere to the following rules.
· Value must always be valid, even if disabled
· Embedded ‘Z’s are not allowed
The following list covers the available control characters:
For i800/i1800/i2900/i3000/i4000/i5000 scanners:
· Z - end of write sequence (This is optional and may fill out the string)
· A - IA field A (based on CAP_PRINTERIMAGEADDRESSFORMAT)
· B - IA field B (based on CAP_PRINTERIMAGEADDRESSFORMAT)
· C - IA field C (based on CAP_PRINTERIMAGEADDRESSFORMAT)
· D - IA field D (based on CAP_PRINTERIMAGEADDRESSFORMAT)
· Y - Date (based on CAP_PRINTERDATEFORMAT and CAP_PRINTERDATEDELIMITER)
· T - Time HH:MM (CAP_PRINTERTIME)
· S - Printer Index (CAP_PRINTERINDEX based on CAP_PRINTERINDEXDIGITS and CAP_PRINTERINDEXFORMAT)
· 1 - Message #1 (level 1,2,3) (CAP_PRINTERWRITESEQUENCEMESSAGE1)
· 2 - Message #2 (level 1,2,3) (CAP_PRINTERWRITESEQUENCEMESSAGE2)
· 3 - Message #3 (level 1,2,3) (CAP_PRINTERWRITESEQUENCEMESSAGE3)
· 4 - Message #4 (level 1,2,3) (CAP_PRINTERWRITESEQUENCEMESSAGE4)
· 5 - Message #5 (level 1,2,3) (CAP_PRINTERWRITESEQUENCEMESSAGE5)
· 6 - Message #6 (level 1,2,3) (CAP_PRINTERWRITESEQUENCEMESSAGE6)
· 1 - Message #7 (all levels) (CAP_PRINTERWRITESEQUENCEMESSAGE7)
· 2 - Message #8 (all levels) (CAP_PRINTERWRITESEQUENCEMESSAGE8)
· 3 - Message #9 (all levels) (CAP_PRINTERWRITESEQUENCEMESSAGE9)
· 4 - Message #10 (all levels) (CAP_PRINTERWRITESEQUENCEMESSAGE10)
· 5 - Message #11 (all levels) (CAP_PRINTERWRITESEQUENCEMESSAGE11)
· 6 - Message #12 (all levels) (CAP_PRINTERWRITESEQUENCEMESSAGE12)
· “ “ - Blank space (1 character)
For i200/i600/i700/i1400 scanners:
· Z - End of write sequence (This is optional and may fill out the string)
· C - Printer index (CAP_PRINTERINDEX based on CAP_PRINTERINDEXDIGITS and CAP_PRINTERINDEXFORMAT)
· D - Date MMDDYYYY (based on CAP_PRINTERDATEDELIMITER)
· E - Date DDMMYYYY (based on CAP_PRINTERDATEDELIMITER)
· F - Date YYYYMMDD (based on CAP_PRINTERDATEDELIMITER)
· J - Date YYYYDD (based on CAP_PRINTERDATEDELIMITER)
· H - Date DDD (based on CAP_PRINTERDATEDELIMITER)
· T - Time HH:MM (CAP_PRINTERTIME)
· B - Blank space (1 character)
· S - Message #1 (CAP_PRINTERWRITESEQUENCEMESSAGE1 or CAP_ PRINTERSUFFIX)
· 2 - Message #2 (CAP_PRINTERWRITESEQUENCEMESSAGE2)
· 3 - Message #3 (CAP_PRINTERWRITESEQUENCEMESSAGE3)
· 4 - Message #4 (CAP_PRINTERWRITESEQUENCEMESSAGE4)
· 5 - Message #5 (CAP_PRINTERWRITESEQUENCEMESSAGE5)
· 6 - Message #6 (CAP_PRINTERWRITESEQUENCEMESSAGE6)
CAP_PRINTERENABLED: TRUE
CAP_PRINTERDATEFORMAT: TWPE_MMDDYYYY
CAP_PRINTERDATEDELIMITER: TWPD_FORWARDSLASH
CAP_PRINTERFONT: TWPN_SMALLCOMIC
CAP_PRINTERINDEX: 20
CAP_PRINTERINDEXDIGITS: 5
CAP_PRINTERINDEXFORMAT: TWPI_DISPLAYLEADINGZEROS
CAP_PRINTERPOSITION: 2.5 inches
CAP_PRINTERWRITESEQUENCEMESSAGE1: “Message1”
CAP_PRINTERWRITESEQUENCEMESSAGE2: “Message2”
CAP_PRINTERWRITESEQUENCEMESSAGE3: “Message3”
CAP_PRINTERWRITESEQUENCEMESSAGE4: “Message4”
CAP_PRINTERWRITESEQUENCEMESSAGE5: “Message5”
CAP_PRINTERWRITESEQUENCEMESSAGE6: “Message6”
CAP_PRINTERWRITESEQUENCESTRING: “Y T 1 2 3 4 5 6 SZZZZZZZZZZZZZZZZZZZZZZZ”
Result: Top Printer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
“12/06/2010 10:25 Message1 Message2 Message3 Message4 Message5 Message6 00020”
“12/06/2010 10:25 Message1 Message2 Message3 Message4 Message5 Message6 00021”
“12/06/2010 10:25 Message1 Message2 Message3 Message4 Message5 Message6 00022”
CAP_PRINTERENABLED: TRUE
CAP_PRINTERDATEFORMAT: TWPE_MMDDYYYY
CAP_PRINTERDATEDELIMITER: TWPD_FORWARDSLASH
CAP_PRINTERFONT: TWPN_SMALLCOMIC
CAP_PRINTERINDEX: 20
CAP_PRINTERINDEXDIGITS: 5
CAP_PRINTERINDEXFORMAT: TWPI_DISPLAYLEADINGZEROS
CAP_PRINTERPOSITION: 2.5 inches
CAP_PRINTERWRITESEQUENCEMESSAGE1: “Message1”
CAP_PRINTERWRITESEQUENCESTRING: “Y T S 1ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ”
Result: Top Printer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
“06/22/2012 10:25 00020 Message1”
“06/22/2012 10:25 00021 Message1”
“06/22/2012 10:25 00022 Message1”
CAP_PRINTERENABLED: TRUE
CAP_PRINTERDATEDELIMITER: TWPD_HYPHEN
CAP_PRINTERDATEFORMAT: TWPE_YYYYMMDD
CAP_PRINTERFONT: TWPN_SMALLCOMIC
CAP_PRINTERIMAGEADDRESSFORMAT: TWPI_SUPPRESSLEADINGZEROS
CAP_PRINTERIMAGEADDRESSLEVEL: TWPL_LEVEL1
CAP_PRINTERINDEXDIGITS: 9
CAP_PRINTERINDEXFORMAT: TWPI_DISPLAYLEADINGZEROS
CAP_PRINTERPOSITION: 0.5 inches
CAP_PRINTERWRITESEQUENCEMESSAGE1: “Level-1”
CAP_PRINTERWRITESEQUENCEMESSAGE2: “Level-2”
CAP_PRINTERWRITESEQUENCEMESSAGE3: “Level-3”
CAP_PRINTERWRITESEQUENCEMESSAGE4: “.”
CAP_PRINTERWRITESEQUENCEMESSAGE5: “”
CAP_PRINTERWRITESEQUENCEMESSAGE6: “”
CAP_PRINTERWRITESEQUENCESTRING: “1BYZZZZZZZZZZZZZZZZZ
2BSZZZZZZZZZZZZZZZZZ
3BA4B4C4DZZZZZZZZZZZ
ZZZZZZZZZZZZZZZZZZZZ
ZZZZZZZZZZZZZZZZZZZZ”
Result: Level Top Printer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Level-0 “Level-2 000000009”
Level-1 “Level-1 2002-02-25”
Level-1 “Level-1 2002-02-25”
Level-3 “Level-3 FIXED.2.1.1”
Level-0 “Level-2 000000013”
Level-1 “Level-1 2002-02-25”
Level-1 “Level-1 2002-02-25”
Level-3 “Level-3 FIXED.3.1.1”
Level-0 “Level-2 000000017”
CAP_PRINTERENABLED: TRUE
CAP_PRINTERFONT: TWPN_LARGECOMIC
CAP_PRINTERWRITESEQUENCESTRING: “SBDBTBCZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ”
CAP_PRINTERWRITESEQUENCEINDEX: 7
CAP_PRINTERSUFFIX: “Test”
CAP_PRINTERDATEDELIMITER: TWPD_FORWARDSLASH
CAP_PRINTERINDEX: 10
CAP_PRINTERINDEXDIGITS: 4
CAP_PRINTERINDEXFORMAT: TWPI_DISPLAYLEADINGZEROS
CAP_PRINTERPOSITION: 1 inch
Result: Top Printer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
“Test 03/19/2001 11:30 0010”
“Test 03/19/2001 11:30 0011”
“Test 03/19/2001 11:30 0012”
CAP_PRINTERENABLED: TRUE
CAP_PRINTERFONT: TWPN_LARGECOMIC
CAP_PRINTERWRITESEQUENCESTRING: “FBSBCB1ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ”
CAP_PRINTERWRITESEQUENCEMESSAGE1: “Scanner-05”
CAP_PRINTERWRITESEQUENCEMESSAGE2: “Testing”
CAP_PRINTERDATEDELIMITER: TWPD_NONE
CAP_PRINTERINDEX: 9
CAP_PRINTERINDEXDIGITS: 8
CAP_PRINTERINDEXFORMAT: TWPI_SUPPRESSLEADINGZEROS
CAP_PRINTERPOSITION: 1 inch
Result: Top Printer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
“20010319 Scanner-05 9 Testing”
“20010319 Scanner-05 10 Testing”
“20010319 Scanner-05 11 Testing”


{{ post.post_title }}
{% for reply in post.reply_set.all %}
{{ reply.reply_text }} -- {{ reply.likes }} likes
{% endfor %}
Vote again?


Market Rules Summary
Let's assume the BTSX : USD market where BTSX is priced in terms of USD. For the purpose of providing concrete examples, we will assume a median price of $0.03 per BTSX.
={{market.name}}=
- 51 delegates or more must publish a price feed at least once per day
- if they do not publish the feed, then the market reverts to a 1hr moving average.
- if a feed is published, the 1hr moving average is set to the feed.
- No short orders can be published to the network at a price 11% above the 1 hour moving average. (ie: they must be
less than 0.0333)
- the minimal short quantity is 100 BTSX
- Short orders will only be matched against asks that are below the moving average. (ie: people must be selling BTSX
for less than $0.03)
- the highest short order is matched first, so a short selling USD at $0.03333 will be matched against someone
buying USD at $.02999 and the difference (0.003333) * volume is captured as a fee.
- A margin call will be executed any time the highest bid is greater than 90% of the moving average and the highest
bid is less than the call price.
- the initial call price is 66% of the short price (ie: $0.022 for a short entered at $.033). This is the price
at which 75% of the collateral would be required to buy back the USD necessary to cover the position.
- If a margin call is executed and there is any collateral left over, then 5% is kept as network fees and 95% is
returned to the owner.
-
There are no restrictions on what prices people can set for normal BitUSD/BTSX trading. All parties will receive
what they ask for.
-
Rounding errors are inevitable when using fixed point math, any such rounding error is deemed to be a network fee.
- for example you may place an order to buy $1.00 USD but end up with $0.99999 USD.
-
The network saves all fees earned in USD and in the event that a short position lacks the necessary collateral to
cover during rapid market movements, then the network will provide the stored USD.
- You cannot use the collateral of your short position to buy the USD necessary to cover the position. This USD must
be purchased separately.
- This requirement creates a kind of "virtual collateral" that all shorts must maintain so they can cover for
either profit taking or loss prevention.
-
When you partially cover a position it will reduce your exposure, but your collateral is not returned until the
position is fully covered.


Yes, the flu is contagious. Here’s when you’re most likely to spread the virus
by Jennifer Larson- The flu is caused by an infectious virus that is highly contagious.
- You’re most contagious in the first three to four days after catching the flu.
- Once your temperature has returned to normal and you’re fever-free for at least 24 hours, you’re unlikely to be contagious any longer.
- This article was reviewed by Tania Elliott, MD, who specializes in infectious diseases related to allergies and immunology for internal medicine at NYU Langone Health.
- Visit Insider’s homepage for more stories.
No one wants to get the flu, but every year, starting around October, the number of seasonal influenza cases begin to climb in the US.
Yes, the flu is contagious
The flu is caused by a virus. According to the Centers for Disease Control and Prevention, there are four types of influenza virus: A, B, C, and D. And all four types are contagious.
Type D only really affects cattle, and type C causes only mild infections. So types A and B are the ones you need to worry about. Of those two types, there are dozens of different subtypes of type A and a couple of different strains of influenza B.
These different types don’t all circulate at the same time. But they’re all contagious, and they all spread the same way: through droplets dispersed by sneezing, coughing, or even talking. In fact, those droplets can spread through the air as far as six feet away.
So, if you’re trying to avoid getting the flu, it’s best to avoid human contact when you’re contagious.
The flu is most contagious in the first 3-4 days
Typically, you’re the most contagious in the first three to four days of your illness. But that doesn’t necessarily mean it’s when you start showing symptoms.
“The problem is that you’re actually contagious the day prior to becoming symptomatic,” says Jessica Grayson, MD, an assistant professor in the department of otolaryngology at the University of Alabama at Birmingham.
That means you can spread the virus before you even know that you’ve contracted it – before your temperature rises and your muscles and joints start to ache.

And after you start feeling sick, you’ll remain contagious for about a week, or possibly longer if you have a weakened immune system.
You’re no longer contagious if your fever has been gone for 24 hours
Once your temperature has returned to normal and you’re fever-free for at least 24 hours without taking any fever-reducing medication, you’re unlikely to be contagious any longer.
But since the most common way to spread the flu is by coughing and sneezing up those mucusy droplets, you should always consider hygiene and what Maragakis calls “respiratory etiquette.”
“Respiratory etiquette is covering your coughs and sneezes, using tissues, and coughing into your elbow instead of your hands,” she says.
A couple of other tips that can help you avoid spreading the flu: Be vigilant about washing your hands – the right way – and use hand sanitizer. And improve your odds of avoiding the flu altogether by getting a flu vaccine.


| JIRA | Summary | Priority | Component | Reporter | Contributor |
|---|---|---|---|---|---|
| MAHOUT-1438 | "quickstart" tutorial for building a simple recommender | Major | Examples | Maciej Mazur | |
| MAHOUT-1420 | Add solr-recommender to examples | Minor | Examples | Andrew Musselman | Andrew Musselman |
| MAHOUT-1445 | Create an intro for item based recommender | Major | Documentation | Maciej Mazur | |
| MAHOUT-1518 | Preprocessing for collaborative filtering with the Scala DSL | Major | Collaborative Filtering | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1489 | Interactive Scala & Spark Bindings Shell & Script processor | Major | . | Saikat Kanjilal | Dmitriy Lyubimov |
| MAHOUT-1446 | Create an intro for matrix factorization | Major | Documentation | Maciej Mazur | Sebastian Schelter |
| JIRA | Summary | Priority | Component | Reporter | Contributor |
|---|---|---|---|---|---|
| MAHOUT-1416 | Make access of DecisionForest read() less restricted | Major | . | Manoj Awasthi | Suneel Marthi |
| MAHOUT-1429 | Parallelize YtransposeY in ImplicitFeedbackAlternatingLeastSquaresSolver | Minor | Collaborative Filtering | Adam Ilardi | Sebastian Schelter |
| MAHOUT-1433 | Make SVDRecommender look at all unknown items of a user per default | Major | Collaborative Filtering | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1413 | Rework algorithms page | Critical | . | Sebastian Schelter | Suneel Marthi |
| MAHOUT-1447 | ImplicitFeedbackAlternatingLeastSquaresSolver tests and features | Minor | Collaborative Filtering | Adam Ilardi | Sebastian Schelter |
| MAHOUT-1448 | In Random Forest, the training does not support multiple input files. The input dataset must be one single file. | Major | . | Manoj Awasthi | Sebastian Schelter |
| MAHOUT-1459 | Move Hadoop related code out of CanopyClusterer | Minor | Clustering | Frank Scholten | Frank Scholten |
| MAHOUT-1460 | Remove reference to Dirichlet in ClusterIterator | Major | Clustering | Frank Scholten | Frank Scholten |
| MAHOUT-1437 | Remove all links to wiki pages from the website | Major | . | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1463 | Modify OnlineSummarizers to use the TDigest dependency from Maven Central. | Major | Math | Suneel Marthi | Suneel Marthi |
| MAHOUT-1356 | Ensure unit tests fail fast when writing outside mvn target directory | Major | . | Isabel Drost-Fromm | Suneel Marthi |
| MAHOUT-1472 | Cleanup website on Fuzzy k-Means | Major | Documentation | Sebastian Schelter | Suneel Marthi |
| MAHOUT-1475 | Clean up website on Naive Bayes | Major | Documentation | Sebastian Schelter | Suneel Marthi |
| MAHOUT-1471 | Cleanup website on Canopy Clustering | Major | Documentation | Sebastian Schelter | Suneel Marthi |
| MAHOUT-1476 | Cleanup website on Hidden Markov Models | Major | Documentation | Sebastian Schelter | Andrew Musselman |
| MAHOUT-1374 | Ability to provide input file with userid, itemid pair | Major | Collaborative Filtering | Romit Singhai | Sebastian Schelter |
| MAHOUT-1483 | Organize links in web site navigation bar | Minor | Documentation | Andrew Musselman | Andrew Musselman |
| MAHOUT-1387 | Create page for release notes | Minor | Documentation | Isabel Drost-Fromm | Sebastian Schelter |
| MAHOUT-1440 | Add option to set the RNG seed for inital cluster generation in Kmeans/fKmeans | Minor | CLI, Clustering | Andrew Palumbo | Sebastian Schelter |
| MAHOUT-950 | Change BtJob to use new MultipleOutputs API | Major | Math | Tom White | Suneel Marthi |
| MAHOUT-1519 | Remove StandardThetaTrainer | Major | Classification | Sebastian Schelter | |
| MAHOUT-1520 | Fix links in Mahout website documentation | Major | Documentation | Saleem Ansari | Suneel Marthi |
| MAHOUT-1530 | Custom prompt and welcome message for the Spark Shell | Minor | Math | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1346 | Spark Bindings (DRM) | Major | . | Dmitriy Lyubimov | Dmitriy Lyubimov |
| MAHOUT-1542 | Tutorial for playing with Mahout's Spark shell | Major | Documentation, Math | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1388 | Add command line support and logging for MLP | Major | Classification | Yexi Jiang | Suneel Marthi |
| MAHOUT-1554 | Provide more comprehensive classification statistics | Minor | Classification | Karol Grzegorczyk | |
| MAHOUT-1558 | Clean up classify-wiki.sh and add in a binary classification problem | Minor | Classification, Examples | Andrew Palumbo | Sebastian Schelter |
| MAHOUT-1480 | Clean up website on 20 newsgroups | Major | Documentation | Sebastian Schelter | |
| MAHOUT-1529 | Finalize abstraction of distributed logical plans from backend operations | Major | . | Dmitriy Lyubimov | Dmitriy Lyubimov |
| MAHOUT-1580 | Optimize getNumNonZeroElements | Major | Math | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1565 | add MR2 options to MAHOUT_OPTS in bin/mahout | Major | . | Nishkam Ravi | Gokhan Capan |
| MAHOUT-1606 | Add rowSums, rowMeans and diagonal extraction operations to distributed matrices | Major | . | Dmitriy Lyubimov | Dmitriy Lyubimov |
| MAHOUT-1608 | Add Option WikipediaToSequenceFile to remove Category Labels from Documents | Minor | . | Andrew Palumbo | Andrew Palumbo |
| MAHOUT-1500 | H2O integration | Major | . | Anand Avati | Andrew Palumbo |
| MAHOUT-1616 | Better support for hadoop dependencies of multiple versions | Major | build | Gokhan Capan | Gokhan Capan |
| MAHOUT-1425 | SGD classifier example with bank marketing dataset | Major | Examples | Frank Scholten | Frank Scholten |
| MAHOUT-1485 | Clean up Recommender Overview page | Major | Documentation | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1578 | Optimizations in matrix serialization | Major | Math | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1598 | extend seq2sparse to handle multiple text blocks of same document | Major | . | Wolfgang Buchner | Andrew Musselman |
| MAHOUT-1278 | Upgrade to Apache parent pom v16 | Minor | build | Stevo Slavic | Stevo Slavic |
| MAHOUT-1661 | Deprecate Lanczos in the code base | Critical | Clustering | Suneel Marthi | Shannon Quinn |
| MAHOUT-1655 | Refactor module dependencies | Critical | mrlegacy | Pat Ferrel | Andrew Musselman |
| MAHOUT-1559 | Add documentation for and clean up the wikipedia classifier example | Minor | Documentation, Examples | Andrew Palumbo | Andrew Palumbo |
| MAHOUT-1672 | Update OnlineSummarizer to use the new T-Digest 3.1 | Trivial | Math | Suneel Marthi | Ted Dunning |
| MAHOUT-1649 | Upgrade to Lucene 4.10.x | Major | Integration | Suneel Marthi | Suneel Marthi |
| MAHOUT-1585 | Javadocs are not hosted By Mahout Quality | Major | Documentation | Andrew Palumbo | Stevo Slavic |
| MAHOUT-1562 | Publish Scaladocs | Minor | Documentation | Pat Ferrel | Stevo Slavic |
| JIRA | Summary | Priority | Component | Reporter | Contributor |
|---|---|---|---|---|---|
| MAHOUT-1415 | Clone method on sparse matrices fails if there is an empty row which has not been set explicitly | Minor | Math | Till Rohrmann | Sebastian Schelter |
| MAHOUT-1417 | Random decision forest implementation fails in Hadoop 2 | Major | Classification | Sean Owen | |
| MAHOUT-1419 | Random decision forest is excessively slow on numeric features | Major | Classification | Sean Owen | Sean Owen |
| MAHOUT-1455 | Forkcount config causes JVM crashes during build | Major | build | Frank Scholten | Frank Scholten |
| MAHOUT-1458 | Remove KMeansConfigKeys and FuzzyKMeansConfigKeys | Major | Clustering | Frank Scholten | Frank Scholten |
| MAHOUT-1457 | Move EigenSeedGenerator into spectral kmeans package | Major | Clustering | Frank Scholten | Frank Scholten |
| MAHOUT-1465 | Clean up README | Trivial | Documentation | Andrew Musselman | Andrew Musselman |
| MAHOUT-1466 | Cluster visualization fails to execute | Major | . | Sebastian Schelter | |
| MAHOUT-1467 | ClusterClassifier readPolicy leaks file handles | Major | Clustering | Avi Shinnar | Suneel Marthi |
| MAHOUT-1488 | DisplaySpectralKMeans fails: examples/output/clusteredPoints/part-m-00000 does not exist. | Major | Examples | Saleem Ansari | Suneel Marthi |
| MAHOUT-1491 | Spectral KMeans Clustering doesn't clean its /tmp dir and fails when seeing it again | Minor | Clustering | Suneel Marthi | Suneel Marthi |
| MAHOUT-1492 | Doap file has references to cwiki still | Major | . | Ted Dunning | |
| MAHOUT-1501 | ClusterOutputPostProcessorDriver has private default constructor | Trivial | Clustering | Reinis Vicups | Sebastian Schelter |
| MAHOUT-1494 | README.txt is examples/clustering needs to be updated | Minor | Clustering | Suneel Marthi | Andrew Musselman |
| MAHOUT-1508 | Performance problems with sparse matrices | Blocker | Math | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1435 | Website Redesign | Major | . | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1503 | TestNaiveBayesDriver fails in sequential mode | Minor | Classification, Examples | Andrew Palumbo | Suneel Marthi |
| MAHOUT-1497 | mahout resplit not producing splited files | Major | CLI | Reinis Vicups | Sebastian Schelter |
| MAHOUT-1517 | Remove casts to int in ALSWRFactorizer | Major | Collaborative Filtering | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1496 | Create a website describing the distributed ALS recommender | Major | Collaborative Filtering, Documentation | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1523 | Remove @author tags in sparkbindings | Major | . | Sebastian Schelter | |
| MAHOUT-1502 | Update Naive Bayes Webpage to Current Implementation | Minor | Documentation | Andrew Palumbo | |
| MAHOUT-1537 | minor fixes to spark-shell | Minor | . | Anand Avati | Dmitriy Lyubimov |
| MAHOUT-1428 | Recommending already consumed items | Major | Collaborative Filtering | Mario Levitin | |
| MAHOUT-1548 | Fix broken links in quickstart webpage | Major | Documentation | Andrew Palumbo | |
| MAHOUT-1441 | Add documentation for Spectral KMeans to Mahout Website | Major | Documentation | Suneel Marthi | Shannon Quinn |
| MAHOUT-1532 | Add solve() function to the Scala DSL | Major | Math | Sebastian Schelter | |
| MAHOUT-1385 | Caching Encoders don't cache | Minor | . | Johannes Schulte | |
| MAHOUT-1498 | DistributedCache.setCacheFiles in DictionaryVectorizer overwrites jars pushed using oozie | Major | . | Sergey | Sebastian Schelter |
| MAHOUT-1560 | Last batch is not filled correctly in MultithreadedBatchItemSimilarities | Minor | Collaborative Filtering | Jarosław Bojar | Sebastian Schelter |
| MAHOUT-1561 | cluster-syntheticcontrol.sh not running locally with MAHOUT_LOCAL=true | Minor | Clustering, Examples | Andrew Palumbo | Sebastian Schelter |
| MAHOUT-1555 | Exception thrown when a test example has the label not present in training examples | Minor | Classification | Karol Grzegorczyk | Suneel Marthi |
| MAHOUT-1505 | structure of clusterdump's JSON output | Major | Clustering | Terry Blankers | Andrew Musselman |
| MAHOUT-1574 | SparseRowMatrix needs performance improvement for times() | Major | . | Ted Dunning | Ted Dunning |
| MAHOUT-1575 | Conjugate gradient assumes best case scenario for convergence | Major | . | Ted Dunning | |
| MAHOUT-1576 | Do a quick style pass to knock down some accumulated warnings | Major | . | Ted Dunning | |
| MAHOUT-1577 | FindBugs and PMD settings unrealistic | Major | . | Ted Dunning | |
| MAHOUT-1571 | Functional Views are not serialized as dense/sparse correctly | Major | . | Dmitriy Lyubimov | Dmitriy Lyubimov |
| MAHOUT-1572 | blockify() to detect (naively) the data sparsity in the loaded data | Major | . | Dmitriy Lyubimov | |
| MAHOUT-1439 | Update talks on Mahout | Major | Documentation | Sebastian Schelter | |
| MAHOUT-1581 | Timeout-based SRM test can hit limits on Apache test infra | Major | . | Ted Dunning | |
| MAHOUT-1521 | lucene2seq - Error trying to load data from stored field (when non-indexed) | Major | . | Terry Blankers | Frank Scholten |
| MAHOUT-1427 | Convert old .mapred API to new .mapreduce | Minor | Collaborative Filtering, Integration | Suneel Marthi | Suneel Marthi |
| MAHOUT-1597 | A + 1.0 (element-wise scala operation) gives wrong result if rdd is missing rows, Spark side | Major | . | Dmitriy Lyubimov | Dmitriy Lyubimov |
| MAHOUT-1596 | support for rbind() operator on DRMs | Major | . | Anand Avati | |
| MAHOUT-1587 | Update website to reflect move to GitHub | Major | Documentation | Andrew Palumbo | |
| MAHOUT-1595 | iterateNonZero() is broken in MatrixVectorView | Major | Math | Anand Avati | |
| MAHOUT-1610 | Tests can be made more robust to pass in Java 8 | Minor | Integration | Sean Owen | Sean Owen |
| MAHOUT-1615 | SparkEngine drmFromHDFS returning the same Key for all Key,Vec Pairs for Text-Keyed SequenceFiles | Major | . | Andrew Palumbo | Andrew Palumbo |
| MAHOUT-1611 | Preconditions.checkArgument in org.apache.mahout.utils.ConcatenateVectorsJob | Minor | Integration | Haishou Ma | Suneel Marthi |
| MAHOUT-1639 | streamingkmeans doesn't properly validate estimatedNumMapClusters -km | Minor | CLI | Peter Sergeant | Suneel Marthi |
| MAHOUT-1590 | mahout unit test failures due to guava version conflict on hadoop 2 | Major | . | Venkat Ranganathan | Stevo Slavic |
| MAHOUT-1636 | Class dependencies for the spark module are put in a job.jar, which is very inefficient | Major | spark | Pat Ferrel | Pat Ferrel |
| MAHOUT-1624 | Compilation errors when changing Lucene version to 4.10.1 | Minor | Integration | Tom Lampert | |
| MAHOUT-1612 | NullPointerException happens during JSON output format for clusterdumper | Major | Clustering | Guo Ruijing | Suneel Marthi |
| MAHOUT-1563 | Clean up WARNINGs during build | Minor | build | Andrew Musselman | Stevo Slavic |
| MAHOUT-1516 | run classify-20newsgroups.sh failed cause by /tmp/mahout-work-jpan/20news-all does not exists in hdfs. | Minor | Examples | Jian Pan | Andrew Palumbo |
| MAHOUT-1619 | HighDFWordsPruner overwrites cache files | Minor | . | Burke Webster | Suneel Marthi |
| MAHOUT-1602 | Euclidean Distance Similarity Math | Minor | Collaborative Filtering, Math | Leonardo Fernandez Sanchez | Stevo Slavic |
| MAHOUT-1522 | Handle logging levels via log4j.xml | Critical | . | Andrew Musselman | Andrew Musselman |
| MAHOUT-1589 | mahout.cmd has duplicated content | Major | CLI | Venkat Ranganathan | Pat Ferrel |
| MAHOUT-1586 | Downloads must have hashes | Blocker | collections | Sebb | Suneel Marthi |
| MAHOUT-1617 | 404 error on link in cluster-dumper tutorial page | Trivial | . | Anthony Daniell | Andrew Palumbo |
| MAHOUT-1638 | H2O bindings fail at drmParallelizeWithRowLabels(...) | Blocker | . | Andrew Palumbo | Andrew Palumbo |
| MAHOUT-1593 | cluster-reuters.sh does not work complaining java.lang.IllegalStateException | Minor | Examples | jaehoon ko | Suneel Marthi |
| MAHOUT-1662 | Potential Path bug in SequenceFileVaultIterator breaks DisplaySpectralKMeans | Major | Examples, mrlegacy | Shannon Quinn | Suneel Marthi |
| MAHOUT-1667 | Support Hadoop 1.2.1 in poms | Critical | build | Pat Ferrel | Stevo Slavic |
| MAHOUT-1635 | Getting an exception when I provide classification labels manually for Naive Bayes | Major | Classification | Suman Somasundar | Andrew Palumbo |
| MAHOUT-1622 | MultithreadedBatchItemSimilarities outputs incorrect number of similarities. | Minor | Collaborative Filtering | Jesse Daniels | Anand Avati |
| MAHOUT-1674 | A'A fails getting with an index out of range for a row vector | Critical | s | Pat Ferrel | Pat Ferrel |
| MAHOUT-1665 | Update hadoop commands in example scripts | Critical | Examples | Andrew Musselman | Andrew Musselman |
| MAHOUT-1630 | Incorrect SparseColumnMatrix.numSlices() causes IndexException in toString() | Major | Math | Oleg Nitz | Suneel Marthi |
| MAHOUT-1678 | Hadoop 1 build broken | Blocker | Integration | Pat Ferrel | Suneel Marthi |
| JIRA | Summary | Priority | Component | Reporter | Contributor |
|---|---|---|---|---|---|
| MAHOUT-1605 | Make VisualizerTest locale independent | Trivial | . | Frank Rosner | Anand Avati |
| JIRA | Summary | Priority | Component | Reporter | Contributor |
|---|---|---|---|---|---|
| MAHOUT-1434 | Dead links on the website | Minor | Documentation | Kévin Moulart | Suneel Marthi |
| MAHOUT-1451 | Cleaning up the examples for clustering on the website | Major | . | Gaurav Misra | Sebastian Schelter |
| MAHOUT-1449 | Update the Known Issues in Random Forests Page | Major | Documentation | Manoj Awasthi | |
| MAHOUT-1509 | Invalid URL in link from "quick start/basics" page | Minor | Examples | Nick Martin | Suneel Marthi |
| MAHOUT-1369 | Why does theta normalization for naive bayes classification commented out? | Minor | Classification | utku yaman | Suneel Marthi |
| MAHOUT-1468 | Creating a new page for StreamingKMeans documentation on mahout website | Major | Documentation | Pavan Kumar N | Andrew Musselman |
| MAHOUT-1525 | train/validateAdaptiveLogistic | Major | Classification | Richard Scharrer | |
| MAHOUT-1644 | [JDK8] errors when compile the module math-scala with JDK8 and maven dependency org.scala-lang:scala-library | Major | build | zhubin | |
| MAHOUT-1666 | Broken Links on Website | Minor | Documentation | Tyler Palsulich | Andrew Palumbo |
| MAHOUT-1652 | Java 7 update | Critical | . | Andrew Musselman | Suneel Marthi |
| MAHOUT-1418 | Removal of write access to anything but CMS for username isabel | Trivial | . | Isabel Drost-Fromm | Isabel Drost-Fromm |
| MAHOUT-1329 | Mahout for hadoop 2 | Major | build | Sergey Svinarchuk | Gokhan Capan |
| MAHOUT-1504 | Enable/fix thetaSummer job in TrainNaiveBayesJob | Minor | Classification, Examples | Andrew Palumbo | Suneel Marthi |
| MAHOUT-1513 | Deprecate Canopy Clustering | Major | . | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1511 | Renaming core to mrlegacy | Major | . | Sebastian Schelter | Frank Scholten |
| MAHOUT-1510 | Goodbye MapReduce | Major | Documentation | Sebastian Schelter | |
| MAHOUT-1310 | Mahout support windows | Major | . | Sergey Svinarchuk | Sergey Svinarchuk |
| MAHOUT-1515 | Contact the original Frequent Pattern Mining author | Critical | . | Sebastian Schelter | |
| MAHOUT-1526 | Ant file in examples | Major | Examples | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1535 | Fix mathjax on website | Major | Documentation | Sebastian Schelter | |
| MAHOUT-1533 | Remove Frequent Pattern Mining | Major | . | Sebastian Schelter | Sebastian Schelter |
| MAHOUT-1527 | Fix wikipedia classifier example | Major | Classification, Documentation, Examples | Sebastian Schelter | |
| MAHOUT-1534 | Add documentation for using Mahout with Hadoop2 to the website | Major | Documentation | Sebastian Schelter | Gokhan Capan |
| MAHOUT-1566 | Regular ALS factorizer with convergence test. | Trivial | . | Dmitriy Lyubimov | Dmitriy Lyubimov |
| MAHOUT-1573 | More explicit parallelism adjustments in math-scala DRM apis; elements of automatic parallelism management | Major | . | Dmitriy Lyubimov | Dmitriy Lyubimov |
| MAHOUT-1583 | cbind() operator for Scala DRMs | Major | . | Dmitriy Lyubimov | Dmitriy Lyubimov |
| MAHOUT-1603 | Tweaks for Spark 1.0.x | Major | . | Dmitriy Lyubimov | Dmitriy Lyubimov |
| MAHOUT-1659 | Remove deprecated Lanczos solver from spectral clustering in mr-legacy | Minor | Clustering, mrlegacy | Shannon Quinn | Shannon Quinn |
| MAHOUT-1656 | Change SNAPSHOT version from 1.0 to 0.10.0 | Critical | build | Andrew Musselman | Suneel Marthi |
| MAHOUT-1512 | Hadoop 2 compatibility | Critical | . | Sebastian Schelter | Suneel Marthi |