CityMap
public struct CityMap: EventEmitting
CityMap encapsules all aspects of working with the simulation’s underlying map data.
It provides a high level api to add and remove tiles.
The CityMap consist of multiple layers - TileLayer holding all visible tiles - StatisticlayersContainer holding all statistical layers
Additionaly, the CityMap contains a Graph representation of Locations that are RessourceCyrrying.
CityMap emits events, see CityMapEvent: - AddTile: when a tile was successfully added, payload: new tile - RemoveTile: when a tile was successfully removed, payload: removed tile
-
Container holding event subscribers
Declaration
Swift
var eventSubscribers: [EventNameType: [EventSubscribing]] = [:]
-
height of the map / height of all layers
Declaration
Swift
public private(set) var height: Int
-
width of the map / width of all layers
Declaration
Swift
public private(set) var width: Int
-
the tile layer
Declaration
Swift
public var tileLayer: TileLayer
-
Container holding statistical layers
Declaration
Swift
public var statisticsLayerContainer: StatisticlayersContainer
-
pathfinding graph
Declaration
Swift
var trafficLayer: GKGridGraph
-
Constructur
Declaration
Swift
init(height: Int, width: Int)
Parameters
height
height of the map / height of all layers
width
width of the map / width of all layers
-
convenience method to check if a tile can be added to the tile layer
also checks dependencies for tiles to be added: must be placed near road
throws: CityMapError.TileCantFit if the new tile doesn’t fit into the tile layer throws: CityMapError.CannotAddBecauseNotEmpty if the desired tile location is already in use throws: CityMapError.PlaceNearStreet if the tile should be placed adjecant to a street ploppable and isn’t
Declaration
Swift
func canAdd(tile newTile: Tileable) throws
Parameters
tile
tile to be added
-
checks if removing all tiles specified by the given location is possible
throws CityMapError.TileNotRemoveable if a tile requested to be removed is of type
TileNotRemoveable
Declaration
Swift
public func canRemoveAt(location location: Locateable) throws
Parameters
location
location
-
removes all tiles specified by the given location
emits the event
RemoveTile
throws CityMapError.TileNotRemoveable if a tile requested to be removed is of type
TileNotRemoveable
throws: unspecified error if the eventRemoveTile
throwsDeclaration
Swift
public mutating func removeAt(location location: Locateable) throws
Parameters
location
location
-
convenience method to retrieve a list of tiles specified by the given location
Declaration
Swift
public func infoAt(location location: Locateable) -> [Tileable]
Parameters
location
location
Return Value
list of tiles contained in location
-
add a
Zone
(zoneable) to the tile layerthrows: TileLayerError if there was a problem
Declaration
Swift
public mutating func zone(zone zone: Zoneable) throws
Parameters
zone
the zone to add
-
add a
Plopp
(ploppable) to the tile layerthrows: TileLayerError if there was a problem
Declaration
Swift
public mutating func plopp(plopp plopp: Ploppable) throws
Parameters
plopp
the ploppable to add
-
add a
Prop
(propable) to the tile layerthrows: TileLayerError if there was a problem
Declaration
Swift
public mutating func prop(prop prop: Propable) throws
Parameters
prop
the propable to add


AnahitaPlus
Public Attributes
|
List of all members
Observation Struct Reference
Public Attributes
std::string
id
int
m_x
int
m_y
int
m_z
int
u_x
int
u_y
int
u_z
The documentation for this struct was generated from the following file:
navigation_layer/mapping/include/
util.h
Generated by
1.8.13


kgp.examples
/
Vladislavleva4
/
<init>
<init>
Vladislavleva4
(
)
The Vladislavleva-4 problem as given by White et al. (2013).
See Also
White et al.(2013)
Vladislavleva 4


