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):
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
layer = layers.concatenate([upsampled_layer, large_ip_layer])
# Add some number of separable convolution layers
layer = separable_conv2d_batchnorm(layer, filters, strides=1)
output_layer = separable_conv2d_batchnorm(layer, filters, strides=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.
# with each encoder layer, the depth of model (the number of filters) increases.
layer0 = encoder_block(inputs, 32, 2)
layer1 = encoder_block(layer0, 64, 2)
layer2 = encoder_block(layer1, 128, 2)
layer3 = encoder_block(layer2, 256, 2)
# Add 1x1 Convolution layer using conv2d_batchnorm().
layer4 = conv2d_batchnorm(layer3, 512, kernel_size=1, strides=1)
# Add the same number of Decoder Blocks as the number of Encoder Blocks
layer5 = decoder_block(layer4, layer2, 256)
layer6 = decoder_block(layer5, layer1, 128)
layer7 = decoder_block(layer6, layer0, 64)
layer8 = decoder_block(layer7, inputs, 32)
# The function returns the output layer of your model. "x" is the final layer obtained from the last decoder_block()
return layers.Conv2D(num_classes, 1, activation='softmax', padding='same')(layer8)
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.
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
image_hw = 160
image_shape = (image_hw, image_hw, 3)
inputs = layers.Input(image_shape)
num_classes = 3
# Call fcn_model()
output_layer = fcn_model(inputs, num_classes)
Define and tune your hyperparameters.
learning_rate = 0.003
batch_size = 32
num_epochs = 20
steps_per_epoch = 100
validation_steps = 10
workers = 4
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
# Define the Keras model and compile it for training
model = models.Model(inputs=inputs, outputs=output_layer)
#model.compile(optimizer=keras.optimizers.Adam(learning_rate), loss='categorical_crossentropy')
model.compile(optimizer=keras.optimizers.Nadam(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)
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'
# restored_model = model_tools.load_network(weight_file_name)
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)


|
Pip-Services-Commons-Dotnet
|
Defines a base class to defive various application exceptions. More...
Public Member Functions | |
| ApplicationException () | |
| Creates a new instance of application exception. More... | |
| ApplicationException (string category=null, string correlationId=null, string code=null, string message=null) | |
| Creates a new instance of application exception and assigns its values. More... | |
| override void | GetObjectData (SerializationInfo info, StreamingContext context) |
| ApplicationException | WithCode (string code) |
| Sets a unique error code. More... | |
| ApplicationException | WithCorrelationId (string correlationId) |
| Sets a correlation id which can be used to trace this error through a call chain. More... | |
| ApplicationException | WithCause (Exception cause) |
| Sets a original error wrapped by this exception. More... | |
| ApplicationException | WithStatus (int status) |
| Sets a HTTP status code which shall be returned by REST calls. More... | |
| ApplicationException | WithDetails (string key, object value) |
| Sets a parameter for additional error details. This details can be used to restore error description in other languages. More... | |
| ApplicationException | WithStackTrace (string stackTrace) |
| Sets a stack trace for this error. This method returns reference to this exception to implement Builder pattern to chain additional calls. More... | |
| ApplicationException | Wrap (Exception cause) |
| Wraps another exception into specified application exception object. If original exception is of ApplicationException type it is returned without changes.Otherwise the original error is set as a cause to specified ApplicationException object. More... | |
Static Public Member Functions | |
| static ApplicationException | WrapException (ApplicationException error, Exception cause) |
| Wraps another exception into specified application exception object. If original exception is of ApplicationException type it is returned without changes.Otherwise the original error is set as a cause to specified ApplicationException object. More... | |
Public Attributes | |
| string | BaseMessage => Message |
Protected Member Functions | |
| ApplicationException (string message) | |
| Creates a new instance of application exception with string message. More... | |
| ApplicationException (SerializationInfo info, StreamingContext context) | |
Properties | |
| string | Category [get, set] |
| string | CorrelationId [get, set] |
| string | Cause [get, set] |
| string | Code [get, set] |
| int | Status [get, set] |
| StringValueMap | Details [get, set] |
| new string | StackTrace [get, set] |
Private Attributes | |
| string | _stackTrace |
Defines a base class to defive various application exceptions.
Most languages have own definition of base exception(error) types. However, this class is implemented symmetrically in all languages supported by PipServices toolkit.It allows to create portable implementations and support proper error propagation in microservices calls.
Error propagation means that when microservice implemented in one language calls microservice(s) implemented in a different language(s), errors are returned throught the entire call chain and restored in their original (or close) type.
Since number of potential exception types is endless, PipServices toolkit supports only 12 standard categories of exceptions defined in ErrorCategory. This ApplicationException class acts as a basis for all other 12 standard exception types.
Most exceptions have just free-form message that describes occured error. That may not be sufficient to create meaninful error descriptions. The ApplicationException class proposes an extended error definition that has more standard fields:
ApplicationException class is not serializable.To pass errors through the wire it is converted into ErrorDescription object and restored on receiving end into identical exception type.
| PipServices3.Commons.Errors.ApplicationException.ApplicationException | ( | ) |
Creates a new instance of application exception.
|
protected |
Creates a new instance of application exception with string message.
| message | a human-readable description of the error. |
| PipServices3.Commons.Errors.ApplicationException.ApplicationException | ( | string | category = null , |
| string | correlationId = null , |
||
| string | code = null , |
||
| string | message = null |
||
| ) |
Creates a new instance of application exception and assigns its values.
| category | (optional) a standard error category. Default: Unknown |
| correlationId | (optional) a unique transaction id to trace execution through call chain. |
| code | (optional) a unique error code. Default: "UNKNOWN" |
| message | (optional) a human-readable description of the error. |
| ApplicationException PipServices3.Commons.Errors.ApplicationException.WithCause | ( | Exception | cause | ) |
Sets a original error wrapped by this exception.
This method returns reference to this exception to implement Builder pattern to chain additional calls.
| cause | original error object |
| ApplicationException PipServices3.Commons.Errors.ApplicationException.WithCode | ( | string | code | ) |
Sets a unique error code.
This method returns reference to this exception to implement Builder pattern to chain additional calls.
| code | a unique error code |
| ApplicationException PipServices3.Commons.Errors.ApplicationException.WithCorrelationId | ( | string | correlationId | ) |
Sets a correlation id which can be used to trace this error through a call chain.
This method returns reference to this exception to implement Builder pattern to chain additional calls.
| correlationId | a unique transaction id to trace error through call chain |
| ApplicationException PipServices3.Commons.Errors.ApplicationException.WithDetails | ( | string | key, |
| object | value | ||
| ) |
Sets a parameter for additional error details. This details can be used to restore error description in other languages.
This method returns reference to this exception to implement Builder pattern to chain additional calls.
| key | a details parameter key |
| value | a details parameter name |
| ApplicationException PipServices3.Commons.Errors.ApplicationException.WithStackTrace | ( | string | stackTrace | ) |
Sets a stack trace for this error. This method returns reference to this exception to implement Builder pattern to chain additional calls.
| stackTrace | a stack trace where this error occured |
| ApplicationException PipServices3.Commons.Errors.ApplicationException.WithStatus | ( | int | status | ) |
Sets a HTTP status code which shall be returned by REST calls.
This method returns reference to this exception to implement Builder pattern to chain additional calls.
| status | an HTTP error code. |
| ApplicationException PipServices3.Commons.Errors.ApplicationException.Wrap | ( | Exception | cause | ) |
Wraps another exception into specified application exception object. If original exception is of ApplicationException type it is returned without changes.Otherwise the original error is set as a cause to specified ApplicationException object.
| cause | an original error object |
|
static |
Wraps another exception into specified application exception object. If original exception is of ApplicationException type it is returned without changes.Otherwise the original error is set as a cause to specified ApplicationException object.
| error | an ApplicationException object to wrap the cause |
| cause | an original error object |
| string PipServices3.Commons.Errors.ApplicationException.BaseMessage => Message |
A human-readable error description (usually written in English)
|
getset |
Standard error category
|
getset |
Original error wrapped by this exception
|
getset |
A unique error code
|
getset |
A unique transaction id to trace execution throug call chain
|
getset |
A map with additional details that can be used to restore error description in other languages
|
getset |
Stack trace of the exception
|
getset |
HTTP status code associated with this error type


A complete set of modulesto automate your house
Market research page for an IoT solution to help enhance your building's sustainability and reduce energy costs by automating everyday tasks.
Receive updates
Help us know your opinion
Quick formSmart Sprinklers
Check the best time of the day to turn on by using humidity sensors and the weather forecast.
Smart Bulbs
Adjust the bulbs' brightness according to the surrounding luminosity.
Air Conditioner System
Maximize air conditioner efficiency by using temperature/humidity sensors.
Personalised Modular System
In addition to the three modules presented above a set of additional modules will be available such as:
-
Cameras
-
Smoke detectors
-
Temperature sensors
-
Humidity sensors
-
Brightness sensors
-
Movement sensors
All of these sensors will be connected to a central hub that uses artificial intelligence and the information provided by several sensors to optimize the gadgets’ efficiency and learn the user’s habits.
Mobile App
Check the statistics for each device individually, energy consumption, and sensors data over time.
The mobile application will allow you to control every device connected to the central hub and configure it to adapt to your habits and turn it on and off from anywhere.
Check your cameras and automate your life with an intuitive mobile app.
An easy way to control your devices
About Us
We are a team of two computer engineers and a QA engineer from Connect Enterprises , based on Lisbon, Portugal. We like challenges, so we accepted a challenged created by our company called Change Box, a variant of Adobe's Kickbox project, focused on the theme: help combat climate change. Our idea, that we are presenting to you now, was one of the top three ideas, so we are doing a market research on our concept to analyse its potential.
Our mission
Greeners mission is to help combat energy and water waste, by automating and increasing the efficiency of multiple devices used on infrastructures all around the world.
FAQ
Check our frequently asked questions and get to know more about our vision and our product.
Click here and insert your email to get updates on the product development.
Still have questions?
Just send us a message and we will answer as quick as possible.


{% extends 'registration/base.html' %} {% load bootstrap3 %} {% load static %} {% block styles %} {% bootstrap_css %} {% endblock %} {% block content %} RIDEALONG
By clicking "Sign Up", you agree to RideAlong's Terms and Conditions and Privacy Policy.


onAfterResize
and onBeforeResize
callbacksonKeyPress
callback when keyboard control is usedgulp custom -zoom,effects,lazy-loading

zoom
- enable zoom functionalityzoomMax
- maximum image zoom multiplier, by default is 3
zoomMin
- minimum image zoom multiplier, by default is 1
zoomToggle
- enable/disable zoom-in by slide's double tapzoomMax
can be also overridden for specific slide by using data-swiper-zoom
attributeswiper.enableTouchControl()
and swiper.disableTouchControl()
methods to enable disable touch control (it toggles onlyExternal
parameter)swiper.realIndex
property in addition to swiper.activeIndex
that returns index of active slide considering loophistory
parameter. It uses history pushState to set active slide URLhashnavWatchState
parameter to navigate through slides (when hashnav is enabled) by browser history or by setting directly hash on document locationreplaceState
parameter that work in addition to hashnav or history to replace current url state with the new one instead of adding it to historys.unsetGrabCursor()
and s.setGrabCursor()
to enable/disable grab cursorsimulateTouch:false
normalizeSlideIndex
parameter to improve work of controller (see #1766)lazyLoadingInPrevNextAmount
now works with slidesPerView: 'auto'
passiveListeners
parameter to use passive event listeners to improve scrolling performance on mobile devices. Enabled by defaultfreeModeMomentumVelocityRatio
parameter to control moment velocitydata-swiper-autoplay
attribute on themsizes
responsive images attributemousewheelEventsTarged
parameter (by default 'container') where you can specify mousewheel events targetonScroll
event/callback that triggers when swiping/scrolling happens with mousewheeltouchReleaseOnEdges
parameter to release touch events on slider edge position (beginning, end) and allow for further page scrollingpaginationBulletRender
now accepts swiper
instance as a first argument, paginationBulletRender(index, className)
-> paginationBulletRender(swiper, index, className)
uniqueNavElements
parameter. If enabled (by default) and navigation elements' parameters passed as the string (like .pagination
) then Swiper will look for such elements through child elements first. Applies for pagination, prev/next buttons and scrollbaronPaginationRendered
callback. Will be fired after pagination elements generated and added to DOM.reLoop()
method, which combines .destroyLoop()
+ .createLoop()
methods with additional positioning fixes. Useful to call after you have changed slidesPerView
parameter, it will dynamically recreate duplicated slides required for loop.nextButton
and .prevButton
properties with Dom7/jQuery element with next/prev button HTML elementslidesPerView/Group
parameterspaginationType
- type of pagination. Can be 'bullets'
(default) or 'fraction'
or 'progress'
or 'custom'
paginationFractionRender(swiper, currentClass, totalClass)
- custom function to render "fraction" type paginationpaginationProgressRender(swiper, progressbarClass)
- custom function to render "progress" type paginationpaginationCustomRender(swiper, current, total)
- custom function to render "custom" type paginationlazyLoadingInPrevNextAmount
parameter allows to lazy load images in specified amount of next/prev slidesautoplayStopOnLast
parameter (true
by default) tells to autoplay should it stop on last slide or start from first slideonAutoplay(swiper)
callbackmousewheelControl
autoHeight: true
parametersetWrapperTranslate
Added responsive breakpoints support using new breakpoints
parameter. Now you can specify different slidesPerView
and other similar parameters for different sizes:
slidesPerView: 5,
spaceBetween: 50,
breakpoints: {
1024: {
slidesPerView: 4,
spaceBetween: 40
},
768: {
slidesPerView: 3,
spaceBetween: 30
},
320: {
slidesPerView: 1,
spaceBetween: 10
}
}
New callbacks: onSlideNextStart
, onSlideNextEnd
, onSlidePrevStart
, onSlidePrevEnd
meteor add nolimits4web:swiper
undefined
-src imagesslideToClickedSlide
with loop
and centeredSlides
slidesPerView * slidesPerColumn
with slidesPerColumnFill: 'row'
srcset
with lazy loading using data-srcset
attributeWebkitCSSMatrix
slideToClickedSlide
with loop
and centeredSlides
freeModeMinimumVelocity
parameter to set minimum required touch velocity to trigger free mode momentumscrollbarDraggable
- (boolean) by default is false
. Allows to enable draggable scrollbarscrollbarSnapOnRelease
- (boolean) by default is false
. Control slider snap on scrollbar releaseslidesPerView: 'auto'
and enabled loop:true
mode to set loopedSlides
to the amount of slides by default (if not specified)mousewheelSensitivity: 1
parameter allows to tweak mouse wheel sensitivityallowSwipeToNext
/allowSwipeToPrev
)centeredSlides
iOSEdgeSwipeDetection
(by default is false
) - enable ios edge detection and release Swiper eventsiOSEdgeSwipeThreshold
(default value is 20
) - area in px
from left edge of screen to release eventspaginationBulletMessage: 'Go to slide {{index}}'
controlBy
which can be 'slide' (by default) or 'container'. Defines a way how to control another slider: slide by slide or depending on all slides/container (like before)controlBy: 'slide'
(default) mode will respect grid of each otherpaginationElement
parameter defines which HTML tag will be use to represent single pagination bullet. By default it is span
roundLengths
parameter (by default is false
) to round values of slides width and height to prevent blurry texts on usual resolution screensslidesOffsetBefore: 0
and slidesOffsetAfter: 0
(in px) parameters to add additional slide offset within a container.swiper-container
onlyExternal
during touchmoveswiper.jquery.umd.js
version for the environment where both Swiper and jQuery included as modulesmousewheelReleaseOnEdges
- will release mousewheel event and allow page scrolling when swiper is on edge positions (in the beginning or in the end)mousewheelInvert
- option to invert mousewheel slidesslidesPerView
> 1slidesPerColumn
> 1)width
and height
parameters to force Swiper size, useful when it is hidden on intializationdata-background
attribute on required elementsfreeModeSticky
parameter) which will snap to slides positions in free mode.destroy(deleteInstance, cleanupStyles)
method now has second cleanupStyles
argument, when passed - all custom styles will be removed from slides, wrapper and container. Useful if you need to destroy Swiper and to init again with new options or in different directiona11y: false
- enable accessibilityprevSlideMessage: 'Previous slide'
- message for screen readers for previous buttonnextSlideMessage: 'Next slide'
- message for screen readers for next buttonfirstSlideMessage: 'This is the first slide'
- message for screen readers for previous button when swiper is on first slidelastSlideMessage: 'This is the last slide'
- message for screen readers for next button when swiper is on last slide.on(event, handler)
- add event/callback.off(event, handler)
- remove this event/callback.once(event, handler)
- add event/callback that will be executed only oncesetWrapperSize
(be default it is false
) to provide better compatibility with browser without flexbox support. Enabled this option and plugin will set width/height on swiper wrapper equal to total size of all slidesvirtualTranslate
parameter. When it is enabled swiper will be operated as usual except it will not move. Useful when you may need to create custom slide transitiononLazyImage...
callbacksslidesPerGroup
lazyLoading
, lazyLoadingInPrevNext
, lazyLoadingOnTransitionStart
(all disabled by default)onLazyImageLoad
and onLazyImageReady
updateOnImages
ready split into 2 parameters:preloadImages
(by default is true) - to preload all images on swiper initupdateOnImages
(by default is true) - update swiper when all images loadedonObserverUpdate
callback function to be called after updates by ovserverpaginationBulletRender
parameter that accepts function which allow custom pagination elements layoutrunCallbacksOnInit
parameterwatchVisibility
parameter renamed to watchSlidesVisibility
crossFade
option for fade effect.update
method improved to fully cover what onResize
do for full and correct updateswiper.touches
object with the following properties: startX
, startY
, currentX
, currentY
, diff
.removeSlide(index)
or .removeSlide([indexes])
- to remove selected slides.removeAllSlides()
- to remove all slidesoverflow: auto
with -webkit-overflow-scrolling: touch
slidesPerColumn
optionborder-box
now, so it is possible to use borders and paddings directly on slidesslidesPerView: 'auto'
) now gives more freedom, you can even specify slides sizes in % and use margins on them


