None
If you are looking for the short and sweet answer to the question "what is a distributed system," then the quote by Leslie Lamport summarizes this quite nicely:
A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.
This suggests that a single algorithm or program is dependent up on more than a single machine to operate and that the machine may be distributed in a location that is remote from your computer's location. If we consider this to be the sole definition of a distributed system, then you can see that even simple programs can be distributed. Let's imagine that you are using a corporate accounting system that runs on your local computer. This system on your computer is likely distributed in that it talks to, and relies on, many external services such as:
From this definition, we can then define a distributed algorithm as one that runs across many machines in order to solve a single question or serve a common purpose. In some cases, such as the one described above, this is fairly straight forward since all coordination can be done from a single node. In the more interesting case, and likely the reason you are reading this guide, we require things like coordination in the tasks that we are performing and membership to keep track of which machines can perform those tasks. This requires that each node in the distributed system work together in some way rather than just being independent components that have no knowledge of the distributed system they live in.
Before we can learn about distributed algorithms, we need to have a basic understanding of what a distributed system is. We can start with some basic terminology that we will use in this section.
Given that this is a guide to distributed programming, I would highly recommend that you continue reading to delve deeper into the various topics. In addition there are other sources of information that you might find useful to use in tandem with (or possibly in lieu of) this material such as Coursera's Cloud Computing Concepts and Cloud Computing Concepts: Part 2 courses and the Distributed Algorithms YouTube playlist by Seif Haridi.
© John Murray 2015


Static Semantics: Early Errors
BreakStatement : `break` `;`
-
It is a Syntax Error if this |BreakStatement| is not nested, directly or indirectly (but not crossing function or `static` initialization block boundaries), within an |IterationStatement| or a |SwitchStatement|.


Lumify: User Admin
Me
User ID
User name
Privileges
Read
Edit
Publish
Admin
Authorizations
Add Authorizations
Value:
Add Auth
Workspaces
Current Workspace
Workspaces
Delete User


A reference to the browser's window
object. While window
is globally available in JavaScript, it causes testability problems, because
it is a global variable. In angular we always refer to it through the
$window
service, so it may be overridden, removed or mocked for testing.
Expressions, like the one defined for the ngClick
directive in the example
below, are evaluated with respect to the current scope. Therefore, there is
no risk of inadvertently coding in a dependency on a global value in such an
expression.
<script>
function Ctrl($scope, $window) {
$scope.greeting = 'Hello, World!';
$scope.doGreeting = function(greeting) {
$window.alert(greeting);
};
}
</script>
<div ng-controller="Ctrl">
<input type="text" ng-model="greeting" />
<button ng-click="doGreeting(greeting)">ALERT</button>
</div>
it('should display the greeting in the input box', function() {
element(by.model('greeting')).sendKeys('Hello, E2E Tests');
// If we click the button it will block the test runner
// element(':button').click();
});


Lee Jun Fan otherwise known as Bruce Lee was born in San Francisco, USA.
I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times.
Lee Jun Fan otherwise known as Bruce Lee was born in San Francisco, USA.
Bruce and his family return to Hong Kong.
Bruce makes his film career at the age of six.
Bruce begins training under the legendary Yip Man.
Bruce wins the British Crown Colony Cha-Cha Championship (a dance contest).
After getting into too many street fights in Hong Kong, Bruce's parents send him back to San Francisco.
Bruce enrolls at the University of Washington and begins teaching students gung fu.
Bruce takes his future wife Linda out on their first date.
Bruce marries Linda; he also establishes a second gung fu school in Oakland.
Bruce's first son Brandon Bruce Lee is born.
Bruce stars in the TV show, "The Green Hornet". He also opens a third gung fu school in Los Angeles.
Bruce's daughter Shannon Lee is born.
Stars in his first major motion picture filmed in Hong Kong titled in the USA, "Fists of Fury".
Stars in his second major motion picture filmed in Hong Kong titled in the USA, "The Chinese Connection".
Stars in his third major motion picture filmed in Italy featuring Chuck Norris titled in the USA, "The Return of the Dragon".
Bruce begins work on another major motion picture featuring Kareem Abdul-Jabbar titled, "Game of Death".
Bruce completes his most successful major motion picture titled, "Enter the Dragon".
Bruce Lee dies in Hong Kong one month before "Enter the Dragon" premieres to the public.
Bruce Lee Hong Kong funeral is attended by over 25,000 people.
Bruce Lee is finally laid to rest near his family in Seattle, USA.
Knowing is not enough; We must apply. Willing is not enough; We must do.
Go here to find out more about the legend known as Bruce Lee


