Generating TensorRT Engines from TensorFlow¶
The UFF Toolkit allows you to convert TensorFlow models to UFF. The UFF parser can build TensorRT engines from these UFF models.
For this example, we train a LeNet5 model to classify handwritten digits and then build a TensorRT Engine for inference. Please make sure you have TensorFlow installed.
First, we need to import TensorFlow (Note: there is a know bug where TensorFlow needs to be imported before TensorRT. This will addressed in the future).
In [1]:
import tensorflow as tf
We can then import TensorRT and the UFF parser.
In [2]:
import tensorrt as trt
from tensorrt.parsers import uffparser
We use PyCUDA to transfer data to/from the GPU and NumPy to store data.
In [3]:
import pycuda.driver as cuda
import pycuda.autoinit
import numpy as np
from random import randint # generate a random test case
from PIL import Image
from matplotlib.pyplot import imshow # To show test case
import time
import os
Finally, we need to import the UFF toolkit to convert the graph from a serialized frozen TensorFlow model to UFF.
In [4]:
import uff
Training a Model in TensorFlow¶
For more detailed information about training models in TensorFlow, see https://www.tensorflow.org/get_started/get_started.
First, we define hyper-parameters and helper functions for convenience. We will then define a network, our loss metrics, training/test steps, our input nodes, and a data loader.
In [5]:
STARTER_LEARNING_RATE = 1e-4
BATCH_SIZE = 10
NUM_CLASSES = 10
MAX_STEPS = 3000
IMAGE_SIZE = 28
IMAGE_PIXELS = IMAGE_SIZE ** 2
OUTPUT_NAMES = ["fc2/Relu"]
Notice that we are padding our Conv2d layer. TensorRT expects symmetric padding for layers.
In [6]:
def WeightsVariable(shape):
return tf.Variable(tf.truncated_normal(shape, stddev=0.1, name='weights'))
def BiasVariable(shape):
return tf.Variable(tf.constant(0.1, shape=shape, name='biases'))
def Conv2d(x, W, b, strides=1):
# Conv2D wrapper, with bias and relu activation
filter_size = W.get_shape().as_list()
pad_size = filter_size[0]//2
pad_mat = np.array([[0,0],[pad_size,pad_size],[pad_size,pad_size],[0,0]])
x = tf.pad(x, pad_mat)
x = tf.nn.conv2d(x, W, strides=[1, strides, strides, 1], padding='VALID')
x = tf.nn.bias_add(x, b)
return tf.nn.relu(x)
def MaxPool2x2(x, k=2):
# MaxPool2D wrapper
pad_size = k//2
pad_mat = np.array([[0,0],[pad_size,pad_size],[pad_size,pad_size],[0,0]])
return tf.nn.max_pool(x, ksize=[1, k, k, 1], strides=[1, k, k, 1], padding='VALID')
In [7]:
def network(images):
# Convolution 1
with tf.name_scope('conv1'):
weights = WeightsVariable([5,5,1,32])
biases = BiasVariable([32])
conv1 = tf.nn.relu(Conv2d(images, weights, biases))
pool1 = MaxPool2x2(conv1)
# Convolution 2
with tf.name_scope('conv2'):
weights = WeightsVariable([5,5,32,64])
biases = BiasVariable([64])
conv2 = tf.nn.relu(Conv2d(pool1, weights, biases))
pool2 = MaxPool2x2(conv2)
pool2_flat = tf.reshape(pool2, [-1, 7 * 7 * 64])
# Fully Connected 1
with tf.name_scope('fc1'):
weights = WeightsVariable([7 * 7 * 64, 1024])
biases = BiasVariable([1024])
fc1 = tf.nn.relu(tf.matmul(pool2_flat, weights) + biases)
# Fully Connected 2
with tf.name_scope('fc2'):
weights = WeightsVariable([1024, 10])
biases = BiasVariable([10])
fc2 = tf.nn.relu(tf.matmul(fc1, weights) + biases)
return fc2
In [8]:
def loss_metrics(logits, labels):
cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=labels,
logits=logits,
name='softmax')
return tf.reduce_mean(cross_entropy, name='softmax_mean')
In [9]:
def training(loss):
tf.summary.scalar('loss', loss)
global_step = tf.Variable(0, name='global_step', trainable=False)
learning_rate = tf.train.exponential_decay(STARTER_LEARNING_RATE,
global_step,
100000,
0.75,
staircase=True)
tf.summary.scalar('learning_rate', learning_rate)
optimizer = tf.train.MomentumOptimizer(learning_rate, 0.9)
train_op = optimizer.minimize(loss, global_step=global_step)
return train_op
In [10]:
def evaluation(logits, labels):
correct = tf.nn.in_top_k(logits, labels, 1)
return tf.reduce_sum(tf.cast(correct, tf.int32))
In [11]:
def do_eval(sess,
eval_correct,
images_placeholder,
labels_placeholder,
data_set,
summary):
true_count = 0
steps_per_epoch = data_set.num_examples // BATCH_SIZE
num_examples = steps_per_epoch * BATCH_SIZE
for step in range(steps_per_epoch):
feed_dict = fill_feed_dict(data_set,
images_placeholder,
labels_placeholder)
log, correctness = sess.run([summary, eval_correct], feed_dict=feed_dict)
true_count += correctness
precision = float(true_count) / num_examples
tf.summary.scalar('precision', tf.constant(precision))
print('Num examples %d, Num Correct: %d Precision @ 1: %0.04f' %
(num_examples, true_count, precision))
return log
In [12]:
def placeholder_inputs(batch_size):
images_placeholder = tf.placeholder(tf.float32, shape=(None, 28, 28, 1))
labels_placeholder = tf.placeholder(tf.int32, shape=(None))
return images_placeholder, labels_placeholder
In [13]:
def fill_feed_dict(data_set, images_pl, labels_pl):
images_feed, labels_feed = data_set.next_batch(BATCH_SIZE)
feed_dict = {
images_pl: np.reshape(images_feed, (-1,28,28,1)),
labels_pl: labels_feed,
}
return feed_dict
We define our training pipeline in a function that will return a frozen model with the training nodes removed.
In [14]:
def run_training(data_sets):
with tf.Graph().as_default():
images_placeholder, labels_placeholder = placeholder_inputs(BATCH_SIZE)
logits = network(images_placeholder)
loss = loss_metrics(logits, labels_placeholder)
train_op = training(loss)
eval_correct = evaluation(logits, labels_placeholder)
summary = tf.summary.merge_all()
init = tf.global_variables_initializer()
saver = tf.train.Saver()
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.5)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
summary_writer = tf.summary.FileWriter("/tmp/tensorflow/mnist/log",
graph=tf.get_default_graph())
test_writer = tf.summary.FileWriter("/tmp/tensorflow/mnist/log/validation",
graph=tf.get_default_graph())
sess.run(init)
for step in range(MAX_STEPS):
start_time = time.time()
feed_dict = fill_feed_dict(data_sets.train,
images_placeholder,
labels_placeholder)
_, loss_value = sess.run([train_op, loss], feed_dict=feed_dict)
duration = time.time() - start_time
if step % 100 == 0:
print('Step %d: loss = %.2f (%.3f sec)' % (step, loss_value, duration))
summary_str = sess.run(summary, feed_dict=feed_dict)
summary_writer.add_summary(summary_str, step)
summary_writer.flush()
if (step + 1) % 1000 == 0 or (step + 1) == MAX_STEPS:
checkpoint_file = os.path.join("/tmp/tensorflow/mnist/log", "model.ckpt")
saver.save(sess, checkpoint_file, global_step=step)
print('Validation Data Eval:')
log = do_eval(sess,
eval_correct,
images_placeholder,
labels_placeholder,
data_sets.validation,
summary)
test_writer.add_summary(log, step)
# Return sess
graphdef = tf.get_default_graph().as_graph_def()
frozen_graph = tf.graph_util.convert_variables_to_constants(sess,
graphdef,
OUTPUT_NAMES)
return tf.graph_util.remove_training_nodes(frozen_graph)
Now we load the TensorFlow MNIST data loader and run training. The model has summaries included, so you can visualize training in TensorBoard.
In [15]:
MNIST_DATASETS = tf.contrib.learn.datasets.load_dataset("mnist")
tf_model = run_training(MNIST_DATASETS)
Extracting MNIST-data/train-images-idx3-ubyte.gz
Extracting MNIST-data/train-labels-idx1-ubyte.gz
Extracting MNIST-data/t10k-images-idx3-ubyte.gz
Extracting MNIST-data/t10k-labels-idx1-ubyte.gz
Step 0: loss = 10.72 (0.123 sec)
Step 100: loss = 2.30 (0.019 sec)
Step 200: loss = 2.30 (0.018 sec)
Step 300: loss = 2.30 (0.018 sec)
Step 400: loss = 2.30 (0.017 sec)
Step 500: loss = 2.30 (0.017 sec)
Step 600: loss = 2.30 (0.018 sec)
Step 700: loss = 2.30 (0.017 sec)
Step 800: loss = 2.30 (0.017 sec)
Step 900: loss = 2.30 (0.017 sec)
Validation Data Eval:
Num examples 5000, Num Correct: 4912 Precision @ 1: 0.9824
Step 1000: loss = 2.30 (0.021 sec)
Step 1100: loss = 2.30 (0.018 sec)
Step 1200: loss = 2.30 (0.018 sec)
Step 1300: loss = 2.30 (0.018 sec)
Step 1400: loss = 2.30 (0.018 sec)
Step 1500: loss = 2.23 (0.018 sec)
Step 1600: loss = 2.31 (0.018 sec)
Step 1700: loss = 1.96 (0.017 sec)
Step 1800: loss = 2.31 (0.017 sec)
Step 1900: loss = 2.35 (0.017 sec)
Validation Data Eval:
Num examples 5000, Num Correct: 3884 Precision @ 1: 0.7768
Step 2000: loss = 2.12 (0.022 sec)
Step 2100: loss = 2.46 (0.017 sec)
Step 2200: loss = 2.31 (0.019 sec)
Step 2300: loss = 1.87 (0.018 sec)
Step 2400: loss = 1.94 (0.017 sec)
Step 2500: loss = 2.31 (0.017 sec)
Step 2600: loss = 1.62 (0.018 sec)
Step 2700: loss = 2.17 (0.018 sec)
Step 2800: loss = 1.91 (0.018 sec)
Step 2900: loss = 2.07 (0.018 sec)
Validation Data Eval:
Num examples 5000, Num Correct: 4830 Precision @ 1: 0.9660
INFO:tensorflow:Froze 8 variables.
Converted 8 variables to const ops.
Converting the TensorFlow Model to UFF¶
We can now convert the model into a serialized UFF model. To convert a
model, we need to provide at least the model stream and the name(s) of
the desired output node(s) to the uff.from_tensorflow
function. The
UFF Toolkit also includes a uff.from_tensorflow_frozen_model
function which can create a UFF model from a TensorFlow frozen protobuf
file. These functions have options for:
quiet
mode to suppress conversion logginginput_nodes
to allow you to define a set of input nodes in the graph (the defaults are Placeholder nodes)text
will let you save a human readable version of UFF model alongside the binary UFFlist_nodes
will list the nodes in the graphoutput_filename
will write the model out to the filepath specified in addition to returning a serialized model
In [16]:
uff_model = uff.from_tensorflow(tf_model, ["fc2/Relu"])
Using output node fc2/Relu
Converting to UFF graph
No. nodes: 28
Importing the UFF Model into TensorRT and Building an Engine¶
We now have a UFF model stream with which we can build a TensorRT engine. We start by creating a logger for TensorRT.
In [17]:
G_LOGGER = trt.infer.ConsoleLogger(trt.infer.LogSeverity.ERROR)
Next, we create a UFF parser and identify the desired input and output nodes.
In [18]:
parser = uffparser.create_uff_parser()
parser.register_input("Placeholder", (1,28,28), 0)
parser.register_output("fc2/Relu")
Out[18]:
True
Now, we pass the logger, parser, uff model stream and some settings (max batch size and max workspace size) to a utility function that will build the engine for us.
In [19]:
engine = trt.utils.uff_to_trt_engine(G_LOGGER, uff_model, parser, 1, 1 << 20)
We can now get rid of the parser.
In [20]:
parser.destroy()
Now, we get a test case from the TensorFlow dataloader (converting it to FP32).
In [21]:
img, label = MNIST_DATASETS.test.next_batch(1)
img = img[0]
# Convert input data to Float32
img = img.astype(np.float32)
label = label[0]
%matplotlib inline
imshow(img.reshape(28,28))
Out[21]:
<matplotlib.image.AxesImage at 0x7f511b9f2e90>
Then, we create a runtime and an execution context for the engine.
In [22]:
runtime = trt.infer.create_infer_runtime(G_LOGGER)
context = engine.create_execution_context()
Next, we allocate memory on the GPU, as well as on the host to hold results after inference. The size of these allocations is the size of the input/expected output * the batch size.
In [23]:
output = np.empty(10, dtype = np.float32)
# Alocate device memory
d_input = cuda.mem_alloc(1 * img.nbytes)
d_output = cuda.mem_alloc(1 * output.nbytes)
The engine requires bindings (pointers to GPU memory). PyCUDA lets us do this by casting the results of memory allocations to ints.
In [24]:
bindings = [int(d_input), int(d_output)]
We create a cuda stream to run inference.
In [25]:
stream = cuda.Stream()
Now, we transfer the data to the GPU, run inference, then transfer the results to the host.
In [26]:
# Transfer input data to device
cuda.memcpy_htod_async(d_input, img, stream)
# Execute model
context.enqueue(1, bindings, stream.handle, None)
# Transfer predictions back
cuda.memcpy_dtoh_async(output, d_output, stream)
# Syncronize threads
stream.synchronize()
We can use np.argmax
to get a prediction.
In [27]:
print("Test Case: " + str(label))
print ("Prediction: " + str(np.argmax(output)))
Test Case: 1
Prediction: 0
We can also save our engine to a file to use later.
In [28]:
trt.utils.write_engine_to_file("./tf_mnist.engine", engine.serialize())
Out[28]:
True
You can load this engine later by using tensorrt.utils.load_engine
.
In [29]:
new_engine = trt.utils.load_engine(G_LOGGER, "./tf_mnist.engine")
Finally, we clean up our context, engine and runtime.
In [30]:
context.destroy()
engine.destroy()
new_engine.destroy()
runtime.destroy()