In this notebook, some template code has already been provided for you, and you will need to implement additional functionality to successfully complete this project. You will not need to modify the included code beyond what is requested. Sections that begin with '(IMPLEMENTATION)' in the header indicate that the following block of code will require additional functionality which you must provide. Instructions will be provided for each section, and the specifics of the implementation are marked in the code block with a 'TODO' statement. Please be sure to read the instructions carefully!
Note: Once you have completed all of the code implementations, you need to finalize your work by exporting the iPython Notebook as an HTML document. Before exporting the notebook to html, all of the code cells need to have been run so that reviewers can see the final implementation and output. You can then export the notebook by using the menu above and navigating to \n", "File -> Download as -> HTML (.html). Include the finished document along with this notebook as your submission.
In addition to implementing code, there will be questions that you must answer which relate to the project and your implementation. Each section where you will answer a question is preceded by a 'Question X' header. Carefully read each question and provide thorough answers in the following text boxes that begin with 'Answer:'. Your project submission will be evaluated based on your answers to each of the questions and the implementation you provide.
Note: Code and Markdown cells can be executed using the Shift + Enter keyboard shortcut. Markdown cells can be edited by double-clicking the cell to enter edit mode.
The rubric contains optional "Stand Out Suggestions" for enhancing the project beyond the minimum requirements. If you decide to pursue the "Stand Out Suggestions", you should include the code in this IPython notebook.
In this notebook, you will make the first steps towards developing an algorithm that could be used as part of a mobile or web app. At the end of this project, your code will accept any user-supplied image as input. If a dog is detected in the image, it will provide an estimate of the dog's breed. If a human is detected, it will provide an estimate of the dog breed that is most resembling. The image below displays potential sample output of your finished project (... but we expect that each student's algorithm will behave differently!).
In this real-world setting, you will need to piece together a series of models to perform different tasks; for instance, the algorithm that detects humans in an image will be different from the CNN that infers dog breed. There are many points of possible failure, and no perfect algorithm exists. Your imperfect solution will nonetheless create a fun user experience!
We break the notebook into separate steps. Feel free to use the links below to navigate the notebook.
In the code cell below, we import a dataset of dog images. We populate a few variables through the use of the load_files
function from the scikit-learn library:
train_files
, valid_files
, test_files
- numpy arrays containing file paths to imagestrain_targets
, valid_targets
, test_targets
- numpy arrays containing onehot-encoded classification labels dog_names
- list of string-valued dog breed names for translating labelsfrom sklearn.datasets import load_files
from keras.utils import np_utils
import numpy as np
from glob import glob
# define function to load train, test, and validation datasets
def load_dataset(path):
data = load_files(path)
dog_files = np.array(data['filenames'])
dog_targets = np_utils.to_categorical(np.array(data['target']), 133)
return dog_files, dog_targets
# load train, test, and validation datasets
train_files, train_targets = load_dataset('dogImages/train')
valid_files, valid_targets = load_dataset('dogImages/valid')
test_files, test_targets = load_dataset('dogImages/test')
# load list of dog names
dog_names = [item[20:-1] for item in sorted(glob("dogImages/train/*/"))]
# print statistics about the dataset
print('There are %d total dog categories.' % len(dog_names))
print('There are %s total dog images.\n' % len(np.hstack([train_files, valid_files, test_files])))
print('There are %d training dog images.' % len(train_files))
print('There are %d validation dog images.' % len(valid_files))
print('There are %d test dog images.'% len(test_files))
In the code cell below, we import a dataset of human images, where the file paths are stored in the numpy array human_files
.
import random
random.seed(8675309)
# load filenames in shuffled human dataset
human_files = np.array(glob("lfw/*/*"))
random.shuffle(human_files)
# print statistics about the dataset
print('There are %d total human images.' % len(human_files))
We use OpenCV's implementation of Haar feature-based cascade classifiers to detect human faces in images. OpenCV provides many pre-trained face detectors, stored as XML files on github. We have downloaded one of these detectors and stored it in the haarcascades
directory.
In the next code cell, we demonstrate how to use this detector to find human faces in a sample image.
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
# extract pre-trained face detector
face_cascade = cv2.CascadeClassifier('haarcascades/haarcascade_frontalface_alt.xml')
# load color (BGR) image
img = cv2.imread(human_files[3])
# convert BGR image to grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# find faces in image
faces = face_cascade.detectMultiScale(gray)
# print number of faces detected in the image
print('Number of faces detected:', len(faces))
# get bounding box for each detected face
for (x,y,w,h) in faces:
# add bounding box to color image
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
# convert BGR image to RGB for plotting
cv_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# display the image, along with bounding box
plt.imshow(cv_rgb)
plt.show()
Before using any of the face detectors, it is standard procedure to convert the images to grayscale. The detectMultiScale
function executes the classifier stored in face_cascade
and takes the grayscale image as a parameter.
In the above code, faces
is a numpy array of detected faces, where each row corresponds to a detected face. Each detected face is a 1D array with four entries that specifies the bounding box of the detected face. The first two entries in the array (extracted in the above code as x
and y
) specify the horizontal and vertical positions of the top left corner of the bounding box. The last two entries in the array (extracted here as w
and h
) specify the width and height of the box.
We can use this procedure to write a function that returns True
if a human face is detected in an image and False
otherwise. This function, aptly named face_detector
, takes a string-valued file path to an image as input and appears in the code block below.
# returns "True" if face is detected in image stored at img_path
def face_detector(img_path):
img = cv2.imread(img_path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray)
return len(faces) > 0
Question 1: Use the code cell below to test the performance of the face_detector
function.
human_files
have a detected human face? dog_files
have a detected human face?  You will see that our algorithm falls short of this goal, but still gives acceptable performance. We extract the file paths for the first 100 images from each of the datasets and store them in the numpy arrays human_files_short
and dog_files_short
.
Answer:
human_files_short = human_files[:100]
dog_files_short = train_files[:100]
# Do NOT modify the code above this line.
## TODO: Test the performance of the face_detector algorithm
## on the images in human_files_short and dog_files_short.
dog_detection_count = 0
human_detection_count = 0
for i in range(len(human_files_short)):
if face_detector(human_files_short[i]):
human_detection_count += 1
if face_detector(dog_files_short[i]):
dog_detection_count += 1
print('The percentage of human face detection on human_files is: {}%'.format(human_detection_count))
print('The percentage of human face detection on dog_files is: {}%'.format(dog_detection_count))
Question 2: This algorithmic choice necessitates that we communicate to the user that we accept human images only when they provide a clear view of a face (otherwise, we risk having unneccessarily frustrated users!). In your opinion, is this a reasonable expectation to pose on the user? If not, can you think of a way to detect humans in images that does not necessitate an image with a clearly presented face?
Answer: Absolutely it is not a reasonable expectation to pose on the user to provide a clear view of a face. There are infinite ways that a human can appear on an image and the user, regardless on how the image was made, would like to have a feedback if it is or not a human on it.
One way to reduce the need for a clearly presented face is to use CNN algorithms to detect a multiple set of patterns that grouped can indicate a human on a image. Other way is to train with more images, without clearly presented face to help the detector to learn with more inputs. And the third is to augmentate the input images to help the detector to generalize more.
We suggest the face detector from OpenCV as a potential way to detect human images in your algorithm, but you are free to explore other approaches, especially approaches that make use of deep learning :). Please use the code cell below to design and test your own face detection algorithm. If you decide to pursue this optional task, report performance on each of the datasets.
## (Optional) TODO: Report the performance of another
## face detection algorithm on the LFW dataset
### Feel free to use as many code cells as needed.
In this section, we use a pre-trained ResNet-50 model to detect dogs in images. Our first line of code downloads the ResNet-50 model, along with weights that have been trained on ImageNet, a very large, very popular dataset used for image classification and other vision tasks. ImageNet contains over 10 million URLs, each linking to an image containing an object from one of 1000 categories. Given an image, this pre-trained ResNet-50 model returns a prediction (derived from the available categories in ImageNet) for the object that is contained in the image.
from keras.applications.resnet50 import ResNet50
# define ResNet50 model
ResNet50_model = ResNet50(weights='imagenet')
ResNet50_model.summary()
When using TensorFlow as backend, Keras CNNs require a 4D array (which we'll also refer to as a 4D tensor) as input, with shape
$$ (\text{nb_samples}, \text{rows}, \text{columns}, \text{channels}), $$where nb_samples
corresponds to the total number of images (or samples), and rows
, columns
, and channels
correspond to the number of rows, columns, and channels for each image, respectively.
The path_to_tensor
function below takes a string-valued file path to a color image as input and returns a 4D tensor suitable for supplying to a Keras CNN. The function first loads the image and resizes it to a square image that is $224 \times 224$ pixels. Next, the image is converted to an array, which is then resized to a 4D tensor. In this case, since we are working with color images, each image has three channels. Likewise, since we are processing a single image (or sample), the returned tensor will always have shape
The paths_to_tensor
function takes a numpy array of string-valued image paths as input and returns a 4D tensor with shape
Here, nb_samples
is the number of samples, or number of images, in the supplied array of image paths. It is best to think of nb_samples
as the number of 3D tensors (where each 3D tensor corresponds to a different image) in your dataset!
from keras.preprocessing import image
from tqdm import tqdm
def path_to_tensor(img_path):
# loads RGB image as PIL.Image.Image type
img = image.load_img(img_path, target_size=(224, 224))
# convert PIL.Image.Image type to 3D tensor with shape (224, 224, 3)
x = image.img_to_array(img)
# convert 3D tensor to 4D tensor with shape (1, 224, 224, 3) and return 4D tensor
return np.expand_dims(x, axis=0)
def paths_to_tensor(img_paths):
list_of_tensors = [path_to_tensor(img_path) for img_path in tqdm(img_paths)]
return np.vstack(list_of_tensors)
Getting the 4D tensor ready for ResNet-50, and for any other pre-trained model in Keras, requires some additional processing. First, the RGB image is converted to BGR by reordering the channels. All pre-trained models have the additional normalization step that the mean pixel (expressed in RGB as $[103.939, 116.779, 123.68]$ and calculated from all pixels in all images in ImageNet) must be subtracted from every pixel in each image. This is implemented in the imported function preprocess_input
. If you're curious, you can check the code for preprocess_input
here.
Now that we have a way to format our image for supplying to ResNet-50, we are now ready to use the model to extract the predictions. This is accomplished with the predict
method, which returns an array whose $i$-th entry is the model's predicted probability that the image belongs to the $i$-th ImageNet category. This is implemented in the ResNet50_predict_labels
function below.
By taking the argmax of the predicted probability vector, we obtain an integer corresponding to the model's predicted object class, which we can identify with an object category through the use of this dictionary.
from keras.applications.resnet50 import preprocess_input, decode_predictions
def ResNet50_predict_labels(img_path):
# returns prediction vector for image located at img_path
img = preprocess_input(path_to_tensor(img_path))
return np.argmax(ResNet50_model.predict(img))
While looking at the dictionary, you will notice that the categories corresponding to dogs appear in an uninterrupted sequence and correspond to dictionary keys 151-268, inclusive, to include all categories from 'Chihuahua'
to 'Mexican hairless'
. Thus, in order to check to see if an image is predicted to contain a dog by the pre-trained ResNet-50 model, we need only check if the ResNet50_predict_labels
function above returns a value between 151 and 268 (inclusive).
We use these ideas to complete the dog_detector
function below, which returns True
if a dog is detected in an image (and False
if not).
### returns "True" if a dog is detected in the image stored at img_path
def dog_detector(img_path):
prediction = ResNet50_predict_labels(img_path)
return ((prediction <= 268) & (prediction >= 151))
Question 3: Use the code cell below to test the performance of your dog_detector
function.
human_files_short
have a detected dog? dog_files_short
have a detected dog?Answer:
### TODO: Test the performance of the dog_detector function
### on the images in human_files_short and dog_files_short.
dog_detection_count = 0
human_detection_count = 0
for i in range(len(human_files_short)):
if dog_detector(human_files_short[i]):
human_detection_count += 1
if dog_detector(dog_files_short[i]):
dog_detection_count += 1
print('The percentage of dog detection on human_files is: {}%'.format(human_detection_count))
print('The percentage of dog detection on dog_files is: {}%'.format(dog_detection_count))
Now that we have functions for detecting humans and dogs in images, we need a way to predict breed from images. In this step, you will create a CNN that classifies dog breeds. You must create your CNN from scratch (so, you can't use transfer learning yet!), and you must attain a test accuracy of at least 1%. In Step 5 of this notebook, you will have the opportunity to use transfer learning to create a CNN that attains greatly improved accuracy.
Be careful with adding too many trainable layers! More parameters means longer training, which means you are more likely to need a GPU to accelerate the training process. Thankfully, Keras provides a handy estimate of the time that each epoch is likely to take; you can extrapolate this estimate to figure out how long it will take for your algorithm to train.
We mention that the task of assigning breed to dogs from images is considered exceptionally challenging. To see why, consider that even a human would have great difficulty in distinguishing between a Brittany and a Welsh Springer Spaniel.
| Brittany | Welsh Springer Spaniel |
|---|---|
It is not difficult to find other dog breed pairs with minimal inter-class variation (for instance, Curly-Coated Retrievers and American Water Spaniels).
| Curly-Coated Retriever | American Water Spaniel |
|---|---|
Likewise, recall that labradors come in yellow, chocolate, and black. Your vision-based algorithm will have to conquer this high intra-class variation to determine how to classify all of these different shades as the same breed.
| Yellow Labrador | Chocolate Labrador | Black Labrador |
|---|---|---|
We also mention that random chance presents an exceptionally low bar: setting aside the fact that the classes are slightly imabalanced, a random guess will provide a correct answer roughly 1 in 133 times, which corresponds to an accuracy of less than 1%.
Remember that the practice is far ahead of the theory in deep learning. Experiment with many different architectures, and trust your intuition. And, of course, have fun!
We rescale the images by dividing every pixel in every image by 255.
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
# pre-process the data for Keras
train_tensors = paths_to_tensor(train_files).astype('float32')/255
valid_tensors = paths_to_tensor(valid_files).astype('float32')/255
test_tensors = paths_to_tensor(test_files).astype('float32')/255
Create a CNN to classify dog breed. At the end of your code cell block, summarize the layers of your model by executing the line:
model.summary()
We have imported some Python modules to get you started, but feel free to import as many modules as you need. If you end up getting stuck, here's a hint that specifies a model that trains relatively fast on CPU and attains >1% test accuracy in 5 epochs:
Question 4: Outline the steps you took to get to your final CNN architecture and your reasoning at each step. If you chose to use the hinted architecture above, describe why you think that CNN architecture should work well for the image classification task.
Answer: The network is composed by 2 parts. Part #1 is the convolutional/pooling layers to identify patterns on the images. There are 2 conv layers rising from 3 (initial rgb) to 16 then 64 layers. The pooling layers, to reduce the dimensionality are applied after the convolutions, and with 2x2 filter and stride of 2, reduces the height and width of the tensor by half.
The output of the Part #1 passes on a dropout layer to enhace the model hability for generalization and then flattened for input on a fully connected layer (Part #2) witch outputs the probability of 133 nodes activated by softmax.
from keras.layers import Conv2D, MaxPooling2D, GlobalAveragePooling2D
from keras.layers import Dropout, Flatten, Dense
from keras.models import Sequential
model = Sequential()
### TODO: Define your architecture.
model.add(Conv2D(filters=16, kernel_size=3, strides=1, padding='same',
activation='relu', input_shape=train_tensors.shape[1:]))
model.add(MaxPooling2D(pool_size=2, strides=2))
model.add(Conv2D(filters=64, kernel_size=3, strides=1, padding='same',
activation='relu'))
model.add(MaxPooling2D(pool_size=2, strides=2))
model.add(Dropout(0.2))
model.add(Flatten())
model.add(Dense(133, activation='softmax'))
model.summary()
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
Train your model in the code cell below. Use model checkpointing to save the model that attains the best validation loss.
You are welcome to augment the training data, but this is not a requirement.
from keras.callbacks import ModelCheckpoint
### TODO: specify the number of epochs that you would like to use to train the model.
epochs = 5
### Do NOT modify the code below this line.
checkpointer = ModelCheckpoint(filepath='saved_models/weights.best.from_scratch.hdf5',
verbose=1, save_best_only=True)
model.fit(train_tensors, train_targets,
validation_data=(valid_tensors, valid_targets),
epochs=epochs, batch_size=20, callbacks=[checkpointer], verbose=2)
Comment: Even with dropout overfits too quickly
from keras.preprocessing.image import ImageDataGenerator
from keras.callbacks import ModelCheckpoint
datagen_train = ImageDataGenerator(
width_shift_range=0.2,
height_shift_range=0.2,
horizontal_flip=True)
datagen_train.fit(train_tensors)
batch_size = 32
epochs = 10
checkpointer = ModelCheckpoint(filepath='saved_models/weights.best.from_scratch_aug.hdf5',
verbose=1, save_best_only=True)
model.fit_generator(datagen_train.flow(train_tensors, train_targets, batch_size=batch_size),
steps_per_epoch=train_tensors.shape[0] // batch_size,
epochs=epochs, verbose=2, callbacks=[checkpointer],
validation_data=(valid_tensors, valid_targets),
validation_steps=valid_tensors.shape[0] // batch_size)
Try out your model on the test dataset of dog images. Ensure that your test accuracy is greater than 1%.
# Load the Model with the Best Validation Loss
model.load_weights('saved_models/weights.best.from_scratch.hdf5')
# get index of predicted dog breed for each image in test set
dog_breed_predictions = [np.argmax(model.predict(np.expand_dims(tensor, axis=0))) for tensor in test_tensors]
# report test accuracy
test_accuracy = 100*np.sum(np.array(dog_breed_predictions)==np.argmax(test_targets, axis=1))/len(dog_breed_predictions)
print('Test accuracy: %.4f%%' % test_accuracy)
# Load the Model with the Best Validation Loss
model.load_weights('saved_models/weights.best.from_scratch_aug.hdf5')
# get index of predicted dog breed for each image in test set
dog_breed_predictions = [np.argmax(model.predict(np.expand_dims(tensor, axis=0))) for tensor in test_tensors]
# report test accuracy
test_accuracy = 100*np.sum(np.array(dog_breed_predictions)==np.argmax(test_targets, axis=1))/len(dog_breed_predictions)
print('Test accuracy: %.4f%%' % test_accuracy)
To reduce training time without sacrificing accuracy, we show you how to train a CNN using transfer learning. In the following step, you will get a chance to use transfer learning to train your own CNN.
bottleneck_features = np.load('bottleneck_features/DogVGG16Data.npz')
train_VGG16 = bottleneck_features['train']
valid_VGG16 = bottleneck_features['valid']
test_VGG16 = bottleneck_features['test']
The model uses the the pre-trained VGG-16 model as a fixed feature extractor, where the last convolutional output of VGG-16 is fed as input to our model. We only add a global average pooling layer and a fully connected layer, where the latter contains one node for each dog category and is equipped with a softmax.
VGG16_model = Sequential()
VGG16_model.add(GlobalAveragePooling2D(input_shape=train_VGG16.shape[1:]))
VGG16_model.add(Dense(133, activation='softmax'))
VGG16_model.summary()
VGG16_model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
checkpointer = ModelCheckpoint(filepath='saved_models/weights.best.VGG16.hdf5',
verbose=1, save_best_only=True)
VGG16_model.fit(train_VGG16, train_targets,
validation_data=(valid_VGG16, valid_targets),
epochs=20, batch_size=20, callbacks=[checkpointer], verbose=2)
VGG16_model.load_weights('saved_models/weights.best.VGG16.hdf5')
Now, we can use the CNN to test how well it identifies breed within our test dataset of dog images. We print the test accuracy below.
# get index of predicted dog breed for each image in test set
VGG16_predictions = [np.argmax(VGG16_model.predict(np.expand_dims(feature, axis=0))) for feature in test_VGG16]
# report test accuracy
test_accuracy = 100*np.sum(np.array(VGG16_predictions)==np.argmax(test_targets, axis=1))/len(VGG16_predictions)
print('Test accuracy: %.4f%%' % test_accuracy)
from extract_bottleneck_features import *
def VGG16_predict_breed(img_path):
# extract bottleneck features
bottleneck_feature = extract_VGG16(path_to_tensor(img_path))
# obtain predicted vector
predicted_vector = VGG16_model.predict(bottleneck_feature)
# return dog breed that is predicted by the model
return dog_names[np.argmax(predicted_vector)]
You will now use transfer learning to create a CNN that can identify dog breed from images. Your CNN must attain at least 60% accuracy on the test set.
In Step 4, we used transfer learning to create a CNN using VGG-16 bottleneck features. In this section, you must use the bottleneck features from a different pre-trained model. To make things easier for you, we have pre-computed the features for all of the networks that are currently available in Keras:
The files are encoded as such:
Dog{network}Data.npz
where {network}
, in the above filename, can be one of VGG19
, Resnet50
, InceptionV3
, or Xception
. Pick one of the above architectures, download the corresponding bottleneck features, and store the downloaded file in the bottleneck_features/
folder in the repository.
In the code block below, extract the bottleneck features corresponding to the train, test, and validation sets by running the following:
bottleneck_features = np.load('bottleneck_features/Dog{network}Data.npz')
train_{network} = bottleneck_features['train']
valid_{network} = bottleneck_features['valid']
test_{network} = bottleneck_features['test']
### TODO: Obtain bottleneck features from another pre-trained CNN.
bottleneck_features = np.load('bottleneck_features/DogResnet50Data.npz')
train_Resnet50 = bottleneck_features['train']
valid_Resnet50 = bottleneck_features['valid']
test_Resnet50 = bottleneck_features['test']
Create a CNN to classify dog breed. At the end of your code cell block, summarize the layers of your model by executing the line:
<your model's name>.summary()
Question 5: Outline the steps you took to get to your final CNN architecture and your reasoning at each step. Describe why you think the architecture is suitable for the current problem.
Answer: The final CNN architecture is built on top of Resnet50 CNN layers loaded by the bottleneck features. With these Resnet50 patterns identified by the Convolutional/Pooling layers (loaded by the bottleneck previously calculated features) I designed a fully connected network for breed prediction.
This network uses dropout layers to reduce overfitting and 4 fully connected layers to broad the capability to get soft patterns.
Resnet50_model = Sequential()
Resnet50_model.add(Flatten(input_shape=train_Resnet50.shape[1:]))
Resnet50_model.add(Dense(1024, activation='relu'))
Resnet50_model.add(Dropout(0.4))
Resnet50_model.add(Dense(512, activation='relu'))
Resnet50_model.add(Dropout(0.4))
Resnet50_model.add(Dense(256, activation='relu'))
Resnet50_model.add(Dropout(0.4))
Resnet50_model.add(Dense(133, activation='softmax'))
Resnet50_model.summary()
### TODO: Compile the model.
Resnet50_model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
Train your model in the code cell below. Use model checkpointing to save the model that attains the best validation loss.
You are welcome to augment the training data, but this is not a requirement.
### TODO: Train the model.
checkpointer = ModelCheckpoint(filepath='saved_models/weights.best.Resnet50.hdf5',
verbose=1, save_best_only=True)
Resnet50_model.fit(train_Resnet50, train_targets,
validation_data=(valid_Resnet50, valid_targets),
epochs=20, batch_size=20, callbacks=[checkpointer], verbose=2)
### TODO: Load the model weights with the best validation loss.
Resnet50_model.load_weights('saved_models/weights.best.Resnet50.hdf5')
Try out your model on the test dataset of dog images. Ensure that your test accuracy is greater than 60%.
### TODO: Calculate classification accuracy on the test dataset.
Resnet50_predictions = [np.argmax(Resnet50_model.predict(np.expand_dims(feature, axis=0)))
for feature in test_Resnet50]
# report test accuracy
test_accuracy = 100*np.sum(np.array(Resnet50_predictions)==
np.argmax(test_targets, axis=1))/len(Resnet50_predictions)
print('\nTest accuracy: %.4f%%' % test_accuracy)
Write a function that takes an image path as input and returns the dog breed (Affenpinscher
, Afghan_hound
, etc) that is predicted by your model.
Similar to the analogous function in Step 5, your function should have three steps:
dog_names
array defined in Step 0 of this notebook to return the corresponding breed.The functions to extract the bottleneck features can be found in extract_bottleneck_features.py
, and they have been imported in an earlier code cell. To obtain the bottleneck features corresponding to your chosen CNN architecture, you need to use the function
extract_{network}
where {network}
, in the above filename, should be one of VGG19
, Resnet50
, InceptionV3
, or Xception
.
### TODO: Write a function that takes a path to an image as input
### and returns the dog breed that is predicted by the model.
def predict_dog_breed(img_path):
# extract bottleneck features
bottleneck_feature = extract_Resnet50(path_to_tensor(img_path))
# obtain predicted vector
predicted_vector = Resnet50_model.predict(bottleneck_feature)
# return TOP2 dog breed idx that is predicted by the model
top_2 = predicted_vector.flatten()
return np.unique(np.sort(top_2))[-2:], top_2.argsort()[-2:]
Write an algorithm that accepts a file path to an image and first determines whether the image contains a human, dog, or neither. Then,
You are welcome to write your own functions for detecting humans and dogs in images, but feel free to use the face_detector
and dog_detector
functions developed above. You are required to use your CNN from Step 5 to predict dog breed.
Some sample output for our algorithm is provided below, but feel free to design your own user experience!
### TODO: Write your algorithm.
### Feel free to use as many code cells as needed.
import matplotlib.image as mpimp
from os import listdir
from os.path import isfile, join
def get_first_image(key):
mypath = 'dogImages/train/' + str(key + 1).zfill(3) + '.' + dog_names[key]
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
return mypath + "/" + onlyfiles[0]
def plot_image(img_path):
#plot file
img=mpimp.imread(img_path)
imgplot = plt.imshow(img)
plt.show()
def print_message(species, key_1, prob_1, key_0=False, prob_0=False):
if not key_0:
print("Hello", species, ", you look like a {}".format(dog_names[key_1]))
plot_image(get_first_image(key_1))
else:
print("Hello", species, ", you look like a {:.2%} {} and {:.2%} {}".format(prob_1, dog_names[key_1], prob_0, dog_names[key_0]))
plot_image(get_first_image(key_1))
plot_image(get_first_image(key_0))
def predict_image(img_path):
#plot file
plot_image(img_path)
is_face = face_detector(img_path)
is_dog = dog_detector(img_path)
if not is_face and not is_dog:
print("Neither human or dog detected! Try again :)")
else:
prob, key = predict_dog_breed(img_path)
#human or dog
if is_face:
species = "human"
else:
species = "dog"
#pure or mixed
if prob[1] > 0.85:
print_message(species, key[1], prob[1])
else:
print_message(species, key[1], prob[1], key[0], prob[0])
In this section, you will take your new algorithm for a spin! What kind of dog does the algorithm think that you look like? If you have a dog, does it predict your dog's breed accurately? If you have a cat, does it mistakenly think that your cat is a dog?
Test your algorithm at least six images on your computer. Feel free to use any images you like. Use at least two human and two dog images.
Question 6: Is the output better than you expected :) ? Or worse :( ? Provide at least three possible points of improvement for your algorithm.
Answer: The model actually performed pretty well. It predicted correctly all the 12 provided images. For improvement, we could try:
## TODO: Execute your algorithm from Step 6 on
## at least 6 images on your computer.
## Feel free to use as many code cells as needed.
# get files paths
def load_student_images(path):
data = load_files(path)
student_files = np.array(data['filenames'])
return student_files
# load files paths
student_files = load_student_images('studentImages/')
# Test
for img_path in student_files:
print('File name: {}'.format(img_path.split("\\")[-1]))
predict_image(img_path)
print("\n ------------------------- \n")


cn.edu.nju.model
类
CheckIn
Hostel
HostelRoom
ModifyApplication
OpenApplication
Order
Payment
Room
RoomPlan
User


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
In the High Court of Jharkhand at Ranchi Cr.M.P. No.884 of 2012 Yugal Kishore Bhuwania....................Petitioner VERSUS State of Jharkhand and another..........Opposite Parties CORAM: HON'BLE MR. JUSTICE R.R.PRASAD For the Petitioner :Mr. Sumeet Gadodia For the State : A.P.P 11/ 12.2.13
. Heard learned counsel appearing for the petitioner and learned counsel appearing for the State.
A case was lodged by the Sub-divisional Officer, Jagannathpur, West Singhbhum, Chaibasa on the allegation that on inspection of the premises of Shyam Mineral Crusher Plant, situated at village Sarbil, it was found that stone after being brought from the forest area is being crushed illegally without having any licence by the Mines and Mineral Department and also without having any permission from the Pollution Control Department.
On such allegation, a case was registered as Noamundi P.S. Case no.8 of 2011 under Section 414 of the Indian Penal Code, under Sections 33/41/42/52 of the Indian Forest Act and also under Section 4(1A)/21(1)(6) of the Mines and Mineral (Regulation and Development) Act and also under Section 37 of the Air (Prevention and Control of Pollution) Act, 1981.
On submission of the charge sheet, when cognizance of the offences punishable under Sections 33/41/42/52 of the Indian Forest Act an also under Section 4(1A) and 21(1)(6) of the Mines and Mineral (Regulation and Development) Act and also under Section 414 of the Indian Penal Code was taken, vide order dated 16.3.2012, it was challenged to be bad in this application.
Mr.Gadodia, learned counsel appearing for the petitioner submitted that it is the case of the prosecution that the Sub-divisional Officer, Jagannathpur on receiving information that the petitioner has been running crusher unit illegally without having licence from the Mines and Mineral Department and also without having any permission from the Pollution Control Department inspected the premises and found the allegation tobe true and thereby lodged a case for commission of offences under Sections 33/41/42/52 of the Indian Forest Act but in view of Section 52D of the Indian Forest Act as amended by the State Government, power of entry, inspection, search and seizure lies with the Forest Officer not below the rank of Range Officer of forest or Police Officer not below the rank of Sub-Inspector in case of contravention of any of the provision of the Forest Act but here in this case, it is the Sub-divisional Officer, who had made search and seizure,who has never been empowered under the Act to make search and seizure and if the case lodged upon the search and seizure which is illegal, entire prosecution gets vitiated so far the offence under the Forest Act is concerned.
It was further submitted that similarly the court also committed illegality in taking cognizance of the offences punishable under Sections 4(1A)/21(1)(6) of the Mines and Mineral (Regulation and Development) Act as the court can take cognizance only on a complaint lodged by the authorized person but here in this case, the complaint has never been lodged by the competent authority raher an FIR has been lodged by the Sub-divisional Officer, Jagannathpur and thereby the court has certainly committed illegality.
It was further submitted that so far cognizance of the offence under Section 414 of the Indian Penal Code is concerned, that also gets vitiated as when an offence comes within the purview of any Special Legislation, one cannot maintain prosecution for the said offece under the General Law, in view of the provision as contained in Section 4 of the Code of Criminal Procedure and thereby the court also committed illegality in taking cognizance of the offence punishable under Section 414 of the Indian Penal Code as whatever allegation has been made for commission of the offence under Section 414, that pertains to allegation which would be covered by Section 4(1A)of the Mines and Mineral (Regulation and Development) Act.
Thus, it was submitted that the entire order taking cognizance is fit to be quashed.
Learned counsel appearing for the State by referring to the statements made in paragraph 16 of the counter affidavit filed on behalf of the Sub-divisional Officer, Jagannathpur submitted that the petitioner was illegally running a crusher unit without having any licence and thereby he was causing Public Nuisance under Section 268 of the Indian Penal Code and making atmosphere by crusher dust noxious to health punishable under Section 278 of the Indian Penal Code and in such situation, Sub-divisional Officer does have every power to make inspection and to effect seizure and thereby the order taking cognizance can never be said to be illegal.
The stand which has been taken on behalf of the State does not appear to be tenable for the reason that the case has never been lodged for commission of offence either under Section 268 or under Section 278 of the Indian Penal Code, rather the case has been lodged for commission of the offences under the Forest Act and the Mines and Mineral (Regulation and Development) Act and also for an offence under Section 414 of the Indian Penal Code. Therefore, the plea which has been taken by the State with respect to competency on the part of the Sub-divisional Officer to lodge the case is never acceptable.
Going further in the matter, it does appear that it is the Sub- divisional Officer, who having effected search and seizure lodged the case for commission of the offence under the Indian Forest Act, though in view of Section 52 (State amendment) of the Forest Act it is only an officer not below the rank of Range Officer and also the Police Officer not below the rank of Sub-inspector are competent to make search and seizure, if there has been reason to believe that there has been contravention of the provision of the Forest Act. Since search and seizure have never been effected by the competent person, any prosecution based on search and seizure gets vitiated, in view of the decision rendered in a case of Roy V.D vs. State of Kerala [(2000) 8 SCC 590].
Further I do find that for maintaining prosecution under the Mines and Mineral (Regulation and Development) Act, a person authorized can only be with the competent in view of the provision as contained in Section 22 of the Mines and Mineral (Regulation and Development) Act to lodge a complaint for contravention of the provision of the Mines and Mineral (Regulation and Development) Act.
Here in the case as has been stated above, competent person has never come forward to lodge any complaint for commission of the offence under the Mines and Mineral (Regulation and Development) Act and thereby the court has certainly committed illegality in taking cognizance of the offences under the Mines and Mineral (Regulation and Development) Act.
Further it does appear that the court has also taken cognizance of the offence under Section 414 of the Indian Penal Code though in the facts and circumstances, the prosecution under the General Law is never permissible in view of the provision as contained in Section 4 of the Code of Criminal Procedure as the allegation constituting offence under Section 414 of the Indian Penal Code falls within the parameter of the provision as contained in Section 4 of the Mines and Mineral (Regulation and Development) Act which speaks that no person shall undertake mining operations in any area, except under and in accordance with the terms and conditions of a permit or licence or of a mining lease granted under this Act.
Thus, under the circumstances stated above, the order dated 16.3.2012 is hereby quashed.
In the result, this application stands allowed.
( R.R.Prasad, J.) ND/


PWA | Progressive Web Applications !
Github
Push Title
Push Message
Push Me !
Application Reg_Id :
Like it ?
Don't Like !


VII. Summary
- * Recent advances in computer hardware allow for much wider
use of models for agroclimatic applications
- * Models can be a significant tool to empower scientists from
developing and developed countries to enhance their use of
agroclimatic databases for a more efficient and sustainable
agriculture
- * The International Institute for Theoretical and Applied Physics
at Iowa State University has a mission to train scientists
from developing countries in state-of-the-art tools for basic
and applied physics problems including modeling and analysis
with agroclimatic databases


more about Indices
of Court Cases
If you:
-- are a serious
-- are a serious
-- are an amateur researcher looking for good sources of
information
-- have run into a brick wall in your search for information
about your family tree
-- want relevant information to supplement your family
history research
-- are in need of information about an ancestor s, friend s,
or stranger s court case
-- are just bored and need some exciting reading
--
then, this is for you!
If you find family history books that list who begat whom
on tens or hundreds of pages to be boring and would like to add some history
and substance to your research, there are several resources you should
consider. The first might be the newspapers
that were published during the period of your research. Second might be the Wills of the
people of interest. Third, would be the Complete
Records of court cases in which the researcher s subject might have been
involved. Fourth, must include the obituaries
of the researcher s subjects. All of
these can provide information about a researcher s subject that may exist in no
other place.
The
focus of material in this section is the Court Records that have been
dutifully kept by the court system since the creation of the County of Monroe,
Ohio. It is estimated that less than 5%
of the researchers who are interested in ancestors and former residents of
The magic number for most of
the County s record books is 600 that is, many, if not most, of these books
contain around 600 pages. Pages
typically measure about 11-inches by 20-inches.
Unfortunately, because of their size and volume of materials in these
record books, they are too large to be put on this website. Fortunately, the most important literature and
records of
Three Indexes to the Complete Record Books of the
Court of Common Pleas
1) With so many books and CDs available, it
is important that a researcher have a way to identify the specific book or CD
that contains the information they are seeking.
In the case of the record books of the Court of Common Pleas, there are
indices in most of the books. These
indices are organized by surname that can lead the researcher to the correct
volume and page. The Indices of Court
Cases found on this site are photographs of the index from each of these
books. They are free and provide guidance
to the original material. You can access
a list of the available indices by clicking here or by copying and
pasting the following address into your Internet browser address box and
clicking Go. http://freepages.history.rootsweb.com/~harringtonfamilies/CofCPleasIndexofRecBks.htm
The indices found at this address
are Direct Indices as defined in item 2) below.
2) In addition to the indices found on this
website and described in item 1) above, there is also a Direct Index of all
of the cases found in the Complete Record Books. It is called the Direct Index because it is
organized by the surname of the plaintiff, the party originating the suit. This Direct Index is being photographed and
will be posted on this website when it is complete. It should be available by February or March
of 2008.
3) A third index is available for the Complete
Record Books that were produced between 1815 and 1877 (Record Books # 1 through
#21. Record book #1 (1815 1822),
however, is missing.) This index is
called the Reverse Index because it is organized by the surname of the defendant,
the party being sued. This Reverse
Index has been photographed and put onto a CD.
It is also accessible on this website by clicking here
or by copying and pasting the following address into your Internet browser
address box and clicking Go. http://www.rootsweb.com/~ohmchs/IndexA.htm
An example of how to use the indices found on this web
site:
Your great grandfather, Thaddeus
Smith, lived in
You have hit a brick-wall with respect to information about
him.
He was married twice and you want to see any records
concerning his divorce from his first wife.
He had a child out of wedlock and you want to see the
results of a paternity suit.
He had a store and you want to see if there were any law
suits regarding the payment or collection of bills.
You understand that there was a dispute regarding land
ownership or right-of-way relating to his farm.
You just want to check to see if anyone in your family line
has been involved in a law suit.
Or, any of the other reasons that might
involve the court system.
Go to the above indices
described under items 1), 2), or 3) above.
If you want to know if Thaddeus Smith was sued, use the Reverse Index in
item 3) above. If you want to know if Thaddeus
Smith sued someone, use the Direct Index in 1) or 2) above. Look for the name(s) you wish to
research. Note the book number and the
years covered by the book for each name you find.
Armed with the names, book
numbers and years covered by the book, you can go to the records room in the
Clerk of Courts in
In general, the same steps
can be used for researching Wills, Newspapers, and Obituaries. For each, the steps may differ a little, so
you can click on the blue more hyperlink found near the buttons for Wills and
Obituaries. For newspapers, click on the
button named: Books on CDs.
If you have any questions
please feel free to contact the author at: Richard Harrington, 9517
Go to the list of indices of Court of Common Pleas Cases