This tutorial is intended to deep learning aspirants. CLI coding, Python and an understanding about Artificial neural networks is necessary for the reader to comprehend the tutorial.
Task: Use pre-trained VGG16 (Visual Geometry Group) model to classify between Cats and Dogs.
sudo pip install kaggle-cli
Configuring cli to a username, password and competition. This config file is available in
~/.kaggle-cli/config
you can edit this file as you start your new competition.
kg config -g -u 'username' -p 'password' -c 'dogs-vs-cats-redux-kernels-edition'
finally create directory called redux under data as data/redux and download the competition data. Unzip the files. Before downloading accept to competition rules in the website
kg download
%matplotlib inline
import utils; reload(utils)
from utils import *
Using gpu device 0: Tesla K80 (CNMeM is disabled, cuDNN 5103)
/home/ubuntu/anaconda2/lib/python2.7/site-packages/theano/sandbox/cuda/__init__.py:600: UserWarning: Your cuDNN version is more recent than the one Theano officially supports. If you see any problems, try updating Theano or downgrading cuDNN to version 5.
warnings.warn(warn)
Using Theano backend.
batch_size=64
current_dir = os.getcwd()
LESSON_HOME_DIR = current_dir
DATA_HOME_DIR = current_dir+'/data/redux'
%cd $DATA_HOME_DIR
/home/ubuntu/courses/deeplearning1/nbs/data/redux
%cd train
/home/ubuntu/courses/deeplearning1/nbs/data/redux/train
%mkdir $DATA_HOME_DIR/valid
# also create sample train and sample test
%mkdir $DATA_HOME_DIR/sample
%mkdir $DATA_HOME_DIR/sample/train
%mkdir $DATA_HOME_DIR/sample/valid
%ls -l | wc -l
25001
# select all the file paths ending with *jpg
g = glob('*.jpg')
# shuffle file paths
shuf = np.random.permutation(g)
shuf[:5]
array(['dog.7046.jpg', 'cat.11353.jpg', 'cat.9465.jpg', 'dog.4110.jpg', 'dog.1306.jpg'],
dtype='|S13')
# rename 2000 random files
for i in range(2000):
os.rename(shuf[i],DATA_HOME_DIR+'/valid/'+shuf[i])
# check number of files in train now
%ls -l | wc -l
23001
# lets try to make our model run for a sample. copy files from train and valid to sample/train, sample/valid
from shutil import copyfile
# we are in /data/redux/train
g = glob('*.jpg')
shuf = np.random.permutation(g)
for i in range(200):
copyfile(shuf[i],DATA_HOME_DIR+'/sample/train/'+shuf[i])
%cd $DATA_HOME_DIR/valid
/home/ubuntu/courses/deeplearning1/nbs/data/redux/valid
%ls -l | wc -l
2001
g = glob('*.jpg')
shuf = np.random.permutation(g)
for i in range(50):
copyfile(shuf[i],DATA_HOME_DIR+'/sample/valid/'+shuf[i])
%cd $DATA_HOME_DIR/sample/train
%ls -l | wc -l
/home/ubuntu/courses/deeplearning1/nbs/data/redux/sample/train
201
%cd $DATA_HOME_DIR/sample/valid
%ls -l | wc -l
/home/ubuntu/courses/deeplearning1/nbs/data/redux/sample/valid
51
%cd $DATA_HOME_DIR
/home/ubuntu/courses/deeplearning1/nbs/data/redux
Keras require that the images of same classification label should be in the same folder. So lets put all cat images and dog images in one folder.
%mkdir $DATA_HOME_DIR/train/cats
%mkdir $DATA_HOME_DIR/train/dogs
%mkdir $DATA_HOME_DIR/valid/cats
%mkdir $DATA_HOME_DIR/valid/dogs
%mkdir $DATA_HOME_DIR/sample/train/cats
%mkdir $DATA_HOME_DIR/sample/train/dogs
%mkdir $DATA_HOME_DIR/sample/valid/cats
%mkdir $DATA_HOME_DIR/sample/valid/dogs
%mv $DATA_HOME_DIR/train/cat*.jpg $DATA_HOME_DIR/train/cats
%mv $DATA_HOME_DIR/train/dog*.jpg $DATA_HOME_DIR/train/dogs
%mv $DATA_HOME_DIR/valid/cat*.jpg $DATA_HOME_DIR/valid/cats
%mv $DATA_HOME_DIR/valid/dog*.jpg $DATA_HOME_DIR/valid/dogs
%mv $DATA_HOME_DIR/sample/train/cat*.jpg $DATA_HOME_DIR/sample/train/cats
%mv $DATA_HOME_DIR/sample/train/dog*.jpg $DATA_HOME_DIR/sample/train/dogs
%mv $DATA_HOME_DIR/sample/valid/cat*.jpg $DATA_HOME_DIR/sample/valid/cats
%mv $DATA_HOME_DIR/sample/valid/dog*.jpg $DATA_HOME_DIR/sample/valid/dogs
%ls $DATA_HOME_DIR/train
[0m[01;34mcats[0m/ [01;34mdogs[0m/
For this submission, My objective is to just run a Deep learning program. All I am trying to know are the wrappers that solves the classification problem via Deep learning.
Before coding, I wanted to understand the problem that I am trying to solve. Here is the gist I came up with to understand the problem better.
The above is a working heuristic of Convolutional neural network. This article is a brilliant starting point to know about evolution from fully-connected to Convolutional networks. It also justfies the need for GPUs in Machine learning and gives a brief introduction to CuDNN.
In nutshell, we are trying to simulate the way our own neural network works. To put in perspective, A billion neurons works in parallel to understand an image like Cat which has been previously identified and stored in our memory. This needs lot of computational power. GPUs give this computational power to process lot of data and adjust tons of weight to fit the data.
NVIDIA cuDNN is a GPU-accelerated library of primitives for DNNs. It provides tuned implementations of routines that arise frequently in DNN applications, such as:
* Convolution
* Pooling
* SoftMax
* Neural activation functions
The overall machine learning framework looks something of this sort.
We won’t be delving into the deeper layers of the framework. In this tutorial we will try to figure out how to make Keras communicate with the below layers.
Important functions and Data Structures of Keras:
* Model - Data structure for modelling the CNN
* Sequential - A type of data structure
* input_dim - the dimension of the input tensor/vector.
* input_batch_dim - the dimension of bacth of inputs to be sent to Keras
* compile - A function which accepts objective function, optimization function and metrics to be performed in the neural network. We should specify compile function before training the model. The compile function defines the learning process for the model.
* merge - Merge two Sequential models into one.There are many ways two sequential model output tensors can be merged. Please refer Keras documentation. The merged data can again modeled as a sequential model.
* Objective functions, Optimizers and metrics are of different types. Please see the documentation.
* fit - Once you specify the model, learning process we can train the model for known labels.
* train_on_batch - We can also train on a particular batch
* Evaluate - function to evaluate the performance
* nb_epoch - number of iterations in the training process.
If we know the working of all these functions, we have covered pretty much of keras. Beauty of keras is that it hids all the mathematical complexities involved in developing a deep convolutional neural network.
I am using a VGG16 python class. I have documented to an extent of what every function does.
Build and train a VGG Model. Finetune it after building
from vgg16 import Vgg16
vgg = Vgg16()
batches = vgg.get_batches(batch_size=batch_size,path=DATA_HOME_DIR+"/train")
val_batches = vgg.get_batches(batch_size=batch_size*2,path=DATA_HOME_DIR+"/valid")
vgg.finetune(batches)
Found 23000 images belonging to 2 classes.
Found 2000 images belonging to 2 classes.
vgg.fit(batches,val_batches,nb_epoch=1)
Epoch 1/1
23000/23000 [==============================] - 615s - loss: 0.0972 - acc: 0.9757 - val_loss: 0.0698 - val_acc: 0.9810
%mkdir $DATA_HOME_DIR/results
vgg.model.save_weights(DATA_HOME_DIR+"/results/ft1.h5")
predict the unlabled test images and assign a class
%mkdir $DATA_HOME_DIR/test/unknown
%mv $DATA_HOME_DIR/test/*.jpg $DATA_HOME_DIR/test/unknown
# We have an namesake folder introduced because thats the folder format of keras test method.
%ls $DATA_HOME_DIR/test/unknown
%ls $DATA_HOME_DIR/test
[0m[01;34munknown[0m/
batches,pred = vgg.test(path=DATA_HOME_DIR+"/test",batch_size=batch_size*2)
Found 12500 images belonging to 1 classes.
Now we have found the classes for the test set, we can submit the solution to Kaggle. But Kaggle expects the solution in a format. Lets see how it looks.
%ls
[0m[01;34mresults[0m/ sample_submission.csv [01;31mtest.zip[0m [01;31mtrain.zip[0m
[01;34msample[0m/ [01;34mtest[0m/ [01;34mtrain[0m/ [01;34mvalid[0m/
!head sample_submission.csv
id,label
1,0.5
2,0.5
3,0.5
4,0.5
5,0.5
6,0.5
7,0.5
8,0.5
9,0.5
Here Id is the name of the unknown class image file and label gives the probability of the image being in a class. This is our submission format.
type(batches),type(pred)
(keras.preprocessing.image.DirectoryIterator, numpy.ndarray)
# get filenames from directory iterator
filenames = batches.filenames
type(filenames)
list
filenames[:5]
['unknown/9292.jpg',
'unknown/12026.jpg',
'unknown/9688.jpg',
'unknown/4392.jpg',
'unknown/779.jpg']
save_array(fname=DATA_HOME_DIR+"/results/filenames.dat",arr=filenames)
save_array(fname=DATA_HOME_DIR+"/results/test_preds.dat",arr=pred)
# load from local here after
filenames=load_array(fname=DATA_HOME_DIR+"/results/filenames.dat")
pred = load_array(fname=DATA_HOME_DIR+"/results/test_preds.dat")
# use same probabilities but penalize super confident predictions
is_dog = np.clip(a=pred[:,1],a_min=0.025,a_max=0.975)
ids = [int(f[8:f.find(".")]) for f in filenames]
ids[:5]
[9292, 12026, 9688, 4392, 779]
len(ids),len(is_dog)
(12500, 12500)
sub = np.column_stack((ids,is_dog))
sub[:5]
array([[ 9.2920e+03, 2.5000e-02],
[ 1.2026e+04, 4.4612e-01],
[ 9.6880e+03, 2.5000e-02],
[ 4.3920e+03, 2.5000e-02],
[ 7.7900e+02, 9.7500e-01]])
np.savetxt(comments='',fmt='%d,%.5f',header='id,label',X=sub,fname="sub_karthik.csv")
%ls
[0m[01;34mresults[0m/ sample_submission.csv [01;34mtest[0m/ [01;34mtrain[0m/ [01;34mvalid[0m/
[01;34msample[0m/ sub_karthik.csv [01;31mtest.zip[0m [01;31mtrain.zip[0m
from IPython.display import FileLink
FileLink('sub_karthik.csv')
!head "sub_karthik.csv"
id,label
9292,0.02500
12026,0.44612
9688,0.02500
4392,0.02500
779,0.97500
2768,0.97500
2399,0.02500
12225,0.75026
10947,0.02500
!kg submit 'sub_karthik.csv'
Starting new HTTPS connection (1): www.kaggle.com
This part of the experiment is very important. We want to understand what makes the model predict the images correctly and what makes it predict wrong. In any image classification task, Jeremy Howard advises to follow the underlying steps to make yourself better understand the model and finetune its parameters accordingly. This is a standard template
This time we will be working with validation set. Because the validation set has the correct answers.
# We have already loaded weights ft3.h5
batches_valid,prob_valid = vgg.test(path=DATA_HOME_DIR+"/valid",batch_size=batch_size*2)
Found 2000 images belonging to 2 classes.
type(batches_valid),type(prob_valid)
(keras.preprocessing.image.DirectoryIterator, numpy.ndarray)
filenames_valid = batches_valid.filenames
We already have 98% of accuracy in validation set.
# we are predicting is_dog in competition.
expected_labels = val_batches.classes #0 or 1
#Round our predictions to 0/1 to generate labels
# our_predictions are for probability
our_predictions = prob_valid[:,0]
# our_labels determines the class label.
our_labels = np.round(1-our_predictions)
# number of images to view at once
n_view = 4
#Helper function to plot images by index in the validation set
#Plots is a helper function in utils.py
def plots_idx(idx, titles=None):
plots([image.load_img(DATA_HOME_DIR +"/valid/"+ filenames_valid[i]) for i in idx], titles=titles)
# we are getting zeroth column because its a tuple.
random_correct_labels = np.where(expected_labels==our_labels)[0]
random_correct_labels.shape
(1971,)
# check_accuracy
len(random_correct_labels)/float(len(expected_labels))
# adhering to our model accuracy!
0.9855
idx = permutation(random_correct_labels[:n_view])
# titles are nothing but probabilities of being a cat.
plots_idx(idx=idx,titles=our_predictions[idx])
#2 Few Incorrect labels
random_incorrect_labels = np.where(expected_labels!=our_labels)[0]
random_incorrect_labels.shape
(29,)
idx = permutation(random_incorrect_labels[:n_view])
# titles are nothing but probabilities of being a cat.
plots_idx(idx=idx,titles=our_predictions[idx])
we have to interpret these images. These images illustrates how trivial the task of classification to humans, but are complex for computers to learn.
#3a The images we most confident were cats, and are actually cats
# when our_lables are 0, we have predicted cat.
# this statement only get the indexes of labels that are correctly predicted as cat.
correct_cats = np.where((our_labels==0) & (our_labels==expected_labels))[0]
print "Found %d confident correct cats labels" % len(correct_cats)
# argsort sorts the indexes based on the value in ascending order.
# example np.argsort([3,1,2]) = [1,2,0]
# we then reverse it.
# most_correct_cats gives indexes of most correct cat lables. [::-1] is used to get the indexes in descending order
# put our prediction indexes in correct cats. It gives the indexes of most correct cats.
# get our predictions of correct cat and get the most correct cat
most_correct_cats = np.argsort(our_predictions[correct_cats])[::-1][:n_view]
plots_idx(correct_cats[most_correct_cats], our_predictions[correct_cats][most_correct_cats])
Found 979 confident correct cats labels
#3b. The images we most confident were dogs, and are actually dogs
# same as above
correct_dogs = np.where((our_labels==1) & (our_labels==expected_labels))[0]
print "Found %d confident correct dogs labels" % len(correct_dogs)
most_correct_dogs = np.argsort(our_predictions[correct_dogs])[:n_view]
plots_idx(correct_dogs[most_correct_dogs], our_predictions[correct_dogs][most_correct_dogs])
Found 992 confident correct dogs labels
#4a. The images we were most confident were cats, but are actually dogs
# label 0 is cat. get labels which we predicted as cat but are actually dogs.
incorrect_cats = np.where((our_labels==0) & (our_labels!=expected_labels))[0]
print "Found %d incorrect cats" % len(incorrect_cats)
# if there are any, follow same steps as above cells
if len(incorrect_cats):
most_incorrect_cats = np.argsort(our_predictions[incorrect_cats])[::-1][:n_view]
plots_idx(incorrect_cats[most_incorrect_cats], our_predictions[incorrect_cats][most_incorrect_cats])
Found 19 incorrect cats
#4b. The images we were most confident were dogs, but are actually cats
# same as above
incorrect_dogs = np.where((our_labels==1) & (our_labels!=expected_labels))[0]
print "Found %d incorrect dogs" % len(incorrect_dogs)
if len(incorrect_dogs):
most_incorrect_dogs = np.argsort(our_predictions[incorrect_dogs])[:n_view]
plots_idx(incorrect_dogs[most_incorrect_dogs], our_predictions[incorrect_dogs][most_incorrect_dogs])
Found 10 incorrect dogs
#5. The most uncertain labels (ie those with probability closest to 0.5).
# 0.5 -0.5 becomes 0. 1-0.5 becomes 0.5. 0-0.5 becomes -0.5 absolute of these values becomes positive.
# argsort of these values brings in most uncertain lables first.
most_uncertain = np.argsort(np.abs(our_predictions-0.5))
plots_idx(most_uncertain[:n_view], our_predictions[most_uncertain])
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(expected_labels, our_labels)
cm
array([[979, 10],
[ 19, 992]])
plot_confusion_matrix(cm, batches_valid.class_indices)
[[979 10]
[ 19 992]]
We can delve deep into Categorical cross entropy loss and internals of Keras and theano in the coming lessons!


Error: {{ error }} Identity cannot be verified. Try again.
Your identity has been verified. Just reload the page and you can now vote with emotions. :)


Home
|
superdarn
|
src.lib
|
tk
Index
Navigate by using the toolbar above or by clicking on the links below.
raw
fitacf
scan
fit
radar
cfit
© Johns Hopkins Applied Physics Laboratory 2010


{% if page.signature != false %}
If you enjoyed the content please consider leaving a comment, sharing or hiring me.
Cheers, Michael


By clicking "Register" I agree to have read and understood the terms and conditions and privacy policy for using this platform and I have no issues in receiving promotional emails.


There are a number of insights required for this problem.
The main insight is that no matter which switches get pressed, the light pattern will repeat every six lamps. Another insight is that the order of switch presses does not matter, and that pressing a switch twice is the same as not pressing a switch at all.
Any even number of switch presses greater than four might as well just be four switch presses, and and any odd number greater than three might as well just be three presses.
We can treat the light information as describing only the first six lamps (by treating lamp n as lamp (n mod 6)), and only try pressing each switch once or not at all.
To maintain the actual information about which lights are on, we use an integer holding six bits. The least significant bit is light 6, the next least is light 5, and so on. This has the effect that treating these bit strings as normal numbers sorts the same way that we need to print them.
Switches are represented as bit vectors that say which lights get toggled.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> #define MAXLAMP 6 #define LAMPMASK ((1<<MAXLAMP)-1) int nlamp; int nswitch; int ison; int known; int poss[1<<MAXLAMP]; int flip[4] = { LAMPMASK, /* flip all lights */ LAMPMASK & 0xAA, /* flip odd lights */ LAMPMASK & 0x55, /* flip even lights */ LAMPMASK & ((1<<(MAXLAMP-1))|(1<<(MAXLAMP-4))) /* lights 1, 4 */ }; /* * Starting with current light state ``lights'', flip exactly n switches * with number >= i. */ void search(int lights, int i, int n) { if(n == 0) { if((lights & known) == ison) poss[lights] = 1; return; } for(; i<4; i++) search(lights ^ flip[i], i+1, n-1); } void printseq(FILE *fout, int lights) { int i; char s[100+1]; for(i=0; i<nlamp; i++) s[i] = (lights & (1<<(MAXLAMP-1 - i%MAXLAMP))) ? '1' : '0'; s[nlamp] = '\0'; fprintf(fout, "%s\n", s); } void main(void) { FILE *fin, *fout; int a, i, impossible; fin = fopen("lamps.in", "r"); fout = fopen("lamps.out", "w"); assert(fin != NULL && fout != NULL); fscanf(fin, "%d %d", &nlamp, &nswitch); for(;;) { fscanf(fin, "%d", &a); if(a == -1) break; a = MAXLAMP-1 - (a-1) % MAXLAMP; ison |= 1<<a; known |= 1<<a; } for(;;) { fscanf(fin, "%d", &a); if(a == -1) break; a = MAXLAMP-1 - (a-1) % MAXLAMP; assert((ison & (1<<a)) == 0); known |= 1<<a; } if(nswitch > 4) if(nswitch%2 == 0) nswitch = 4; else nswitch = 3; for(; nswitch >= 0; nswitch -= 2) search(LAMPMASK, 0, nswitch); impossible = 1; for(i=0; i<(1<<MAXLAMP); i++) { if(poss[i]) { printseq(fout, i); impossible = 0; } } if(impossible) fprintf(fout, "IMPOSSIBLE\n"); exit(0); }


GIVE YOUR SUPPORT
TO MAKE THE BETTER WOLRD AND SOCIETY
This is very favourite place of my life I wanna go there once in my life with my friends and some
                 special person,which always stay inside
my heart.I cant forget this.
Donate Now


Today Lucene only uses BooleanScorer if the query consists of SHOULD and MUST_NOT. If there is one or more MUST clauses lucene always uses BooleanScorer2. But it is suspected that unless the MUST clauses have very low hit count compared to the other clauses, that BooleanScorer would perform better than BooleanScorer2. The most challenging part might be the heuristics on when to use which.
Proposal Title: BooleanScorer should sometimes be used for MUST clauses in Lucene
Student Name: Da Huang
Student E-mail<EMAIL_ADDRESS>Student Mobile: +8613718862905
Organization/Project: The Apache Software Foundation (ASF)
Assigned Mentor:
Boolean Query is one of the most important types of query in an Information Retrieval System. Lucene has done several optimizations for that. The kernel modular to implement Boolean Query in lucene is Scorer, which can not only score a document, but also provide methods for collecting Hit Documents. There are mainly two Scorers, BooleanScorer and BooleanScorer2 (Their natures can be found in Table 1), to deal with Boolean Query on current trunk. The class BooleanQuery would choose one of them as the scorer returning to the its caller.
Today lucene only uses BooleanScorer if the query consists of SHOULD and MUST_NOT. If there is one or more MUST clauses lucene always uses BooleanScorer2. But such way to make the choice is too easy and naive. What I would like to do in this project is to develop a more clever way for BooleanQuery to choose which Scorer to be uses.
The key to implementing the project is to make BooleanScorer support MUST clause, and then check the influence of MUST clause on BooleanScorer's speed by testing.
The project shall deliver three components as follows:
1) BooleanScorer which supports MUST clause friendly i.e. .advance() should be used trickly to skip docs.
2) A better rule for BooleanQuery to choose Scorer.
3) Revelant Javadocs and reports.
1) Faster BooleanQuery for lucene.
| Scorer | Usability | Disjunction Query | Conjunction Query | MUST Clause |
|---|---|---|---|---|
| BooleanScorer | As Top Scorer Only | Faster | Not Supported Now | Used to, Not Now |
| BooleanScorer2 | No Level Limitation | Slower | Fast | Yes |
Table 1 illustrates some important natures of BooleanScorer and BooleanScorer2 on the current lucene trunk. The great difference between these two Scorer is due to their different ideas on implementation:
1) BooleanScorer is implemented by using an array to score windows of 2K. This way can make Disjunction Query faster, but leave the docIDs out of order as result. Thus, BooleanScorer can only be as Top Scorer.
2) BooleanScorer2 is implemented in a much more "tranditional" way. That is merging the Disjunction Query with a heap.
In a conclusion, BooleanScorer applies a tricky algorithm to make Disjunction Query faster, but the algorithm makes the BooleanScorer can only be as Top Scorer and unsuitable for Conjunction Query.
As for the Top Scorer only problem, it is not a severe one, because most BooleanQuery does not have deep levels, and the costest Scorer is the Top Scorer. Thus, I prepare to solve the MUST clause.
In order to implement this function, the following problem should be solved:
Actually, the original design of BooleanScorer on last trunk can support no more than 32 MUST clauses, if MASK does not extend. Such design is not flexible enough, and may cost a lot on dealing with these clauses one by one.
My idea is to group up all MUST clauses so that it looks like there is just one MUST clause. For example:
a +b c -d +e f <=> +(+b +e) a c f -d
Apparently, the left part and the right part above are just the same BooleanQuery.
However, when it comes to implementing, there is in fact no need to build a new BooleanClause for the MUST clauses in the query. The most natural way is to pass a new ConjunctionScorer to BooleanScorer. The ConjunctionScorer represents all the MUST clauses in the query, and meanwhile, it looks like only one MUST clause.
In order to collect documents efficiently, docs collected by the ConjunctionScorer should be linked up in the bucket table firstly. After that, the linked list in the bucket table would be a list of docs which satisfy all MUST clauses. ATTENTION: docs' id in the linked list should be in ascending order.
Then, by scanning the linked list, subScorers can check the docID and either set its MUST_NOT bit or add one SHOULD hit count to it. In this step, subScorers' .advance() method should be used to skip a lot of docIDs.
At last, a bucket collector can collect all target docs, by scanning the linked list.
A sketch on how to implement procedures above, is as follows:
- for each window do
- Collect docs within the window range to make a linked list on bucket table with ConjunctionScorer;
- currentDocID = bucketTable.firstDocID;
- for each subScorer do
- subScorer.advance(currentDocID)
- if subScorer.docID() == currentDocID then
- To set MUST_NOT bit or add SHOULD hit count according to subScorer's type;
- endif
- endfor
- currentDocID = next(currentDocID);
- Scan the linked list to collect target docs;
- endfor
Codes should be specified for the situation where there is no MUST clause in BooleanQuery.
Relevant codes to improve is around line #342 in BooleanQuery.java. What to do is just adjusting the condition on returning BooleanScorer.
It seems that, in most situations, the improved BooleanScorer performs better than BooleanScorer2. If that is true, just clear the condition of required.size() and minNrShouldMatch.
However, I would like to figure out a more accurate rule. To do this, the code would be as follows:
- cScorer = new ConjunctionScorer(this, required);
- if !scoreDocsInOrder and topScorer then
- if cScorer.cost() < ?x and minNrShouldMatch < ?y then
- return new BooleanScorer(cScorer, required, optional, prohibited);
- endif
- endif
By testing the benchmarks with different ?x and ?y, I can find a better rule for choosing suitable scoreer.
My schedule is showed on Table 2. Being a student, I will have three exams at the end of this semester (June-July). It will take me some time, but I promise everything will follow the schedule.
| Timeline | Tasks |
|---|---|
| April 21 - May 16 |
- Get to know more about the code. - Discuss with the mentor about some confusing details on the code. - Get familiar with testing on benchmarks. |
| May 17 - May 23 |
- Make the BooleanScorer support MUST clause without .advance() optimation. - Adjust the BooleanQuery to let BooleanScorer be applied even when it comes to MUST clause. - Test on benchmarks to see the performance changes. |
| May 24 - May 31 |
- Implement BooleanScorer with .advance() optimation. - Test on benchmarks to see the performance changes. |
| June 1 - June 22 |
- Check the tests. - File mid-term evaluations. |
| June 23 - June 25 |
- Submit mid-term evaluations. |
| June 26 - July 19 |
- With the code above, do tests on banchmarks with different arguments. - Analyze the test result and figure out the best arguments. |
| July 20 - July 31 |
- File the test report. |
| August 1 - August 10 |
- Do final tests and check the code.. |
| August 11 - August 17 |
- Scrub code, write tests, improve documentation, etc. |
| August 18 - August 20 |
- Submit final evaluations. |
| August 22 - August 23 |
- Submit required code samples to Google. |
I am studying for my Master Degree in Peking University, where I am majoring in Search Engine & Web Mining. In this semester, I am also trying to build a search engine with C++. You can fetch the newest version of my code from https://github.com/Da-Huang/Search-Engine.
You can know more about me on http://www.linkedin.com/profile/view?id=308789048.