| - | Sujoy Sikdar, Jeremy Blackthorne, Bulent Yener, and Lirong Xia. Anti-Malware Sandbox Games. |
| - | Haoming Li, Sujoy Sikdar, Rohit Vaish, Junming Wang, Lirong Xia, and Chaonan Ye. Minimizing Time-to-Rank: A Learning and Recommendation Approach. (To appear) In 28th International Joint Conference on Artificial Intelligence (IJCAI-19). |
| - | Rupert Freeman, Sujoy Sikdar, Rohit Vaish, and Lirong Xia. Equitable Allocations of Indivisible Goods. (To appear) In 28th International Joint Conference on Artificial Intelligence (IJCAI-19). |
| - |
Sujoy Sikdar, Sibel Adali, and Lirong Xia.
Mechanisms Design for Multi-type Housing Markets with Acceptable Bundles.
In Thirty-Third AAAI Conference on Artificial Intelligence (AAAI-19). [ pdf , pptx , poster ] Previously appeared as Top-Trading-Cycles Mechanisms with Acceptable Bundles in MPREF-2018 and AI^3-2018. [ pdf , pptx ] |
| - |
Chunheng Jiang, Tyler Shepherd, Sujoy Sikdar, Hejun Wang, Lirong Xia, and Zhibing Zhao.
Practical Algorithms for Computing STV and Other Multi-Round Voting Rules.
In Thirty-Third AAAI Conference on Artificial Intelligence (AAAI-19). [ pdf ] Previously appeared as Practical Algorithms for STV and Ranked Pairs with Parallel Universes Tiebreaking in WADE-2018 and EXPLORE-2017. [ pdf , pptx ] |
| - |
Sujoy Sikdar.
Optimal Multi-Attribute Decision Making in Social Choice Problems.
(To appear) In Proceedings of the 27th International Joint Conference on Artificial Intelligence (IJCAI-ECAI-18). (Doctoral Consortium)
[ pdf , poster , pptx ] |
| - |
Shreyas Sekar, Sujoy Sikdar, and Lirong Xia.
Condorcet Consistent Bundling with Social Choice.
In Proceedings of the 16th International Conference on Autonomous Agents and Multiagent Systems (AAMAS-17).
[ bib , pdf , pptx ] |
| - |
Sujoy Sikdar, Sibel Adali, and Lirong Xia.
Optimal Decision Making with CP-nets and PCP-nets.
In Proceedings of the 16th International Conference on Autonomous Agents and Multiagent Systems (AAMAS-17) (short paper).
[ bib , pdf , poster ] |
| - |
Sujoy Sikdar, Sibel Adali, and Lirong Xia.
Mechanism Design for Multi-Type Housing Markets.
In Proceedings of the 31st AAAI Conference on Artificial Intelligence (AAAI-17).
[ bib , pdf , arXiv ] Previously appeared in MATCHUP-2017. |
| - | Benjamin Horne, Sibel Adali, and Sujoy Sikdar. Identifying the social signals that drive online discussions: A case study of Reddit communities. In The 26th International Conference on Computer Communications and Networks (ICCCN 2017). [ pdf ] |
| - | Sujoy Sikdar, Sibel Adali, Md. Tanvir Amin, Tarek Abdelzaher, Kevin Chan, Jin-Hee Cho, Byungkyu Kang, and John O'Donovan. Finding true and credible information on twitter. In Information Fusion (FUSION), 2014 17th International Conference on, pages 1-8. IEEE, 2014. [ bib , ieee xplore ] |
| - | Sujoy Kumar Sikdar, Byungkyu Kang, John O'Donovan, Tobias Hollerer, and Sibel Adali. Cutting through the noise: Defining ground truth in information credibility on twitter. HUMAN, 2(3):pp-151, 2013. [ bib , pdf ] |
| - | Sujoy Sikdar, Byungkyu Kang, John O'Donovan, Tobias Hollerer, and Sibel Adali. Understanding information credibility on twitter. In Social Computing (SocialCom), 2013 International Conference on, pages 19-24. IEEE, 2013. [ bib , pdf ] [Best Paper Award] |
| - | Sujoy Sikdar, Sibel Adali, and Lirong Xia. Optimal Decision Making with CP-nets and PCP-nets. In EXPLORE-2017: The 4th Workshop on Exploring Beyond the Worst Case in Computational Social Choice. AAMAS 2017. [ bib , pdf , pptx ] |