Administration General Manager Dec '15 - March '17
Operations Mar '15 - Dec'15
Executive Assistant: Aug '14 - Mar '15
Columbia Bank: 2010-2014
About Me
I live on the Eastside. I love cats. Cheese and pineapple is my favorite pizza. I have pink hair. I've been sorted into Gryffindor by Pottermore. I'm really enjoying the 201 class! JavaScript ROCKS!


| DOSE: |
2 oz |
inhaled |
Ether |
(liquid) |
[Erowid Warning: The “water extraction” method is ineffective in separating diethyl ether from the volatile hydrocarbon liquids/gases in “starter fluid”. Our understanding of the literature is that there is no such thing as safe use of volatile hydrocarbon gases: their psychoactive effects are inseparable from nerve and organ damage.]
Let me just start out by saying that I do not like to get 'fucked up'. I have a strong interest in conciousness expansion, and my past experiences with drugs are weed, DXM, and various pills. I have never tripped, I have only been speeded up and slowed down and dissociated. So I wanted to see what madness would ensue after huffing some diethyl ether. I got a can of starting fluid from the gas station down the street and proceeded to separate the ether by pouring water into a glass with the starting fluid. I drained off the bottom layer and splashed some onto a rag.
I was laying on a couch on my front porch. The first huff burned my nose horribly, so I doubled over the rag and anticipated the effects. The first signs of the ether came on by means of a strong dizziness and a numb tounge. My body was quite numb, but I could still easily reach over to dip the rag in the ether glass. As I descended further into my binge, I noticed a strong humming noise coming from the streetlights (which were purple and swirling) and the sky turned pink and seemed very close, so close I could touch it.
Then the psychological effects started. I flashed back to when I was anesthesized for surgery when I was eight years old. I wasn't on my front porch anymore, I was laying in the Operating Room with my mother beside me holding my hand. And I saw a creature in the distance, not unlike a butterfly. It had big eyes that took up its whole head and made a happy chirping noise. I noticed that it was getting closer, and the closer it got the louder the chirping was. My vision was also completely obliterated except for a black and white strobing effect.
All of a sudden, everything in my mind 'clicked'. I realized that my mother was sending this butterfly with her mind, and her butterfly was waiting for my butterfly to respond so that our minds could be connected. At the precise moment that my butterfly chirped, I experienced a psychic orgasm and took a deep breath.  I hadn't taken a breath in about two minutes, and I think the vision was a result of oxygen deprivation.
Nonetheless, I firmly believe that the 'butterflies' represent one's subconcious attempting to reach another, but they both have to be on the same plane of existance. This was the most profound experience in my life, and I haven't tried ether again since then.
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.