| DOSE: T+ 0:00 |
40 mg |
oral |
AMT |
(capsule) |
| T+ 3:00 |
|
smoked |
Cannabis |
|
The other day my parents left to go to the beach, so I figured that then would be the perfect time to try out AMT for the first time. I took 2 gelcaps each containing 20 mg each of AMT around 3:30 pm, right when my parents left. The plan was for my friends C.S., and C.M. to come over, drink a couple beers, and look after me while I was tripping. As you'll see things didn't exactly go as planed. Athough there were a bunch of ups and downs, the highs were much better than the lows and I would certainly call this a fantastic trip. Since I can't remember times that much, I broke this trip down into stages. There were about 14.
Stage 1 (Anxiety): Right after I took the pills I was anxious. I've only tripped once before and I've never taken AMT so I really didn't know what I was in store for. I was nervous that it wouldn't work, or that I might have taken too much or not enough, but I tried to relax, and I soon realized that there was no point in worrying so I didn't. I took a walk through the woods and then came back home and sat down on my porch which is right next to a lake. This gave way to the second stage of the trip when things really started happening (about an hour and a half in).
Stage 2 (Bliss): As I sat on the porch I closed my eyes and I realized I was getting really cool closed eye visuals. They were very paternesque and simple yet very pretty. I kept my eyes closed for a while and just looked at the patterns. When I opened my eyes eventually colors seemed brighter and things seemed more beautiful. My trip had begun. I was happy. Around this point I decided to look throughout my house at things. Things started getting kinda freaky at this point which gave way to the third portion of my trip.
Stage 3 (fear): I started to get a little bit scared at this point.  I started getting really freaked out. I thought 'Why am I seeing all these weird things?, Are they real or fake?, What is happening to me? I'm not sure I can take 15 hours of this' I started to see all these red dots coming at me which really freaked me out. At this point I realized if I simply left the dark bathroom I wouldn't be seeing all these things that I didn't want to see. So I did. Soon after this the forth stage started.
Stage 4 (discomfort): Around this time my parents showed up. 'Hey' they said, 'we left some stuff here, we'll be out of the way soon.' This could have been really bad but I knew my parents wouldn't suspect that I was on some kind of psychedelic drug so I did my best to relax and play it cool. I even had a little conversation with both of them. It was a bit uncomfortable to be around them while I was tripping, but they soon left. Which made me very excited.
Stage 5 (excitement): As soon as they left I turned on 'Bittersweet Motel' which is a documentary about my favorite band Phish. I was so happy and excited while I was watching the movie. It was really fun to watch the movie and whenever I closed my eyes I could see all these beautiful patterns. Things that were said in the movie had great meaning to me and I felt like I was learning so much as I sat there watching a great movie. I was SO happy. I couldn't wait to see my friends CM and CS.
Stage 6 (bliss): Towards the end of the movie my friend A called. He asked if he and a couple of his friends could come over later. I told him that I was tripping pretty hard but if there weren't too many people it would be ok. I was so happy that my friends were going to come over and be with me. I was really looking forward to picking up on a bunch of people's energy. Around this time I started watching another Phish DVD which was just concert footage. It was SO much fun listening to music on AMT, and I was still really happy.
Stage 7 (weirdness): About halfway through the DVD things started getting REALLY weird (in a good way). I began to get open eye visuals of patterns which matched with the music. It was a lot of fun but it kept getting weirder and weirder. Words couldn't explain what I was feeling at this time because it was so bizarre and alien yet enjoyable. It almost felt like I was someone else. Although I enjoyed this feeling quite a bit I don't think I could have handled much more of it and it kept getting stronger and stronger. Luckily, around this time the doorbell rang and my friend D showed up.
Stage 8 (tranquility): When D showed up around 9 o'clock and he asked me if people were coming over tonight and how I was doing. I talked to him for a while about my experience and about a bunch of other things. It was very nice to talk to someone after feeling so weird and alien. I felt very relaxed. I then ended up giving him 6 woodrose seeds so he could trip as well (o man, that's a whole nother story). Soon afterwards about 6 more people showed up. CS, CM, L, AP, A, and M. This gave way to the 9th stage of the trip.
Stage 9 (bliss): We all just sat around and talked for a while. It was all of our first weeks back from college so we had plenty of stories tell. It was so much fun to pick up on everyone's energy. I wasn't talking very much compared to other people but when I did I was very coherent if it wasn't for the fact that my pupils were as big as dinner plates people wouldn't have known I was tripping. This whole time I was listening to some more phish and fugazi which was very fun and I was still getting very powerful and beautiful open eyed visuals. After about 3 hours of this, AP busted out a huge bowl which, she, L, and I smoked. This changed everything.
Stage 10 (paranoia) I got a bit paranoid around this time. Weed turned the volume of the trip up quite a bit and I wasn't quite ready for it. Visuals became very powerful and began to multiply by 4. It was very weird to see four of everything and I'm currently wondering what significance the number 4 had. After a little while I got adjusted to my new environment and the next stage of the trip began.
Stage 11 (extreme curiosity): Around this time (1 am or so) M took out what seemed to be an endless supply of schwag which he, D, CM, and I smoked. I became extremely curious about everything. I was thinking quite a lot about my friends, both those in the room those elsewhere. I can't really explain what I was thinking but it was a lot of fun just to sit and think. We then went upstairs and watched a movie which was very funny. I went to bed about halfway through the movie and everyone left.
Stage 12 (restlessness): Needless to say it was hard to fall asleep. I tried and tried but it wasn't happening. So I gave up and turned on some music.
Stage 13 (tranquility): WOW. It was a lot of fun to sit in the dark and listen to music. Around this time the visuals became the most powerful and enjoyable. I felt like I was seeing music at times. After a cd ended or I got tired of it I would blindly pick another from my case, allowing fate decide where my trip would head. It was a lot of fun and I hoped I'd never fall asleep. I ended up listening to lot of music (stravinsky is AMAZING while tripping). I hoped I'd never fall asleep. But eventually I did.
Stage 14 (sleep): Don't remember much about this. I wish I did. I woke up the next day at 10, having gotten about 5 hours of sleep and I felt kinda shitty. I had a pretty big headache but as soon as I got some food I felt better. I was pretty tired all day and the next night I slept for 13.5 hours straight.
All in all this was an amazing trip. Some parts were a bit much but that's to be expected with psychedelics. I drank A LOT of water and gatorade. AMT made me VERY dehydrated and it made my body temperature raise quite a bit.  Lastly, the trip lasted at least 14 hours for me.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