Isar735.github.io
Executive order 9066 persuasive essay - buyworktopessay.org. Executive Order 9066 Free Essays - studymode.com. Admission from Executive Order 9066 Persuasive Essay disney corporation essay organizational behavior geometry and algebra. Executive order 9066 persuasive essay - buyworkfastessay.org. Buy essays online construction safety Essay On Executive Order 9066 purchase college essays how long are college essays. Essays - largest database of quality sample essays and research papers on Executive Order 9066 President Franklin D Roosevelt Letter Essay. BibMe Free Bibliography Citation Maker - MLA, APA, Chicago, Harvard. In response to executive order 9066 essay! store persuasive would post a sign that order, No Dogs, No Japanese. Executive Order 9066 Essay – Essay on executive order. BibMe: Free Bibliography Citation Maker Buy custom essays online for all purposes.
Executive order by dwight persuasive essay writing order 9066 used for a report on a mass incarceration of the Sullivan 1964 executive order 9066 essay alice.
Essay about chronological order reddit essay Essays known as Knowledge Skills and Executive Core Qualifications are required when applying to certain US federal. Essay On Executive Order 9066 - buypaperhelpessay.technology. The best place to buy custom essays online, and how to order your own for colleges and universities. Proofread my essay online Executive Order 9066 Persuasive Essay writing assignments how to write research paper. Play a game of Kahoot! here. Kahoot! is a free game-based learning platform that makes it fun to learn – any subject, in any language, on any device Executive Order 9066 Persuasive Essay. Literature review on customer satisfaction in retail banking Executive Order 9066 Persuasive Essay write essay in english buy terminator t800 endoskeleton papercraft.
Executive order 9066 research paper NEOMIST. Executive order 9066 persuasive essay.
Essay about chronological order : Essay chronological. Homework help fruit seeds monocot Essay On Executive Order 9066 homework help . best persuasive essay Essay On Executive Order 9066 dissertation