qqtest: Self Calibrating Quantile-Quantile Plots for Visual Testing
Provides the function qqtest which incorporates uncertainty in its
qqplot display(s) so that the user might have a better sense of the
evidence against the specified distributional hypothesis. qqtest draws a
quantile quantile plot for visually assessing whether the data come from a
test distribution that has been defined in one of many ways. The vertical
axis plots the data quantiles, the horizontal those of a test distribution.
The default behaviour generates 1000 samples from the test distribution and
overlays the plot with shaded pointwise interval estimates for the ordered
quantiles from the test distribution. A small number of independently
generated exemplar quantile plots can also be overlaid. Both the interval
estimates and the exemplars provide different comparative information to
assess the evidence provided by the qqplot for or against the hypothesis
that the data come from the test distribution (default is normal or
gaussian). Finally, a visual test of significance (a lineup plot) can also
be displayed to test the null hypothesis that the data come from the test
distribution.
| Version: |
1.1.1 |
| Depends: |
R (≥ 2.10.0) |
| Imports: |
grDevices, robust, stats |
| Published: |
2016-02-25 |
| Author: |
Wayne Oldford [aut, cre] |
| Maintainer: |
Wayne Oldford <rwoldford at uwaterloo.ca> |
| License: |
GPL-3 |
| NeedsCompilation: |
no |
| CRAN checks: |
qqtest results |
Downloads:
Reverse dependencies:
Linking:
Please use the canonical form
https://CRAN.R-project.org/package=qqtest
to link to this page.


