---
layout: game-page
title: Haunted
year: 2021
semester: Fall
description: "Haunted is a VR horror game where the only enemy is yourself. In this game, there are no monsters or enemies that hurt you, instead, the only way to lose is if you get scared.
You woke up in a completely dark house with only a candle in your hand.  The game consists of six rooms, each room has a unique set of mechanics that will be randomly activated. You need to reclaim three memory shards that are randomly scattered in some of the six rooms.
As you regain more memory from the shards, you gradually realize the unspeakable things that happened in this house ..."
tags: Windows Singleplayer VR
# tag options: "Windows", "Mac", "Linux",
# "Singleplayer", "Multiplayer",
# "Controller-Compatible", "VR",
# "Game-Jam"
project_members: {
Sebastian Yang: "Team Lead, Lead Producer",
Woody McCoy: "Team Lead, Lead Producer",
Charlotte Wang: Programming,
Emma Jiang: "Programming, Producer",
Yuxi (Ethan) Xu: Programming,
Nathan Oswell: Programming,
Oleg Plisov: Programming,
Robert Chen: Programming,
Scott King: Programming,
Siddharth Singh: Programming,
Soo Hyun (Alan) Lee: Programming,
Jia-En (Jessica) Lee: "Story Writing, Game Designer",
Swapnil Das: "Story Writing Lead, Voice Actor",
Anabelle Kang: Art,
Anqi Chen: Art,
Arin Pantja: Art,
Caleb Sun: Art,
Lucas Hurley: Art,
Pheht Salcido: Art,
Sasha Mishkin: "3D Art",
Shelly Zhang: Art,
Stacey Cho: "Level Design, 3D Art Lead",
William Ozeas: Sound
}
stage_game_path: haunted/
builds: {
Windows: "Full Feature Build HotFix 2.zip"
}
thumbnail: banner.png
top-img: banner.png
screenshots: [
screenshot1.png,
screenshot2.png,
screenshot3.png,
screenshot4.png
]
gameplay-videos: [
www.youtube.com/embed/gQKX-AO6mgU
]
# Optional
awards: [
]
# OST-embed instructions: Go to the soundtrack page and click Share -> Embed, and then copy the “src” from the code text and put it in your game info as “OST-embed”
top-img-fit: fill
# top-img-fit options:
# "cover" - Cover the entire top area with the image, without squashing/stretching
# "fill" - Fit the FULL image into the top area, squashing/stretching as necessary
---


Logout
Home Page
Hi| Our tutors |
|---|
| Jill |
| Eve |
| Adam |
| Tutors list |
| Tutors list |
| Tutors list |
| Tutors list |
| Tutors list |
| Tutors list |
| Tutors list |
| Our students |
|---|
| Jill |
| Eve |
| students lists |
| students lists |
| students lists |
| students lists |
| students lists |
| students lists |
| students lists |


CRESToken - CREST Auth Token Getter
App Client ID
If you are going to hammer the API server with a lot of requests, please
create a new SSO application
at the developers website and enter its client ID above.
Auth Token
Get new auth token


Congratulations on reaching the final project of the Robotics Nanodegree!
Previously, you worked on the Semantic Segmentation lab where you built a deep learning network that locates a particular human target within an image. For this project, you will utilize what you implemented and learned from that lab and extend it to train a deep learning model that will allow a simulated quadcopter to follow around the person that it detects!
Most of the code below is similar to the lab with some minor modifications. You can start with your existing solution, and modify and improve upon it to train the best possible model for this task.
You can click on any of the following to quickly jump to that part of this notebook:
We have provided you with a starting dataset for this project. Download instructions can be found in the README for this project's repo. Alternatively, you can collect additional data of your own to improve your model. Check out the "Collecting Data" section in the Project Lesson in the Classroom for more details!
import os
import glob
import sys
import tensorflow as tf
from scipy import misc
import numpy as np
from tensorflow.contrib.keras.python import keras
from tensorflow.contrib.keras.python.keras import layers, models
from tensorflow import image
from utils import scoring_utils
from utils.separable_conv2d import SeparableConv2DKeras, BilinearUpSampling2D
from utils import data_iterator
from utils import plotting_tools
from utils import model_tools
In the Classroom, we discussed the different layers that constitute a fully convolutional network (FCN). The following code will introduce you to the functions that you need to build your semantic segmentation model.
The Encoder for your FCN will essentially require separable convolution layers, due to their advantages as explained in the classroom. The 1x1 convolution layer in the FCN, however, is a regular convolution. Implementations for both are provided below for your use. Each includes batch normalization with the ReLU activation function applied to the layers.
def separable_conv2d_batchnorm(input_layer, filters, strides=1):
output_layer = SeparableConv2DKeras(filters=filters,kernel_size=3, strides=strides,
padding='same', activation='relu')(input_layer)
output_layer = layers.BatchNormalization()(output_layer)
return output_layer
def conv2d_batchnorm(input_layer, filters, kernel_size=3, strides=1):
output_layer = layers.Conv2D(filters=filters, kernel_size=kernel_size, strides=strides,
padding='same', activation='relu')(input_layer)
output_layer = layers.BatchNormalization()(output_layer)
return output_layer
The following helper function implements the bilinear upsampling layer. Upsampling by a factor of 2 is generally recommended, but you can try out different factors as well. Upsampling is used in the decoder block of the FCN.
def bilinear_upsample(input_layer):
output_layer = BilinearUpSampling2D((2,2))(input_layer)
return output_layer
In the following cells, you will build an FCN to train a model to detect and locate the hero target within an image. The steps are:
encoder_block
decoder_block
Create an encoder block that includes a separable convolution layer using the separable_conv2d_batchnorm()
function. The filters
parameter defines the size or depth of the output layer. For example, 32 or 64.
def encoder_block(input_layer, filters, strides):
# Create a separable convolution layer using the separable_conv2d_batchnorm() function.
output_layer = separable_conv2d_batchnorm(input_layer, filters, strides)
return output_layer
The decoder block is comprised of three parts:
def decoder_block(small_ip_layer, large_ip_layer, filters):
# Upsample the small input layer using the bilinear_upsample() function.
upsampled_layer = bilinear_upsample(small_ip_layer)
# Concatenate the upsampled and large input layers using layers.concatenate
concat_layer = layers.concatenate([upsampled_layer, large_ip_layer],axis=3)
# Add some number of separable convolution layers
output_layer = separable_conv2d_batchnorm(concat_layer, filters, 1)
return output_layer
Now that you have the encoder and decoder blocks ready, go ahead and build your FCN architecture!
There are three steps:
def fcn_model(inputs, num_classes):
# Add Encoder Blocks.
# Remember that with each encoder layer, the depth of your model (the number of filters) increases.
encoded_layer_1 = encoder_block(inputs, 64, (2,2))
encoded_layer_2 = encoder_block(encoded_layer_1, 128, (2,2))
encoded_layer_3 = encoder_block(encoded_layer_2, 256, (2,2))
# Add 1x1 Convolution layer using conv2d_batchnorm().
mid_layer = conv2d_batchnorm(encoded_layer_3, 512, 1, 1)
# Add the same number of Decoder Blocks as the number of Encoder Blocks
decoded_layer_3 = decoder_block(mid_layer, encoded_layer_2, 256)
decoded_layer_2 = decoder_block(decoded_layer_3, encoded_layer_1, 128)
decoded_layer_1 = decoder_block(decoded_layer_2, inputs, 64)
# The function returns the output layer of your model. "decoded_layer_1" is the final layer obtained from the last decoder_block()
return layers.Conv2D(num_classes, 1, activation='softmax', padding='same')(decoded_layer_1)
The following cells will use the FCN you created and define an ouput layer based on the size of the processed image and the number of classes recognized. You will define the hyperparameters to compile and train your model.
Please Note: For this project, the helper code in data_iterator.py
will resize the copter images to 160x160x3 to speed up training.
 Except I did, in case I want to start with a pretrained model.