SharpWMI
The last small tool (SharpWMI) is a simple C# wrapper for various WMI functionality. It allows for generic remote (or local) WMI querying, remote process execution through Win32_Process, and remote VBS execution through “temporarily” permanent WMI event subscriptions.
Local system enumeration :
SharpWMI.exe action=query query="select * from win32_service" [namespace=BLAH]
Ex: SharpWMI.exe action=query query="select * from win32_process"
Ex: SharpWMI.exe action=query query="SELECT * FROM AntiVirusProduct" namespace="root\SecurityCenter2"
Remote system enumeration :
SharpWMI.exe action=query computername=HOST1[,HOST2,...] query="select * from win32_service" [namespace=BLAH]
Ex: SharpWMI.exe action=query computername=primary.testlab.local query="select * from win32_service"
Ex: SharpWMI.exe action=query computername=primary,secondary query="select * from win32_process
Remote process creation :
SharpWMI.exe action=create computername=HOST[,HOST2,...] command="C:\temp\process.exe [args]"
Ex: SharpWMI.exe action=create computername=primary.testlab.local command="powershell.exe -enc ZQBj..."
Remote VBS execution :
SharpWMI.exe action=executevbs computername=HOST[,HOST2,...]
Ex: SharpWMI.exe action=executevbs computername=primary.testlab.local
Nothing revolutionary here, but the WMI event subscription approach has served us well. A timer-based event subscription is created on the remote system with arbitrary VBS as the ActiveScriptEventConsumer payload.
[*] Removing 'Timer' internal timer from primary.testlab.local
[*] Removing FilterToConsumerBindingr from primary.testlab.local
[*] Removing 'Debug' event filter from primary.testlab.local
[*] Removing 'Debug' event consumer from primary.testlab.local
The filter/consumer name can be modified with the eventname=BLAH argument. If you want to change the VBS executed, modify the vbsPayload string at the top of the project before compiling. DotNetToJScript works great here ;)


--- layout: stats title: RIT Statistics permalink: "/stats/teams/rit.html" ---
| Year | Team | Status | Finish | W-L | PPG | PAPG | Margin | TU/G | N/G | BHrd | BPts | PPB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2015 | RIT | UG | 46 | 4-13 | 34.7 | 184.1 | -149.4 | 2.53 | 0.82 | 43 | 230 | 5.35 |
| Year | Round | Team | Opponent | Result | Score | 10 | -5 | PPB | Packet |
|---|---|---|---|---|---|---|---|---|---|
| 2015 | 1 (Prelims) | RIT | Michigan A | Loss | -10 - 510 | 0 | 2 | NaN | MIT A + Alberta |
| 2015 | 3 (Prelims) | RIT | MIT B | Loss | 40 - 230 | 3 | 0 | 3.33 | Chicago A |
| 2015 | 4 (Prelims) | RIT | Notre Dame A | Loss | 30 - 85 | 2 | 0 | 5.00 | Virginia and Yale |
| 2015 | 5 (Prelims) | RIT | Penn B | Loss | 10 - 170 | 1 | 0 | 0.00 | Rice + Illinois + W+M |
| 2015 | 6 (Prelims) | RIT | Alberta | Loss | 30 - 335 | 2 | 0 | 5.00 | Michigan + Toronto |
| 2015 | 7 (Prelims) | RIT | Minnesota A | Loss | 15 - 225 | 1 | 1 | 10.00 | Stanford B + Columbia |
| 2015 | 8 (Prelims) | RIT | Northwestern | Loss | 15 - 265 | 2 | 1 | 0.00 | Maryland + NYU |
| 2015 | 9 (Prelims) | RIT | Rice | Loss | 60 - 155 | 4 | 0 | 5.00 | McGill + WUSTL |
| 2015 | 10 (Prelims) | RIT | Chicago A | Loss | 30 - 410 | 2 | 0 | 5.00 | Stanford A |
| 2015 | 11 (Prelims) | RIT | Rutgers | Loss | 15 - 250 | 1 | 1 | 10.00 | Ottawa + Harvard |
| 2015 | 12 (Prelims) | RIT | McMaster A | Loss | 75 - 200 | 5 | 1 | 6.00 | UCSD A |
| 2015 | 14 (Playoffs) | RIT | Notre Dame B | Win | 35 - 5 | 3 | 1 | 3.33 | Editors 1 |
| 2015 | 15 (Playoffs) | RIT | Carleton U | Win | 85 - 30 | 6 | 1 | 5.00 | Editors 2 |
| 2015 | 16 (Playoffs) | RIT | UCSD B | Loss | 15 - 40 | 2 | 1 | 0.00 | Editors 3 |
| 2015 | 17 (Playoffs) | RIT | Notre Dame B | Loss | 30 - 170 | 3 | 2 | 3.33 | Dartmouth |
| 2015 | 18 (Playoffs) | RIT | Carleton U | Win | 35 - 0 | 2 | 1 | 10.00 | Editors 4 |
| 2015 | 19 (Playoffs) | RIT | UCSD B | Win | 80 - 50 | 4 | 2 | 12.50 | Editors 5 |
| Year | Team | Player | Games | Tossups | Negs | Pts | PPG |
|---|---|---|---|---|---|---|---|
| 2015 | RIT | Adam Swift | 17 | 43 | 14 | 360 | 21.18 |


--- layout: post authors: ["Tiffany Timbers"] title: "What Do People Want to Learn?" date: 2015-03-15 time: "11:00:00" tags: ["Assessment"] ---
In the planning phase of organizing a Software Carpentry workshop for my home department of Molecular Biology & Biochemistry I started to wonder what participants want to learn. I designed a short survey to answer this question, and from my small department, ~20% (30 people) filled it in. Here's what they said:
(As with most good things in life, the code for these plots can be found on Github.)
I also asked survey participants to comment on any other computer programming and/or data science topics they would be interested in learning about. Here's what people said:
My takeaway from this survey that that people (well, at least Molecular Biologists and Biochemists) are most interested in learning R or Python (and not Matlab) and that we are on track with the level of focus for these workshops: the majority of people are interested in a workshop for novices.
Disclaimer: This is a small survey (N = 30) and from a single discipline. I would be very interested to hear and/or find out if these findings differ across disciplines and/or geography.