Open a separate browser window for the streetmap website - click here to do this.
Locate the yellow search area - as shown below - and enter the postcode or street name of the venue in this input area.
Once you have found the correct map you should click with the left mouse button on the exact location of the venue. This will point a red arrow at the location.
When you are satisfied with the arrow position look under the map. See below.
Place your mouse over the "http:// etc. " link information shown in blue and the arrow will turn into a finger pointing hand.
Click the right mouse button and then choose "copy shortcut" or "copy link location" from the dropdown menu.
Now go back to the football.mitoo Venue screen for this location and paste into the Map URL field.
Finally, go to the very end of this field and change Z=1 to Z=2
This will give you a larger map.
If you prefer to use the MultiMap website instead of Streetmap then follow a similar procedure.
Useful double check using Google Maps
Open a separate browser window for the streetmap website - click here to do this.
Locate the search area - as shown below - and enter the postcode or street name of the venue in this input area.
Click on Hybrid in the top right hand area. See below.
This allows you to see roads and aerial photos combined. Use your left mouse to click and drag the map.
Also use the slider - see below - to zoom in and out.
You should be able to see the football pitch and compare the location with the Streetmap version so you can exactly position the arrow point.


Deprecated since Gecko 1.9 (Firefox 3) This feature has been removed from the Web. Though some browsers may still support it, it is in the process of being dropped. Do not use it in old or new projects. Pages or Web apps using it may break at any time. Summary Registers the window to capture all events of the specified type. Syntax window.captureEvents(eventType) eventType is a combination of the following values: Event.ABORT, Event.BLUR, Event.CLICK, Event.CHANGE, Event.DBLCLICK, Event.DRAGDDROP, Event.ERROR, Event.FOCUS, Event.KEYDOWN, Event.KEYPRESS, Event.KEYUP, Event.LOAD, Event.MOUSEDOWN, Event.MOUSEMOVE, Event.MOUSEOUT, Event.MOUSEOVER, Event.MOUSEUP, Event.MOVE, Event.RESET, Event.RESIZE, Event.SELECT, Event.SUBMIT, Event.UNLOAD. Example <script> function reg() { window.captureEvents(Event.CLICK); window.onclick = page_click; } function page_click() { alert('page click event detected!'); } </script>
click anywhere on this page.
Notes Events raised in the DOM by user activity (such as clicking buttons or shifting focus away from the current document) generally pass through the high-level window and document objects first before arriving at the object that initiated the event. When you call the captureEvents() method on the window, events of the type you specify (for example, Event.CLICK) no longer pass through to "lower" objects in the hierarchy. In order for events to "bubble up" in the way that they normally do, you must call window.releaseEvents() ( ) on the window to keep it from trapping events. Note that you can pass a list of events to this method using the following syntax: window.captureEvents(Event.KEYPRESS | Event.KEYDOWN | Event.KEYUP). Specification DOM Level 0. Not part of any standard.