|
Accessing the clinSIGHT Library |
Use the following steps to access the clinSIGHT library. The Library contains study and site-related documents and reports. This information is retrieved from other systems and is available two days prior to scheduled monitoring visits.
Begin at your Homepage.
Click the Protocol/Site you want to view at the Site panel.
|
Note: |
The Site Overview page displays, a navigation bar at the left of the screen contains links to the Site Overview, Library, Letter templates and Monitoring Forms. |
Click Library.
|
Note: |
The Library for the specific Protocol/Site is displayed. In the main panel you can click on the Category field to filter the documents by categories, or you can define a date range to limit the results you see on the screen. |
Click the title link to review the document.
When finished reviewing the close document.
|
Note:
|
The Library is available offline, access the Library by following the steps listed above while in the offline environment. |


We're located at:
25743 Bloom Court
Locket, GA 85524
Phone Number:
(814) 555 9608
Email Address
<EMAIL_ADDRESS>We're located at:
25743 Bloom Court
Locket, GA 85524
Phone Number:
(814) 555 9608
Email Address
<EMAIL_ADDRESS>We're located at:
25743 Bloom Court
Locket, GA 85524
Phone Number:
(814) 555 9608
Email Address
forwardfitness@gmail.com


A Tribute To all Microverse Developpers
The Global School for Remote Software Developers.
No matter where you are in the world,
Microverse trains you
to become a remote software developer.
It connects you with life-changing professional opportunities.
To Microverse, With our Love
when we first met we were really broke
we got back into code & it was no joke
Our careers took off & they flew us to cool places
met many people, lots of smiling faces
Selma and Michael book deal, is this really real?
not long ago we skipped many meals
soft skills, coding skills, ready go
everybody knows it’s who and what you know
If you think we are dumb for loving Microverse
you better listen up and you better get hip
don’t waste your hate on us, we will help other coders
homeless coders and talented mentees.
newbies, seniors, mid-levels alike
Gang of Two, Michael and Selma
Put us all together & it’s a motley crew
what we have in common is what we all knew…
code can change your life


At Sib crypto, we believe in providing services that are meant to meet your requirements. Our work does not get more than once you have made a purchase with us. We are here to help you and guide you during this journey.
At Sib crypto, we believe in providing services that are meant to meet your requirements. Our work does not get more than once you have made a purchase with us. We are here to help you and guide you during this journey.
At Sib crypto, we believe in providing services that are meant to meet your requirements. Our work does not get more than once you have made a purchase with us. We are here to help you and guide you during this journey.
SibCrypto is a company registered in Amsterdam, Netherlands.
We have operated a mining facility since 2016. Initially, we started our mining facility with €9000 investment in Bitmain hardware. In the last two years, we have grown from strength to strength.
Read moreSib Crypto Blockchain Wallet’s wallet is crafted to provide user-friendly transactions without compromising security.
The wallets are forged to create privacy for transactions by masking user identities and hence securing your funds. It is created with the purpose of liberating day to day transactions so that a user can send or receive payments without having to give away personal data. In a world of digitization, it is essential to maintain data privacy to avoid any malicious attacks or breach in cybersecurity.
Read more


What is this?
Enter your starting and ending locations, as well as the type of place where you'd like to stop on the way, and Roadli will show you the fastest route options.
Examples?
Palo Alto to San Francisco, via an In-n-Out Burger
Boston to Providence, via a Starbucks
Doesn't Google Maps do this?
The redesigned Google Maps now has this basic functionality, but does not present the alternative options as clearly.
I found a bug / want a feature / have a question.
Awesome.
Email me!