nodes = numpy.asfarray(nodes)
weights = numpy.asfarray(weights)
if callable(solves):
solves = [solves(node) for node in nodes.T]
solves = numpy.asfarray(solves)
shape = solves.shape
solves = solves.reshape(weights.size, int(solves.size/weights.size))
solves = numpy.asfarray(solves)
nodes = numpy.atleast_2d(nodes)
assert nodes.ndim == 2
assert nodes.shape[1] == len(weights) == len(solves)
shape = solves.shape[1:]
solves = solves.reshape(len(solves), -1)


Focoso Serves Wood-Fired Pizza from a Food Truck
10/24/14
Robert and Jessie Gall have named their oven Blue. Not everyone names their kitchen equipment, but Blue isn't your ordinary oven...
Read more
Focoso Pizza is a Phoenix-based food truck specializing in pizza cooked in a wood-fired oven. Follow the aromatic smell to your personalized pizza cooked in under 5 minutes at temperatures over 800 degrees and enjoy the flavor of a crisp chewy crust paired with the most flavorful local ingredients.
Robert and Jessie Gall have named their oven Blue. Not everyone names their kitchen equipment, but Blue isn't your ordinary oven...
Read more
This is the start of the story for article 2 and it is very interesting. In order to read more of it, you must click the link...
Read more
This is the start of the story for article 3 and it is very interesting. In order to read more of it, you must click the link...
Read more
This is the start of the story for article 4 and it is very interesting. In order to read more of it, you must click the link...
Read more
This is the start of the story for article 5 and it is very interesting. In order to read more of it, you must click the link...
Read more
This is the start of the story for article 6 and it is very interesting. In order to read more of it, you must click the link...
Read more
123 Fake St., San Francisco, CA
For private and corporate event booking please fill out the form with your contact information and a short description of your event. We offer competitive rates while providing top class service.
If you have any questions or concerns about our product or service, or just want to let us know how we are doing, please use the same form as we would like to hear all feedback.
The Focoso Team supports local business, please contact us if you are a local producer.


Walter Nunes Filho
Full stack developer
Featured Work
Sunshine
Cine Movies
Recipe Book
Movie Trailer
Neighborhood Map


#include <bomb.h>
| Bomb::Bomb |
( |
TIME |
iactivated, |
|
|
Point< int > |
ipoint, |
|
|
Player * |
iplayer |
|
) |
| |
|
inline |
Constructor
- Parameters
-
| iactivated | when should it become ignited |
| ipoint | place of bomb |
| iplayer | Player who put it |
Bomb ignites by another flame, update player's number of bombs
| bool Bomb::boom |
( |
TIME |
inow | ) |
|
|
inline |
Bomb ignites by time
- Parameters
-
- Returns
- ignites or not
Get owner
- Returns
- player ID
| Point<int> Bomb::getPoint |
( |
| ) |
|
|
inline |
| std::string Bomb::state |
( |
| ) |
|
|
inline |
The documentation for this class was generated from the following file:


--- layout: default title: "Resume - Max Kramer" ---
For those of you paper-inclined, my resume is below, but I encourage you to view my LinkedIn profile for the most current information.
Download resume


--- layout: archive title: Zulip Chat Archive permalink: /stream/144837-PR-reviews/topic/.231118.20Presented.20groups.html ---
I defined presented groups in Lean and have made a pull request. I showed that presented groups satisfy their universality property. I wasn't sure if what I wrote should go in it's own file or in the file on free groups. I put it in it's own file for now.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Theme System:
Bootstrap 4
Bootstrap 3
jQuery UI
unthemed
Theme Name:
Default
Cosmo
Cyborg
Darkly
Flatly
Journal
Lumen
Paper
Readable
Sandstone
Simplex
Slate
Solar
Spacelab
Superhero
United
Yeti
Theme Name:
Default
Cerulean
Cosmo
Cyborg
Darkly
Flatly
Journal
Litera
Lumen
Lux
Materia
Minty
Pulse
Sandstone
Simplex
Sketchy
Slate
Solar
Spacelab
Superhero
United
Yeti
Theme Name:
Black Tie
Blitzer
Cupertino
Dark Hive
Dot Luv
Eggplant
Excite Bike
Flick
Hot Sneaks
Humanity
Le Frog
Mint Choc
Overcast
Pepper Grinder
Redmond
Smoothness
South Street
Start
Sunny
Swanky Purse
Trontastic
UI Darkness
UI Lightness
Vader
loading theme...
Theme by Bootstrap
Theme by Bootswatch
Theme by jQuery UI


{% extends 'base_nonav.html' %} {% block head %}
Your password has been set. You may go ahead and sign in now.