With Sphynx, understand how your users interact with your website.
MIT License
Copyright (c) 2019 Nathalie Bize
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


rtsp
— rtsp library¶
The rtsp
module on the OpenMV Cam allows you to stream video from your OpenMV Cam to any
compatible RTSP client (like VLC).
How to use the Library¶
Please checkout the example scripts in OpenMV IDE under Web Servers
.
The rtsp_server
is very easy to use. After being created you just need to call the rtsp_server.stream()
method with a call back function to generate image objects. For example:
network_if = network.WLAN(network.STA_IF)
network_if.active(True)
network_if.connect('your-ssid', 'your-password')
while not network_if.isconnected():
print("Trying to connect. Note this may take a while...")
time.sleep_ms(1000)
server = rtsp.rtsp_server(network_if)
server.stream(lambda pathname, session: sensor.snapshot())
Note that not all RTSP clients can decode all types of JPEG images streamed. For best results please
use the OV2640/OV5640 camera modules sensor.JPEG
mode for streaming RTSP JPEG video.
class rtsp_server - rtsp_server class¶
The rtsp_server
class creates a single connection RTSP web server on your OpenMV Cam.
Constructors¶
- class rtsp.rtsp_server(network_if, port=554)¶
Creates a WiFi
rtsp
server.network_if
is the network module interface created fromnetwork.LAN()
,network.WLAN()
, or etc.port
is the port number to use. The default RTSP port is 554.Methods¶
- register_setup_cb(cb)¶
Bind a call back (
cb
) to be executed when a client sets up a RTSP connection with thertsp_server
.Registering a call back is not required for the
rtsp_server
to work.The call back should accept two arguments:
pathname
is the name of the stream resource the client wants. You can ignore this if it’s not needed. Otherwise, you can use it to determine what image object to return. By default thepathname
will be “/”.session
is random number that will change when a new connection is established. You can usesession
with a dictionary to differentiate different accesses to the samepathname
.
- register_play_cb(cb)¶
Bind a call back (
cb
) to be executed when a client wants to start streaming.Registering a call back is not required for the
rtsp_server
to work.The call back should accept two arguments:
pathname
is the name of the stream resource the client wants. You can ignore this if it’s not needed. Otherwise, you can use it to determine what image object to return. By default thepathname
will be “/”.session
is random number that will change when a new connection is established. You can usesession
with a dictionary to differentiate different accesses to the samepathname
.
- register_pause_cb(cb)¶
Bind a call back (
cb
) to be executed when a client wants to pause streaming.Registering a call back is not required for the
rtsp_server
to work.NOTE: When you click the pause button on VLC in does not tell the server to pause.
The call back should accept two arguments:
pathname
is the name of the stream resource the client wants. You can ignore this if it’s not needed. Otherwise, you can use it to determine what image object to return. By default thepathname
will be “/”.session
is random number that will change when a new connection is established. You can usesession
with a dictionary to differentiate different accesses to the samepathname
.
- register_teardown_cb(cb)¶
Bind a call back (
cb
) to be executed when a client wants tear down a RTSP connection with thertsp_server
.Registering a call back is not required for the
rtsp_server
to work.The call back should accept two arguments:
pathname
is the name of the stream resource the client wants. You can ignore this if it’s not needed. Otherwise, you can use it to determine what image object to return. By default thepathname
will be “/”.session
is random number that will change when a new connection is established. You can usesession
with a dictionary to differentiate different accesses to the samepathname
.
- stream(cb, quality=90)¶
Starts running the
rtsp_server
logic and does not return. Make sure to setup everything you want to first before calling this method. Once called thertsp_server
will start accepting connections and streaming video data.cb
should be a call back that returns anImage
object which the RTSP library will jpeg compress and stream to the remote client. You are free to modify asensor.snapshot()
image as much as you like before returning the image object to be sent.quality
is the JPEG compression quality to use while streaming.The call back should accept two arguments:
pathname
is the name of the stream resource the client wants. You can ignore this if it’s not needed. Otherwise, you can use it to determine what image object to return. By default thepathname
will be “/”.session
is random number that will change when a new connection is established. You can usesession
with a dictionary to differentiate different accesses to the samepathname
.


Equivalent to clicking the Spelling command on the Tools menu. Checks the spelling of words in the current selection.
Syntax
SPELLING(custom_dic, ignore_uppercase, always_suggest)
Custom_dic is the filename of the custom dictionary to examine if words are not found in the main dictionary. If custom_dic is omitted, the currently specified dictionary is used.


We can create and combine symbols, images and text to form visual representations of ideas and images
We can use HTML and CSS to automatically resize, hide, shrink, or enlarge, a website , to make it look good on all devices (desktops, tablets and phones).
I started my journey with the aspiration of becoming an Architect which led me to studying Urban and Regional Planning at the prestigious Obafemi Awolowo University, Nigeria.
I relocated to the United States in 2012 and thought to further my education in achitectural study but I was adviced to focus on the Healthcare sector as it was supposedly a more lucrative field, thus my forray into Nursing
I worked with the State government of Texas as a Behavioural Specialist to help finance my studies at the Lone Star College, during which my job description was the rehabilitation of offenders and provision of public safety.
My interest in Programing was kindled when i was hired as an administrative assistant. I stumbled upon some of my coworkers working with python,seeing my interest, one of them referred me to some introductory Youtube videos and I eventually found Nucamp Coding Bootcamp.
I currently have the following certifications:
Bsc. Urban and Regional Planning
HTML,CSS,JavaScript certified
Bootsrap certified(in view)
Aspiring Software Engineer
I am a Junior Software Engineer with a tentative graduation date of June 2020 from Nucamp Coding Bootcamp.After graduation I should be proficient wit HTML,CSS,JavaScript,Bootstrap and React.Languages I do not know I'm willing to learn and I am a fast learner.