Hackney skills and trainingUK PRN: 12345678
Contracts
View and sign your contracts with the SFA online.
Apprentices
View, update and agree employer cohort requests, or update existing apprentice details.
Apprenticeships
View and amend your apprenticeships


Wayne Pivac names Johnny McNicholl and Willis Halaholo in first Wales squad
Wayne Pivac has named New Zealand-born backs Johnny McNicholl and Willis Halaholo among five uncapped players in his first Wales squad to face the Barbarians this month.
McNicholl and Halaholo, both 29, have become eligible for international selection on the three-year residency rule and are joined by fellow uncapped players Taine Basham, Shane Lewis-Hughes and Ashton Hewitt.
New head coach Pivac also named 22 members of the Rugby World Cup group in a 35-man squad for the match against a Baa-Baas side coached by predecessor Warren Gatland on November 30.
Wales captain Alun Wyn Jones is among a number of star names not included, with Pivac already unable to call upon Jonathan Davies and Rhys Patchell through injury alongside Liam Williams and Tomas Francis.
England-based players, including Northampton's Dan Biggar and Saracens prop Rhys Carre, are also unavailable, because Premiership players can not be released to other countries for matches outside the designated World Rugby Test window.
Scarlets prop Rob Evans, who missed out on the World Cup, features in the squad and there are also opportunities for fly-half Sam Davies and Dragons back-row forward Ollie Griffiths.
"It is great to get the squad announced and get the ball rolling on our first meet-up and first fixture next week," Pivac said.
"This Barbarians game is a great chance for us as a new squad and management to get together and to set the scene for what we are looking to do. Having this opportunity ahead of tournament rugby in the Six Nations is ideal for us.
"It is also a great chance for some players to really put their hand up and show what they are about and take to the field in front of a big crowd at home.
"We will be bringing a few additional players in to train with the squad during the week, just to see them in the environment and will also be bringing some of the injured players in for some of the scene-setting style sessions."


This website is created by blogdown and hugo. I used the XMIN template designed by Yihui Xie. Specificly, I followed the online book: blogdown: Creating Websites with R Markdown, but in practice, I encountered many problems when I read it. So I will write a post about how I solve those problems and finally set up this website.


4 Reasons Why The U.S. Needs to Decriminalize Drugs - And Why We're Closer Than You Think
Half of all adults in the U.S. have used an illegal drug at some point. If this was your loved one, family member or friend, would they deserve to be arrested, jailed, and face a lifetime of punishment and discrimination?
Ending criminal penalties for drug possession, often referred to as decriminalization, means nobody gets arrested, goes to jail or prison, or faces criminal punishment for possessing a small amount of a drug for personal use. As detailed in a new Drug Policy Alliance report, there’s an emerging public, political, and scientific consensus that otherwise-law-abiding people should not be arrested, let alone locked in cages, simply for using or possessing a drug.
This is a pivotal moment. Our retrograde federal administration is ramping up the war on drugs – despite widespread public support for ending it and instead focusing our limited resources on health-based approaches to drug addiction and overdose deaths.
Since most drug enforcement is carried out at the local and state levels, not the federal level, jurisdictions across the U.S. are responding to Trump and Sessions by moving drug policy reforms forward with increasing urgency.
Here’s why the U.S. needs to decriminalize drugs – and why we’re actually closer than you might think.
1) Decriminalization benefits public safety and health.
Decades of empirical evidence from around the world shows that reducing and eliminating criminal penalties for drug possession does not increase rates of drug use or crime – while drastically reducing addiction, overdose and HIV/AIDS.
Today, as overdose deaths skyrocket all over the U.S., people who need drug treatment or medical assistance may avoid it in order to hide their drug use. If we decriminalize drugs, people can come out of the shadows and get help.
More than a million people are arrested each year in the U.S. for drug possession, but this has done nothing to reduce the availability of drugs or the harms they can cause. What we’re doing doesn’t work – and actually makes things worse.
Our current policies are diverting law enforcement resources from serious public safety issues. Hundreds of thousands of rape kits go unprocessed at the same time we're spending billions of dollars arresting and punishing people for drug possession. Our limited public resources would be better spent on expanding access to effective drug treatment and other health services.
2) Drug possession arrests fuel mass incarceration and mass criminalization – not to mention institutionalized racism and economic inequality.
Criminalizing drug use hurts families and communities, compounds social and economic inequalities, and unfairly denies millions of people the opportunity to support themselves and their families.
U.S. law enforcement arrests about 1.5 million people each year for drug law violations – and more than 80% of those arrests are for simple drug possession. On any given night, there are at least 133,000 people behind bars in U.S. prisons and jails for drug possession – and 63,000 of these people are held pre-trial, which means they’re locked up simply because they’re too poor to post bail.
Discriminatory enforcement of drug possession laws has produced profound racial and ethnic disparities at all levels of the criminal justice system. Black people comprise just 13% of the U.S. population and use drugs at similar rates as other groups – but they comprise 29% of those arrested for drug law violations and 35% of those incarcerated in state prison for drug possession.
Drug criminalization also fuels mass detentions and deportations. For noncitizens, including legal permanent residents – many of whom have been in the U.S. for decades and have jobs and families – possession of any amount of any drug (except first-time possession of less than 30 grams of marijuana) can trigger automatic detention and deportation, often without the possibility of return. From 2007 to 2012, 266,000 people were deported for drug law violations, of whom 38 percent – more than 100,000 people – were deported simply for drug possession.
3) Other countries have successfully decriminalized drugs – and the U.S. is moving in the right direction, despite Trump.
Most drug laws exist on a spectrum between criminalization and decriminalization. Some countries have eliminated penalties for possession of all drugs, while some countries and U.S. jurisdictions have eliminated penalties only for marijuana possession. Still other countries and U.S. jurisdictions have taken steps in the right direction by reducing criminal penalties without eliminating them entirely.
Some of these efforts in the U.S. include “defelonizing” drug possession by reducing it to a misdemeanor (which the Oregon legislature just approved last week), decriminalizing or legalizing marijuana possession, establishing pre-arrest diversion programs such as Law Enforcement Assisted Diversion (LEAD), and enacting 911 Good Samaritan laws, which allow for limited decriminalization at the scene of an overdose for people who are witnesses and call for emergency medical assistance. But more ambitious efforts are needed.
Several countries have successful experience with decriminalization, most notably Portugal. In 2001, Portugal enacted one of the most extensive drug law reforms in the world when it decriminalized low-level possession and use of all illegal drugs. Today in Portugal, no one is arrested or incarcerated for drug possession, many more people are receiving treatment, and addiction, HIV/AIDS and drug overdose have drastically decreased.
The Portuguese experience demonstrates that ending drug criminalization – alongside a serious investment in treatment and harm reduction services – can significantly improve public safety and health.
4) The American public – as well as leading governmental, medical, public health, and human rights groups – already support drug decriminalization.
Polls of presidential primary voters last year found that substantial majorities support ending arrests for drug use and possession in Maine (64%), New Hampshire (66%) and even South Carolina (59%). In 2016, the first state-level decriminalization bill was introduced in Maryland and a similar version was reintroduced in 2017. The Hawaii legislature, meanwhile, overwhelmingly approved a bill last year creating a commission to study decriminalization.
Just last month, the United Nations and World Health Organization released a joint statement calling for repeal of laws that criminalize drug use and possession. They join an impressive group of national and international organizations who have endorsed drug decriminalization that includes the International Red Cross, Organization of American States, Movement for Black Lives, NAACP, and American Public Health Association, among many others.
To learn more, check out DPA’s new report, It’s Time for the U.S. to Decriminalize Drug Use and Possession, which lays out a roadmap for how U.S. jurisdictions can move toward ending the criminalization of people who use drugs.
Jag Davies is director of communications strategy at the Drug Policy Alliance.
Half of all adults in the U.S. have used an illegal drug at some point. If this was your loved one, family member or friend, would they deserve to be arrested, jailed, and face a lifetime of punishment and discrimination?
Ending criminal penalties for drug possession, often referred to as decriminalization, means nobody gets arrested, goes to jail or prison, or faces criminal punishment for possessing a small amount of a drug for personal use. As detailed in a new Drug Policy Alliance report, there’s an emerging public, political, and scientific consensus that otherwise-law-abiding people should not be arrested, let alone locked in cages, simply for using or possessing a drug.
This is a pivotal moment. Our retrograde federal administration is ramping up the war on drugs – despite widespread public support for ending it and instead focusing our limited resources on health-based approaches to drug addiction and overdose deaths.
Since most drug enforcement is carried out at the local and state levels, not the federal level, jurisdictions across the U.S. are responding to Trump and Sessions by moving drug policy reforms forward with increasing urgency.
Here’s why the U.S. needs to decriminalize drugs – and why we’re actually closer than you might think.
1) Decriminalization benefits public safety and health.
Decades of empirical evidence from around the world shows that reducing and eliminating criminal penalties for drug possession does not increase rates of drug use or crime – while drastically reducing addiction, overdose and HIV/AIDS.
Today, as overdose deaths skyrocket all over the U.S., people who need drug treatment or medical assistance may avoid it in order to hide their drug use. If we decriminalize drugs, people can come out of the shadows and get help.
More than a million people are arrested each year in the U.S. for drug possession, but this has done nothing to reduce the availability of drugs or the harms they can cause. What we’re doing doesn’t work – and actually makes things worse.
Our current policies are diverting law enforcement resources from serious public safety issues. Hundreds of thousands of rape kits go unprocessed at the same time we're spending billions of dollars arresting and punishing people for drug possession. Our limited public resources would be better spent on expanding access to effective drug treatment and other health services.
2) Drug possession arrests fuel mass incarceration and mass criminalization – not to mention institutionalized racism and economic inequality.
Criminalizing drug use hurts families and communities, compounds social and economic inequalities, and unfairly denies millions of people the opportunity to support themselves and their families.
U.S. law enforcement arrests about 1.5 million people each year for drug law violations – and more than 80% of those arrests are for simple drug possession. On any given night, there are at least 133,000 people behind bars in U.S. prisons and jails for drug possession – and 63,000 of these people are held pre-trial, which means they’re locked up simply because they’re too poor to post bail.
Discriminatory enforcement of drug possession laws has produced profound racial and ethnic disparities at all levels of the criminal justice system. Black people comprise just 13% of the U.S. population and use drugs at similar rates as other groups – but they comprise 29% of those arrested for drug law violations and 35% of those incarcerated in state prison for drug possession.
Drug criminalization also fuels mass detentions and deportations. For noncitizens, including legal permanent residents – many of whom have been in the U.S. for decades and have jobs and families – possession of any amount of any drug (except first-time possession of less than 30 grams of marijuana) can trigger automatic detention and deportation, often without the possibility of return. From 2007 to 2012, 266,000 people were deported for drug law violations, of whom 38 percent – more than 100,000 people – were deported simply for drug possession.
3) Other countries have successfully decriminalized drugs – and the U.S. is moving in the right direction, despite Trump.
Most drug laws exist on a spectrum between criminalization and decriminalization. Some countries have eliminated penalties for possession of all drugs, while some countries and U.S. jurisdictions have eliminated penalties only for marijuana possession. Still other countries and U.S. jurisdictions have taken steps in the right direction by reducing criminal penalties without eliminating them entirely.
Some of these efforts in the U.S. include “defelonizing” drug possession by reducing it to a misdemeanor (which the Oregon legislature just approved last week), decriminalizing or legalizing marijuana possession, establishing pre-arrest diversion programs such as Law Enforcement Assisted Diversion (LEAD), and enacting 911 Good Samaritan laws, which allow for limited decriminalization at the scene of an overdose for people who are witnesses and call for emergency medical assistance. But more ambitious efforts are needed.
Several countries have successful experience with decriminalization, most notably Portugal. In 2001, Portugal enacted one of the most extensive drug law reforms in the world when it decriminalized low-level possession and use of all illegal drugs. Today in Portugal, no one is arrested or incarcerated for drug possession, many more people are receiving treatment, and addiction, HIV/AIDS and drug overdose have drastically decreased.
The Portuguese experience demonstrates that ending drug criminalization – alongside a serious investment in treatment and harm reduction services – can significantly improve public safety and health.
4) The American public – as well as leading governmental, medical, public health, and human rights groups – already support drug decriminalization.
Polls of presidential primary voters last year found that substantial majorities support ending arrests for drug use and possession in Maine (64%), New Hampshire (66%) and even South Carolina (59%). In 2016, the first state-level decriminalization bill was introduced in Maryland and a similar version was reintroduced in 2017. The Hawaii legislature, meanwhile, overwhelmingly approved a bill last year creating a commission to study decriminalization.
Just last month, the United Nations and World Health Organization released a joint statement calling for repeal of laws that criminalize drug use and possession. They join an impressive group of national and international organizations who have endorsed drug decriminalization that includes the International Red Cross, Organization of American States, Movement for Black Lives, NAACP, and American Public Health Association, among many others.
To learn more, check out DPA’s new report, It’s Time for the U.S. to Decriminalize Drug Use and Possession, which lays out a roadmap for how U.S. jurisdictions can move toward ending the criminalization of people who use drugs.
Jag Davies is director of communications strategy at the Drug Policy Alliance.