species relict areas richness East genera Supplementary China RCP refugia climate disjunct northern [], distribution endemic present stable using climatic boundary Fig. high long-term Asia models southwestern plant scenarios suitable (Fig. {border-style China, data future potential px;} time #ffffff;} (Supplementary Vietnam number past patterns southern species, Data Ecol. Institute area grid.. having maps niche plants LGM distributions forest mountains persistence Asia. Figs. Yunnan Yunnan, given obtained overlap records ./j.-...x Asian University forests mainly mountain occurrence ArcGIS Model Mts Nature Research Sichuan Vietnam, core generated humid taxa (ESRI, (the America, Asia, CA, Redlands, Table Tables University, based central conditions eastern ecological habitats lineages modified predicted present, px; south-central stands variables {font-family (ACD (–) Canvas Ecological Inc., LINK Map Overlap Sci. Seattle, Systems USA) USA). WA, broad-leaved change conservation font-size fossil generally layers line local paleoendemic range rarity-weighted site software southeastern spatial study tree used (i.e., (with Biogeogr. Europe India, Japan Maps Miocene New Plant Relict Science Tang ancient average bioclimatic changes deciduous different diversity double; genera, genetic habitat identify lower parts populations selected set small subtropical/warm-temperate (, km (expressed Academy Climate ENM Environmental Evol. Glacial Guangxi, Information Japan, Methods. Ministry North Quaternary available bias border-color border-width characterized climates compared comparison correlation current evergreen evolutionary flora forests, fundamental geographic ice include included jackknife mean model modeling models, monsoon national occurrences paper precipitation ranges regions respectively; seasonality solid; species. subtropical temperature temperatures types vegetation woody www.gadm.org {font-style {font-weight < . (ca. (under -CCSM -GFDL -MPI ./S-()- ./j.palaeo... ./journal.pone. = ., Asia: Basin Cambridge Cenozoic Chen China: Chongqing Commons Creative Ecology Environment Global Guangxi Huang Int. Laboratory Late Methods Myanmar, Ohsawa Palaeoclimatol. Palaeoecol. Palaeogeogr. Peterson Planck Pleistocene RWR Sciences, Springer Tertiary and, areas, background best bold ca. climate; climatically combination combinations contrast, courier; degree dispersal dominated em; environmental evolution excluded geographical global great gymnosperms highest http://orcid.org/--- including large larger likely located low major material maximum mid-Holocene moderate natural new niches northwestern possible predict prerequisite present-day protected provided pt;} refugia. relatively result results review richness. sampling scenario selection shows sites size) space species’ t-test temperate variable western year


Home
About Us
Sony Playstation 5
Highlights
Fantastic new controller
Streamlined UI puts games first
Great day-one exclusive game lineup
Buy now for USD 499


Hong Jiang
Software Developer in Big Data
Portfolio
Data Mining and Modelling | Python
Ridership Anomaly Detection at Major Transportation Hubs in NYC
SSD (Single Shot MultiBox Detector) | OpenCV Python
Object Detection with SSD on Security Footage under Lossy Compression
Semaphore for Concurrency | Java
A Java Starbucks that Free of Producer / Consumer Problem
K-means, Gaussian Mixture Model | Python
Revised K-means Clustering on Two-Dimensional Taxi Trajectory Data
Docker | Ubuntu
Building OSPF Network with FRRouting and Docker


We are happy to inform you that your submitted study ({{ file_name }}) has been successfully processed.
Your study is now identified in MetaboLights as {{ study_id }}. You can access your study here: {{ private_study_url }}.
The requested public release date is {{ release_date }}.
SUBMISSION CHECKLIST - Your study will not be published and made available to the world, until the following conditions have been satisfied:
A. Stage 1 (ISAcreator) validation has successfully passed.
B. Stage 2 (Online) validation has successfully passed.
C. The submitter (you) promotes the study status from Submitted to In Curation (minimum 28 days is required for our validation and curation).
D. The curation team approves the study and moves the study status from In Curation to In Review.
E. Your public release date is reached.
For private pre-publication access to your study, please see the "Share study" link at the top of the study page. Please note that the pre-publication link is only accessible when the study is in "In Review" status.
Citing your submission in MetaboLights:
Metabolomics data have been deposited to the EMBL-EBI MetaboLights database (DOI: 10.1093/nar/gkz1019, PMID:31691833) with the identifier {{ study_id }}. Once the status of your submission is updated as 'Public', the complete dataset will be accessed here {{ public_study_url }}
Citing MetaboLights generally:
Kenneth Haug, Keeva Cochrane, Venkata Chandrasekhar Nainala, Mark Williams, Jiakang Chang, Kalai Vanii Jayaseelan, Claire O'Donovan MetaboLights: a resource evolving in response to the needs of its scientific community. Nucleic Acids Research, gkz1019, doi:10.1093/nar/gkz1019, PMID:31691833.
Many thanks for your time and effort.


Honestly speaking, ever since i joined Royal Bridgers Agency i haven't had a moment on my time here to regret that decision. It is full of committed team members who always work together to teach and horn into the models strength and that has only made me grow more through the Agency as an aspiring professional model.
MODEL
First and foremost, i invite all of you aspiring models to join Royal Bridgers Agency. I believe by coming together and committing ourselves to a common goal of growing together not only as models but as people too will help each one of us and in the long term all of us, to be successful and passionate people in life. I look foward to working with you.
CEO ROYAL BRIDGERS AGENCY


All submitted ideas have to be reviewed by the administrator before being listed on the page.
If your submitted idea is not listed on the page, that would be because of only one of these two reasons.
- Your idea has not been reviewd and approved by the adminstrator yet.
- Your idea has been rejected by the adminstrator.


--- layout: post title: Bookmarks for October 8th through October 9th tags: - animations - backbone.js - beautiful - design - development - examples - favicon - game - html5 - javascript - jsTestDriver - library - magazine - math - mobile - modules - notification - optimization - patterns - performance - physics - presentation - qunit - screen - size - tdd - tools - tumble - ui - web status: publish type: post published: true meta: aktt_notify_twitter: 'no' ---
These are my links for October 8th through October 9th:


Dentacoin aims at improving dental care worldwide and making it affordable through utilizing the Blockchain advantages. We believe that empowering patients to become
an active part in the industry development process is the key to shaping the future of dental care. The pilot Dentacoin project
(Trusted Review Platform) is already functioning on the main net as the first transparent,
tamper-resistant and manipulation-protected platform of its kind.
✓ Shifting the Paradigm from Treatment to Prevention. By bringing patients and dentists into a community, numerous win-win effects could be realized.
Through a “Hippocratic” dental insurance model patients will no longer pay for treatments, but for prevention.
Lifelong, full-covered dental care will be provided to the patient with very low, monthly rates, paid in DCN. A self-executing Smart Insurance Contract will guarantee
shared responsibility, no manipulations and very low fees. The usual profits of insurance companies will be shared between patients and dentists.
✓ Generating Value through Crowd Power. Through the Blockchain-based tools to be developed (a trusted review platform, an aftercare mobile app, an
educational website) patients and dentists will be rewarded with Dentacoin for their willingness to contribute to the Foundation’s mission.
Dentacoin will create a tribune for patient voice to be heard and will help patients to improve their oral care habits. Simultaneously, the DCN tools will allow dentists
to improve their service quality based on the gathered feedback, as well as to create a loyal patient community around themselves – the most important asset for every
service industry.
✓ Making Dental Care affordable. With the collected Dentacoins, patients could:
• pay for their treatments;
• pay for their dental insurance;
• buy oral care products.
As for the dentists, Dentacoin will allow them to:
• have a stable basic income;
• buy cheaper dental materials and equipment through the Dentacoin Trading platform ;
• create a patient community;
• reduce the marketing costs;
• reduce the treatment costs.
✓ Jumping over the Dentistry Borders. Dentacoin also plans on developing a decentralized, highly secure database of all patient health records. Health Data will be
highly protected, updatable and accessible exclusively by patients or by dentists, upon a given permission.
This kind of database would simplify the lives of both patients and dentists when searching for health records and would help provide the most accurate diagnostics.
✓ Indirect Profit Sharing. In order to create prerequisites for a long-term increase in value, Dentacoin will implement a unique approach of indirect profit sharing for all Dentacoin holders. Once a year, the Dentacoin Foundation will buy DCN with 50% of all profits gained throughout the last financial year. These include interests from assets, profits of the clinics bought by the Foundation and any other return on investment. Thus, the global DCN supply decreases and in return, the demand and the market price increase.


2.5 out of ****
Starring Brian O'Halloran, Jeff Anderson, Marilyn Ghigliotti, Lisa Spoonhauer Written & Directed by Kevin Smith Cinematography by David Klein
Kevin Smith is a frustrating director. The man clearly has talent: last year's CHASING AMY was a smart, funny, surprisingly wise film. But the wretched MALLRATS and the uneven CLERKS seem to be the work of a lazy writer, someone with inspiration and skill, but without the discipline to keep his work at a consistently high level of quality. CLERKS was Smith's debut, and, in a sense, it anticipates both CHASING AMY and MALLRATS. It is a hit-and-miss affair (with the emphasis on miss): moments of CHASING AMY's wit are interspersed throughout tedious stretches of MALLRATS' juvenile humour.
The premise is simple. We follow an eventful day in the life of Dante (Brian O'Halloran), a clerk in a convenience store. He is visited by his girlfriend and ex-girlfriend (Marilyn Ghigliotti, Lisa Spoonhauer), attends a wake, plays hockey on the roof of the store, and discusses RETURN OF THE JEDI, auto-fellatio, and the worthlessness of guidance counsellors, usually accompanied by Randal (Jeff Anderson), the clerk from the adjacent video store. Jay and Silent Bob (Jason Mewes, Kevin Smith) hang around outside the store, occasionally dropping in. And, of course, Dante and Randal must deal with obnoxious customers, like a man in search of perfect eggs and a man who won't stop talking about tabloid headlines--at least not until someone spits water in his face.
Much of the film consists of nothing more than a few characters relaxing and talking. Smith, fortunately, has a flair for dialogue, and isn't afraid to let his characters be smart and verbose. Some of the lines are good (high school is about "algebra, bad lunch, and infidelity"); others fall flat. The actors, unfortunately, aren't quite up to the challenge of making the dialogue sound authentic. Mostly, it sounds like exactly what it is--contrived, scripted lines. O'Halloran is quite good, but the rest of the cast are not able to deliver their lines in a natural, unstilted manner, and often sound like they are reading from a teleprompter.
They are not helped by Smith's direction: there are many static, long takes of characters simply talking and doing little else. Woody Allen has used this technique to great effect, but while Smith may have a flair for dialogue, as a director he is nowhere near Allen's level. The film, as a result, grows tedious after a while, not helped by some recurring jokes which lose whatever charm they had very, very quickly. The frequent use of 'chapter' titles like "Perspicacity" and "Malaise" is particularly annoying, being both pointless and unfunny, as is a recurring joke about shoe polish.
The film as a whole is too contrived for my taste. Smith tries too hard to be funny: the people who visit the store are caricatures and the situations are exaggerated, telegraphing the humour. A less forced approach could have resulted in a funnier film: allowing the situations to develop naturally, allowing the customers to seem real, would have given us a better pay-off. Smith has a gift for observing the natural interactions between people, yet seems afraid to let them remain natural. And some sequences are simply tedious, like the rooftop hockey game. CLERKS is a good idea, poorly executed.
That this movie was made at all--and then distributed--is something of a triumph, however, given its infinitesimal budget and less-than-stellar production values. And Smith's profane, self-indulgent dialogue is a refreshing contrast to all those Hollywood films where dialogue is used only to further the plot. But the intended effect is better than the final result, and after CHASING AMY, CLERKS' pleasures seem even less rewarding. Let's hope Smith is able to make more films as good as his last one, and doesn't get lazy again.
A Review by David Dalgleish (February 9/98<EMAIL_ADDRESS>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


{% extends "layouts/default.html" %} {% block title %}Search Results | Colidocs{% endblock %} {% block stylesheets %} {% endblock %} {% block body %}
We are sorry, but we didn't find this page.


Class EncryptionTactic
EncryptionTactics define the various formats that the Smartcrypt Protocol uses to encode information about ciphertexts, salts, keys, and other cryptographic parameters.
Implements
Inherited Members
Namespace: PKWARE.Smartcrypt.Protocol
Assembly: SmartcryptProtocol.dll
Syntax
public sealed class EncryptionTactic : IEquatable<EncryptionTactic>
Remarks
The presence of a prefix matching an encryption tactic does not guarantee that the content is
encrypted. The prefixes, commonly something like V2
may be used for other purposes as well. Be aware of
this when writing algorithms.
Fields
V2
RSA encryption.
Declaration
public static readonly EncryptionTactic V2
Field Value
| Type | Description |
|---|---|
| EncryptionTactic |
Remarks
Given a plaintext plain
, the final format will be V2-base64(RSA_encrypt(plain))
.
V3
AES encryption of an AES key. Used for providing contingency access to asset keys.
Declaration
public static readonly EncryptionTactic V3
Field Value
| Type | Description |
|---|---|
| EncryptionTactic |
Remarks
Given a plaintext plain
, the final format will be
V3-key_sequence-base64(iv)-base64(AES_encrypt(plain))
. plain
must be 32 bytes. The IV must be
16 bytes. AES encryption must be performed without padding.
V4
AES encryption with a one-time key.
Declaration
public static readonly EncryptionTactic V4
Field Value
| Type | Description |
|---|---|
| EncryptionTactic |
Remarks
Given a plaintext plain
, the final format will be V4-base64(AES_encrypt(plain))
.
A new, one-time use, 32 byte AES key is generated for this encryption. The IV is the first 16 bytes of the
AES key.
Commonly, the V4
tactic is used in conjunction with V2 as a form of hybrid
encryption.
V5
AES encryption without padding.
Declaration
public static readonly EncryptionTactic V5
Field Value
| Type | Description |
|---|---|
| EncryptionTactic |
Remarks
Intended for general use encryption. The AES key is derived from the user's password using PBKDF2.
Given a plaintext plain
, the final format will be V5-base64(iv)-base64(AES_encrypt(plain))
.
The AES encryption must not use padding. The IV is a randomly generated 16 bytes.
See Also
V6
AES encryption with padding.
Declaration
public static readonly EncryptionTactic V6
Field Value
| Type | Description |
|---|---|
| EncryptionTactic |
Remarks
Intended for general use encryption. The AES key is derived from the user's password using PBKDF2.
Given a plaintext plain
, the final format will be V6-base64(iv)-base64(AES_encrypt(plain))
.
The AES encryption must use padding. The IV is a randomly generated 16 bytes.
See Also
V7
AES encryption of a user-supplied password.
Declaration
public static readonly EncryptionTactic V7
Field Value
| Type | Description |
|---|---|
| EncryptionTactic |
Remarks
Given a plaintext plain
, the final format will be V7-hex(iv)hex(AES_encrypt(plain))
.
The user-supplied password must be at least 32 byes long. If it is not, it must be padded with NUL
characters to be 32 bytes long. The IV is a randomly generated 16 bytes. The AES encryption must use
padding.
Methods
ApplyPrefix(String)
Prepends this tactic's prefix to the content.
Declaration
[Pure]
[NotNull]
public string ApplyPrefix([CanBeNull] string value)
Parameters
| Type | Name | Description |
|---|---|---|
| String | value | The content to prepend the prefix to. |
Returns
| Type | Description |
|---|---|
| String | The content with the prefix applied. |
Equals(EncryptionTactic)
Declaration
public bool Equals(EncryptionTactic other)
Parameters
| Type | Name | Description |
|---|---|---|
| EncryptionTactic | other |
Returns
| Type | Description |
|---|---|
| Boolean |
Equals(Object)
Declaration
public override bool Equals(object obj)
Parameters
| Type | Name | Description |
|---|---|---|
| Object | obj |
Returns
| Type | Description |
|---|---|
| Boolean |
Overrides
GetHashCode()
Declaration
public override int GetHashCode()
Returns
| Type | Description |
|---|---|
| Int32 |
Overrides
IsCompatible(String)
Checks whether or not content is compatible with this tactic.
Declaration
[Pure]
public bool IsCompatible([NotNull] string value)
Parameters
| Type | Name | Description |
|---|---|---|
| String | value | The content to check for compatibility. |
Returns
| Type | Description |
|---|---|
| Boolean |
|
StripPrefix(String)
Removes this tactic's prefix from the content if it exists.
Declaration
[Pure]
[NotNull]
public string StripPrefix([NotNull] string value)
Parameters
| Type | Name | Description |
|---|---|---|
| String | value | The content from which to remove the prefix. Does not have to have the prefix. |
Returns
| Type | Description |
|---|---|
| String | The |
ToString()
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| String |


Hello {{.recipient_email}}, here is the report for AWS account {{.aws_account_id}} in account {{.cecil_account_id}}.
| {{$col}} | {{end}}
|---|
| {{$field}} | {{end}}
Here are the untracked instances that do not have leases associated with them:
| {{$col}} | {{end}}
|---|
| {{$field}} | {{end}}


My job for the summer has a party on the 16th that I did not know of until just nu. I need to go.
sjl124
2017-05-29 20:08:36
Suggestion: While your memory is fresh, write down notes that would be useful for whoever is taking care of your tasks next year (which could be your future self!). I presume we'll cover some things at the debrief, but there are many more details than we have time for, and I suspect there are many small details that we'll forget even by then. https://docs.google.com/document/d/1gkP7u1403EtuIvs8reytkW9cohhtZz6YoTNcizNnIVo/edit?usp=sharing
vink
2017-06-01 09:40:36
Answers to the questionnaire: wow, that was some criticism of Annette. Those of you who knows about such things, is there some truth to it?
Also; sad I came through as stressed and irritated. I guess it was true, but still :(
gulgi
2017-06-01 09:57:02
..from one person. I have no idea what we asked if the teachers, but anyways, objectively Annette is a lot more experienced etc etc etc than the other two teachers.
vink
2017-06-01 10:10:10
Neither part of that is actually a response to the criticism, but you obviously disagree with them, that is good enough for me :)
gulgi
2017-06-01 10:27:34
I took about 20 minutes of classes from Annette. I can only give the objective view.
katt
2017-06-01 20:03:18
vink: Gosh, I did not perceive you as irritated, but if so: you came rushing in, still not well from the cold, so no wonder. = Don't worry about that, it'll be fine automatically next year!
sjl124
2017-06-01 20:47:06
@vink I didn't think you sounded irritated. You have a clear voice and use it well. What you could work on is making announcements a little more concise... On Sat night announcement you repeated all the info from our organiser meeting before, which may have been confusing for participants.
highlunder
2017-06-07 16:34:09
"I liked the two first band, the last not so much" <-> "Blue Daze were the best" 🙂 and so on. We should really be proud of our band line-up 🙂
Now that the final accounting is done, it might be nice to send a final report to the board regarding the outcome (including the 45 000 kr profit that we made!). Although our mails might not get a reply very rapidly, I'm pretty sure they do get read. Make any changes you wish to the draft below. In particular @sofia if you want to comment further or @gulgi if you want to comment anything regarding the upcoming Ruth and Mike. I will send it on Saturday unless I hear anything. https://docs.google.com/document/d/1WcbFdyX7mORWPrACSftz1L6EfdyiMTdMxvqZjbk7n2o/edit?usp=sharing
sofia
2017-08-17 21:45:18
Jätte bra skrivet Steve! 👍👍👍 har inget mer att tillägga! 💗
highlunder
2017-08-18 16:01:00
@vink angående diskussioner med styrelsen, jag antar att du sett detta?
vink
2017-08-18 16:05:21
Yes, I think this is a nice intro and something good to refer to if we do go talk with them on a meeting.
highlunder
2017-08-18 16:07:27
well I won't stop you, but I would warn you that even simple stating of facts quite often sounds hostile to the receiving end


This documents describes the structure of the UI model.
The UI Model is represented by a piece of JSON that is loaded from the server at init time and which will be used to populate the user interface with its initial values and states.
The JSON encodes the set of bind objects that result from the iteration
of all xf-bind
elements in a xf-model
.
Example:
There a few things worth pointing out:
xf-bind
element
('b-greeting' and 'b-audience').
xf-instance/*[1]
to relax typing effort.xf-bind
element for details
on supported attributes.Binds can be nested where child bindings inherit the context from its parents e.g. in this example the
bind of 'b-type' will evaluate to address/@type
.
The JSON structure reflects the structure of the bindings like this:
The concept of a 'bind object' becomes more clear when dealing with bindings that resolve to multiple targets.
Example:
In this case the bind targets 3 nodes in the bound instance. For each occurrence a 'bind object' is created that reflects the state of the node with respect to the binding properties (readonly, required, relevant, valid, type, value).
The resulting JSON:
nodeset
attribute on bind elements to bind to nodesets. This was deprecated and
changed to the use of the ref
attribute in all places. However as Fore is designed as a compiler it is
significantly easier to process the bindings if we can rely on static analysis of the bind elements. Therefore
we use the set
attribute instead of ref to explicitly mark the fact that multiple nodes are referred. As we
intend to also bind to JSON instances we use the more generic term 'set' instead of 'nodeset'.
If a set contains more than a single bind we have a complex binding. Think of multi-column table rows.
Example:
This results in slight changes in the resulting JSON:
Here the set is not just an array but an array of arrays as we need to distinguish 'the rows in our table'.
This example shows the use of nested sets.
In xf-bind elements the XSD Simple Types are used. This can be either the predefined as well as extended ones. Obviously those datatypes cannot be supported by a browser natively.
In order to allow at least basic type-checking the XSD types must be mapped to the datatypes available in the browser.
todo: Mapping table