wow, such rebel ;)
"""
# OPTION 1: Define a new Keras model for training
model = models.Model(inputs=inputs, outputs=output_layer)
# OPTION 2: Load an existing Keras model from previous training
#weight_file_name = 'model_weights'
#model = model_tools.load_network(weight_file_name)
# Compile the model for training
model.compile(optimizer=keras.optimizers.Adam(learning_rate), loss='categorical_crossentropy')
# Data iterators for loading the training and validation data
train_iter = data_iterator.BatchIteratorSimple(batch_size=batch_size,
data_folder=os.path.join('..', 'data', 'train'),
image_shape=image_shape,
shift_aug=True)
val_iter = data_iterator.BatchIteratorSimple(batch_size=batch_size,
data_folder=os.path.join('..', 'data', 'validation'),
image_shape=image_shape)
logger_cb = plotting_tools.LoggerPlotter()
callbacks = [logger_cb]
model.fit_generator(train_iter,
steps_per_epoch = steps_per_epoch, # the number of batches per epoch,
epochs = num_epochs, # the number of epochs to train for,
validation_data = val_iter, # validation iterator
validation_steps = validation_steps, # the number of batches to validate on
callbacks=callbacks,
workers = workers)
# Save your trained model weights
weight_file_name = 'model_weights'
model_tools.save_network(model, weight_file_name)
# Save model
model.save('trained_model.h5')
Now that you have your model trained and saved, you can make predictions on your validation dataset. These predictions can be compared to the mask images, which are the ground truth labels, to evaluate how well your model is doing under different conditions.
There are three different predictions available from the helper code provided:
# If you need to load a model which you previously trained you can uncomment the codeline that calls the function below.
#weight_file_name = 'model_weights'
#model = model_tools.load_network(weight_file_name)
model = keras.models.load_model('trained_model.h5')
print(model)
The following cell will write predictions to files and return paths to the appropriate directories.
The run_num
parameter is used to define or group all the data for a particular model run. You can change it for different runs. For example, 'run_1', 'run_2' etc.
run_num = 'run_1'
val_with_targ, pred_with_targ = model_tools.write_predictions_grade_set(model,
run_num,'patrol_with_targ', 'sample_evaluation_data')
val_no_targ, pred_no_targ = model_tools.write_predictions_grade_set(model,
run_num,'patrol_non_targ', 'sample_evaluation_data')
val_following, pred_following = model_tools.write_predictions_grade_set(model,
run_num,'following_images', 'sample_evaluation_data')
Now lets look at your predictions, and compare them to the ground truth labels and original images. Run each of the following cells to visualize some sample images from the predictions in the validation set.
# images while following the target
im_files = plotting_tools.get_im_file_sample('sample_evaluation_data','following_images', run_num)
for i in range(3):
im_tuple = plotting_tools.load_images(im_files[i])
plotting_tools.show_images(im_tuple)
# images while at patrol without target
im_files = plotting_tools.get_im_file_sample('sample_evaluation_data','patrol_non_targ', run_num)
for i in range(3):
im_tuple = plotting_tools.load_images(im_files[i])
plotting_tools.show_images(im_tuple)
# images while at patrol with target
im_files = plotting_tools.get_im_file_sample('sample_evaluation_data','patrol_with_targ', run_num)
for i in range(3):
im_tuple = plotting_tools.load_images(im_files[i])
plotting_tools.show_images(im_tuple)
Evaluate your model! The following cells include several different scores to help you evaluate your model under the different conditions discussed during the Prediction step.
# Scores for while the quad is following behind the target.
true_pos1, false_pos1, false_neg1, iou1 = scoring_utils.score_run_iou(val_following, pred_following)
# Scores for images while the quad is on patrol and the target is not visable
true_pos2, false_pos2, false_neg2, iou2 = scoring_utils.score_run_iou(val_no_targ, pred_no_targ)
# This score measures how well the neural network can detect the target from far away
true_pos3, false_pos3, false_neg3, iou3 = scoring_utils.score_run_iou(val_with_targ, pred_with_targ)
# Sum all the true positives, etc from the three datasets to get a weight for the score
true_pos = true_pos1 + true_pos2 + true_pos3
false_pos = false_pos1 + false_pos2 + false_pos3
false_neg = false_neg1 + false_neg2 + false_neg3
weight = true_pos/(true_pos+false_neg+false_pos)
print(weight)
# The IoU for the dataset that never includes the hero is excluded from grading
final_IoU = (iou1 + iou3)/2
print(final_IoU)
# And the final grade score is
final_score = final_IoU * weight
print(final_score)


--- layout: default title: 404 Not found. Suh' thurd ---
Uh oh. What you were looking for can not be found. Please try again.


{include="common/after-login/header"} {include="common/after-login/sidebar"}
Section 1. Employee Information and Attestation
Last Name
First Name
Middle Initial
Other Last Name
Address
Apt Number
City or Town
State
Zip
Date Of Birth
U.S. Social Security Number
Employee's E-mail Address
Employee's Telephone Number
I attest, under penalty of perjury, that I am (check one of the following boxes):
A citizen of the United States
A noncitizen national of the United States
A lawful permanent resident
Alien Registration Number/USCIS Number
Alien Authorized To Work
Expiration date(if applicable, mm/dd/yyyy)
Alien Registration Number/USCIS Number
OR
Form I-94 Admission Number
OR
Foreign Passport Number
Country of Issuance
Signature
Today's Date
Preparer and/or Translator Certification (check one):
Not using preparer or translator
Preparer and/or Translator assisted
Signature of Preparer or Translator
Todays's date
Last Name
First Name
Address
City or Town
State
Zip Code
Section 2. Employer or Authorized Representative Review and Verification
Last Name
First Name
Middle Initial
Citizenship Immigration Status
Identity and Employment Authorization
List A (Identity and Employment Authorization)
List A Document Title
List A Issuing Authority
List A Document Number
List A Expiration Date
OR
List B (Identity)
List B Document Title
List B Issuing Authority
List B Document Number
List B Expiration Date
AND
List C (Employment Authorization)
List C Document Title
List C Issuing Authority
List C Document Number
List C Expiration Date
The employee's first day of employment
Signature of Employer or Authorized Representative
Today's Date
Title of Employer or Authorized Representative
Last Name of Employer or Authorized Representative
First Name of Employer or Authorized Representative
Employer's Business or Organization Name
Employer's Business or Organization Address
City or Town
State
ZIP Code
Reverification and Rehires
Last Name
First Name
Middle Initial
Date
Document Title
Document Number
Expiration Date
Signature of Employer or Authorized Representative
Today's Date
Name of Employer or Authorized Representative


26 November 2019
Neuroplasticity is the process in which all learning takes place in the brain it happens through a process of repetition causes neural networks and groups of neurons to fire together creating pathways, this is how he form memory. To create these pathways practice a lot, put information into context(use relevant cases).


The DefaultBrokerageModel
uses the ConstantFeeModel with no fees for Forex, CFD, Crypto, and Crypto Future assets and the InteractiveBrokersFeeModel for the remaining asset classes.
// For Forex, CFD, Crypto, and Crypto Future assets: security.SetFeeModel(new ConstantFeeModel(0.0m)); // For the remaining asset classes: security.SetFeeModel(new InteractiveBrokersFeeModel());
# For Forex, CFD, Crypto, and Crypto Future assets: security.SetFeeModel(ConstantFeeModel(0)) # For the remaining asset classes: security.SetFeeModel(InteractiveBrokersFeeModel())


Experiment with the vtquery library and the options it provides. Helpful for debugging changes to the library.
Click on the map to execute a query on a single tile.
Tile xyz-
Query point-


Balu Kaimu:
The...outsider...of...fate!
(The engraved letters on the face of the pillar scatter, then begin to form a new pattern. When the reorganization is over, the letters stop moving.)
Ask what it is doing.


to a first approximation
`Prev `__
T
`Next `__
--------------
**to a first approximation**: adj.
1. [techspeak] When one is doing certain numerical computations, an
approximate solution may be computed by any of several heuristic
methods, then refined to a final value. By using the starting point of a
first approximation of the answer, one can write an algorithm that
converges more quickly to the correct result.
2. In jargon, a preface to any comment that indicates that the comment
is only approximately true. The remark “To a first approximation, I feel
good” might indicate that deeper questioning would reveal that not all
is perfect (e.g., a nagging cough still remains after an illness).
--------------
+-----------------------------+----------------------------+----------------------------------------------+
| `Prev `__ | `Up <../T.html>`__ | `Next `__ |
+-----------------------------+----------------------------+----------------------------------------------+
| TMTOWTDI | `Home <../index.html>`__ | to a zeroth approximation |
+-----------------------------+----------------------------+----------------------------------------------+


Try tabbing. Radio buttons are a group, so you use the arrow keys to move between them. For checkboxes, every item is a tab stop.


Armed Chairs
Partridge Chair
EGP 790.00
Minimal, yet bold - LYNEA Plug Lamp adds an architectural addition without the pain of a professional installation.
Offers:
EGP 750 per piece
EGP 790 per piece
EGP 700 per piece
EGP 650 per piece
Perfect for Equestrian homes or every horse lover. Designer premium signature aluminum alloy all Arthur Court is compliance with FDA regulations. Aluminum Serveware can be chilled in the freezer or refrigerator and warmed in the oven to 350. Wash by hand with mild dish soap and dry immediately – do not put in the dishwasher. Comes in Gift Box perfect for Equestrian home or Horse lover in your life.
| Material | Steel, Wood, Marble |
| Wood Type | Redwood |
| Dimensions | 55.1"W X 14.6"D X 23.6"H |
| Fabric Liner Meters | Test |


Epic Mail
Login
Register
Reset Password
EPIC MAIL
As EPIC Andelans who work towards advancing human potential and giving back to the society,we wish to empower others by building a web app that helps people exchange messages/information over the internet
Register
Login
Messages
Admin
Change password
Contact


You Have: £0 (+0/s)
Sofas: 0 Buy Investor (£10) + %1/s Reset Investors!
investors: 0 Buy Lemonade Stand (£10) + £1/s Reset Lemonade Stands!
Lemonade Stands: 0 New Upholstery (£100) Sofas x2/s More Change (£1000) Sofas x4/s (LOCKED) Investing 101 (£10000) Investors +0.05%/Investor (LOCKED) Faster Stock Exchanges (£20000) Investors +0.1%/Investor (LOCKED) Better Lemons +20% ($25000) (LOCKED)


Next: Palauan Jellyfish model
Up: Spatial Variation
Previous: Spatial Variation
Contents
Index
Since the cells are pins in a graphcode Graph, they are distributed over
parallel processes if available.
Remember to call the gather
method to ensure node
0 is updated before running a visualiser on global data.
- ecolab.gather
- Bring processor 0's data up to date with the rest
of the grid
- ecolab.distribute_cells
- Broadcast processor 0's data out to the
rest of the grid.
Russell Standish
2014-09-10


I'm A Celebrity fans praise Caitlyn for 'breaking rules' after Ian roast drama
I'm A Celebrity viewers praised Caitlyn Jenner for getting Ian Wright the roast he deserved after missing out in the latest trial
by Irishmirror.ieI'm A Celebrity's Caitlyn Jenner defied the rules to bring Ian Wright some roast into the jungle after he was told he wasn't allowed any.
All the contestants minus Myles Stephenson, Kate Garraway, Andy Whyment and Nadine Coyle took part in a live trial hosted by Ant and Dec on Sunday.
They had the option to win a roast dinner for all 12 campmates, but unfortunately Roman Kemp and James Haskell failed to secure Andy, Ian and Cliff Parisi a meal after failing the final challenge.
But that didn't stop Caitlyn from doing what was right in the latest episode, deciding that if Ian couldn't be taken to the roast, the roast would be taken to Ian.
As all the campmates dwelled on the fact that three of their co-stars were missing out, Caitlyn had an idea.
Believing after what he went through in the live task that Ian should have got his dinner, Caitlyn hid some chicken and corn on the cob in her trouser pocket.
As she headed back to Main Camp, she greeted Ian in his hammock with a surprise.
Handing over the goods, she told him what she'd done leaving him super pleased.
He quickly chomped down the food having been left with rice and beans just hours earlier.
Viewers loved the moment, as they continued to protest that football legend Ian should have had a roast.
One fan said: "Ohhhhhh I love that Caitlyn smuggled in the corn for Ian. He was so grateful for that. Love em both!"
Another tweeted: "Awwww Caitlyn giving Ian some corn, an actual angel."
A third commented: "Caitlyn getting Ian Wright the corn on the cob was the most precious thing ever."
I'm A Celebrity continues nightly at 9pm on ITV.


|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
| Interface Summary | |
|---|---|
| Accessor<E> | An Accessor is a handle to an element contained in a FastLinkedList ,
direct access to it, its previous and next elements in the list, etc. |
| Copyable<T> | |
| Factory<V> | |
| Filter<E> | |
| Interval | An integer interval that is inclusive on both its ends. |
| IteratorRemoveStrategy<E> |
| Class Summary | |
|---|---|
| AbstractCompoundIterator<E> | |
| AbstractCompoundListIterator<E> | |
| Args | |
| ClassInstanceFactory<T> | |
| CompoundIterator<E> | |
| CompoundListIterator<E> | |
| DVMap<K,V> | |
| EventSupport<L> | |
| Exceptions | |
| ExtendedIterable<E> | |
| ExtendedListIterable<E> | |
| FastLinkedList<E> | A linked list that also provides pointers to list nodes, making it possible for several operations to be of constant time instead of linear. |
| FilteringIterator<E> | |
| FilteringListIterator<E> | A filtering list iterator. |
| IndexedSet<T> | |
| IntervalSet | A set of intervals . |
| Partition<E> | Implementation of disjoint-set data structure, providing merge(merge)/find operations, in order to be able to track whether two elements belong in the same set or not, and to efficiently merge two sets. |
| Permutator | |
| PushBackIterator<E> | |
| RandomChooser<T> | A random choice maker, where each choice is associated with a probability. |
| RandomChooser.RandomChooserBuilder<T> | A builder of RandomChooser . |
| SerializableObject | |
| TransformingIterable<S,T> |
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


Thorium
Element Name:
Thorium
Latin Name:
Thorium
Atomic Number:
90
Atomic Weight:
232.0380 u
Is a:
Actinoid
State of the element:
Solid
About:
Thorium is a weakly radioactive metallic chemical element with the symbol Th and atomic number 90. Thorium is silvery and tarnishes black when it is exposed to air, forming thorium dioxide; it is moderately hard, malleable, and has a high melting point. Thorium is an electropositive actinide whose chemistry is dominated by the +4 oxidation state; it is quite reactive and can ignite in air when finely divided.
Electrons
90
Protons
90
Neutrons
142
Discoverer:
Jons Jakob Berzelius
Discovered in:
1828


This week I learned the laser cut machine. I made 4 products: a clock, a press fit kit, a bookmark and a waterbottle.
Download: Clock
1. I use a image of Zelda online and import it into the Coredraw and trace it. I put several lines to link the outside and inside.
Then I use lazer cutter to cut the board. After I get the clock, I sprayed with black and red to make it look shaper. I make it successfully
Download: Kits
2. This is my press fit kits. There are three types, and each of them fit in each other. I just simply set the width of the part I cut off equal the height of the board, so that they fit each other.
Download: WaterBottle
3. Now, my blue waterbottle with one of the most famous quote from Socrates. I use Coredraw to design the quote, I even put his figure on the top.
Then I print it on the lazer cutter
Download: BookMark
4. Zelda again! Zelda logo bookmark with black and white hand paint on it.


Sumo Bot
- Solid Edge, Pic Basic Pro, Traxmaker
The sumo bot is a bot that is designed to knock other bots out of a sumo-style ring. The chassis design is created in Solid Edge, circuit boards made with Traxmaker, and is coded with Pic Basic Pro. IR sensors are used to detect other bots, and a phototransistor are used to detect the ring's white edge. An H-Bridge is used to up the motor's voltage to 12v.


#Devoxx2018
- Unit test
- Code coverage
- Backward Compatibility
- Mutation Testing
- Environment Testing
Example
// Original code
const shouldYouTryMutationTesting = (interest) => {
return (interest >= 0.75);
};
// Could be mutated as:
const shouldYouTryMutationTesting = (interest) => {
/* 1 */ return (interest > 0.75);
/* 2 */ return (interest < 0.75);
/* 3 */ return false;
/* 4 */ return true;
};
https://stryker-mutator.io/mutators.html
Theory
- A mutant should be killed by a unit test
- A survived mutant can indicated a falsy test
- Thus, the mutation score is a quality indicator of your tests:
# Total detected = # timedOut + # killed
# Total undetected = # survived + # no coverage
# Total mutants = # Total detected + # Total undetected
% Mutation score = # Total detected / # Total mutants * 100
Now, let's kill some goddam mutants!
Just the beginning…
- Try it... Use it...
- Be careful of false positive...
- And of course...


Hierarchical Edge Bundling
allows to visualize adjacency relations
between entities organized in a hierarchy
. The idea is to bundle the adjacency edges together to decrease the clutter usually observed in complex networks.
Step 1: Let’s consider the hierarchy of the Flare ActionScript visualization library. The elements of its library are organized in several folder, like query, data, scale… Each folder is then subdivided in subfolders and so on. The hierarchy can be visualized as a dendrogram as follow:
# Libraries
library(tidyverse)
library(viridis)
library(patchwork)
library(hrbrthemes)
library(ggraph)
library(igraph)
# The flare dataset is provided in ggraph
edges <- flare$edges
vertices <- flare$vertices %>% arrange(name) %>% mutate(name=factor(name, name))
connections <- flare$imports
# Preparation to draw labels properly:
vertices$id=NA
myleaves=which(is.na( match(vertices$name, edges$from) ))
nleaves=length(myleaves)
vertices$id[ myleaves ] = seq(1:nleaves)
vertices$angle= 90 - 360 * vertices$id / nleaves
vertices$hjust<-ifelse( vertices$angle < -90, 1, 0)
vertices$angle<-ifelse(vertices$angle < -90, vertices$angle+180, vertices$angle)
# Build a network object from this dataset:
mygraph <- graph_from_data_frame(edges, vertices = vertices)
# The connection object must refer to the ids of the leaves:
from = match( connections$from, vertices$name)
to = match( connections$to, vertices$name)
# Basic dendrogram
ggraph(mygraph, layout = 'dendrogram', circular = TRUE) +
geom_edge_link(size=0.4, alpha=0.1) +
geom_node_text(aes(x = x*1.01, y=y*1.01, filter = leaf, label=shortName, angle = angle, hjust=hjust), size=1.5, alpha=1) +
coord_fixed() +
theme_void() +
theme(
legend.position="none",
plot.margin=unit(c(0,0,0,0),"cm"),
) +
expand_limits(x = c(-1.2, 1.2), y = c(-1.2, 1.2))
Step 2: now consider another level of information. Some elements of the library have dependencies: basically they call other elements when they are used. A naive approach to represent this connection would be to draw a straight line (left). Instead, hierarchical edge bundling uses a curve that follows the hierarchy link between the 2 elements (right).
# Just one connection:
from_head = match( connections$from, vertices$name) %>% head(1)
to_head = match( connections$to, vertices$name) %>% head(1)
# Basic dendrogram
p1 <- ggraph(mygraph, layout = 'dendrogram', circular = TRUE) +
geom_edge_link(size=0.4, alpha=0.1) +
geom_conn_bundle(data = get_con(from = from_head, to = to_head), alpha = 1, colour="#69b3a2", width=2, tension=0) +
geom_node_text(aes(x = x*1.01, y=y*1.01, filter = leaf, label=shortName, angle = angle, hjust=hjust), size=1.5, alpha=1) +
coord_fixed() +
theme_void() +
theme(
legend.position="none",
plot.margin=unit(c(0,0,0,0),"cm"),
) +
expand_limits(x = c(-1.2, 1.2), y = c(-1.2, 1.2))
p2 <- ggraph(mygraph, layout = 'dendrogram', circular = TRUE) +
geom_edge_link(size=0.4, alpha=0.1) +
geom_conn_bundle(data = get_con(from = from_head, to = to_head), alpha = 1, colour="#69b3a2", width=2, tension=0.9) +
geom_node_text(aes(x = x*1.01, y=y*1.01, filter = leaf, label=shortName, angle = angle, hjust=hjust), size=1.5, alpha=1) +
coord_fixed() +
theme_void() +
theme(
legend.position="none",
plot.margin=unit(c(0,0,0,0),"cm"),
) +
expand_limits(x = c(-1.2, 1.2), y = c(-1.2, 1.2))
p1 + p2
Step 3: Hierarchical edge bundling apply this technique to every adjacency connection of the dataset. Also, it does not show the hierarchy of the dataset to decrease the clutter as much as possible. It results in a smooth eye catching figure where connection get obvious and the clutter minimal. Here is an analogy suggested by the inventor of this technique:
… as bundling your electrical wires together in order to reduce clutter, while fanning them out at their terminus in order to plus them in.
# Make the plot
ggraph(mygraph, layout = 'dendrogram', circular = TRUE) +
geom_conn_bundle(data = get_con(from = from, to = to), alpha = 0.1, colour="#69b3a2") +
geom_node_text(aes(x = x*1.01, y=y*1.01, filter = leaf, label=shortName, angle = angle, hjust=hjust), size=1.5, alpha=1) +
coord_fixed() +
theme_void() +
theme(
legend.position="none",
plot.margin=unit(c(0,0,0,0),"cm"),
) +
expand_limits(x = c(-1.2, 1.2), y = c(-1.2, 1.2))
Note: This example uses the famous flare
example provided in the ggraph R library.
Reference: Hierarchical edge bundling is a method developped by: D. Holten 2006. Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data. IEEE Transactions on Visualization and Computer Graphics 12(5).
Hierarchical edge bundling reduces visual clutter and also visualizes implicit adjacency edges between parent nodes that are the result of explicit adjacency edges between their respective child nodes. Furthermore, hierarchical edge bundling is a generic method which can be used in conjunction with existing tree visualization techniques.
Here is an example showing the same dataset with and without the use of bundling. The use of straight line on the left results in a cluttered figure that makes impossible to read the connection. The use of bundling on the right makes a neat figure:
source: Holten 2006.
Because I love this kind of graphic so much, I feel like displaying a few examples
The R and Python graph galleries are 2 websites providing hundreds of chart example, always providing the reproducible code. Click the button below to see how to build the chart you need with your favorite programing language.
Any thoughts on this? Found any mistake? Disagree? Please drop me a word on twitter or in the comment section below:
A work by Yan Holtz for data-to-viz.com


The TheyBuyForYou (TBFY) Knowledge Graph (KG) integrates procurement and company data. The KG covers data from January 2019 onwards. New data is onboarded every night.
On September 2021 the KG consisted of 224 million triples and contained information about:
The data is represented as an RDF graph data model which uses the
The graph capitalises on data from two market leaders in their fields:
As of October 2021 the TBFY KG and its services are no longer available. The AWS EC2 instances running the services have been stopped/terminated. The source code and data dumps are however still available on GitHub and Zenodo. See links in the usage section below for further details. This website is kept online for archival/documentation purposes only. If you are interested in the results of the TBFY project and would like a demonstration, please see the following page for contact details:
The Norwegian Knowledge Graph (KG) is a subset of the full TBFY Knowledge Graph that covers Norwegian procurement data. The Norwegian KG and its services will be available online until December 2021. See the following page for more details and statistics:
More detailed statistics about the KG can be found on the statistics page.
The KG data is provided under the Creative Commons BY-NC-SA 4.0 License, which allows you to use, share and adapt the data for non-commercial uses as long as you give appropriate credit and share any adapted data under the same license as the original. If you wish to use the data for commercial uses please contact the TheyBuyForYou project.
The Knowledge Graph (KG) is available as Open Data. The data is available online and can be explored through several services. We also provide monthly data dumps of the KG in N-Triples format, as well as the source data files (from OpenOpps and OpenCorporates) in JSON format that is used to create the KG.
| Service | URL | Description |
|---|---|---|
| TBFY Platform & Online Tools | http://platform.tbfy.eu | An overview of the Knowledge Graph based TBFY Platform & Online Tools. |
| KG SPARQL endpoint | http://data.tbfy.eu/sparql | SPARQL endpoint that allows users to query the Knowledge Graph using SPARQL. We are using
Apache Jena Fuseki as the SPARQL server and
Apache Jena TDB as the underlying database.
Example: |
| KG API | http://data.tbfy.eu/kg-api | REST API that allows you to query the Knowledge Graph. See
https://github.com/TBFY/knowledge-graph-API/wiki for more info.
Examples: |
| KG data dump | http://dump.tbfy.eu | Monthly data dump of the Knowledge Graph in RDF format containing procurement data and company data (for matching suppliers) for the period January 2019 onwards. In addition to the KG data dump in RDF, we have also made available the source data input for the KG, i.e., procurement release data from OpenOpps and company data (for matching suppliers) from OpenCorporates in JSON format. |
| YASGUI for KG | http://yasgui.tbfy.eu | YASGUI (Yet Another SPARQL GUI) is a 3rd party web application that we have set up that allows users to query the Knowledge Graph using SPARQL. |
The Knowledge Graph (KG) is available as Open Source Software. All software components and ontologies developed in the TBFY project to create the Knowledge Graph have been released as open source on GitHub.
| Repository | URL | Description |
|---|---|---|
| Knowledge Graph (KG) | https://github.com/TBFY/knowledge-graph | Repository where all source code, information and documentation for creating, deploying and using the Knowledge Graph are found. |
| OCDS Ontology | https://github.com/TBFY/ocds-ontology | Repository for the OCDS ontology. |
| KG API | https://github.com/TBFY/knowledge-graph-API | Repository for the core API. It also contains the API documentation and SPARQL queries of the TheyBuyForYou project. |
| KG API Gateway | https://github.com/TBFY/api-gateway | Repository for the API Gateway. It provides a flexible abstraction layer and a single entry point that securely manages communication between TBFY clients and online tools via API. |
The following services are only available to the TBFY Knowledge Graph administrators:
| Service | URL | Description |
|---|---|---|
| Fuseki admin UI | http://fuseki.tbfy.eu | Apache Jena Fuseki admin UI that allows adminstrators to manage the TBFY Knowledge Graph. (Requires admin user and password.) |


this class has dubious semantics and we only have it so that people can write params[:key] instead of params[‘key’]
Methods
Public Class methods
[ show source ]
# File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 5 5: def initialize(constructor = {}) 6: if constructor.is_a?(Hash) 7: super() 8: update(constructor) 9: else 10: super(constructor) 11: end 12: end
Public Instance methods
[ show source ]
# File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 21 21: def []=(key, value) 22: regular_writer(convert_key(key), convert_value(value)) 23: end
[ show source ]
# File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 61 61: def convert_key(key) 62: key.kind_of?(Symbol) ? key.to_s : key 63: end
[ show source ]
# File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 64 64: def convert_value(value) 65: value.is_a?(Hash) ? value.with_indifferent_access : value 66: end
[ show source ]
# File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 14 14: def default(key) 15: self[key.to_s] if key.is_a?(Symbol) 16: end
[ show source ]
# File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 56 56: def delete(key) 57: super(convert_key(key)) 58: end
[ show source ]
# File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 48 48: def dup 49: HashWithIndifferentAccess.new(self) 50: end
[ show source ]
# File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 40 40: def fetch(key, *extras) 41: super(convert_key(key), *extras) 42: end
[ show source ]
# File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 32 32: def key?(key) 33: super(convert_key(key)) 34: end
[ show source ]
# File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 52 52: def merge(hash) 53: self.dup.update(hash) 54: end
[ show source ]
# File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 25 25: def update(other_hash) 26: other_hash.each_pair { |key, value| regular_writer(convert_key(key), convert_value(value)) } 27: self 28: end
[ show source ]
# File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 44 44: def values_at(*indices) 45: indices.collect {|key| self[convert_key(key)]} 46: end


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.simpleframework.http.resource.FileContext
public class FileContext
The FileContext
provides an implementation of the
Context
object that provides a direct mapping from
a request URI as defined in RFC 2616 to an OS specific target.
This uses a File
object to define the mapping
for the request URI paths. Using a File
object
allows the FileContext
to be easily used with both
DOS and UNIX systems.
This Indexer
implementation uses an MIME database
to obtain mappings for the getContentType
method.
The file used is acquired from the class path as a mapping from
file extension to MIME type. This file can be modified if any
additional types are required. However it is more advisable to
simple extend this object and override the content type method.
FileIndexer
| Constructor Summary | |
|---|---|
FileContext()
Constructor for creating an instance that operates from the given current working path. |
|
FileContext(java.io.File base)
Constructor for creating an instance that operates from the given OS specific base path. |
| Method Summary | |
|---|---|
java.lang.String |
getBasePath()
This is used to retrieve the base path of the context. |
java.lang.String |
getContentType(java.lang.String target)
This method will extract the type attribute of this URI. |
java.io.File |
getDirectory(java.lang.String target)
This is used to translate the HTTP request URI into the File object that it represent the parent directory
of the URI. |
java.io.File |
getFile(java.lang.String target)
This is used to translate the HTTP request URI into the File object that it represents. |
Index |
getIndex(java.lang.String target)
This is an all in one method that allows all the information on the target URI to be gathered at once. |
java.lang.String |
getName(java.lang.String target)
This will parse and return the file name that this request URI references. |
Path |
getPath(java.lang.String target)
This is used to translate the HTTP request URI into the Path object that it represents. |
java.lang.String |
getRealPath(java.lang.String target)
This is used to translate the HTTP request URI into the OS specific path that it represents. |
java.lang.String |
getRequestPath(java.lang.String target)
This is used to translate the HTTP request URI into the URI path normalized and without query or parameter parts. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public FileContext()
public FileContext(java.io.File base)
base
- this is the OS specific base path for this| Method Detail |
|---|
public java.lang.String getBasePath()
FileEngine
to map the URIs
onto the specific OS. The base path is the OS file system
specific path. So on UNIX it could be "/home/user/" and
on a DOS system it could be "c:\web\html" for example.
getBasePath
in interface Context
public java.lang.String getRealPath(java.lang.String target)
getRealPath
in interface Context
target
- this is the HTTP request URI path that is to
be translated into the OS specific path
public java.lang.String getRequestPath(java.lang.String target)
getRequestPath
in interface Context
target
- this is the HTTP request URI that is to be
converted into a normalized relative URI path
public java.io.File getFile(java.lang.String target)
File
object that it represents. This will convert
the URI to a format that the system can use and then create
the File
object for that path. So if for example
the context path was "c:\path" on a DOS system and the HTTP
URI given was "/index.html" this returns the File
"c:\path\index.html". This is basically for convenience as the
same could be achieved using the getRealPath
and
then creating the File
from that OS specific path.
getFile
in interface Context
target
- this is the HTTP request URI path that is used
to retrieve the File
object
File
for the given pathpublic java.io.File getDirectory(java.lang.String target)
File
object that it represent the parent directory
of the URI. This will convert the URI to a format that the host
system can use and then create the File
object for
that path. So if for example the context path was "c:\path" on
a DOS system and the HTTP URI given was "/index.html" this
returns the File
"c:\path\". This is basically
for convenience as the same could be achieved using the file
retrieved from getFile
and acquiring the parent.
getDirectory
in interface Context
target
- this is the HTTP request URI path that is used
to retrieve the File
object
File
for the directorypublic Path getPath(java.lang.String target)
Path
object that it represents. This enables the
HTTP request URI to be examined thoroughly an allows various
other files to be examined relative to it. For example if the
URI referenced a path "/usr/bin/file" and some resource
in the same directory is required then the Path
can be used to acquire the relative path. This is useful if
links within a HTML page are to be dynamically generated. The
Path.getRelative
provides this functionality.
getPath
in interface Context
target
- this is the HTTP request URI path that is used
to retrieve the Path
object
Path
for the given pathpublic java.lang.String getContentType(java.lang.String target)
Context
is the last path
segment in the token defined by RFC 2396 as path_segments. So
for example if the target was "some.host:8080/bin/index.html"
then the name for that resource would be "index.html". Once
the name has been extracted the MIME is defined by the file
extension, which for the example is text/html.
getContentType
in interface Context
target
- the request URI to be parsed for its type
public java.lang.String getName(java.lang.String target)
Context
is the last
path segment is the token defined by RFC 2396 as path_segments.
So for example if the target was "some.host:8080/home/user/"
then the name for that resource would be "user". If the path
references the root path "/" then null should be returned.
getName
in interface Context
target
- the request URI to be parsed for its name
public Index getIndex(java.lang.String target)
FileEngine
when the Context
implementation is synchronized.
This will enable the FileEngine
to gather the
information on the target by acquiring the lock for the object
instance only once.
getIndex
in interface Context
target
- this is the request URI that is to be parsed
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Google Earth Enterprise Documentation Home | Fusion administration
Before you configure Google Earth Enterprise Fusion
Before you use many of the Google Earth Enterprise Fusion configuration tools, you must stop the system manager and then start it after you change the configuration. To stop/start the system manager, enter:
/etc/init.d/gefusion [stop | start | restart]


Leonid meteor shower to peak over the UK this weekend - but will it be seen in Notts?
Up to 15 shooting stars will be seen every hour
by Neil Shaw, Matthew BunnStargazers and budding astronomers will be looking to the sky tonight in the hope of catching a glimpse of the spectacular Leonid meteor shower.
The annual light show, which is known for being bright and clear, will peak over the UK this weekend with up to 15 shooting stars every hour.
The shower is due to to get busier through the evening on Saturday, November 16, and peak after 12 midnight, Hull Live reports .
Space agency NASA is advising viewers to look to the west in order to get the best view, but a nearly full moon and the recent bad weather could make seeing it harder than in previous years.
Unfortunately, tonight and tomorrow is expected to be mostly cloudy and occasionally misty. However, according to the Met Office, more southern areas of the Midlands will have clear spells which could make for good viewing conditions.
If you don't get to see the shower tonight, then don't worry, the best view is forecast to be in 2034, when an estimated 2,000 meteors an hour will crash across the sky.
The Geminids shower will also be around in about a month with about 120 meteors per hour
With the General Election approaching we want to give you all the results and reactions as they happen. Join our new WhatsApp service to receive breaking news alerts throughout the night by texting ELECTION to<PHONE_NUMBER>2. The first messages will go out December 12 after polls close.


Back
Next
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
New Event
Save
Cancel
Update Event
Update
Cancel
Events
Add More
Close
Filter


Bachelor of Arts in Computer Science
The requirements for a B.A. in computer science are ten courses in computer science at the level of Computer Science 111 or above. One of the courses may be selected from a list of approved courses in other departments.
The ten courses must include:
- Computer Science 111: Computer Science I OR 107: Introduction to Scientific Computing
- Computer Science 112: Computer Science II
- Computer Science 201: The Mathematics of Computation OR Math 215: Abstract Mathematics
- Computer Science 216: Data Structures
- Computer Science 221: Computer Organization and Assembly Language Programming
- Computer Science 301: Theory of Computation
- Computer Science 440: Advanced System Design (taken during the senior year)
In addition to the ten courses in computer science, a student must take:
- Equivalent of Mathematics 111 or above (usually taken during the first year)
Approved courses offered by other departments
- Biology 251
- Mathematics 353 or 366
- Physics 240
- Psychology 315, 316, or 338
Bachelor of Science in Computer Science
A Bachelor of Science major in computer science has the same requirements as a
Bachelor of Arts major plus four additional courses from formal and/or natural
science departments. At most two of the additional courses may be at the 100-level.


|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.jini.id.Uuid
A 128-bit value to serve as a universally unique identifier. Two
Uuid
s are equal if they have the same 128-bit value.
Uuid
instances can be created using the static methods
of the UuidFactory
class.
The design of this class is intended to support the use of universally unique identifiers that
Uuid
as a capability. Note that not all
defined Uuid
values imply a generation algorithm that
supports this goal.
The most significant 64 bits of the value can be decomposed into unsigned integer fields according to the following bit masks:
0xFFFFFFFF00000000 time_low 0x00000000FFFF0000 time_mid 0x000000000000F000 version 0x0000000000000FFF time_hi
The least significant 64 bits of the value can be decomposed into unsigned integer fields according to the following bit masks:
0xC000000000000000 variant 0x3FFF000000000000 clock_seq 0x0000FFFFFFFFFFFF node
This specification defines the meaning (and implies aspects of
the generation algorithm) of Uuid
values if the
variant field is 0x2
and the version
field is either 0x1
or 0x4
.
If the version
field is 0x1
, then
time_low
, time_mid
, and
time_hi
fields are the least, middle, and most
significant bits (respectively) of a 60-bit timestamp of
100-nanosecond intervals since midnight, October 15, 1582 UTC,
clock_seq
field is a 14-bit number chosen to
help avoid duplicate Uuid
values in the event of a
changed node address or a backward system clock adjustment (such as
a random number when in doubt, or the previously used number
incremented by one if just a backward clock adjustment is
detected), and
node
field is an IEEE 802 address (a 48-bit
value).
As an alternative to an IEEE 802 address (such as if one is not
available to the generation algorithm), the node
field
may also be a 48-bit number for which the most significant bit is
set to 1
and the remaining bits were produced from a
cryptographically strong random sequence.
If the version
field is 0x4
, then the
time_low
, time_mid
, time_hi
,
clock_seq
, and node
fields are values
that were produced from a cryptographically strong random sequence.
Only Uuid
values with a version
field
of 0x4
are considered computationally difficult to
guess. A Uuid
value with a version
field
of 0x1
should not be treated as a capability.
A subclass of Uuid
must not implement Externalizable
; this restriction is enforced by this class's
constructor and readObject
methods.
| Constructor Summary | |
protected |
Uuid(long bits0,
long bits1)
Creates a new Uuid with the specified 128-bit
value. |
| Method Summary | |
boolean |
equals(Object obj)
Compares the specified object with this Uuid for
equality.
|
protected void |
finalize()
Delegates to the superclass's finalize
method. |
long |
getLeastSignificantBits()
Returns the least significant 64 bits of this Uuid 's 128-bit value. |
long |
getMostSignificantBits()
Returns the most significant 64 bits of this Uuid 's 128-bit value. |
int |
hashCode()
Returns the hash code value for this Uuid . |
protected Object |
readResolve()
Returns this object. |
String |
toString()
Returns a string representation of this Uuid .
|
void |
write(OutputStream out)
Marshals a binary representation of this Uuid to
an OutputStream .
|
protected Object |
writeReplace()
Returns this object. |
| Methods inherited from class java.lang.Object |
clone, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
protected Uuid(long bits0, long bits1)
Uuid
with the specified 128-bit
value.
bits0
- the most significant 64 bits of the 128-bit valuebits1
- the least significant 64 bits of the 128-bit value
SecurityException
- if the class of this object
implements Externalizable
| Method Detail |
public final long getMostSignificantBits()
Uuid
's 128-bit value.
public final long getLeastSignificantBits()
Uuid
's 128-bit value.
public final int hashCode()
Uuid
.
Uuid
public final boolean equals(Object obj)
Uuid
for
equality.
This method returns true
if and only if the
specified object is a Uuid
instance with the same
128-bit value as this one.
obj
- the object to compare this Uuid
to
true
if the given object is equivalent to
this one, and false
otherwisepublic final String toString()
Uuid
.
The string representation is 36 characters long, with five fields of zero-filled, lowercase hexadecimal numbers separated by hyphens. The fields of the string representation are derived from the components of the 128-bit value in the following order:
time_low
(8 hexadecimal digits)
time_mid
(4 hexadecimal digits)
version
and time_hi
treated as a
single field (4 hexadecimal digits)
variant
and clock_seq
treated as
a single field (4 hexadecimal digits)
node
(12 hexadecimal digits)
As an example, a Uuid
with the 128-bit value
0x0123456789ABCDEF0123456789ABCDEFwould have the following string representation:
01234567-89ab-cdef-0123-456789abcdef
Uuid
public final void write(OutputStream out) throws IOException
Uuid
to
an OutputStream
.
Specifically, this method writes the 128-bit value to the stream as 16 bytes in network (big-endian) byte order.
out
- the OutputStream
to write this
Uuid
to
IOException
- if an I/O exception occurs while performing
this operation
NullPointerException
- if out
is
null
protected final void finalize() throws Throwable
finalize
method. This method prevents a subclass from declaring an
overriding finalize
method.
Throwable
- if the superclass's finalize
method throws a Throwable
protected final Object writeReplace()
writeReplace
method with an alternate
implementation.
protected final Object readResolve()
readResolve
method with an alternate
implementation.
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


TWIN DRAGONS A film review by Steve Rhodes Copyright 1999 Steve Rhodes RATING (0 TO ****): **
So what would cause 2 grown women and about 2 dozen grown men to faint? Why, the sight of Jackie Chan and Jackie Chan together as they play identical twins, who were accidentally separated at birth.
One Jackie Chan plays John Ma, a world famous pianist and composer, who lives in New York City. The other Jackie Chan plays Boomer, a Hong Kong auto mechanic and martial arts expert extraordinaire. Lest you faint, let me tell you up-front that the same Jackie Chan plays them both. The aforementioned characters who collapsed in the movie were overwhelmed at the mere sight of a man with an unknown twin.
Jackie Chan films are endurable and enjoyable only because of the boyish charm and energetic bravado of Chan himself. The scripts for his movies are usually so thin that, without Jackie Chan, it would be almost ridiculous to contemplate going to see them. TWIN DRAGONS, originally released in 1992, has just been re-released theatrically without allowing the film to be screened in advance to film critics. This is probably smart marketing since, among the Jackie Chan films, this one is probably one of the silliest and lamest.
If you have not seen his movies before, you might be inclined to shake your head and walk out during the first 10 minutes of this one, as it's quite ludicrous. Leaving would be a mistake, although going in the first place is still questionable. Once you're there, stick around because Jackie, especially in the film's grand finale, gets to perform one amazing martial arts feat after another.
The whole movie is little more than a ruse for Jackie to show us his martial arts skills in a comedic setting. In this broad parody, Boomer fights not 1, not 2, not 3 but 20 men at a time and eventually wins just before he seems certain to be beaten completely to a pulp. (Jackie, as is well known and documented, does all of his stunts.) Although his later films are much better, this one does have its moments.
The plot, such as it is, concerns the misadventures of Mr. Ma in Hong Kong as he is mistaken for Boomer, and vice versa.
Moreover, the two of them, being twins, experience life jointly. When one sneezes, so does the other. During one of the mix-ups, Boomer has to conduct a symphony orchestra while Ma gets in a whole mess of trouble. Every time Ma rolls over or gets hit, Boomer's body or hand reacts uncontrollably, causing the symphony to try to follow their "guest" conductor's increasingly spastic movements.
The movie is way over-the-top slapstick, but for Jackie's die-hard fans, no movie of his can be too hokey.
TWIN DRAGONS runs 1:30. It is rated PG-13 for comedic violence, sexual situations and profanity and would be fine for kids 10 or 11 and up.
My son Jeffrey, age 10, found the film confusing, and, although he liked the martial arts, he gave the movie only * 1/2. His friend Steven, age 10, thought there was a little too much fighting, but liked the comedy enough to give the movie ** 1/2. His twin, John, thought the movie was really good and worth *** 1/2. Their friend Alan, almost 10, thought the movie was awesome and was a **** motion picture.
Email<EMAIL_ADDRESS>Web: www.InternetReviews.com
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


When browsing the internet looking for a good solution to RSA Javascript encryption, there is a whole slew of libraries that basically take the fantastic work done by Tom Wu @ http://www-cs-students.stanford.edu/~tjw/jsbn/ and then modify that code to do what they want.
What I couldn't find, however, was a simple wrapper around this library that basically uses the library practically untouched, but adds a wrapper to provide parsing of actual Private and Public key-pairs generated with OpenSSL.
This library is the result of these efforts.
This library should work hand-in-hand with openssl. With that said, here is how to use this library.
openssl genrsa -out rsa_1024_priv.pem 1024
cat rsa_1024_priv.pem #if you are on mac you can | pbcopy to copy to the clipboard
openssl rsa -pubout -in rsa_1024_priv.pem -out rsa_1024_pub.pem
cat rsa_1024_pub.pem
// Create the encryption object and set the key.
var crypt = new JSEncrypt();
crypt.setKey(__YOUR_OPENSSL_PRIVATE_OR_PUBLIC_KEY__); //You can use also setPrivateKey and setPublicKey, they are both alias to setKey
//Eventhough the methods are called setPublicKey and setPrivateKey, remember
//that they are only alias to setKey, so you can pass them both a private or
//a public openssl key, just remember that setting a public key allows you to only encrypt.
var text = 'test';
// Encrypt the data with the public key.
var enc = crypt.encrypt(text);
// Now decrypt the crypted text with the private key.
var dec = crypt.decrypt(enc);
// Now a simple check to see if the round-trip worked.
if (dec === text){
alert('It works!!!');
} else {
alert('Something went wrong....');
}
This library heavily utilizes the wonderful work of Tom Wu found at http://www-cs-students.stanford.edu/~tjw/jsbn/.
This jsbn library was written using the raw variables to perform encryption. This is great for encryption, but most private keys use a Private Key in the PEM format seen below.
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDHikastc8+I81zCg/qWW8dMr8mqvXQ3qbPAmu0RjxoZVI47tvs
kYlFAXOf0sPrhO2nUuooJngnHV0639iTTEYG1vckNaW2R6U5QTdQ5Rq5u+uV3pMk
7w7Vs4n3urQ6jnqt2rTXbC1DNa/PFeAZatbf7ffBBy0IGO0zc128IshYcwIDAQAB
AoGBALTNl2JxTvq4SDW/3VH0fZkQXWH1MM10oeMbB2qO5beWb11FGaOO77nGKfWc
bYgfp5Ogrql4yhBvLAXnxH8bcqqwORtFhlyV68U1y4R+8WxDNh0aevxH8hRS/1X5
031DJm1JlU0E+vStiktN0tC3ebH5hE+1OxbIHSZ+WOWLYX7JAkEA5uigRgKp8ScG
auUijvdOLZIhHWq7y5Wz+nOHUuDw8P7wOTKU34QJAoWEe771p9Pf/GTA/kr0BQnP
QvWUDxGzJwJBAN05C6krwPeryFKrKtjOGJIniIoY72wRnoNcdEEs3HDRhf48YWFo
riRbZylzzzNFy/gmzT6XJQTfktGqq+FZD9UCQGIJaGrxHJgfmpDuAhMzGsUsYtTr
iRox0D1Iqa7dhE693t5aBG010OF6MLqdZA1CXrn5SRtuVVaCSLZEL/2J5UcCQQDA
d3MXucNnN4NPuS/L9HMYJWD7lPoosaORcgyK77bSSNgk+u9WSjbH1uYIAIPSffUZ
bti+jc1dUg5wb+aeZlgJAkEAurrpmpqj5vg087ZngKfFGR5rozDiTsK5DceTV97K
a3Y+Nzl+XWTxDBWk4YPh2ZlKv402hZEfWBYxUDn5ZkH/bw==
-----END RSA PRIVATE KEY-----
This library simply takes keys in the preceding format, and translates it to those variables needed to perform the encryptions used in Tom Wu's library.
Here are some good resources to investigate further.
With this information, we can translate a private key format to the variables required with the jsbn library from Tom Wu by using the following mappings.
modulus => n
public exponent => e
private exponent => d
prime1 => p
prime2 => q
exponent1 => dmp1
exponent2 => dmq1
coefficient => coeff


Daimler takes 'reality check' on robotaxis
Safety and economics prove trickier than first thought.
by Staff WriterDaimler has taken a "reality check" on self-driving "robotaxis", acknowledging that making them safe is proving harder than first thought amid questions over their future earnings potential.
Chief executive Ola Kaellenius told journalists on Thursday
Daimler would "rightsize" its spending level on robotaxis and that self-driving technology would more likely be applied to commercial vehicles for freight companies on long haul routes.
Carmakers raced to develop self-driving vehicles after Google presented a prototype car in 2012, leading Daimler to develop an autonomous Mercedes.
The idea of fleets of robotaxis picking up and ferrying customers around cities gained traction, driven by the stellar growth of ride services such as Uber and of delivery services firms.
However, costs and regulatory hurdles have spiralled, leading to a reassessment of the business potential.
"There has been a reality check setting in here," Kaellenius said.
Ensuring that self-driving cars are 100 percent safe in crowded urban areas is proving to be a bigger challenge than engineers had assumed a few years ago, he said.
Even if Daimler is able to make robotaxis safe, the benefits of entering the crowded ride-hailing business with self-driving cars remain unclear, he added.
"The full scale deployment would tie up a lot of capital with some uncertainties around the earnings potential," he said.
"At this juncture we said to be the first one, does not make sense."
Daimler has already sought a development alliance with BMW for semi-autonomous vehicle technology and it has another project with supplier Robert Bosch to perfect technology for fully driverless cars.


Preparation time
30 mins to 1 hour
Cooking time
no cooking required
Serves
Serves 12
Place the prawns in a bowl, add the lime zest and mix well.
Cover with cling film and refrigerate.
Prepare the chillies. Use gloves if you can and be careful not to touch your face. Cut off the stalk, then cut in half lengthways. Remove the seeds and pith (white part) with a sharp knife. Cut each half into very thin long strips. Add the strips to the prawns and mix well again. Cover and refrigerate.
Combine the mayonnaise with the fish sauce, sliced spring onions and wasabi paste. Taste and adjust seasoning if necessary.
To serve: pile the prawns on a serving platter or dish and serve the mayonnaise in a separate dish.
Garnish with quartered limes.


The Main Description is not set in the configuration file. Please add this.
The Sentiment Description is not set in the configuration file. Please add this.
We know what the candidates are saying - what do their supporters talk about? The following word clouds show the most used words in each of these micro-communities. Click here to read how we sort tweeps into these communities and extract these words.


Introduction to IR¶
An information retrieval system retrieves relevant documents based on information need from a document collection. Generally each document is a piece of text, described as collection of terms. The information need can often be described as a small collection of terms. If you are searching for “golf”, the aim of an IR system would be to return all the documents talking about golf.
Indexing: Offline processing¶
In order to retrieve all the documents with query terms, there are two methods.
- Linear scan of all the documents to see if term is in the document. (Inefficient)
- Offline process all the document in a special format to get list of all document with term for all terms. (Used in IR)
Linear scan is highly inefficient due to scanning of all the document in collection to serve the information need. If you have a lot of documents, it would take huge time to complete such the scan.
In modern information retrieval systems, documents are processed offline to arrange it in special format called an index, in order to avoid having to do linear scans.
Indexing¶
Indexing is the process of converting the documents into a special format for efficient searching and retrieval later. One main component is a list of documents (referenced by document id) in which we can find each term; each list of documents, for a particular term, is called a posting list.
Stemming¶
Some words are used in their inflected form in the document, for example “connect” can be used as connecting, connected and connection. Although all the terms (connecting, connected) are similar, we would not find documents containing “connected” when processing a query for “connect” if we only looked at the posting list of “connect”. Therefore, before we store the term in the index, it is stemmed to reduce the inflected word (“connected”) to its word stem or root form (“connect”).
Retrieval: Online processing¶
Given a information need, generally given as search query (terms), we try to retrieve relevant documents from the collection using the index formed in the offline processing stage. There are two major paradigms to retrieving documents.
Boolean Retrieval¶
Boolean retrieval, retrieve the documents by doing union, intersection or difference on the posting lists of terms in the query.
Posting list of query terms
Boolean Retrieval
Probabilistic Retrieval¶
Probabilistic retrieval model is based on the Probability Ranking Principle, which states that an information retrieval system is supposed to rank the documents based on their probability of relevance to the query, given all the evidence available [Belkin and Croft 1992]. The principle takes into account that there is uncertainty in the representation of the information need and the documents. There can be a variety of sources of evidence that are used by the probabilistic retrieval methods, and the most common one is the statistical distribution of the terms in both the relevant and non-relevant documents.
A posting list stores the frequency of terms in different documents, such as in this posting list for the term “work”:
document 1 contains work three times, whereas document id 2 contains it only once.
In probabilistic model we give score to the documents based on frequency of the query words in document.
Query Expansion¶
Query expansion is a process where query provided by the user is expanded with extra terms to improve the search results. The aim of query expansion is to generate alternative or expanded queries for the user. There are two broad approaches to do this:
- Relevance feedback - Users give additional input on documents (by marking documents in the results set as relevant or not), and this input is used to reweight the terms or add new term in the query for documents.
- Pseudo Relevance feedback - top ranking document of the search are considered to be relevant and used to reweight the terms or add new term.
References¶
- “Information Retrieval” by C. J. van Rijsbergen is well worth reading. It’s out of print, but is available for free from the author’s website (in HTML or PDF).
- “Readings in Information Retrieval” (published by Morgan Kaufmann, edited by Karen Sparck Jones and Peter Willett) is a collection of published papers covering many aspects of the subject.
- “Managing Gigabytes” (also published by Morgan Kaufmann, written by Ian H. Witten, Alistair Moffat and Timothy C. Bell) describes information retrieval and compression techniques.
- “Introduction to Information Retrieval” (published by Cambridge University Press, written by Christopher D. Manning, Prabhakar Raghavan and Hinrich) is available both in print and for free online.
- “Modern Information Retrieval” (published by Addison Wesley, written by Ricardo Baeza-Yates and Berthier Ribeiro-Neto) gives a good overview of the field. It was published more recently than the books above, and so covers some more recent developments.


THE CELL RATING: 8/10 --> Great movie
For more reviews and movie screensavers, visit http://www.joblo.com/
Perfect timing! This movie is being released at the best moment for me personally, having just begun my "Hollywood movies are getting so cliched, lame and predictable" stage, with the recent crop of summer flicks just not popping any of my corn. But here comes a movie that doesn't let you just sit down and watch, it rather asks that you stare in awe and experience a new kind of movie! The kind that will have you taking notice whether you like it or not. A breath of fresh air. A nice kick in the stomach. A visual feast. It's nice to be back.
PLOT: A serial killer who gets off on watching his victims drown to death is on the loose, but not for long. As the FBI bust his ass, the killer falls into a deep coma, while his final missing victim only has a few hours left to live. Enter a therapist hip to a new technology that allows her to enter the mind of a comatose person. Once inside the killer's mind, the doctor tries to uncover the location of the missing girl.
CRITIQUE: Not for everyone, this film moves at a quick pace, delivers a decent serial killer story, and seduces you through an infectious ride of cinematic paintings, ripe with originality, surrealism and otherworldliness. A big thank you to director Tarsem for slapping me across the face with this film and forcing me to wake out of my year 2000 cinematic nap. This is the kind of movie that sets a new standard for moviemakers. It takes the cinematic canvas and rewrites the rules with its daring use of staggering imagery, visual experimentation and camera tricks.  A story unfolding in a dual world, one set in our day and time, with characters attempting to find the solution to a mad man's insanity, and another dripped in a dream-state, a place where the unseen thoughts, loves and fears of one's mind are visually transformed into breathtaking sequences never before seen on the big screen. I wasn't sure if the balance of the two "worlds" would work, whether or not things would start getting complicated or if the director would just slow the whole film down to a pretentious halt. But my fears were quickly laid to rest, as the film grabbed me by the balls at scene one and didn't let go until I was transported back to my seat a little over an hour and a half later.
But there were many other things that I really liked about this movie as well. I liked the pace of the film, which didn't waste much time on scientific mumbo-jumbo or inappropriate romance. I liked all of the performances, especially Vaughn, whose always been a favorite of mine and who delivers a good showing here, and Lopez, who surprisingly really clicked as the intelligent shrink with a big heart.  I also liked the soundtrack, which got really chaotic and pronounced when downloaded into the subconscious world, but perfectly so. And despite the actual story of the "serial killer chase" not breaking any major ground, I did really appreciate the new way that they decided to chase after the nutball in this movie.  Oh yeah, one more thing. This movie actually creeped me out in several points. Not sure if it will give me any nightmares or anything (although I might regrettably find that out tonite), but the visual panorama of the serial killer's ultimate evil mindset just struck a chord of terror right through me.
But in the end, it is the film's unique style that will set it apart from all of the other serial killer movies in the years to come. It's a brave move on the part of the filmmakers, attempting to visually portray the deep rooted evil set inside the mind of a madman, and in this case...it works! Suspense-wise, the film certainly doesn't compete with SEVEN (then again, what film does?), but it more than makes up for it through its bold, cinematic experimentation. Kudos to Tarsem and Protosevich for pumping some life into this year's regurgitative movie season.
Review Date: August 14, 2000 Director: Tarsem Singh Writer: Mark Protosevich Producers: Julio Caro and Eric McLeod Actors: Jennifer Lopez as Catherine Deane Vince Vaughn as Peter Novak Vincent D'Onofrio Genre: Thriller Year of Release: 2000 ----------------------------------- JoBlo's Movie Emporium http://www.joblo.com/ ----------------------------------- (c) 2000 Berge Garabedian
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


RT @jamesiry: Back to work. This quine isn't going to write itself. Or, um...wait...
5/7/2012, 12:00:23 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
RT @jamesiry: Back to work. This quine isn't going to write itself. Or, um...wait...
5/7/2012, 12:00:23 PM
Favs: 0
Retweets: 0
link


Download Word Saves here. They may take some time to render after saving, please be patient and do not queue multiple save requests. It will appear here soon.


A social networking site, with unit tests, that allows users to find and make friends and chat with other online users. Built with React, Redux, on Node with PostgreSQL and AWS S3
A website made to collection signatures for a pledge or petition. Multi-page, mobile friendly app using the HTML5 Canvas element and Javascript to collect signatures. Backend is an Express server on Node.js with a PosgreSQL database. I used Handlebars for templating & Redis for caching and storing session data.
This app is made for Amazon Web Services customers who need a better way to view and sort logstreams data. I styled this Ruby on Rails app with Bootstrap and added key functionality via Javascript and jQuery on top of the Datatables.js library. I also created a custom logo using Adobe Illustrator.
The goal here was to take a list of anchor tags in an html file and make them scroll across the top of the screen using only vanilla JavaScript. The second part of this project required getting the headlines from the Twitter API.


1. OpenID Connect¶
A brief look at OpenID Connect. For more information, see the source list.
1.1. What is OpenID Connect?¶
OpenID Connect (OIDC) is a simple mechanism based on the OAuth 2.0 specification, to allow a client application to contact an identity provider (IP) in order verify the identities of end-users through authentication by the Authentication Server, and obtain details of authenticated sessions and end-users (Connect2id.com, 2018).
OIDC has a lot of the same details that OAuth has, such as the client_id, client_secret, and redirect_uri, that is stored by the IP to ensure that the information is sent back to the correct client application. This prevents someone from stealing the client_id and using it to have information sent to their own URI (Offenhartz, 2017).
1.2. How does OIDC work?¶
An example of a web-based OIDC flow (Auth0, 2018):
- A client app (Relying Party) sends and authorization request to the Identity Provider (e.g. Google, Facebook, GE Authentication Service).
- The Identity Provider authenticates the credentials or provides a login screen to the end-user, and asks for authorization (or consent).
- Once authorized, the Identity Provider sends an access token and an ID token back to the Relying Party.
- The Relying Party can then use the access token to invoke the services of the Identity Provider.
1.3. Access Tokens¶
Access Tokens are used to communicate to the API that the bearer of the token have been authorized to access the API and perform actions that are permitted by the custom scope of the API (Auth0, 2018).
1.4. ID Tokens¶
An ID token contains identity data such as the user’s name and email. The data is consumed by the client application and is typically used for UI display. These tokens conform to the RFC 7519 standard for JSON Web Tokens and must contain 3 parts: a header, a body and a signature (Auth0, 2018).
1.5. JSON Web Token (JWT)¶
JSON Web Tokens allows for secure transmission of information between parties as a JSON object. The information is digitally signed, using either a secret or a public/private key pair. Therefor the information can be trusted and verified (Jwt.io, 2018).
An encoded JWT: - in the form x.y.z
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibm
FtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWg
QzWXcXNrz0ogtVhfEd2o
can be decoded into three parts:
Header (x) - Algorithm & Token Type
{
"alg": "HS256",
"typ": "JWT"
}
Body (y) - Data
{
"sub": "1234567890",
"name": "John Doe",
"iat":<PHONE_NUMBER>
}
Signature (z) - Gets verified by doing
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret
)
1.6. OIDC in Girl Effect¶
Django OIDC Provider:
The Girl Effect Authentication Service uses the Django OIDC Provider library to perform all OIDC related tasks and makes use of the Django OIDC Provider models to create clients, etc. The Django OIDC Provider can be found here: https://github.com/juanifioren/django-oidc-provider
Mozilla Django OIDC:
Mozilla Django OIDC is used by other Django apps to integrate with the OIDC enabled Authentication Service on Girl Effect. Other libraries can/should be used for other types of apps. Mozilla Django OIDC can be found here: https://github.com/mozilla/mozilla-django-oidc
Wagtail implementation:
An example of a wagtail app using OIDC and the Girl Effect Authentication service can be found here: https://github.com/girleffect/core-integration-demo/tree/develop/girleffect_oidc_integration
1.7. Sources¶
Auth0. (2018). OpenID Connect. [online] Available at: https://auth0.com/docs/protocols/oidc [Accessed 22 Mar. 2018].
Offenhartz, J. (2017). OpenID Connect explained in plain English. [Blog] Available at: https://www.onelogin.com/blog/openid-connect-explained-in-plain-english [Accessed 22 Mar. 2018].
Connect2id.com. (2018). OpenID Connect explained | Connect2id. [online] Available at: https://connect2id.com/learn/openid-connect [Accessed 23 Mar. 2018].
Jwt.io. (2018). JWT.IO - JSON Web Tokens Introduction. [online] Available at: https://jwt.io/introduction/ [Accessed 26 Mar. 2018].


When this checkbox is selected, only the variable name that follows the
$
sign is selected on
double-click or pressing Ctrl+W. This is helpful if you often need to copy variable names without
$
: just double-click and copy the selection.
If you still need a variable name with
$
selected, position the caret before the $
sign
and double-click it or press Ctrl+W.


This is a dummy HIT to compensate workers who participated in a previous HIT. You may enter your worker ID below to see if you participated in that study. You will not be able to submit this HIT if you did not participate in the previous one.


public class CMSSignedDataParser extends CMSContentInfoParser
Note: that because we are in a streaming mode only one signer can be tried and it is important that the methods on the parser are called in the appropriate order.
A simple example of usage for an encapsulated signature.
Two notes: first, in the example below the validity of the certificate isn't verified, just the fact that one of the certs matches the given signer, and, second, because we are in a streaming mode the order of the operations is important.
CMSSignedDataParser sp = new CMSSignedDataParser(new JcaDigestCalculatorProviderBuilder().setProvider("BC").build(), encapSigData); sp.getSignedContent().drain(); Store certStore = sp.getCertificates(); SignerInformationStore signers = sp.getSignerInfos(); Collection c = signers.getSigners(); Iterator it = c.iterator(); while (it.hasNext()) { SignerInformation signer = (SignerInformation)it.next(); Collection certCollection = certStore.getMatches(signer.getSID()); Iterator certIt = certCollection.iterator(); X509CertificateHolder cert = (X509CertificateHolder)certIt.next(); System.out.println("verify returns: " + signer.verify(new JcaSimpleSignerInfoVerifierBuilder().setProvider("BC").build(cert))); }Note also: this class does not introduce buffering - if you are processing large files you should create the parser with:
CMSSignedDataParser ep = new CMSSignedDataParser(new BufferedInputStream(encapSigData, bufSize));where bufSize is a suitably large buffer size.
_contentInfo, _data
| Constructor and Description |
|---|
CMSSignedDataParser(DigestCalculatorProvider digestCalculatorProvider,
byte[] sigBlock) |
CMSSignedDataParser(DigestCalculatorProvider digestCalculatorProvider,
CMSTypedStream signedContent,
byte[] sigBlock) |
CMSSignedDataParser(DigestCalculatorProvider digestCalculatorProvider,
CMSTypedStream signedContent,
java.io.InputStream sigData)
base constructor
|
CMSSignedDataParser(DigestCalculatorProvider digestCalculatorProvider,
java.io.InputStream sigData)
base constructor - with encapsulated content
|
| Modifier and Type | Method and Description |
|---|---|
org.bouncycastle.util.Store |
getAttributeCertificates()
Return any X.509 attribute certificate objects in this SignedData structure as a Store of X509AttributeCertificateHolder objects.
|
org.bouncycastle.util.Store |
getCertificates()
Return any X.509 certificate objects in this SignedData structure as a Store of X509CertificateHolder objects.
|
org.bouncycastle.util.Store |
getCRLs()
Return any X.509 CRL objects in this SignedData structure as a Store of X509CRLHolder objects.
|
org.bouncycastle.util.Store |
getOtherRevocationInfo(org.bouncycastle.asn1.ASN1ObjectIdentifier otherRevocationInfoFormat)
Return any OtherRevocationInfo OtherRevInfo objects of the type indicated by otherRevocationInfoFormat in
this SignedData structure.
|
CMSTypedStream |
getSignedContent() |
java.lang.String |
getSignedContentTypeOID()
Return the a string representation of the OID associated with the
encapsulated content info structure carried in the signed data.
|
SignerInformationStore |
getSignerInfos()
return the collection of signers that are associated with the
signatures for the message.
|
int |
getVersion()
Return the version number for the SignedData object
|
static java.io.OutputStream |
replaceCertificatesAndCRLs(java.io.InputStream original,
org.bouncycastle.util.Store certs,
org.bouncycastle.util.Store crls,
org.bouncycastle.util.Store attrCerts,
java.io.OutputStream out)
Replace the certificate and CRL information associated with this
CMSSignedData object with the new one passed in.
|
static java.io.OutputStream |
replaceSigners(java.io.InputStream original,
SignerInformationStore signerInformationStore,
java.io.OutputStream out)
Replace the signerinformation store associated with the passed
in message contained in the stream original with the new one passed in.
|
close
public CMSSignedDataParser(DigestCalculatorProvider digestCalculatorProvider, byte[] sigBlock) throws CMSException
CMSException
public CMSSignedDataParser(DigestCalculatorProvider digestCalculatorProvider, CMSTypedStream signedContent, byte[] sigBlock) throws CMSException
CMSException
public CMSSignedDataParser(DigestCalculatorProvider digestCalculatorProvider, java.io.InputStream sigData) throws CMSException
CMSException
public CMSSignedDataParser(DigestCalculatorProvider digestCalculatorProvider, CMSTypedStream signedContent, java.io.InputStream sigData) throws CMSException
digestCalculatorProvider
- for generating accumulating digestssignedContent
- the content that was signed.sigData
- the signature object stream.CMSException
public int getVersion()
public SignerInformationStore getSignerInfos() throws CMSException
CMSException
public org.bouncycastle.util.Store getCertificates() throws CMSException
CMSException
public org.bouncycastle.util.Store getCRLs() throws CMSException
CMSException
public org.bouncycastle.util.Store getAttributeCertificates() throws CMSException
CMSException
public org.bouncycastle.util.Store getOtherRevocationInfo(org.bouncycastle.asn1.ASN1ObjectIdentifier otherRevocationInfoFormat) throws CMSException
otherRevocationInfoFormat
- OID of the format type been looked for.CMSException
public java.lang.String getSignedContentTypeOID()
public CMSTypedStream getSignedContent()
public static java.io.OutputStream replaceSigners(java.io.InputStream original, SignerInformationStore signerInformationStore, java.io.OutputStream out) throws CMSException, java.io.IOException
The output stream is returned unclosed.
original
- the signed data stream to be used as a base.signerInformationStore
- the new signer information store to use.out
- the stream to write the new signed data object to.CMSException
java.io.IOException
public static java.io.OutputStream replaceCertificatesAndCRLs(java.io.InputStream original, org.bouncycastle.util.Store certs, org.bouncycastle.util.Store crls, org.bouncycastle.util.Store attrCerts, java.io.OutputStream out) throws CMSException, java.io.IOException
The output stream is returned unclosed.
original
- the signed data stream to be used as a base.certs
- new certificates to be used, if any.crls
- new CRLs to be used, if any.attrCerts
- new attribute certificates to be used, if any.out
- the stream to write the new signed data object to.CMSException
- if there is an error processing the CertStorejava.io.IOException


@(title: String)(currentUser :Person)
@linkLoader.headlinks(title)In research (and in your every day life) you acquire knowledge and experience. You start with observations that arise questions that need to be answered and shared. The steps that lead from an observation to a valid, ready to be made public, answer form a methodology known as “the scientific method”.
The scientific inquiry was built up in time by many, beginning with Aristotle and is the basis for the modern science as we know it today. It developed in close relationship with the epistemology (acquiring knowledge) and with the philosophy of science.
If you have results that deserve to be published, you should stop and think who is the audience for your next-coming article. You will find it most probably by looking at the journals from your reading list. The cited articles that help building the context of your own research, will give you a target list of journals where you can publish. Choose carefully and maximise the impact of your results.
The introduction should give a concise, up-to-date description of the background to provide a general reader sufficient context to understand the research being presented and its significance. It should provide a clear statement of the research question and any hypothesis being explored. Please address explicitly the ageing aspect(s) discussed in your paper.

In the Materials and methods body, the techniques, materials and equipment should be described in sufficient detail for another trained researcher to be able to reproduce the experimental work reported. Methods that are identical to published work and procedures should be still briefly described and referred to. For non-experimental papers equivalent demands exist for the methods applied and data sources (e.g. archives, questionnaires).
The abstract should not exceed a maximum of 120 words. The content should state the main purposes and research questions of the study, the methods used, the main results and key conclusions obtained. Keywords will be used for indexing purposes. A maximum of five keywords should be given.
The title page should include a concise and informative title (maximum 2 lines), the name(s) of the author(s), including symbols linking the author name with relevant affiliation. The name of the corresponding author is linked with a footnote for contact details.
Paraphrase if the idea or theory is important, but the exact words less so; cite if the exact words are as important as the ideas expressed. Generally, arts scholars tend to cite, while science scholars paraphrase.


Secondary Education
Secondary education at a boarding school: Christ's Hospital (Independant / Public School). Scholarship / Presentee of: The Worshipful Company of Carmen
Overview of my time at Christ's Hosital
As I reflect on my time at Christ's Hospital, a renowned boarding school nestled in the heart of West Sussex in the United Kingdom, a wave of nostalgia and positve memories wash over me. The years I spent within its historic walls were some of the most formative and enjoyable of my life.
One of the highlights of my time at Christ's Hospital was my involvement in sports. I developed a deep passion for rugby, spending countless hours on the field honing my skills, learning teamwork, and competing with my fellow students. The camaraderie and sense of belonging that came from being a part of a sports team was unparalleled, and I cherished every moment of it. Towards the end of my time at the school I was proud to represent my school on the 2nd XV team and I was even able to represent the school on the 1st XV team a few times, fantastic!
Another sport that captivated me was fives, a game similar to squash but with its own unique rules and techniques. I relished the fast-paced nature of the game, the strategic moves, and the adrenaline rush that came with each rally. It was a sport that required skill, dexterity, agility, and mental focus, and I was proud to represent my school in fives competitions and I kept playing fives when I went to university.
Academically, Christ's Hospital pushed me to reach my full potential. I was determined to excel, and my hard work paid off as at the age of 16 I was ranked in the top 10 of my year for the highest GCSE results in the school. The rigorous curriculum, expert teachers, and stimulating discussions in the classroom challenged me to think critically, broaden my horizons, and develop a thirst for knowledge, especially in languages and sciences, that continues to drive me to this day.
The success I enjoyed at GCSE level paved the way for my A-levels, where I continued to excel focusing on: Maths, Further Maths, Physics, Chemistry, and English. The support and guidance of my teachers, as well as the nurturing environment of Christ's Hospital, empowered me to achieve excellent grades and lay the foundation for my future academic endeavors.
With my stellar academic performance, I was accepted into Durham University to study General Engineering. The solid foundation and strong work ethic instilled in me at Christ's Hospital set me up for success in higher education and beyond and I was so well prepared for university that I received early praise from my tutor at college, in the first term, for being one of the brightest pupils in the tutorial group.
But beyond academics and sports, Christ's Hospital provided me with a sense of community and also lifelong friendships. The bonds forged with fellow students from diverse backgrounds, who shared similar passions and aspirations, were invaluable. The boarding experience fostered independence, resilience, and adaptability, as I learned to navigate the challenges of living away from home and building a support system among my peers.
In conclusion, my experiences at Christ's Hospital were nothing short of extraordinary. From the thrill of playing rugby and fives and going on expeditions, camps and exercises all over the country with the Duke of Edinburgh award scheme and the Cadets (CCF), to achieving academic excellence, to forming lasting friendships, the school shaped me into the person I am today. I will forever cherish the memories of my time there, and I am grateful for the opportunities and education it provided me, which have laid the foundation for a successful future.
One of the highlights of my time at Christ's Hospital was my involvement in sports. I developed a deep passion for rugby, spending countless hours on the field honing my skills, learning teamwork, and competing with my fellow students. The camaraderie and sense of belonging that came from being a part of a sports team was unparalleled, and I cherished every moment of it. Towards the end of my time at the school I was proud to represent my school on the 2nd XV team and I was even able to represent the school on the 1st XV team a few times, fantastic!
Another sport that captivated me was fives, a game similar to squash but with its own unique rules and techniques. I relished the fast-paced nature of the game, the strategic moves, and the adrenaline rush that came with each rally. It was a sport that required skill, dexterity, agility, and mental focus, and I was proud to represent my school in fives competitions and I kept playing fives when I went to university.
Academically, Christ's Hospital pushed me to reach my full potential. I was determined to excel, and my hard work paid off as at the age of 16 I was ranked in the top 10 of my year for the highest GCSE results in the school. The rigorous curriculum, expert teachers, and stimulating discussions in the classroom challenged me to think critically, broaden my horizons, and develop a thirst for knowledge, especially in languages and sciences, that continues to drive me to this day.
The success I enjoyed at GCSE level paved the way for my A-levels, where I continued to excel focusing on: Maths, Further Maths, Physics, Chemistry, and English. The support and guidance of my teachers, as well as the nurturing environment of Christ's Hospital, empowered me to achieve excellent grades and lay the foundation for my future academic endeavors.
With my stellar academic performance, I was accepted into Durham University to study General Engineering. The solid foundation and strong work ethic instilled in me at Christ's Hospital set me up for success in higher education and beyond and I was so well prepared for university that I received early praise from my tutor at college, in the first term, for being one of the brightest pupils in the tutorial group.
But beyond academics and sports, Christ's Hospital provided me with a sense of community and also lifelong friendships. The bonds forged with fellow students from diverse backgrounds, who shared similar passions and aspirations, were invaluable. The boarding experience fostered independence, resilience, and adaptability, as I learned to navigate the challenges of living away from home and building a support system among my peers.
In conclusion, my experiences at Christ's Hospital were nothing short of extraordinary. From the thrill of playing rugby and fives and going on expeditions, camps and exercises all over the country with the Duke of Edinburgh award scheme and the Cadets (CCF), to achieving academic excellence, to forming lasting friendships, the school shaped me into the person I am today. I will forever cherish the memories of my time there, and I am grateful for the opportunities and education it provided me, which have laid the foundation for a successful future.
Image Gallery


{% extends 'core/wizard.html' %} {% load breadcrumbs from directory_components %} {% load static from staticfiles %} {% block head_title %}Business profile - Account - great.gov.uk{% endblock %} {% block head_css %} {{ block.super }} {% endblock %} {% block above_form %} {% breadcrumbs 'Business showcase' %} Home Business profile {% endbreadcrumbs %}
Describe something significant your company has done that will be relevant to overseas buyers. For example, you could add details of an important collaboration on a recent international project or a major export deal.
{{ block.super }} {% endblock %} {% block below_submit_button %} {% endblock %}


We have a fundamental responsibility as arbiters of the experiences we create to not think like marketers, or salesmen, or even customers - but as people, who are looking for an answer, a little joy, or something different.
It is our job at Noctivity to start every project with a clean white piece of paper and create something both wanted and slightly magical.
Since 2002, we’ve created everything from next-generation GPS tracking devices to leading online travel marketplaces to exotic and specialty fruit delivery services.
We are a different type of "agency." We are not product developers, marketers, branding experts or technologists - we are all.
For 20 years Noctivity has been working with clients and products across a wide range of industries, and we have no intention of stopping now.
We take on two types of projects.
We do not function as a vendor. We function as a team, 100% focused on meeting and bringing your vision to light or developing a strategy and product to exceed your goals. We're highly selective of who we work with as every project tends to consume our days, nights and in between.


--- layout: post title: one day date: '2011-03-11T01:49:24-05:00' tags: [] tumblr_url: https://encoreptl.tumblr.com/post/3780314426/one-day ---
One day…