Noverse is a New York independent software designer and developer, established in 2010 by Hilton Lipschitz (@hiltmon) to provide experienced consulting and development services for Hedge Funds, and to craft brilliant web, iOS and Macintosh software.
For more recent writing, go to Hilton's public web site at hiltmon.com.
Contact | About | Press | Beta


PART II. VOTING MACHINE SYSTEM
Note
Part heading amended by L 1975, c 36, §5(1).
§16-11 Definitions. "Protective counter" means an apparatus built into the voting machine which cannot be reset, which records the total movement of the operating lever.
"Voting machine system" means the method of electrically, mechanically, or electronically recording and counting votes upon being cast. [L 1970, c 26, pt of §2; am L 1975, c 36, §5(2)]
Revision Note
Definitions rearranged.


Home
(current)
Quiz
“Powerful you have become, the dark side I sense in you.”
I am your father!
No...no. That's not true. That's impossible!


LizardIcons
bridge-draw
bridge-fixed
bridge
culvert-with-outlet
culvert
manhole
outlet
overflow-open
overflow
pipe
pumpstation-diesel
pumpstation-electric
pumpstation-wind
pumpstation
rwzi
satellite
terrain
weir-automatic
weir-controlable
weir


#blog_title trim=ends The Generator – how to get live d-portal content on your website #blog_body form=markdown Check out this excellent vimeo that Bond put together which shows you the quick and simple steps to using the d-portal generator. The generator allows you to choose from a wide variety of ways to view IATI data within d-portal, and then provides a link for you to easily embed the content you’ve chosen into your own site – great if you want to display your own IATI data in an engaging way, or are looking to visualise other IATI data for analysis. You can embed charts, tables, maps and various other content, all of which can then be clicked through to allow users to explore the data further in d-portal – and once it’s embedded in your site it will update automatically overnight! Feedback welcome as always – on the generator or other areas of d-portal...


About SixPenny Systems
Ennui before they sold out sartorial, pabst migas portland tacos unicorn selvage put a bird on it typewriter readymade cray. Ethical meh tbh enamel pin lo-fi, church-key freegan bespoke. Food truck seitan enamel pin succulents put a bird on it shaman mustache brooklyn post-ironic locavore asymmetrical. Hell of hammock readymade tilde banh mi four loko migas health goth la croix try-hard cred put a bird on it offal four dollar toast cloud bread.
Everyday carry shabby chic palo santo unicorn before they sold out hoodie tumblr offal. Af seitan thundercats biodiesel sriracha whatever artisan, craft beer meditation shabby chic skateboard sartorial. Wayfarers crucifix kogi truffaut jean shorts. Gochujang coloring book neutra, schlitz williamsburg tumeric snackwave organic master cleanse cloud bread. Polaroid tousled next level banjo blog vegan, distillery kinfolk DIY.
DYI omo taiyaki waistcoat, hammock meh leggings ramps tote bag gluten-free. Etsy tilde tofu semiotics, photo booth cloud bread vice 90's flannel pickled wolf tattooed blue bottle taiyaki.


The models in a Quaestor knowledgebase are by default transient – if the Quaestor server is stopped, then the contents of the knowledgebase disappear. It is possible, however, to create a persistent model (or, in Quaestor’s terms, a persistent submodel within a ‘knowledgebase’), backed by a database, which will persist between Quaestor invocations.
The preferred persistence mechanism – certainly the simpler to set up – uses the Jena TDB library.
To configure a persistent submodel, you must create the submodel by
PUTting appropriate metadata to a submodel's metadata URL. You must
do this when creating the submodel – you cannot convert an existing
model to a persistent one by altering its metadata. You declare that
the submodel, named by its URI, is of type
quaestor:PersistentModel
, by PUTting RDF like the
following:
@prefix quaestor: <http://ns.eurovotech.org/quaestor#>. <> a quaestor:PersistentModel.
Note that, since this RDF is parsed with the submodel's URI as its
base URI, you can most conveniently refer to the submodel as just
<>
(or rdf:about=""
when using
RDF/XML).
This will only work if the Quaestor server has been configured to permit persistent models.
The other persistence mechanism currently implemented in Quaestor is one which uses the Jena SDB interface. This is more fully developed than TDB, and is probably currently preferable for storing large volumes of data, although with increasing maturity, TDB should take over this role, too.
To use this persistence mechanism, you must set up and initialise your SDB database, as discussed at the Jena SDB support pages. This is unfortunately a rather fiddly process.
Having done that, you create a new submodel for the knowledgebase,
by uploading RDF as described elsewhere. In
this case, however, rather than the RDF being the content of the
submodel, it is a specification of the connection to the SDB database,
as described in the SDB
documentation. For example, if you had set up SDB
using a PostgreSQL database named sdb1
, with a username
of postgres
, then this configuration file might look as
follows:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix sdb: <http://jena.hpl.hp.com/2007/sdb#> . [] rdf:type sdb:Store; sdb:layout "layout2/index"; sdb:connection _:c. _:c rdf:type sdb:SDBConnection; sdb:sdbType "postgresql"; sdb:sdbHost "localhost"; sdb:sdbName "sdb1"; sdb:sdbUser "postgres"; sdb:driver "org.postgresql.Driver".
After that, the contents of the SDB store will appear as part of the knowledgebase containing this submodel.


You need to enable JavaScript to run this app.
This is web Version of Imessage please use a PC, Laptop or a Tab in Landscape-mode


New York Time's person of the year 2006.
I am a untiring fan of computer technology and have dedicated myself to growing as fast as the field itself. One of my first free form projects was a C# application that I made to catalog my weekly bloodsugars, find patterns and hopefully learn better control as a type one diabetic.
Through this and countless other projects I have come to recognize and respect the limitless possibilities software development offers and look at the future with optimism and excitement.