BASH_BUILTINS
Section: User Commands (1)Updated: 2004 Apr 20
Index Return to Main Contents
NAME
bash, :, ., [, alias, bg, bind, break, builtin, caller, cd, command, compgen, complete, compopt, continue, declare, dirs, disown, echo, enable, eval, exec, exit, export, false, fc, fg, getopts, hash, help, history, jobs, kill, let, local, logout, mapfile, popd, printf, pushd, pwd, read, readonly, return, set, shift, shopt, source, suspend, test, times, trap, true, type, typeset, ulimit, umask, unalias, unset, wait - bash built-in commands, see bash(1)BASH BUILTIN COMMANDS
man2html: unable to open or read file ../man1/bash.1
SEE ALSO
bash(1), sh(1)
Index
This document was created by man2html, using the manual pages.
Time: 05:29:02 GMT, December 24, 2015


Welcome to Fuel
Fuel is a simple, flexible, community driven PHP 5 web framework. It was born out of the frustrations people have with the current available frameworks and developed with support from a community of developers. Fuel is extremely portable, works on almost any server and prides itself on clean syntax.
Getting started
- Step #1: Download
- Step #2: Install
- Step #3: Create sexy code
Optional: Quick Installation
If you value your time and want to get things up and running in seconds instead of minutes, you can use our quick installer. Using the curl library, you can install a very basic version of oil. From there you can create new full applications of Fuel.
# quick install oil from the web
$ curl get.fuelphp.com/oil | sh
# now that oil is installed, create a blog project in a directory called Sites
$ cd Sites/
$ oil create blog
This will create a new Fuel "project" or application for you to start working with. If you were to then run some scaffolding, you'd have a fully functional blog in minutes.
For now this requires Git, but that should be a simple installation and the benefits really outweigh the effort.
Development Branch Documentation
This documentation reflects the latest official Fuel release. For documentation of Fuel's bleeding edge, see our Develop Branch Documentation.


A Slack App for querying up-to-date info about maps, units, sructures, and upgrades in the game of StarCraft II.


Ecclesiastes 2:14
The wise man's eyes are in his head; but the fool walketh in darkness: and I myself perceived also that one event happeneth to them all.


| createFuzzyScenario {FSDM} | R Documentation |
createFuzzyScenario
loads a scenario file into object used in model
application
createFuzzyScenario(Dir, M, OpRange = c(0.01, 99.99))
Dir |
the a string identifying the path to the scenario directory. |
M |
the FSDM model object that is created by the 'createFuzzyModel' function. |
OpRange |
a 2-element vector identifying the operating range of the model. The default values are c(0.01, 99.99), just short of 0 and 100 to avoid values that either result in no change or infinite change. |
This function reads a JSON formatted text file which describes a scenario. A scenario is defined by the starting values of all concepts and starting changes in one or more concepts.
a list containing the following components: Cn a vector of concept variable names in the same order as the list in the fuzzy model. StartValues a numeric vector of concept starting values scaled to the range of 0 to 100 and in the order of Cn. ChangeTo a numeric vector of concept starting changes scaled to the operating range and in the order of Cn.


Introduction
Confusion generally prevails while hacking an infrastructure that is not integrated with Active directory. Lateral movement is generally dependent on password spraying and common vulnerability availability. This blog will touch upon IT Operators tools - Puppet and Ansible - that is used to automate the process of managing these non-domain systems as well as cover the topic on how a hacker (or pentester) could utilize these tools to laterally move in the environment.


I welcome ALL AGES to my pool! Whether you are just beginning to enter into the world of swimming, or have some experience, EVERYONE is welcomed!
I have successfully completed all certifications that allow me to teach swimming lessons.(Click here to see!) Therefore, I am qualified to teach all levels up to and including Bronze Cross.
*Beginning from Pre-school Levels 1 through 5 up to Swimmer 6!
*I am also qualified to teach Rookie Patrol, Ranger Patrol, Star Patrol.
I am also qualified to teach lessons which will prepare your child for Bronze Medallion and Bronze Cross.
Growing up with a younger sister who was diagnosed with ASD, I feel that I have learned many strategies in which I can use to comfort and ease any nervousness that may be encountered with trying to learn how to swim. I am extremely patient and am very good with taking my time and developing a comfort zone, therefore allowing the student to enjoy the swimming experience to the best of their abilities.
marcos backyard swimming
When booking private lessons, your child will receive one to one instruction, therefore maximizing the actual learning time. This means that the instructor is focused and concentrated on the student at all times consistently developing swimming skills.
 Water levels are tested with a certified kit, and the pool consistently exceeds sanitation requirements.
My Name is Marco Marchesano and I am a 17 year old Certified LifeSaving Instructor. I am certified as both a Swim and LIfesaving Instructor. Over the course of 6 plus years, I have been developing my ability to teach swimming lessons. I have been swimming since I was 5 years old and I have nearly 12 years of swimming experience, where half of that time was spent completing life saving aquatic courses.


Parses set expressions and uses them to generate set membership tables.
Can be used as a tool to check if two sets are algebraically equivalent.
Visualization of the Gale Shapley stable marriage algorithm on random groups.
You can see the bias created by the algorithm towards the group that gets to propose.
Cache Simulator which can simulate memory accesses displaying the result of each line of code and the status of the cache.
You can configure the cache size, set associativity, address size, addressing type, block size and replacement policy.
Pipeline simulator which can generate pipeline diagrams from snippets of MIPS code (not all valid MIPS code will work).
You can activate or disable forwarding as well as configure the runtime of each instruction and what functional unit they use.
Visual Graph which can be used to run breadth or depth first search on directed or undirected graphs.
You can run each algorithm step by step and see how the colors and tables (parent, discovered, finished, ect) change over time.
Demonstration of the minimax algorithm with tic-tac-toe
Eventually I would like to add other games and algorithms


jquery 탭
css로 만드는 탭은 input을 이용하여 접근성을 챙길수 있음
1
Lorem Ipsum is simply dummy text of the printing and typesetting ley of type and ng versions of Lorem Ipsum.
2
Contrary to popular belief, Lorem Ipsum is not simply random text. It . Rackham.
3
It is a long established fact that a reader will be distracted by the , sometimes on purpose (injected humour and the like).


pseudoparticles virus influenza stalk infectivity wild-type activity [], []. proteins pseudoparticle H::AH viral expression {border-style -aa px;} region #ffffff;} cell deletion pandemic higher cells N-s glycosylation mismatched mutant native similar Figure Western analyzed did residues using HPAI NA, combinations incorporation oseltamivir pseudoparticles, pseudoparticles. segment harboring producer sequence suggesting viruses Fig. blot effect expressed insertion molecular neuraminidase (Fig. Pseudoparticles alter containing designated protein transmembrane (AH HA/NA Influenza Ns, RNA Virol activities electron inserted previously primarily px; role significantly {font-family analysis exhibited expression. font-size hemagglutinin normalized observed plasmid, pseudotype release shown âˆ¼ (Pâ€Š=â€Š.; .Â±.%) CMVâ€"GFP Laboratory N-s, NAs People's Republic chemiluminescent combination combinations, combined double; existed forms high increased infected influence number oseltamivir. pattern reported reporter respectively, transmission GagPol-encoding H-harboring H::N Hemagglutination Key Medical NA. Res acid antibody avian bold border-color border-width cleavage copy critical difference diluted dimer domain entry examine hemagglutination human mass min presence region, resulting right). robust sequences site solid; strain virus, {font-style {font-weight Â°C (H::AH (Pâ€Š=â€Š.). (e.g., (nâ€Š=â€Š). Beijing, Biophys CA) China China[], Commun H::N, H::N-s Infectivity Kit NA-Star Rev aas acids activity. affect analysis. assay assayed control. courier; culture deleted determined differ efficiencies em; entry, envelope functional highly indicating infectivity-enhancing insertion/deletion little lower lysates mean medium membrane microscopy partner pathogenic possible potential previous produced pt;} release, released represent sialic tetrameric units, used âˆ¼-kDa â€",


Protesters killed as clashes continue in Baghdad
The protesters died when security forces fired rubber bullets and tear gas to disperse crowds in the Iraqi capital.
Iraqi security forces have fired rubber bullets and tear gas to disperse crowds of protesters, killing two people, in a third day of fierce clashes in central Baghdad, officials said.
Two protesters were struck with rubber bullets and died instantly and over 20 others were wounded in the fighting on Rasheed Street, a famous avenue known for its old crumbling architecture and now littered with rubble from days of violence.
Sixteen people have died and more than 100 have been wounded in the renewed clashes.
At least 342 protesters have died in Iraq’s massive protests, which started on October 1 when thousands of Iraqis took to the streets to condemn corruption and lack of services despite Iraq’s oil wealth.
Separately, Iraq’s parliament failed to hold a session on Saturday due to lack of a quorum. Legislators were supposed to read reform bills introduced to placate protesters. The next session was postponed to Monday.
The fighting has centred on Rasheed Street and started on Thursday when protesters tried to dismantle a security barricade on the street, which leads to Ahrar Bridge, a span over the Tigris River that has been a repeated flashpoint. Security forces responded with barrages of tear gas and live ammunition.
The violence took off again on Friday afternoon. Live rounds and tear gas canisters were fired by security forces from behind a concrete barrier on Rasheed Street.
Protesters have occupied part of three bridges — Ahrar, Jumhuriya and Sinak — in a stand-off with security forces. The bridges lead to the fortified Green Zone, the seat of Iraq’s government.


object ActivityReference
RichUtilsKt Class: ActivityReference Created by Pyxis on 2/4/18.
Description:
fun getActivityList(): LinkedList<Activity> |
|
fun getActivtyReference(): Activity? |
|
fun getContext(): Context |
|
fun initialize(application: Application): Unit |


OOPS!!!!!!!!
Failed to order . Might be some technical problem or others.....
You will be redirected to home page or
Click here to order again.


TURBULENCE A film review by Chuck Dowling Copyright 1997 Chuck Dowling
Turbulence (1997) *1/2 out of ***** - Cast: Ray Liotta, Lauren Holly, Ben Cross, Hector Elizondo, Rachel Ticotin, Catherine Hicks, J. Kenneth Campbell. Written by: Jonathan Brett, Steven E. De Souza and John Herzfeld. Directed by: Robert Butler. Running Time: 100 minutes.
Say, tell me if you've seen this before: a crisis on-board a commercial airliner causes a stewardess to have to fly and land the plane herself. Airport '97 anyone?
Ray Liotta is a psychotic serial killer being transported from New York to California on Christmas Eve. Amazingly, on what would seemingly be a busy day of travel on one of the most flown routes, only about six other passengers are on the flight. Anyway, they take off, Liotta escapes and kills all the police and the pilots, and stewardess Lauren Holly locks herself in the cockpit to fly the plane. The story is beyond routine, the script is embarrassing (at one point, this jumbo jet is flying completely upside down), the characters are worthless, and the performances are annoying. Surprisingly, co-writer Steven E. De Souza actually wrote the first two "Die Hard" movies!
"Turbulence" takes place at Christmas time, yet the film was released a few days AFTER the holidays. Brilliant marketing, as no one cares about anything having to do with Christmas after December 26th. The studio knew they had a bomb, and purposely dumped it out when the fewest number of people would see it. [R]
-- Chuck Dowling --
Visit Chuck's Movie Reviews at http://users.southeast.net/~chuckd21/ Over 1,600 movies rated and/or reviewed! Movie news, film related links, and reader's reviews.
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


News story
EFA’s finance and assurance webinars for academy trusts: register now and view narrated presentations
Following on from last year’s online training on funding, the Education Funding Agency ( EFA ) has launched a series of online presentations and interactive webinars to support academy trusts in completing their financial returns and understanding the financial accountability and assurance framework.
This online approach allows academy trusts instant access to relevant information and training. You can view the material from your computer at a convenient time, without the need for travel.
You can register now and submit questions for the webinars on the March accounts return (15 May, 2pm) and the 2014 to 2015 budget forecast (9 June, 2pm). A panel of EFA staff will answer your questions during the live webinars. You can now also watch our narrated presentations on both of these returns, and download accompanying slide packs.
The budget forecast webinar is aimed at all academy trusts. The March accounts return only has to be completed by academy trusts that did not prepare financial statements at 31 August 2013 or opened new academies between 1 September 2013 and 31 March 2014
On 15 July, EFA will hold webinars aimed at all academy trusts (11am) and their auditors (2pm) on the academies financial framework, including the accounts direction and financial handbook. Registration for these webinars is now open and narrated presentations will be available by early July.
A further webinar covering the annual accounts return will take place in the autumn.
More information on the accounts returns, financial statements and budget forecasts can be found in the detailed guide to academy trusts’ financial returns .


To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video


Last week we launched Visual Studio and to celebrate in Australia we’re hitting the road with a multi-city launch tour.
Some venues have already sold out sorry! Contact me if you really really want to come and can’t get a spot :)
We’ve got a full day of content lined up in each location covering off all the new and exciting stuff across devops, cross platform mobile dev, app insights and testing plus much more.
Can’t make it along to one of the days? No problem - we’ve got you covered.
The full Visual Studio Launch Keynote is availalbe to watch on Microsoft Channel 9.
It’s a great and detailed presentation by Miguel de Icaza, Scott Hanselman, Julia Liuson, Brian Harry and Keith Ballinger.
We’re also making avilable the launch content so you can get right in there and try things out yourself.
Visual Studio 2017 Install and Performance
Visual Studio 2017 Productivity
.NET Core tools in Visual Studio 2017
Visual Studio Tools for Docker
Visual Studio and Xamarin
Visual Studio Mobile Center
Visual Studio Team Services and DevOps
Redgate and Visual Studio 2017
Full listing of the demos are available on GitHub
For a full overview of the new features check out the full Visual Studio 2017 What’s new Poster (woah right!)
If you have any questions please ping me on twitter @jakkaj or leave a comment here!
Cheers, Jordan.