Simply write me an email if you want to get in touch with me. You can also check out my projects on github.


new SpriteSheetManager()
Class for loading images
- Source:
Members
-
animation :Animation
-
animation class
Type:
- Source:
-
data :object
-
Sprite data
Type:
- object
- Source:
-
image :HTMLImageElement|null
-
sprite image
Type:
- HTMLImageElement | null
- Source:
Methods
-
get(name) → {object}
-
Get data about specific image
Parameters:
Name Type Description name
string image name - Source:
Returns:
- Type
- object
-
load(json, imagePath, callback)
-
Load json file and actual sprite image
Parameters:
Name Type Description json
string path to the json file imagePath
string path to the image callback
function function that is called after everything is loaded - Source:


Movies
News
About
Don't Know What to Watch?


Saunders is a Sea Monkey.
Humans are destroying his home.
Thousands of plastic pieces* are dumped into the ocean every day, and I am tired of taking part in this. I've asked him to help me change to a Zero Waste Lifestyle. Watch the transformation here.
"I'm always a work in progress"
-Brian Barrett


dojox.fx.style provides a few methods to animate the changes that would occur when adding or removing a class from a domNode.
This is a div position:relative with a position:absolute div inside. testing various t/l/b/r combos. normal css inheritance rules apply, so setting .foo .bar if .foo was defined last in the css text, .bar will take precedent. the below position test shows the results of this:
Some properties cannot be modified (fontFace, and so on), so to ensure the results at the end of the animation are applied correctly and fully, the class name is set on the node via dojo.add/removeClass().