TIMECOP [Spoilers] A film review by Mark R. Leeper Copyright 1994 Mark R. Leeper
Capsule review: Jean-Claude Van Damme is a policeman charged with stopping time travel related crime. He is on the trail of a politician played by Ron Silver who travels back from 2004 to steal and to change history. This is a nice looking film, particularly in its 1920s sets, but what Van Damme does to the villains is about what the script does to logic. Rating: low +1 (-4 to +4)
It is 1863 and a shipment of gold for the Confederacy is stolen by a highwayman sporting a laser-guided machine gun. This is a time travel crime and that makes it particularly dangerous since even a small change to the past could completely change the future. That is why the government has created the Time Enforcement Commission or TEC. And one of its chief operatives is Max Walker (Jean-Claude Van Damme). The TEC is watched over by Senator McComb (Ron Silver). But McComb has been seduced by the power time travel gives and is hatching his own illegal plans to make himself President. Walker knows his chief enemy is the Senator who controls his agency. But his efforts are sabotaged by widespread corruption in the TEC going back to McComb. Complicating things, now he is saddled with an inexperienced partner, Fielding (played by Gloria Reuben), and he would rather be working alone. (Gee, what an original plot complication!) Walker must go back with Fielding to 1994, that pivotal year when i) the TEC was founded, ii) mysterious thugs killed Walker's wife (Mia Sara), and iii) McComb got control ofa major high-TEC and high-tech corporation. That 1994 must have been a pretty exciting year to live!
Like a lot of current films the look of TIMECOP seems to take precedence over the acting or plot. The film is directed by Peter Hyams who proved in films like OUTLAND that he is much more into the look of science fiction than the thought behind it. In fact, he wears an unusual pairing of hats on this film. He is not just the director of the film, he is also the director of photography and some of the effects are effective. Hyams uses a nice effect of warping space to show people's arrival in a new time, though it looks related to the invisibility effect in PREDATOR. The rocket sled that launches time travel is a bit melodramatic and the reason why this acceleration is needed is never explained, unless it is some sort of tribute to BACK TO THE FUTURE. It does contribute to the effect of a film that is generally fairly slickly mounted. Not all of the visuals are as good, however. One false move is the production design of the 2004 cars, which apparently have evolved to look almost like DAMNATION ALLEY armored vehicles by 2004. Certainly the look of cars is intended to change more in the next ten years than it did in the last ten.
Other script touches are about what one could expect. There was entirely too many fights for my taste, but after all, this is a Jean- Claude Van Damme movie. One could complain about the Bondisms--the wisecracks after violent fights--but it seems that they have become
Timecop September 19.1994 Page2
inseparable from action films. There is some reasonable wit in the film. There is a nice bit connected with a piece of advice that that McComb gives his younger self. But the nicest quip is the choice of end-title music.
As an actor Jean-Claude Van Damme has playing an expert Belgian kick-boxer down very well. I suppose that is better than him not being able to play an expert Belgian kick-boxer, but it still does not amount to breadth. For once he has co-stars who have previously been in films that do not feature fighting. Ron Silver is an actual actor in the non-exploitation film sense. He may not have a lot of real acting to do here other than to seem sinister, but he at least does his villain with dignified restraint. Gloria Reuben and Mia Sara are along as co- stars but neither of them have anything special to do in their roles. Mia Sara has been around in films at least since FERRIS BEULLER'S DAY OFF, Reuben is a relative newcomer, and each seems to do what the script requires and avoids walking into furniture, but neither shows any real flash.
This is a film with too little science fictional thought and too much karate kicking. But parts are undeniably fun. I give it a low +1 on the -4 to +4 scale.
SPOILER SPOILER SPOILER SPOILER
Some of the concepts of TIMECOP should be discussed in an evaluation of the film and I hope I don't come off like the film reviewer (I think from the New York Times) whose review of DESTINATION MOON said that it was absurd and that even the children in the audience could tell the producers that in space rockets don't work because there is nothing to push against. Don't trust a film reviewer's knowledge, including mine.
Time enforcement is an old idea in science fiction harkening back at least to Jack Williamson's LEGION OF TIME and Poul Anderson's TIME PATROL. Generally a feature of time travel stories are time paradoxes, most of which hark from the paradox that a time traveler could go back in time and kill his parents before they bear him. Then he would never have existed, so there would have been nobody to kill his parents. Also often a feature of time travel stories are extra rules supposedly fall out of the physics of time travel. These may or may not bear close scrutiny. One that might make sense might be that an equal mass has to be sent in the opposite direction in time or that you are limited in the amount of magnetic metal that can go through time. Rules often make less sense. THE TERMINATOR assumed only living matter can be sent. No other physical phenomenon can detect living from non- living matter, but I would be willing to give them the benefit of the doubt if they just followed that rule. But, of course various parts of the human body like hair are not really living matter either. If only living matter went through time portals, a time traveler would arrive at best bald. THE TERMINATOR seemed to miss that detail and did not shave Michael Biehn.
TIMECOP shows signs that the authors thought about *having* rules and paradoxes, but not much about the rules and paradoxes themselves. The special rules include this concept that "the same object cannot occupy the same place at the same time." I think that the principle is that different objects cannot do that. But what generally happens there is that they rebound off each other. Technically speaking, the same object ALWAYS occupies the same place at the same time. Actually the rule as applied in the film seems to be that is a time traveler comes in contact with his previous self the two annihilated each other. But you have very little matter in common with yourself of ten years ago. Nearly all (or is it actually all?) of the living matter in your body from ten years ago has been replaced. Even if that was not true and there was some point on the surface that had not changed, you would have to get those two points to come in contact. It would not suffice that your left hand from 1994 and your right shoulder from 2004 came in contact. This whole rule of annihilation is more a plot contrivance than having anything much to do with logic. It is like having vampires killed by sunlight.
Mike Richardson and Mark Verheiden don't actually seem to understand what makes time paradoxes work. In the film Fielding@2004 (if I may coin a notation) is killed in 1994. Back in 2004 there is no sign that Fielding lived that last decade from 1994 to 2004. That would be true if Fielding@1994 had been killed, but there seems not to make sense as a result of Fielding@2004 being killed. At the end of the film Walker has nullified his whole reason to have gone to 1994 and nobody remembers that he went. But he obviously is returning from some place. Where do people think he is returning from? And while I am asking questions, how do you carbon-date gold? And what does it even mean to carbon-date gold?
Mark R. Leeper<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