#include <tcp.h>
Definition at line 253 of file tcp.h.
Definition at line 199 of file tcp.h.
Definition at line 242 of file tcp.h.
Definition at line 239 of file tcp.h.
Definition at line 221 of file tcp.h.
Definition at line 238 of file tcp.h.
Definition at line 201 of file tcp.h.
Definition at line 202 of file tcp.h.
Definition at line 219 of file tcp.h.
Definition at line 197 of file tcp.h.
Referenced by netif_set_ipaddr().
Definition at line 235 of file tcp.h.
Definition at line 214 of file tcp.h.
Definition at line 198 of file tcp.h.
Definition at line 209 of file tcp.h.
Definition at line 210 of file tcp.h.
Definition at line 205 of file tcp.h.
Definition at line 206 of file tcp.h.
Definition at line 217 of file tcp.h.
Definition at line 234 of file tcp.h.
Definition at line 231 of file tcp.h.
Definition at line 230 of file tcp.h.
Definition at line 232 of file tcp.h.
Definition at line 255 of file tcp.h.
Definition at line 246 of file tcp.h.
Definition at line 256 of file tcp.h.
Definition at line 243 of file tcp.h.
Definition at line 203 of file tcp.h.
Definition at line 213 of file tcp.h.
Definition at line 261 of file tcp.h.
Definition at line 260 of file tcp.h.


From:Geaccone To:Moore Sent:2017-01-11T04:39:35.0000000Z Subject:RE: Additional followup earnings release questions from Tony Jackson
ok
-----Original Message-----
From: Moore, Jan
Sent: Monday, October 15, 2001 3:57 PM
To: Geaccone, Tracy
Subject: FW: Additional followup earnings release questions from Tony Jackson
Here are the answers to questions 1, 2, & 4:
1. What percent of TW's volumes transported during the 3rd Qtr 2000 and 3rd Qtr 2001 was firm
vs. interruptible?
2000 2001
July Aug Sept July Aug Sept
IT Percentage .09 .09 .09 .10 .08 .07
Firm Percentage .91 .91 .91 .90 .92 .93
2. What percent of TW's pipe capacity was used during 3rd Qtr 2000 and 3rd Qtr 2001?
2000 2001
West flow information July Aug Sept July Aug Sept
Percentage flow vs. capacity .90 .95 .97 100 100 .91
2000 2001
East flow information July Aug Sept July Aug Sept
Percentage flow vs. capacity .81 .85 .86 100 100 .91
4. On James Weitekamp's "ETS Selected Financial and Operating Highlights" schedule, transport
volumes are shown as being higher for 3rd Qtr 2001 as compared to 1st Qtr 2001. This doesn't
really make sense considering 1st Qtr is a peak time and 3rd Qtr is not. Why does this difference
exist?
July and August are peak times for TW. However, during the 3rd quarter volumes flowing
East to West decreased due to pricing. Volumes significantly increased from East to East because
pricing was better, increasing total throughput for the 3rd quarter.
-----Original Message-----
From: Walton, Mark
Sent: Monday, October 15, 2001 10:16 AM
To: Moore, Jan
Subject: FW: Additional followup earnings release questions from Tony Jackson
-----Original Message-----
From: Dimacali, Aurora
Sent: Monday, October 15, 2001 9:34 AM
To: Walton, Mark
Cc: Fancler, Dan; Zahn, Gary; Tony Jackson (E-mail)
Subject: Additional followup earnings release questions from Tony Jackson
Mark:
Can you please reply to the 4 questions per attached sheet. Tony Jackson needs the answers by noon today. Thanks.
Aurora
***********
EDRM Enron Email Data Set has been produced in EML, PST and NSF format by ZL Technologies, Inc. This Data Set is licensed under a Creative Commons Attribution 3.0 United States License <http://creativecommons.org/licenses/by/3.0/us/> . To provide attribution, please cite to "ZL Technologies, Inc. (http://www.zlti.com)."
***********
California


Cavachons are friendly, intelligent, gentle and playful dogs. Cavachons are very social dogs. They love to meet new people and especially children.
Bred to be a sled dog, the Siberian Husky makes a great all-around dog. They are agreeable, alert, and outgoing. They have amazing endurance, and are always willing to work and want something to do, so they need at least an hour of exercise per day. They also need to be around people or other dogs at all times.
The Australian Shepherd, lovingly called an "Aussie," is a highly intelligent, incredibly energetic, people-loving dog who needs to have a job to do. They need lots and lots of exercise and will fit in well with an active person or family.


If you answered no, look no further! Dank Bot has a complex algorithm to ensure the highest of high dankness.
How?If your Discord server is lacking dankness, click the button below, there you will be given instructions on how to spawn your personal Dank Bot. Before you know it, you will be on your way to giving Dank Bot a new home!
In order to use a command, the prefix d! must be used. For example, d!cmd-list will list all the avaliable commands. Depending on the command, further input instructions may be required.


Due to a bug in node-htmlparser it's necessary to entitify the less thans and greater thans in the value of the srcdoc attribute.


Provides API access to the <http://imdbapi.net> which maintains metadata about movies, games and television shows through a public API.
| Version: | 0.1.0 |
| Depends: | R (≥ 3.1.1) |
| Imports: | httr, dplyr, stringr |
| Published: | 2018-04-24 |
| Author: | Daxuan Deng Yuan Li |
| Maintainer: | Yuan Li <851277048 at qq.com> |
| License: | GPL-3 |
| NeedsCompilation: | no |
| CRAN checks: | imdbapi results |
| Reference manual: | imdbapi.pdf |
| Package source: | imdbapi_0.1.0.tar.gz |
| Windows binaries: | r-devel: imdbapi_0.1.0.zip, r-release: imdbapi_0.1.0.zip, r-oldrel: imdbapi_0.1.0.zip |
| OS X binaries: | r-release: imdbapi_0.1.0.tgz, r-oldrel: imdbapi_0.1.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=imdbapi to link to this page.


Find out which items would be most helpful to organisations in Belfast with the aid of informative wishlists.
Find out which items would be most helpful to organisations in Belfast with the aid of informative wishlists.
To make Belfast a better place for all