Computer Starter Kit
This is the best computer money can buy, if you don’t have much money.
Computer
Monitor
Keyboard
Mouse
BUY NOW
Computer Starter Kit
This is the best computer money can buy, if you don’t have much money.
Computer
Monitor
Keyboard
Mouse
BUY NOW
Computer Starter Kit
This is the best computer money can buy, if you don’t have much money.
Computer
Monitor
Keyboard
Mouse
BUY NOW


@* * Copyright 2023 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @this( govukButton: GovukButton, inputRadio: playComponents.input_radio ) @( radioOptions: Seq[(String, String, String, String, Option[String], Option[BigDecimal])], legend: String, legendClass: Option[String] = Some("govuk-label--m"), hint: Option[String] = None, isPageHeading: Boolean = true, field: Field )(implicit messages: Messages) @bigDecimalToPounds(decimal: BigDecimal) = @{ Html(s"£%,.2f".format(decimal.setScale(2, BigDecimal.RoundingMode.FLOOR).abs)) } @itemContent(radioTitle: String, message: String, optDateMessage: Option[String], amount: BigDecimal) = { @radioTitle
@message @optDateMessage
@bigDecimalToPounds(amount) } @otherReliefsContent(amount: BigDecimal, value: String) = { @if(amount > 0){ @messages("calc.calculationElection.someOtherRelief") @bigDecimalToPounds(amount)


blackjok3r
15-Feb-19 07:58 AM
I added the last 5 previous notarized heights
but once a reorg happens from thsi attack
on a resync one of those numbers is gone
and whatever you use for consensus
based on them is now invalid
so the chain can never sync
it can only be based on the tx itself
the checkpoint cannot be used... unless we use GetTransaction to confirm its actually in the chain before using it
(edited)
and well while possibl, if I could avoid that and keep it simple.. I wanted to try that first
I feel we are very close to a wokring soluion here that is immune to forks


Namespace Rezolver.Options
Classes
AllowMultiple
A Boolean option that controls whether an ITargetContainer accepts multiple registered targets for the same underlying type.
This option can be applied globally or on a per-service basis - but must be set before any potentially affected registrations are performed.
The Default (unset) is equivalent to true
ContainerOption<TOption>
A suggested base class to use for custom container options to be read/written through the OptionsTargetContainerExtensions extension methods.
The type of the option value is the argument to the TOption
type parameter.
Options must currently be objects - the ability to use callbacks to get options might be added at a future date.
EnableArrayInjection
Controls whether Rezolver's built-in array injection (which is also dependent upon the built-in IEnumerable injection) is enabled.
If not defined the Default is equivalent to true
.
EnableAutoFuncInjection
Option which controls whether the InjectAutoFuncs configuration is applied, which enables the automatic registration of Func<TResult> whenever a target is registered.
EnableAutoLazyInjection
Boolean option used to control whether Lazy<T> injection will automatically work. Used by
EnableCollectionInjection
Boolean option which, if configured before the InjectCollections configuration is applied,
will control whether automatic injection of ReadOnlyCollection<T> (and related interfaces - see the documentation
on that type for more) will be enabled.
The Default is equivalent to true
.
EnableContravariance
A Boolean container options that controls whether contravariant generic parameters will be matched to registrations of bases/interfaces of the associated type.
This option can be applied globally or on a per-service basis. See the remarks section for more.
The Default (unset) is equivalent to true
, meaning that contravariance
is enabled, for all applicable types.
EnableEnumerableCovariance
Option that controls whether or not auto-injected enumerables - either globally, or for a
given type - will perform covariant searches when locating targets to be included in the
enumerable. The Default is equivalent to true
.
EnableEnumerableInjection
Controls whether the DefaultConfig will enable automatically injected enumerables or not.
EnableGlobalOptions
A Boolean container option which controls whether per-service options will fall back to
a global option if not explicitly set. The Default (unconfigured) is true
.
EnableListInjection
Boolean option which, if configured before the InjectLists configuration is applied,
will control whether automatic injection of List<T> (and related interfaces - see the documentation
on that type for more) will be enabled.
The Default is equivalent to true
.
FetchAllMatchingGenerics
A boolean option for target containers that controls which registrations will be returned when FetchAll(Type) is called with a closed generic type, when using the built in target containers.
This ultimately affects the objects that are materialised in automatically generated enumerables (when the InjectEnumerables is enabled - which it is, by default) when the element type is itself a generic type.
LazyEnumerables
Controls whether the enumerables which are automatically generated by the container, when the InjectEnumerables configuration is used and enabled, are evaluated lazily or eagerly.


Aspirations After gSchool
I want to rule the world.
But actually, I'd really like to create something among a team of people who are WAY better than me. I want to join or lead a team to build something that challenges the way we interact with information. I want to continue to learn, improve and grow every day, and turn that information into something that can change the world.
My Sick Skills After gSchool
That monster is me. And that little dude? That's all the code I'm gonna eat. Nom nom nom nom nom.


Enter the month and day below and click "Get Sad" to see the Johns Hopkins global data for the given month/day.
PLEASE NOTE: the first day for which JHU has data available is Jan 22, 2020.
Hit "Clear" to empty the search results (or just search for a different date)


Top robotics dissertation in graduating year.
Ball and socket joints used in robot shoulder and hip joints present major challenges in sensing accurate joint orientation. This is due to the fact that hip and shoulder joints are capable of rotations in three axes simultaneously. It is crucial that robots have accurate knowledge of their joint orientations to allow them to have spatial awareness and to interact with objects in their environment.
This dissertation discusses the development of a three degree of freedom spherical joint with an absolute position sensing system. The goal is to develop a system that can determine the absolute position of a spherical joint to be used in applications such as humanoid shoulder or hip joints. Previous research has failed to develop a simple, low cost, and durable system that is ready to be mass produced.
The proposed system uses multiple three-light patterns embedded in the entire reachable workspace of the joint.
The novel absolute position sensing system uses low cost, readily available components making it viable for mass production, and simple to implement in robotic systems.
The spherical joint includes triangular light patterns embedded at various positions within the socket portion of the joint. The light patterns are spaced such that a camera that is placed within the ball portion of the joint is able to view at least one light pattern at any orientation of the joint. The triangular patterns are made out of unique combinations of red, blue, and green.
As the joint moves about, the camera in the ball views the positions of the light patterns in the socket, and send that data to an attached computer. The camera used is a 180 degree field of view fisheye lens using an equi-solid/equidistant mapping function.
Light patterns embedded in socket
Camera embedded in ball joint
Computer vision algorithms use the position of the light patterns in the camera frame to calculate the ZYZ Euler angles of rotation of the joint. This allows the computer to measure the positional data of the joint using the incline/azimuth/twist naming conventinos.


 By reference; canInlineMod key added |
| array | $user | |
| array | null | $viewingUser |
| addInlineModOptionToProfilePosts | ( | array & | $profilePosts, |
| array | $user, | ||
| array | $viewingUser = null |
||
| ) |
Adds the inline mod option to a batch of profile posts.
| array | $profilePosts | Batch of profile posts. By reference; all modified to add canInlineMod key |
| array | $user | |
| array | null | $viewingUser |
| addProfilePostCommentsToProfilePosts | ( | array | $profilePosts, |
| array | $fetchOptions = array() , |
||
| array | $viewingUser = null |
||
| ) |
Merges comments into existing profile post data.
| array | $profilePosts | |
| array | $fetchOptions |
| batchUpdateProfilePostCommentLikeUser | ( | $oldUserId, | |
| $newUserId, | |||
| $oldUsername, | |||
| $newUsername | |||
| ) |
Attempts to update any instances of an old username in like_users with a new username
| integer | $oldUserId | |
| integer | $newUserId | |
| string | $oldUsername | |
| string | $newUsername |
| batchUpdateProfilePostLikeUser | ( | $oldUserId, | |
| $newUserId, | |||
| $oldUsername, | |||
| $newUsername | |||
| ) |
Attempts to update any instances of an old username in like_users with a new username
| integer | $oldUserId | |
| integer | $newUserId | |
| string | $oldUsername | |
| string | $newUsername |
| canApproveUnapproveProfilePost | ( | array | $profilePost, |
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the given profile post can be approved/unapproved. This does not check parent (viewing) permissions.
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canApproveUnapproveProfilePostComment | ( | array | $comment, |
| array | $profilePost, | ||
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the given profile post comment can be approved/unapproved. This does not check parent (viewing) permissions.
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canCommentOnProfilePost | ( | array | $profilePost, |
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the given profile post can be commented on. This does not check parent (viewing) permissions.
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canDeleteProfilePost | ( | array | $profilePost, |
| array | $user, | ||
$deleteType = 'soft' , |
|||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the given profile post can be deleted. This does not check parent (viewing) permissions.
| array | $profilePost | |
| array | $user | |
| string | $deleteType | Type of deletion (soft or hard) |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canDeleteProfilePostComment | ( | array | $comment, |
| array | $profilePost, | ||
| array | $user, | ||
$deleteType = 'soft' , |
|||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the given profile post comment can be deleted. This does not check parent (viewing) permissions.
| array | $comment | |
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canEditProfilePost | ( | array | $profilePost, |
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the given profile post can be edited. This does not check parent (viewing) permissions.
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canEditProfilePostComment | ( | array | $comment, |
| array | $profilePost, | ||
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the given profile post comment can be edited. This does not check parent (viewing) permissions.
| array | $comment | |
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canLikeProfilePost | ( | array | $profilePost, |
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the profile post can be liked with the given permissions. This does not check profile post viewing permissions.
| array | $profilePost | Profile post info |
| array | $user | User info for where profile post is posted |
| string | $errorPhraseKey | Returned phrase key for a specific error |
| array | null | $viewingUser |
| canLikeProfilePostComment | ( | array | $comment, |
| array | $profilePost, | ||
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the profile post comment can be liked with the given permissions. This does not check profile post viewing permissions.
| array | $comment | Profile post comment info |
| array | $profilePost | Profile post info |
| array | $user | User info for where profile post is posted |
| string | $errorPhraseKey | Returned phrase key for a specific error |
| array | null | $viewingUser |
| canReportProfilePost | ( | array | $profilePost, |
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Checks that the viewing user may report the specified profile post
| array | $profilePost | |
| array | $user | |
| string | ||
| boolean | $errorPhraseKey | |
| array | null | $viewingUser |
| canReportProfilePostComment | ( | array | $comment, |
| array | $profilePost, | ||
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Checks that the viewing user may report the specified profile post comment
| array | $comment | |
| array | $profilePost | |
| array | $user | |
| string | ||
| boolean | $errorPhraseKey | |
| array | null | $viewingUser |
| canSendProfilePostActionAlert | ( | array | $profilePost, |
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if an action alert can be sent for this profile post. This does not check parent (viewing) permissions.
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canSendProfilePostCommentActionAlert | ( | array | $comment, |
| array | $profilePost, | ||
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if an action alert can be sent for this profile post comment. This does not check parent (viewing) permissions.
| array | $comment | |
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canUndeleteProfilePost | ( | array | $profilePost, |
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the given profile post can be undeleted. This does not check parent (viewing) permissions.
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canUndeleteProfilePostComment | ( | array | $comment, |
| array | $profilePost, | ||
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the given profile post comment can be undeleted. This does not check parent (viewing) permissions.
| array | $comment | |
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canViewIps | ( | array | $profilePost, |
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the viewing user can view the IP of the stated profile post
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canViewProfilePost | ( | array | $profilePost, |
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the given profile post can be viewed. This does not check user profile viewing permissions.
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canViewProfilePostAndContainer | ( | array | $profilePost, |
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the given profile post can be viewed. This checks parent permissions.
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canViewProfilePostComment | ( | array | $comment, |
| array | $profilePost, | ||
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the given profile post can be viewed. This does not check user profile viewing permissions.
| array | $comment | |
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canWarnProfilePost | ( | array | $profilePost, |
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the given profile post can be warned. This does not check parent (viewing) permissions.
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| canWarnProfilePostComment | ( | array | $comment, |
| array | $profilePost, | ||
| array | $user, | ||
| & | $errorPhraseKey = '' , |
||
| array | $viewingUser = null |
||
| ) |
Determines if the given profile post comment can be warned. This does not check parent (viewing) permissions.
| array | $comment | |
| array | $profilePost | |
| array | $user | |
| string | $errorPhraseKey | By ref. More specific error, if available. |
| array | null | $viewingUser | Viewing user reference |
| countProfilePostsForUserId | ( | $userId, | |
| array | $conditions = array() |
||
| ) |
Counts the profile posts that were left for the specified user (with the given conditions).
| integer | $userId | |
| array | $conditions |
| getLatestProfilePosts | ( | array | $conditions = array() , |
| array | $fetchOptions = array() |
||
| ) |
Gets the latest profile posts.
| array | $conditions | |
| array | $fetchOptions |
| getPermissionBasedProfilePostConditions | ( | array | $user, |
| array | $viewingUser = null |
||
| ) |
Gets permission-based conditions that apply to profile post fetching functions.
| array | $user | User the profile posts will belong to |
| array | null | $viewingUser | Viewing user ref; defaults to visitor |
| getProfilePostById | ( | $id, | |
| array | $fetchOptions = array() |
||
| ) |
Gets the specified profile post.
| integer | $id | |
| array | $fetchOptions |
| getProfilePostCommentById | ( | $profilePostCommentId, | |
| array | $fetchOptions = array() |
||
| ) |
Gets the specified profile post comment.
| integer | $profilePostCommentId | |
| array | $fetchOptions |
| getProfilePostCommentIdsInRange | ( | $start, | |
| $limit | |||
| ) |
Gets profile post comment IDs in the specified range. The IDs returned will be those immediately after the "start" value (not including the start), up to the specified limit.
| integer | $start | IDs greater than this will be returned |
| integer | $limit | Number of posts to return |
| getProfilePostCommentInsertMessageState | ( | array | $user, |
| array | $viewingUser = null |
||
| ) |
Gets the message state for a newly inserted profile post comment by the viewing user.
| array | $user | User whose profile post is being commented on |
| array | null | $viewingUser |
| getProfilePostComments | ( | array | $conditions = array() , |
| array | $fetchOptions = array() |
||
| ) |
Gets profile post comments.
| array | $ids | |
| array | $fetchOptions |
| getProfilePostCommentsByIds | ( | array | $ids, |
| array | $fetchOptions = array() |
||
| ) |
Gets the profile post comments with the specified IDs.
| array | $ids | |
| array | $fetchOptions |
| getProfilePostCommentsByProfilePost | ( | $profilePostId, | |
$beforeDate = 0 , |
|||
| array | $fetchOptions = array() |
||
| ) |
Gets all comments that belong to the specified post. If a limit is specified, more recent comments are returned.
| integer | $profilePostId | |
| integer | $beforeDate | If specified, gets posts before specified date only |
| array | $fetchOptions |
| getProfilePostCommentsByUserId | ( | $userId, | |
| array | $fetchOptions = array() |
||
| ) |
Gets the profile post comments make by a particular user.
| array | $ids | |
| array | $fetchOptions |
| getProfilePostCommentUserIds | ( | $profilePostId, | |
$messageState = null |
|||
| ) |
Gets the user IDs that have commented on a profile post.
| integer | $profilePostId |
| getProfilePostIdsInRange | ( | $start, | |
| $limit | |||
| ) |
Gets profile post IDs in the specified range. The IDs returned will be those immediately after the "start" value (not including the start), up to the specified limit.
| integer | $start | IDs greater than this will be returned |
| integer | $limit | Number of posts to return |
| getProfilePostInsertMessageState | ( | array | $user, |
| array | $viewingUser = null |
||
| ) |
Gets the message state for a newly inserted profile post by the viewing user.
| array | $user | User whose profile is being posted on |
| array | null | $viewingUser |
| getProfilePostsByIds | ( | array | $messageIds, |
| array | $fetchOptions = array() |
||
| ) |
Gets the specified profile posts.
| array | $messageIds | |
| array | $fetchOptions |
| getProfilePostsByUserId | ( | $userId, | |
| array | $fetchOptions = array() |
||
| ) |
Fetches all profile posts posted by the specified user, on their own and others' profile pages.
| integer | $userId | |
| array | $fetchOptions |
| getProfilePostsForUserId | ( | $userId, | |
| array | $conditions = array() , |
||
| array | $fetchOptions = array() |
||
| ) |
Gets profile posts for the specified user that meet the given conditions.
| integer | $userId | |
| array | $conditions | |
| array | $fetchOptions |
| getProfilePostViewParams | ( | array | $profilePosts, |
| array | $user, | ||
| array | $viewingUser = null |
||
| ) |
Fetch view parameters for profile posts, primarily for meta controls like warn, view IPs etc.
| array | $profilePosts | |
| array | $user | (owner of the profile on which the profile posts are shown) |
| array | $viewingUser |
| getProfileUserFromProfilePost | ( | array | $profilePost, |
| array | $viewingUser = null |
||
| ) |
Extracts the data relating to a profile owner user from a profile post, that has been fetched with XenForo_Model_ProfilePost::FETCH_USER_RECEIVER
| array | $profilePost |
| prepareProfilePost | ( | array | $profilePost, |
| array | $user, | ||
| array | $viewingUser = null |
||
| ) |
Prepares a profile post.
| array | $profilePost | |
| array | $user | User whose profile the post is on |
| array | null | $viewingUser | Viewing user reference |
| prepareProfilePostComment | ( | array | $comment, |
| array | $profilePost, | ||
| array | $user, | ||
| array | $viewingUser = null |
||
| ) |
Prepares a profile post comment for display.
| array | $comment | |
| array | $profilePost | |
| array | $user | |
| array | null | $viewingUser |
| prepareProfilePostCommentConditions | ( | array | $conditions, |
| array & | $fetchOptions | ||
| ) |
Prepares a collection of profile post commment fetching related conditions into an SQL clause
| array | $conditions | List of conditions |
| array | $fetchOptions | Modifiable set of fetch options (may have joins pushed on to it) |
| prepareProfilePostCommentFetchOptions | ( | array | $fetchOptions | ) |
Prepares the fetching options for profile post comments.
| array | $fetchOptions |
| prepareProfilePostConditions | ( | array | $conditions, |
| array & | $fetchOptions | ||
| ) |
Prepares a collection of profile post fetching related conditions into an SQL clause
| array | $conditions | List of conditions |
| array | $fetchOptions | Modifiable set of fetch options (may have joins pushed on to it) |
| prepareProfilePostFetchOptions | ( | array | $fetchOptions | ) |
Checks the 'join' key of the incoming array for the presence of the FETCH_x bitfields in this class and returns SQL snippets to join the specified tables if required
| array | $fetchOptions | containing a 'join' integer key build from this class's FETCH_x bitfields |
| prepareProfilePosts | ( | array | $profilePosts, |
| array | $user, | ||
| array | $viewingUser = null |
||
| ) |
Prepares a batch of profile posts.
| array | $profilePosts | |
| array | $user | User whose profile the post is on |
| array | null | $viewingUser | Viewing user reference |


http://www.speakers-podium.com/susangranger.
Susan Granger's review of "THE BONE COLLECTOR" (Universal Pictures)
This is yet another urban thriller about a sadistic serial killer. Denzel Washington plays a bedridden, suicidal, quadriplegic forensics expert and best-selling author who teams up with a former fashion model-turned-rookie cop, Angelina Jolie, to capture an imaginative murderer with a penchant for cryptic clues. And each killing is uniquely horrific, just like in "Seven." Inexplicably, the NYPD uses Washington's SoHo loft as a base of operations while Jolie acts as his eyes and ears, exploring the grisly crime scenes, describing them to him, and following his instructions precisely. "You've got to saw her hands off at the wrist line! I've got to have those cuffs for prints!" he barks into her cell phone from his motorized bed. As his devoted nurse, Queen Latifah imbues the role with a special sassy quality, while the stereotypical supporting characters include Ed O'Neill, Mike McGlone, Luis Guzman, and Michael Rooker as Washington's former boss. Utilizing Jeremy Iacone's cliche-ridden, uneven screenplay, adapted from the novel by Jeffrey Deaver, director Philip Noyce ("Clear and Present Danger," "Patriot Games") cleverly keeps the cinematic tension taut as the hapless victims are buried alive, scalded by steam or devoured by rats. But the final confrontation between the immobilized Washington - using "one finger, two shoulders, and a head" - and the deranged killer is utterly preposterous.  On the Granger Movie Gauge of 1 to 10, "The Bone Collector" is a dopey, diabolical 6. It's basically a grisly, gruesome whodunnit.
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


Reverse Geocoding
Using the
Google Maps API
, you can easily get the LAT and LNG for an address.
LAT
LNG
Copy To Clipboard
+
-


--- layout: post-template title: "Til Death Reunites Us" postHeading: "Til Death Reunites Us" subHeading: "A poem" tags: grief poetry related: grief date: "27 Sep 2018" image: "/img/Til-Death-Reunites-Us/pushing-daisies-nature-3357958_1920.jpg" credit: "Photo by pixel2013 on pixabay" featured: "" featuredImage: "/img/Til-Death-Reunites-Us/pushing-daisies-nature-3357958_1920-f.jpg" ---
Grief and the beyond
. . .
Everyone is dying,
But this earth is left for the wicked like us;
That we may live to suffer the loss of the angels who have gone before us.
O, that we shall meet again someday,
In the sweet, by and by –
After we have been cleansed
And made worthy to enter that pristine paradise.

O, may I be prepared when that day comes.
O, may I be prepared.
. . .
First published on The Kalahari Review


Cop A Look At Steph Claire Smith’s Ab-Tastic Wedding Frocks
by By PEDESTRIAN.TVUnless you’ve experienced a complete social media blackout this weekend, you’ll be well aware that Steph Claire Smith just tied the knot with longtime boyfriend Josh Miller in country Victoria. They got hitched exactly a year after they got engaged and, goddamn, the wedding looks like it was absolute Instaporn. We stan. (Check out our lil’ wedding recap here for further info on all the festivities.)
Now, as expected, Steph’s started spamming her IG followers with wedding flicks, giving us some first glimpses at her wedding and reception dresses.
“Oh guys… get ready for the wedding spam…,” she captioned the below ‘gram. “I’ve only received a handful of pics from @lostinlove_photography and I am already LOVING THEM ???? Yesterday was hands down the best night of our lives and we’re so so so incredibly happy.”
Her One Day Bridal wedding getup features a cute two-piece moment. It’s abs-olutely something to be marvelled at.
Although she’s yet to post any photos of her reception outfit to the grid, these IG story screenshots hint at another two-piece, silk getup. Huge vibe.
What beautiful, wholesome content.
Congrats again to the very aesthetically pleasing couple. BRB, about to hibernate for the next week as I stalk their wedding pics.
Image: Instagram / @stephclairesmith & @lostinlove_photgraphy


The Hong Kong University of Science and Technology respects the personal data privacy of all individuals and pledges to be in compliance with the requirements of the Personal Data (Privacy) Ordinance of Hong Kong (“PDPO”) so that the privacy of your personal data is protected in accordance with the standard required by law.
In doing so, the University has issued a personal data privacy policy to provide guidance to staff about the collection, usage, retention, disclosure and security of personal data, to ensure compliance with the PDPO and adherence to the strictest standards of security and confidentiality. Individuals also have the right to request access to and correct their personal data held by the University.
Questions and comments on the University’s personal data privacy policy and practice can be addressed to the University’s Data Privacy Officer by emailing to ispdpo@ust.hk.


Usage¶
MIEZE Simulation¶
The parameter space for computing the magnetic field of the MIEZE setup is represented by this file.
Additional user input consists of defining the 3d computational grid in the main file.
In the following, each file is shortly described. For its usage, please consult also the documentation in each file.
The main script computes the magnetic field for the MIEZE experiment, which is saved in the data_magnetifc_field file.
The folder analysis_scripts contains several analysis scripts that have been used to find the ideal position for several elements of the experiment, or the check whether other properties are satisfied or not.
Adiabatic Transition: Plots the magnetic field and the adiabatic transition to check whether it is fulfilled or not.
CoilSet Position: Investigates what is the prefered position for the outer two coils such that the total magnetic field of the four coils is as close as possible to a unit function.
Neutron Polarisation Simulation: Computes the neutrons trajectories along the beam and their polarisation. It saved the data in the data_polarisation file.
Polariser Adjustment: Interpolates the measured polariser data points and optimises its magnetic dipole function.
Elements¶
The folder elements contains the individual elements that are placed along the beam, such as the beam trajectory, such as the:
Coils: Circular (Simple and Real) and Rectangular
CoilSet: The set of four coils for the mieze setup
HelmholtzPair: The pair of two coils in Helmholtz condition.
Polariser: The Polariser (similar to a dipole>)
SpinFlipper: The Pi/2 Spin Flipper.
All elements are derived from a Base class
Experiments¶
Analysises¶
Adiabatic Transition¶
One crucial aspect of the MIEZE setup is that the polarization between the polariser and the helmholtz coils proceeds adiabatically (the adiabatic transition condition can be found in the literature, but for convenience we provide [two slides](docs/adiabatic_transition_literature.pdf) about it).
The way the scripts work is that they take existing magnetic field data values from .csv files, then compute all required variables and perform the plots.
This investigation is performed via an over-layer script called [perform_analysis.py](perform_analysis.py), where the user decides which analysis to perform. The two scripts to choose form are:
A [check](scripts/adiabatic_check.py) using the existing parameters.
This condition is then plotted together with the actual change of the angle in the [Adiabatic transition plot](results/adiabatic_transition_condition.png).
The magnetic field along x and y direction are plotted together with the angle change in [this plot](results/by_bx.png).
There is no user input for this analysis.
An [investigation](scripts/find_relative_distance.py) trying to find what the optimal parameters are.
The result is plotted [here](results/distance_investigation_for_the_adiabatic_transition_condition.png).
Because the plot would be overcrowded if plotted in a similar fashion as for part 1, we define an adiabatic transition discriminant from the adiabatic condition inequality as just:
$2.65 cdot B cdot lambda - dfrac{dtheta}{dy}$
This quantity has to always be greater than 0 to fulfill the adiabatic transition.
The user input for this analysis consits of an array of values to be iterated over for finding the ideal distance.
Adiabatic Polarisation¶
Coil Set Configuration¶
Each of the inner pail of coils creates a magnetic field that is roughly similar to a Gaussian. Adding two such fields with a small distance between them almost produces a [resulting magnetic field](results/bfield_coils_inner.png) similar to a pedestal peak. In order to optimize this pedestal (that is, a flat top with straight edges), [two outer coils](results/bfield_coils_inner.png) with opposite current are used to remove and the tails.
This script investigates what should the position of the outer coils relative to the inner coils should be to achieve a pedestal as good as possible, by iteratively moving the outer coils further away from the inner ones. The goodness of the fit is computed using a minimal squares approach, and the [result](results/coil_set_optimization.png) is plotted a 2d color map.
The reference function is taken to be a perfect pedestal, as in [two outer coils](results/bfield_coil_set_0.png).
Results¶
The conclusion of this analysis is that the outer coils should be as close as possible to the inner coils.
Coil Set Influence on HSF¶
Neutron polarisation evolution¶
The polarisation is computed for each voxel based on how much time the neutrons spends in the respective voxel, given its speed.
The magnetic field and the polarisation vector are then plotted together.
- For the magnetic field of the coil set only, the result is:
![here](./polarization_and_bfield_coilset.png)
Numerical inconsistencies¶
Polariser equation adjustment¶
The magnetic field of the polariser on the y axis is a magnetic dipole, ideally. In practice however, there are some slight differences. The magnetic field of the polariser at several locations has been recored and it is used here to adjust the coefficients (a, n) of the the magnetic dipole equation: y = a * x ** n
The result is plotted [here](./by_bx.png).


<script src="RGraph.common.core.js"></script> <script src="RGraph.line.js"></script>Put this where you want the chart to show up:
<canvas id="cvs" width="600" height="250">[No canvas support]</canvas><br /> <button onclick="reverse()" style="font-size: 22pt; cursor: pointer">Reverse trace</button>This is the code that generates the chart - it should be placed AFTER the canvas tag(s):


--- imgsrc: "Jewish_Art_Will_Deutsch_Bat_mitzvah_Judaism_Jews.jpg" buylink: "http://store.notesfromthetribe.com/product/jewish-art-8-5-x11-bat-mitzvah-portrait-print" postDate: "08.05.12" layout: post ---
Enjoy the check for 18 dollars and the tree I planted in Israel in your name.
Mazel Tov,
Will


MSAnalytics
@interface MSAnalytics : MSServiceAbstract
App Center analytics service.
-
Track an event.
@discussion Validation rules apply depending on the configured secret.
For App Center, the name cannot be longer than 256 and is truncated otherwise.
For One Collector, the name needs to match the
[a-zA-Z0-9]((\.(?!(\.|$)))|[_a-zA-Z0-9]){3,99}
regular expression.Declaration
Objective-C
+ (void)trackEvent:(nonnull NSString *)eventName;
Swift
class func trackEvent(_ eventName: String)
Parameters
eventName
Event name. Cannot be
nil
or empty. -
Track a custom event with optional string properties.
@discussion Additional validation rules apply depending on the configured secret.
For App Center:
The event name cannot be longer than 256 and is truncated otherwise.
The property names cannot be empty.
The property names and values are limited to 125 characters each (truncated).
The number of properties per event is limited to 20 (truncated).
For One Collector:
The event name needs to match the
[a-zA-Z0-9]((\.(?!(\.|$)))|[_a-zA-Z0-9]){3,99}
regular expression.The
baseData
andbaseDataType
properties are reserved and thus discarded.The full event size when encoded as a JSON string cannot be larger than 1.9MB.
Declaration
Objective-C
+ (void)trackEvent:(nonnull NSString *)eventName withProperties:(nullable NSDictionary<NSString *, NSString *> *)properties;
Swift
class func trackEvent(_ eventName: String, withProperties properties: [String : String]?)
Parameters
eventName
Event name. Cannot be
nil
or empty.properties
Dictionary of properties. Keys and values must not be
nil
. -
Track a custom event with optional string properties.
@discussion Additional validation rules apply depending on the configured secret.
For App Center:
The event name cannot be longer than 256 and is truncated otherwise.
The property names cannot be empty.
The property names and values are limited to 125 characters each (truncated).
The number of properties per event is limited to 20 (truncated).
For One Collector:
The event name needs to match the
[a-zA-Z0-9]((\.(?!(\.|$)))|[_a-zA-Z0-9]){3,99}
regular expression.The
baseData
andbaseDataType
properties are reserved and thus discarded.The full event size when encoded as a JSON string cannot be larger than 1.9MB.
Declaration
Objective-C
+ (void)trackEvent:(nonnull NSString *)eventName withProperties:(nullable NSDictionary<NSString *, NSString *> *)properties flags:(MSFlags)flags;
Swift
class func trackEvent(_ eventName: String, withProperties properties: [String : String]?, flags: MSFlags)
Parameters
eventName
Event name. Cannot be
nil
or empty.properties
Dictionary of properties. Keys and values must not be
nil
.flags
Optional flags. Events tracked with the MSFlagsCritical flag will take precedence over all other events in storage. An event tracked with this option will only be dropped if storage must make room for a newer event that is also marked with the MSFlagsCritical flag.
-
Track a custom event with name and optional typed properties.
@discussion The following validation rules are applied:
The name cannot be null or empty.
The property names or values cannot be null.
Double values must be finite (NaN or Infinite values are discarded).
Additional validation rules apply depending on the configured secret.
For App Center:
The event name cannot be longer than 256 and is truncated otherwise.
The property names cannot be empty.
The property names and values are limited to 125 characters each (truncated).
The number of properties per event is limited to 20 (truncated).
For One Collector:
The event name needs to match the
[a-zA-Z0-9]((\.(?!(\.|$)))|[_a-zA-Z0-9]){3,99}
regular expression.The
baseData
andbaseDataType
properties are reserved and thus discarded.The full event size when encoded as a JSON string cannot be larger than 1.9MB.
Declaration
Objective-C
+ (void)trackEvent:(nonnull NSString *)eventName withTypedProperties:(nullable MSEventProperties *)properties;
Swift
class func trackEvent(_ eventName: String, withProperties properties: MSEventProperties?)
Parameters
eventName
Event name.
properties
Typed properties.
-
Track a custom event with name and optional typed properties.
@discussion The following validation rules are applied:
The name cannot be null or empty.
The property names or values cannot be null.
Double values must be finite (NaN or Infinite values are discarded).
Additional validation rules apply depending on the configured secret.
For App Center:
The event name cannot be longer than 256 and is truncated otherwise.
The property names cannot be empty.
The property names and values are limited to 125 characters each (truncated).
The number of properties per event is limited to 20 (truncated).
For One Collector:
The event name needs to match the
[a-zA-Z0-9]((\.(?!(\.|$)))|[_a-zA-Z0-9]){3,99}
regular expression.The
baseData
andbaseDataType
properties are reserved and thus discarded.The full event size when encoded as a JSON string cannot be larger than 1.9MB.
Declaration
Objective-C
+ (void)trackEvent:(nonnull NSString *)eventName withTypedProperties:(nullable MSEventProperties *)properties flags:(MSFlags)flags;
Swift
class func trackEvent(_ eventName: String, withProperties properties: MSEventProperties?, flags: MSFlags)
Parameters
eventName
Event name.
properties
Typed properties.
flags
Optional flags. Events tracked with the MSFlagsCritical flag will take precedence over all other events in storage. An event tracked with this option will only be dropped if storage must make room for a newer event that is also marked with the MSFlagsCritical flag.
-
Pause transmission of Analytics logs. While paused, Analytics logs are saved to disk.
See
resumeDeclaration
Objective-C
+ (void)pause;
Swift
class func pause()
-
Resume transmission of Analytics logs. Any Analytics logs that accumulated on disk while paused are sent to the server.
See
pauseDeclaration
Objective-C
+ (void)resume;
Swift
class func resume()
-
Get a transmission target.
@returns The transmission target object.
@discussion This method does not need to be annotated with NS_SWIFT_NAME(transmissionTarget(forToken:)) as this is a static method that doesn’t get translated like a setter in Swift.
See
MSAnalyticsTransmissionTarget for comparison.Declaration
Objective-C
+ (nonnull MSAnalyticsTransmissionTarget *)transmissionTargetForToken: (nonnull NSString *)token;
Swift
class func transmissionTarget(forToken token: String) -> MSAnalyticsTransmissionTarget
Parameters
token
The token of the transmission target to retrieve.
-
Set the send time interval for non-critical logs. Must be between 3 seconds and 86400 seconds (1 day). Must be called before Analytics service start.
Declaration
Objective-C
+ (void)setTransmissionInterval:(NSUInteger)interval;
Swift
class func setTransmissionInterval(_ interval: UInt)
Parameters
interval
The flush interval for logs.


Event Title:
Event Category:
Sports
Music
Video Games
Board Games
Social
Outing
Volunteer
Study
Other
Event Location:
Address = {{vm.place.formatted_address}}
Location: {{vm.place.geometry.location}}
Map : {{vm.address}}
Event Description:
Event Date:
Event Time:
Event Duration
Make it Happen!


You're assuming everyone was honest back in the day@richardt I'm not assuming anything, you're the one making the assertions and I'm asking for you to back those assertions without hyperbole
Sdunbar04-Apr-19 02:27 AM
we bleeding sats here
p.04-Apr-19 02:29 AM
KMD = 5 ETH tho
richardt04-Apr-19 02:50 AM
@ComputerGenie 👴👴👴 By stating that you don't recall seeing an article on counterfeit cowry, thereby implying it never happened nor was a problem. That's making assumptions.  Maybe if everyone was honest, then yeah the problem is not that significant.
Hollowman900004-Apr-19 02:57 AM
Crypto is the future, the new foundation for human financial interactions..
Meanwhile in Vietnam..
Tell the community manager to delete the TG group as well
Hollowman900004-Apr-19 03:03 AM
TG?
p.04-Apr-19 03:03 AM
Telegram
Hollowman900004-Apr-19 03:03 AM
Forgot I had that app
Not motivated to look tbh
Thumb shifting is hard
Only enough energy to talk shit in trading
richardt04-Apr-19 03:06 AM
If there's an issue with inactivity somewhere, just comment something that's not negative about BTC and have ComputerGenie to join in on the conversation. That should solve it.
p.04-Apr-19 03:07 AM
Yea he is so WOKE
ComputerGenie 👴👴👴04-Apr-19 03:11 AM
By stating that you don't recall seeing an article on counterfeit cowry, thereby implying it never happened nor was a problem. That's making assumptions.
No, that's literally me saying that I'm not aware of the evidence you claim exists and asking for you to provide it.
richardt04-Apr-19 03:12 AM
I didn't see that as a question, more of a statement. Are you back-peddling now?
Jokes aside. Just want to make sure we're on the same page. The problem we're talking about is trust in regards to the transfer of value, correct?
Can you provide evidence that trust was never an issue in history? You're the one saying it's not a major problem
ComputerGenie 👴👴👴04-Apr-19 03:15 AM
me:got a link?
you I didn't see that as a question
Seems the problem with our communication is that you don't understand the fundamental structure of the English language. (edited)
richardt04-Apr-19 03:16 AM
It's hard to know discern sarcasm from true inquiry on the internet(edited)
As you probably already know
ComputerGenie 👴👴👴04-Apr-19 03:16 AM
Can you provide evidence that trust was never an issue in history?
That's not how supporting a claim works, you don't get to make an unsupported claim and then force me to disprove a negative; you make the claim, you must support the claim.(edited)
Or, you could just stop using hyperbole and make an actual supportable claim....
richardt04-Apr-19 03:18 AM
Pretty sure you're the one making the claim first that BTC sucks because it only solved one problem (an insignificant one)(edited)
p.04-Apr-19 03:18 AM
LOL AF TBH ^
richardt04-Apr-19 03:19 AM
I'm just here to disagree and get you fired up
ComputerGenie 👴👴👴04-Apr-19 03:21 AM
Pretty sure you're the one making the claim... it only solved one problem
That's not my claim, that's the claim of Bitcoin.
an insignificant one
In the context that you keep framing it in, 5500 years of written human history, double spending of electronic cash is factually insignificant. Stop using hyperbole and your claim will be much closer to valid.
I'm just here to disagree and get you fired up
Then you're failing because in the grand scheme of things idgaf
polycryptoblog04-Apr-19 03:22 AM
Btc sucks because 1) slow af 2) LN won’t work 3) Commodity currencies can be manipulated with a better store of value ( fiat )
richardt04-Apr-19 03:22 AM
Apparently you do
lol
ComputerGenie 👴👴👴04-Apr-19 03:23 AM
@polycryptoblog Your '2)' is a false claim becaise LN isn't part of BTC(edited)
richardt04-Apr-19 03:23 AM
Everything is false if ComputerGenie doesn't agree with it
polycryptoblog04-Apr-19 03:23 AM
Ok I’ll take that one back and replace it with , arbitrary blocksize limiting
p.04-Apr-19 03:24 AM
gross
ComputerGenie 👴👴👴04-Apr-19 03:24 AM
@richardt My agreement is with what he said, just not that it's in relation to BTC (because it's a separate app and BTC functions with or without it)
so meh
Cryptoon04-Apr-19 06:21 AM
Damn
Just woke up with a mass amount of twatter notifications
I guess suggesting anambroid to read the kmd whitepaper hit a nerve somewhere
gcharang04-Apr-19 06:23 AM
I think he has been paid off
or he is just closed minded
he wrote this
Komodo DPoW, which is a centralized solution, qualitatively very similar to PoP.
which is a centralized solution
like he understood it all and passed down a judgement(edited)
Cryptoon04-Apr-19 06:28 AM
Yeah posted similar exerpts last night as well, sounds like stuff that is thrown around in the vbk discord to blind their sheep following tbh
Hard to change peoples minds even if utterly wrong when their opinions are already set in stone
I deliberately only said something about kmd and how his opinion on that was wrong, and nothing about what a piece of shit vbk was but to no use
@anambroid @Jacobstoon @CarpeNoctom @KomodoPlatform 1/
Not really.
users have no say in it
Not true. Every full node on the network verifies notarizations and validates the blocks. If a block is found to be contradicting the history known to that node, that notarizatio...
@anambroid @KomodoPlatform @rackdisiprin @Jacobstoon @CarpeNoctom https://t.co/c3KkCdS1lt
Just one instance of the Komodo team requesting Poloniex to delist BTCD. If you dig deeper, you will find even more references.
3
Hard to change peoples minds even if utterly wrong when their opinions are already set in stone
This is "crypto economics & game theory" at play. They will defend their opinion even if it is wrong because they have a financial stake in that opinion being true
I understand I too have stake in my opinion but the point still stands
@bradmillscan @KomodoPlatform @rackdisiprin @Jacobstoon @CarpeNoctom How you can be in the market for so many years and still be so naive and optimistic is beyond me.
By the time it started pumping the chain didnt even work anymore and already 90%+ was in the kmd address held by jl?
jl777c04-Apr-19 06:42 AM
blaming us for polo keeping BTCD listed well after the chain died? seems par for the course for VBK
exchanges just dont do things they are asked to do, but they will revamp their deposit handling code to use the VBK data since grepping the debug.log locally to notice a reorg is much easier?
CryptoNinjaa04-Apr-19 07:26 AM
Yeah he comes across as not very educated on the matter
jl777c04-Apr-19 07:35 AM
from their roadmap:
Q2, 2019 First Altchain Integration
Q2, 2019 Early Attack Detection Dashboards, Integrations
so it seems confirmed that VBK is attack detection and not prevention. so it only costs an altcoin a percentage of block rewards to detect they have been attacked after the fact.
grepping debug.log will achieve the same effect
Cryptoon04-Apr-19 07:40 AM
It costs the minders 4000 sats to PoP mine, but the ieo was at 2400 sats... so its like they are expecting this shit to pump?
Miners were better off just buying the ieo then
CryptoNinjaa04-Apr-19 07:41 AM
They couldnt
grewalsatinder04-Apr-19 09:25 AM
such expensive monitoring system
much wow
jl777c04-Apr-19 09:26 AM
$20 per coin, guaranteed!
1% per day profits for life
PHBA206104-Apr-19 10:29 AM
someone commented on that twitter post :
Instead of putting pop on bitcoin why didn't they just mirror btc hashes 3 blocks later with their own sub chain hashes? that would create no spam on bitcoin while providing a verifiable historical sequence.

ComputerGenie 👴👴👴04-Apr-19 10:39 AM
almost responded to the polo/btcd twat but realized that it's to silly to even waste time on
jl777c04-Apr-19 10:58 AM
i think they are saying to put the bitcoin blockhash into the VBK block header but that doesnt really solve the issue of 51% protection
1
siu - Chainmakers04-Apr-19 11:08 AM
It needs to be both ways, like stitches
1
grewalsatinder04-Apr-19 11:46 AM
stitches yep, that's the word
p.04-Apr-19 12:08 PM
Why are you guys so concerned with VBK
ComputerGenie 👴👴👴04-Apr-19 12:09 PM
because the fanboys keep coming in here
p.04-Apr-19 12:13 PM
You are ugly irl.
1
ComputerGenie 👴👴👴04-Apr-19 12:13 PM
quite
1
Caglio04-Apr-19 12:25 PM
Hahaha @p. and @ComputerGenie 👴👴👴 still going on ?


--- layout: page ---
This is a quiz I coded using Bootstrap and PHP.
20 questions to discover if you need procurement in your life!
I created this concept website after a Kayaking trip on the Boyne River in Ireland. It was breathtaking!
This is an invitation for a presentation and luncheon.


sharing, communicating, networking
cheaper than a census, real-time, many participants...
[
NBC.com
]
[
socialitelife.com
]
identify, analyze isolated events
unexpected event at time \(t=0\)
probability of someone sharing, \( p_1(t) = \lambda e^{-\lambda t} \)
\(N\) people \(\rightarrow \sum_{i=1}^{N} \text{Exp} \sim \frac{\beta^{\alpha}}{\Gamma(\alpha)} t^{\alpha - 1} e^{-\beta t}\)
\( \rightarrow \alpha, \beta \)
so what?


Towers of Hanoi is a puzzle game, traditionally played wooden disks. This is a recreation of the game in javascript.
1
, 2
, and 3
to select the source and destination of the move. r
key to reset the disks and the timer. s
key to let the computer solve the puzzle.


Fluorine
The early chemists were aware that metal fluorides contained an unidentified element similar to chlorine, but they could not isolate it. (The French scientist, André Ampère coined the name fluorine in 1812.) Even the great Humphry Davy was unable to produce the element, and he became ill by trying to isolate it from hydrofluoric acid.
| Atomic Number | 9 |
| Relative atomic mass | 18.998 |
| Melting point | −219.67°C |
| Boiling point | −188.11°C |
Fluoride is an essential ion for animals, strengthening teeth and bones. It is added to drinking water in some areas. The presence of fluorides below 2 parts per million in drinking water is believed to prevent dental cavities. However, above this concentration it may cause children’s tooth enamel to become mottled. Fluoride is also added to toothpaste.


Hi! Let's beta test our new home page!
Enter the beta!
Leave the beta!
You are currently
in the beta!


iSP-D SP-D IAV virus hSP-D pSP-D activity infection compared antiviral influenza (). protein :–. pandemic weight IAVs binding viral surfactant different cells residues showed >, (.) CRD strains described lung studies SP-Ds recombinant al.. human inhibition loss using HAI analysis mice performed properties trimeric {border-style demonstrated potential (Figure iSP-D, previously px;} #ffffff;} pulmonary used hSP-D, titers oligomeric reduction shown tested affinity distinct (HN) Figure MDCK concentrations differences hSP-D. observed treatment viruses vivo University expressed expression followed highest innate presence resistant strain Biol Chem. aggregation carbohydrate determined full-length hemagglutination higher infected obtained pSP-D, protective required PBS administered animal day effective experiment fully neutralization pSP-D. result significantly site structural vs. A/Netherlands// N-linked assay average concentration control domain dose enhanced iSP-D. improved included incubated interactions lectin lower lungs novel range recognition reduced resulted site-directed therapeutic < A/PuertoRico// AGC GAG IAV. challenge clinical days did experiments host including model mouse mutant porcine porcine-specific present px; respiratory role significant similar slightly vitro {font-family .van Asn CTC GCT Medical SP-Ds. Student's active containing determine effect epithelial exhibits experiments. font-size glycan glycans important indicated isolate lectin-mediated light likely min results species wildtype AFM CCC Center Department Furthermore, GCC GGC GGG Groningen, HNpdm IAVs. Immunol. NCRD Netherlands). SP-D-mediated TCID Viral Virus ability according acid broad buffer caused clone contrast, contribute control, double; effects group highly include increased infectious inhibitory investigate medium molecular mutations neutralize number particles preparations previous profound protection proteins provided purified room saccharide statistically study surface t-test. two-tailed values virus. (Figures (HN), A/Aichi/ A/mallard/Netherlands// CAG CTG FOR, However, IAV, Innate Materials Respir Results Round SDS-PAGE SP-D, Statistical Table administration amino animals anti-IAV associated attachment bind border-color border-width cells. collectin collectins considered contrast defense demonstrate diluted efficacy gel groups hSP-D). hemagglutinin identical immediately immune importance increase infection, infection. inhibit inhibited inoculation involves major measured mechanism mice. mutagenesis negative neutralizing observations order paired prevent prophylactic region revealed sequence sialic single solid; stained structure subtype times transmission trimers value various viruses. {font-style {font-weight ./jbc.M AAC ATC Animal Assay Biol. Ca-dependent CaCl Cell Characterization GAA GAT GSS GSS-insertion GTT Gln, Glu, HN, Hemagglutination Influenza Methods Overall, Porcine Pulmonary REV, Res. SP-D. Shown Swine TTC Veterinary able accession acids activity. added. addition aggregation, alveolar analyzed and/or anti-influenza assembly assessed background based bold carried cells, challenge. changes characterized chromatography clearance courier; delivered designed developed difference disease drug em; established executed experimental forms generate generated glycosylation however, immunohistochemical increasing incubation interact isolated isolates key like located loop mixed modifications neck ng/ml ng/ml) ng/ml). non-reducing octamannose oligosaccharides overall panel plates preparation profile pt;} published reduce response responses rounds sections selectivity subsequent susceptible symptoms template tested. titer treated unique use vector μg/ml


Life through the pleasure, passion, and purpose lens looks looks similar to my life now. I joined EDA because I want to be a coder for humanity and create code which makes peoples' lives better. I do not have a formal education in computer science but I am enjoying solving the problems in our sprints. The books describes flow as a component of passion where "peak performance meets peak engagement." Often times while working through coding exercises I enter flow and time flies. It feels great.
There are more, but those four present themselves most often in my life. I stand for making the world a better place by improving peoples lives via technology. The resilience ideas really helped put failure into perspective, particularly with the insight that negative experiences exert themselves far more powerfully than positive experiences.


Welcome!
This is a (mostly static) website intended to collect my thoughts and much of my life into one place. This page will serve as a quick introduction to the website and details on how I put it together - partially for other people but mostly for me in case I want to do it again!
Me
My name is Sanchit Sharma, sometimes also referred to as:
- San
- Sam
- TTIO or TTIOttio (each letter pronounced separately)
- PuppyKit (hence the url)
I'm a software developer, devops person and all-round nerdy person. Head on over to my personal page for more info.
The Site
This website is running off a microserver sitting next to my desk. I've done everything from scratch - from hosting to the domain to writing the code myself, by hand. Mostly this has been a learning exercise - I'm not sure I would do things the same way in the future - but I do enjoy the idea that I'm able to host things from my own home!
So how does it work? The code is hosted on github so feel free to browse at your leisure. The code is licensed under the Apache-2.0 license, so copy, reuse, mess around with whatever you feel like. If you have suggestions, feel free to open pull requests or issues.
The Server
I own a HPE ProLiant MicroServer Gen8 which currently lives next to my desk.  Inside is currently a single 2TB spinning-platter drive, though I plan to increase that to a second for RAID and then potentially two more for increased storage.
The server itself is running Fedora Server 25, and I run updates daily with an ansible playbook that manages all of my hardware. Whenever a new kernel is pushed to the repositories, I immediately install it and reboot into the new kernel.
Since this site is currently running on the single server (no HA yet!), this results in relatively high downtime. For me, this is a satisfactory tradeoff as the site has little traffic at the moment. However, I've also covered the details of how to install and run Openshift in HA mode - multiple masters, multiple nodes, and multiple etcd nodes.
The OS has the minimum installed: Openshift, Ansible and a few other utilities aside from the basic install of Fedora Server.
Openshift
All my code runs in Openshift. This means everything hosted on this server. I do this for security and also a little bit for convenience. My main project (which contains this site) has a route set up inside of Openshift that forwards traffic to the primary container.
That container is a simple Docker container based on the HTTPD image with my website and a slightly edited conf file inside (see the Dockerfile).
Technically, Openshift is overkill for what I'm trying to do here. However, I've taken this on as a learning exercise and I expect that Openshift will be useful for some of the things that I want to host here in the future, so I've stuck with it.
To make my life a bit simpler, the hosts file on my dev machine allows me to directly access my server, so I can see how things differ when accessing it internally vs from the outside world.
Since I don't want to allow ports other than 80 and 443 through my router, I haven't set up build hooks. This means that I have to manually build the site container when I update it, but I think this is a fair compromise as once the site is fully built it won't be updated more than once every month or so.
Gandi
My registrar is Gandi, although it annoys me that they spelled Gandhi wrong :p
They've been pretty easy to work with and have a good corporate philosophy in my opinion. Although my mail is not currently running, I plan to use their services for it as I'm not interested in setting up a mail server from scratch just yet.


{% load static %}
Price per hour : ₹ 60.00
Engine Type: 249cc liquid-cooled
Fuel Capacity: 13.5 Ltr
Power:10.74 PS @ 7500 rpm
Price per hour : ₹ 20.00
Price per hour : ₹ 25.00
Price per hour : ₹ 30.00
Feel free to give your valuable suggestions.