Page 1 of 1
Version alpha 2 Available~!
Posted:
Thu Aug 28, 2008 7:51 am
by Karl G.
This version is uploading right now. I've restarted the server with the new verison.
Download here (in 10 minutes or so):
http://www.unseenstudios.com/evidyon/download/evidyon-setup.msiThis includes the following fixes:
- Fixed item rendering (should fix the BSOD bug! I hope...)
- About 3x more items with many new attributes
- More minor speed fixes
- I took a look at the server crashing issue so it should go down less often now
Let me know if you find any problems!
Re: Version alpha 2 Available~!
Posted:
Thu Aug 28, 2008 7:53 am
by Karl G.
finished uploading
Re: Version alpha 2 Available~!
Posted:
Thu Aug 28, 2008 8:03 am
by Nirvana9832
karl u own.
Is it possible u can put even a Picture of a map somewhere? i seem to get lost alot trying to explore. Also maybe a -stuck command to teleport to the 3 crystals. =]
Re: Version alpha 2 Available~!
Posted:
Thu Aug 28, 2008 8:13 am
by xile
-stuck...map...anything...I'm still lost in the desert. The server didn't return me
Re: Version alpha 2 Available~!
Posted:
Thu Aug 28, 2008 8:27 am
by Richard. UK
KARL YOU FREAKING ROCK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 - SAY BYE BYE INFINITE NV4_DISP.DLL LOOP
Ok i am trying to calm down....THIS IS AMAZING LOL!!!
Re: Version alpha 2 Available~!
Posted:
Thu Aug 28, 2008 9:34 am
by Karl G.
haha thanks Richard but calm down before you break something
I'm imagining you flailing around on your keyboard lol
Anyway, I'll implement a return ability soon. I've added it to my to-do list.
Re: Version alpha 2 Available~!
Posted:
Thu Aug 28, 2008 9:43 am
by Sega Rally Pownz
Hmm... I finally got it downloaded just to realize another error:
Re: Version alpha 2 Available~!
Posted:
Thu Aug 28, 2008 9:50 am
by daekighn
Im getting the same error Sega for some reason... Also, Karl i dont know if its my internet or what but my download stops alot and it wont start back so i cant play =( so i dont think ill be playing anytime soon
Re: Version alpha 2 Available~!
Posted:
Thu Aug 28, 2008 11:18 am
by Sega Rally Pownz
daekighn wrote:Im getting the same error Sega for some reason... Also, Karl i dont know if its my internet or what but my download stops alot and it wont start back so i cant play =( so i dont think ill be playing anytime soon
That happens to me too.
Re: Version alpha 2 Available~!
Posted:
Thu Aug 28, 2008 1:37 pm
by Paz the Spaz
For some reason (might be my internet) I can't download the installer. It gets to like 1 mb and then just stops
Re: Version alpha 2 Available~!
Posted:
Thu Aug 28, 2008 2:04 pm
by Delurium II
Xile: just use shift and hit yourself to death. Or use the firespell thingy that can make you take dmg.
My brother was in that desert and it seems like its impossible to get out of.
Re: Version alpha 2 Available~!
Posted:
Thu Aug 28, 2008 7:38 pm
by Blue Tiger
Any reason why it downloads so slow? Im on fast cable and its going as low as 34kb/sec.. Its also just stops downloading for me, stopd at 78% and 3% for me both times iv tried download... hmmm
Re: Version alpha 2 Available~!
Posted:
Thu Aug 28, 2008 7:45 pm
by xile
I have infinite HP.
That doesn't work


New York Times Experiment Turns Heads, Cameras
Researchers at the Gray Lady spice up monochrome articles with vibrant tours through three dimensional scans of news-worthy locations. Readers currently use their browsers' scroll bars to navigate waypoints but the underlying technology is standard WebGL so the obvious next step is to immerse readers in WebXR-driven experiences.
Fast Shared Memory Returns in Firefox 79
The immersive web community received a particularly painful blow in 2018 when the Spectre timing attacks broke down the safe use of SharedArrayBuffers. This crucial piece of technology is required by modern 3D rendering engines and its loss blocked exciting (and beautiful) immersive web work by the Unity and Unreal Engine teams. After quite a bit of work, Firefox 79 has joined Chrome in returning this important technology to the immersive web.
Speedy Graphics On By Default in Upcoming Safari Preview
While Apple's Safari team continues to be notoriously quiet about their plans, they have had an implementation of WebGL2 in the works for a couple of years. This week Dean Jackson (a co-editor of the specification) mentioned that this core rendering upgrade for the immersive web will be turned on by default in an upcoming Safari Technology Preview. This is a good (but of course not certain) indication that better visual quality will be available across the majority of evergreen browsers in the near future.
PlayCanvas Points At Experimental Support for Hands in WebXR
With the recent experimental access to hand tracking data in Facebook's Oculus Browser, the open source community rallied together to bring support to three rendering libraries: PlayCanvas, Three.js, and Babylon. While the tech press covers immersive display technology in minute detail most journalists miss that tracked input devices and camera-tracked hands provide another (ultimately more valuable?) area for exploration and discovery on the immersive web.
Samsung Internet Tests Augmented Reality
The Augmented Reality module of the WebXR Device API is still making its way through the process of becoming a standard but that hasn't stopped the Samsung Internet team from making an experimental version available for adventurous web developers. In this step-by-step tutorial Ada shows you how to view a demonstration site and then how to remix your own art into the scene using A-Frame and Glitch.
Blender Development Fund Picks Up Speed Thanks to Microsoft
The Blender Foundation announced that Microsoft joined at a financial level that funds one Blender developer for 6 months out of the year. Other corporate sponsors at this level include Intel and Ubisoft. Especially in the open source community, Blender's license costs ($0 per person) and rapidly improving features make it a common choice for the creation of and collaboration on art for the immersive web.


SUSPICIOUS AND THRESHOLD TRANSACTIONS
EXIT X
Quick Facts
Quiz
Are you sure you wish to exit this quiz?
Your answers will not be recorded if you leave the quiz now.
Complete the sentence. If a suspicious matter reporting obligation arises in relation to an existing customer, your organisation must…


Buhari sympathises with leaders of East, Central Africa over deadly floods
by NANPresident Muhammadu Buhari has expressed solidarity with the government and people of Kenya and the Democratic Republic of Congo (DRC) over the deadly flood disasters and devastating mudslides wreaking havoc in some parts of their countries
In separate messages of sympathy and solidarity to the leaders of Kenya and DRC, the two countries most hit by the recent incidents, President Buhari said:
“The government of Nigeria sympathises with you and the victims of these deadly and devastating flood disasters and mudslides.”
A statement by the President’s Senior Special Assistant on Media and Publicity, Malam Garba Shehu, in Abuja on Sunday, quoted the Nigerian leader as expressing sadness over the loss of lives, the economic and social disruptions caused by these natural disasters.
President Buhari said: ”We are so interconnected by our common humanity that one man’s misfortune affects the joy of others because of the ligament of compassion that holds us together.”
”Emergency management response is one of Africa’s biggest challenges of development, and we should work together to find a common strategy to minimise the human and economic impacts of these catastrophes.”
The President told the leaders of Kenya and the Democratic Republic of Congo that ”the hearts and prayers of all Nigerians are with those affected by the natural disaster”.


Bind MVC model to Radio buttons
Bind the value, label and checked, and set selectedValue in the model.
Selected Value is:


{# The URL that assets will be loaded from if running from webpack-dev-server #} {% set webpack_dev_url = 'https://localhost:4000' %}


Specification
Specification
Orders(Drag any column to reorder it)
Name
Ascending
None
Descending
Price
Ascending
None
Descending
Race
Ascending
None
Descending
Type
Ascending
None
Descending
My Cart


* for optimal experience please do not view on mobile devices.
To delete the bus please type the bus number and click confirm.


LupSeat is a seat assignment generator specialized for applications for exam scenarios. It provides an quick and easy way for instructors to create a new seat layout.
LupSeat can be used from the command line but also comes packaged with a GUI. This program is cross-compatible, with distributions ready for both Mac and Windows.
The output of LupSeat is simple and graphical. It is ready to be printed out of the box, supporting most standard paper sizes.
The seats are spaced out as far as possible, minimizing the number of students in each chunk of seats using an algorithmic approach.


Node-Webkit - 1st Place
- Node-Webkit is created and developed in the Intel Open Source Technology Center.
-
Pros
- Well Documented
- Node.js modules can be accessed directly from the DOM
- Easy to get started
- Large community developing around it
-
Cons
- Still not at a 1.0 release
- Has a few short comings as far as the api goes


Long Form Essays
Sun, 15 Jan 2017 @ Rants
I’m always impressed by those who can churn lots of long form essays regularly. How did they do it? I have no idea.
To write such a long essay on any particular topic is one thing, to do it regularly is another thing.
No doubt, the ability to write long form essays comes with practice. Not only that, you have to read a lot. Then you have some ideas on what to write.
Articulating any idea is a skill that can be achieved through long form essays. This is one of the objective of this site.
I might not be able to produce 1000 words essay in one sitting but at least I keep writing on various ideas to flex my train of thoughts to a point where I can do it quickly.
The act of reading is an act of consumption. It does give you some kind of entertainment or fulfillment but no act of consumption can ever beat the satisfaction feeling produced by the act of producing.
This is where writing falls into – an act of producing, which gives a tremendous amount of satisfaction and fulfillment. Gone were the days where writing long form essays was the second nature to me. Those were the school days. 20 years back.
I’ll revive this habit. It can be done. Regular writings. Here. Now. 2017.


{% extends "master.html" %} {% block title %}List of Trees - PhyloCommons{% endblock %} {% block leftmenu %} {% include "tree_menu.html" %} {% endblock %} {% block nav-trees %}class="active"{% endblock %} {% block content %} {% if form %}
{% endif %} {% if tree_list %}| {{tree_id}}{% if max_match_count %} (matched {{ count }}/{{max_match_count}}){% endif %} Details {% if form.taxa.value and count > 1 %} View these taxa in tree viewer {% endif %} |
Results {{low_result}}-{{high_result}} of {{total_results}}.
No trees were found. Try a different search. (Note that searches are case sensitive.)
{% endif %} {% endblock %}


Hi Folks,
I'm a couple of days into the wonderful new world of emoncms. My local pi-based install is working well, but for the past couple of days, I have been unable to make any of the dashboard widgets work on the public emoncms.org site.
They were working, but now I just get zeros everywhere, with both dials or feedvalues. I don't know what I did wrong, but as a new user, I probably did something stupid, and I just can't work my way out of it again.
My inputs are working OK, as are my feeds, and even the dashboard graphs are working too - just not the widgets.
I've tried recreating deleting/recreating feeds, deleting/reconfiguring inputs, and I've even created new dashboards - no joy. My username is 'griffous' and if something has be deleted/reset to make it work again, I can set up again from scratch, if necessary. There's only 3-4 days of data so far anyway.
Thanks in advance for any help!
Jonathan
Re: Online emoncms widgets not working
Sorry to bump, but I just can't work this one out by myself.
Is it just me then? Do I need to create a new account and try that next?
Thanks,
Jonathan
Re: Online emoncms widgets not working
I've never used emonCMS for real, but I've deleted, added and changed all manner of things using the same account and never seen anything that wasn't mendable.  If you changed your feeds around after you made the dashboard, they might need reconnecting by re-selecting the feed.
Otherwise, somebody who knows emonCMS better needs to join in.
Re: Online emoncms widgets not working
I've PM'd you!
Paul
Re: Online emoncms widgets not working
Hi Robert,
I certainly don't think I've done anything especially silly. I have tried configuring different scales, as well as picking a range of feeds, including different data types: Watts, kW, Kwh, all with the same result.
I also have a local emoncms install running on my raspberry pi and it IS correctly working with widgets, so the input data is definitely OK. I deleted the online emoncms inputs and carefully recreated the ruleset from my local install here, but I still had the same result.
There's every chance I clicked too fast for my own good at some point, and perhaps crossed some feeds along the way.
Paul has graciously offered to take a look, so hopefully he finds something - thanks Paul!
Jonathan
Re: Online emoncms widgets not working
Jonathan
I've not used your inputs, processes, feeds & dashboards, and instead fired a load of json data to emoncms on node1, which I've logged to a test feed, and which feeds a 'test' dashboard containing a dial & feedvalue widget, as well as a realtime graph.
Although the data is logged OK in the realtime graph, I can confirm that the dial & feedvalue have, as you have described, remained at zero.
Everything else looks OK, but can you confirm how often you are sending data to emoncms? the usual period is every 10 seconds or so, but yours seem more frequent?
Paul
Re: Online emoncms widgets not working
Jonathan,
I'm using a script to send identical random json data every 10 seconds to both your emoncms.org account, and also to mine. Whilst your widgets are not working, mine is, using exactly the same data - see screenprint below.
I'll leave the script running, so you can, by process of elimination do some checking.
I would start by stopping your inputs completely, and see if my test data is then displayed in your widgets.
It's an unusual problem, please let us know how you get on (and when you want me to stop the script!).
Paul
Re: Online emoncms widgets not working
Hi Paul,
Thanks for having a look into it for me. Good to have an educated perspective to validate that it's not just my 'user error Very odd.
Yes, I apologise about the frequency, my arduino (one of Robin Emley's PV routers) is sending too frequently - 2 seconds - but C programming isn't a strength of mine, so as yet, I'm not quite sure how to 'slow it down' whilst still getting meaningful averages. I will continue to work on this next week.
I was also rather hoping that the same effect could be achieved by throttling the emonhub instead - do you know if this can be done easily, as a short-term fix? The provided emonhub.conf doesn't come with many examples of its parameters :(
I took your suggestion, disabling the emonhub for a period of minutes, hoping to see my dashboard dial widgets spring to life, but sadly, they didn't. Do you have a feel for how long I may need to disable the input, to test your theory?
By all means, you may stop your script - and thank you for creating it for me.
I feel the next best step is probably to reset my entire account, along with all data history, in preference to registering a whole new username/account. Who can I speak with to get this underway for a 'fresh start'?
Thanks,
Jonathan
Re: Online emoncms widgets not working
Sorry for not looking at this sooner, thankyou Paul for your email. The problem is to do with feed naming, the dials have a bug when there are certain non alphanumeric characters included. I've stripped these out of your feeds Jonathan to test and the dial now shows the correct value I think. Il look into a way to make this work with the non alphanumeric characters
Re: Online emoncms widgets not working
Ah brilliant - yes, that seems to have done it!
Thank you both. Is the list of unhandled feed names documented somewhere, so I can ensure I don't make the same mistake?
Thanks,
Jonathan
Re: Online emoncms widgets not working
I've stopped the script running now, and pleased that the problem has been solved.
I've not heard of that issue before either.
Paul


Homepage
About Me
My Projects
My Resume
Contact Me
Tech Blog Posts
August 7, 2015 |
Recursion |
August 1, 2015 |
Ruby Hashes vs. JavaScript Objects |
July 25, 2015 |
Variable Scope |
July 18, 2015 |
Ruby: Class |
July 10, 2015 |
Enumerable #group_by |
June 25, 2015 |
Ruby: Array vs. Hash |
June 19, 2015 |
CSS property: Design |
June 11, 2015 |
Git and GitHub |
Cultural Blog Posts
August 13, 2015 |
Asking Good Questions |
August 7, 2015 |
Dealing with Conflict |
August 1, 2015 |
My Values |
July 26, 2015 |
Stereotype Threat |
July 17, 2015 |
Feedback |
July 11, 2015 |
Tech Problems |
June 26, 2015 |
Thinking Style |
June 11, 2015 |
Chefs in the Kitchen |


LADI is an adaptation of the Google Desktop Search (GDS) system which permits a client to search a remote, centralized, network-accessible GDS index. The main application of LADI is to store, index and present a portal to a centralized repository of scientific articles, and laboratory documentation. Networked clients can search the repository using a web browser, in a manner analogous to using GDS locally.
The following directories are indexed
To index your own PDFs, create a directory within /home/samba/public/pdf and either copy your PDFs there or link to your PDF repository.
LADI is composed of two parts. First, a script running on the web server (GDSWEBHOST) provides LADI's interface to the outside world - this is the script you interact with. The web server is a Linux machine (webx440 currently). Second, a script bridges communication between the web server and the GDS system, which is installed on a wiWindows machine (GDSHOST). This script runs on the GDSHOST and talks to the GDSWEBHOST component using XML-RPC.
More details are available here.