Estimating Fault Sensitivity¶
In linear systems, when a parity relation is found, and given a set of system inputs representing faults with known magnitude, it is easy to calculate the effect of said faults on the parity relation. This is commonly known as Fault Sensitivity.
Equivalently, it is easy to find the magnitude of the fault response of the residual signal. And this needn’t be with a numerical procedure; A closed-form formula can be found which describes the residual response under the influence of the maximum fault. This response value is constant and can be subsequently used to select a threshold for the fault detection logic.
However, in non-linear systems, there are two complications:
Firstly, it is not always straightforward, or even possible to find a closed-form solution for the fault response level of a given parity relation, as it may involve piece-wise functions, non-linear algebraic equations systems or differential-algebraic equation systems.
Secondly, in a non-linear system, the fault response level at maximum fault may not be constant, but instead dependent on some system variables. For example, a system variable multiplying the fault variable can “mute” the fault influence on the system. What is more, the maximum fault response of the residual may even not correspond to maximum fault magnitude. Stated differently, the sensitivity of the residual to the fault is variable.
Consequenty, we realise that, for two different fault sources with the same worst-case value, the corresponding residual response level may be of different scale for each fault.
For the above reasons, traditional approaches for fault response estimation do not work for general, non-linear systems. Instead, this toolbox utilizes numerical methods (specifically Particle Swarm Optimization) to estimate the response of a residual to faults.
Case Study¶
As a running example for this demonstration, we shall use a submodel of a fixed-wing UAV, incorporating the lateral motion quantities of velocity, airspeed, roll angle, acceleration and angle of sideslip. This is implemented in model g032b
, found in the graph pool of the toolbox.
It corresponds to an actual system, the UnATRaP UAV, the aerial testbed of our laboratory.
The UAV is equipped with an airdata boom, able to measure the angle of sideslip directly, and with an ArduPilot autopilot, which provides an estimate of the inertial and wind velocity.
The corresponding demo script is fault_response_demo.m
, which:
- Builds the system model and finds the (unique) residual generator
- Implements the residual generator function using Matlab’s symbolic and numerical solver tools
- Uses Particle Swarm Optimization to estimate the response of the residual signal to the faults it covers
- Uses Particle Swarm Optimization to estimate the robustness thresholds of the residual (explained further down)
- Parses logged data from a real flight, where a angle of sideslip measurement fault occurred and compares estimated and actual residual responses
Structural Analysis¶
The system description can be found in the file g032b
, which includes not only the structural information, but the actual equation expresssions, e.g.
...
{'v v_r v_w expr -v+v_r+v_w'};...
{'Beta v_r Va expr -v_r+sin(Beta)*Va'};...
These will later be used to implement the residual generator function.
Four faults are considered for this system:
- fseq1: angle of sideslip measurement fault
- fseq2: airspeed measurement fault
- fseq3: roll angle measurement fault
- fseq4: pitch angle measurement fault
Run the demo script fault_response_demo.m
. It is set to breaking operation, halting after each section, allowing better introspection.
The first part is structural analysis of the system. Once it is done, the system graph is constructed:
and a valid matching is found, leading to a residual generator
The white rectangle is the unmatched equation, the evaluation point of the residual signal.
Residual Implementation¶
The next section of the code is the implementation of the residual generator function. The toolbox parses the system equations, and solves them according to the partial ordering dictated by the matching. Analytical tools are used to perform solutions and substitutions. Where this is not possible, numerical tools are used.
The order of evaluations is output:
Sequence of calculations for the evaluation of the residual:
Beta := 1.0*Beta_m + 1.0*fseq1
Va := 1.0*Va_m + 1.0*fseq2
v_w := 1.0*v_w_m
r := 1.0*r_m
u := 1.0*u_m
p := 1.0*p_m
w := 1.0*w_m
Phi := 1.0*Phi_m - 1.0*fseq7
Theta := 1.0*Theta_m - 1.0*fseq8
v_r := 1.0*Va*sin(Beta)
Fy := 1.0*m*(a_m_y + g*cos(Theta)*sin(Phi))
v := 1.0*v_r + 1.0*v_w
dot_v := 1.0*p*w + 1.0*r*u + (1.0*Fy)/m
0 := (residual)
Fault Response Evaluation¶
Next, Particle Swarm Optimization is used to estimate the maximum influence of each fault onto the residual signal. It is assumed that only one fault occurs at a time.
The corresponding code is:
fault_response_vector_set = getFaultResponseVector( RG_results.res_gen_cell, [], [] ); % Run all tests, with no pre-calculated fault response vector
As we discussed at the beginning of this demonstration, the operational domain of the system plays a role in the fault response levels. Thus, the optimization must be aware of the domain of the system variables (in this case, the flight envelope of the UAV).
This is communicated with the script makeDictionary_g032b.m
, found in the same folder as the system model.
For example, the airspeed range is set from 20m/s to 35m/s with
graphInitial.setLimits([], {'Va_m'}, [20 35]);
and the airspeed measurement fault is constrained to 5m/s:
graphInitial.setLimits([], {'fseq2'}, [-5 5]);
This essentially sets the domain limits of the search of the Particle Swarm Optimization.
The optimization may take several minutes to finish. A non-linear residual generator function needs to be evaluated over a multi-variable search space and for four different fault variables/sources.
The final result is
Final Fault Response Vector:
314.0353 5.2344 0.7522 0.4598
323.9532 31.6754 0.6347 0.0045
Let us go over what this array contains:
Each column corresponds to one of the measurement fault sources, angle of sideslip, airspeed, roll and pitch angle.
The lower row is the fault response of the residual maximized over the fault range and also maximized over the system variables range. This is the greatest fault response level that is expected to be reached for each of the fault sources. Placing a detection threshold level above this value does not make sense, as the residual signal is not expected to rise above that value.
The upper row is the fault response of the residual maximized over the fault range but minimized over the system variables range. This value is the residual level corresponding to the worst-case fault, but also corresponding to the worst-case attenuation due to the system variables. This value is useful for assessing the worst-case performance of the diagnostic system.
Theoretically, every value of the top row should be lower than the corresponding value of the bottom row; the worst-case fault response should be lower than the best-case fault response. However, there are a few reasons why this contradictory result may appear:
- Local minima of the residual generator function have pulled the particles towards a non-optimal solution
- Fewer particles have been scattered in the search-space to reduce computational complexity, which led to a less-than-necessary coverage of the search-space
- In difficult optimization problems, the random nature of Particle Swarm Optimization cannot converge to the same, optimal result in every run
Sanitizing the Results¶
Obviously, this result is wrong. The optimization needs to be run again, until the minimum fault response is lower than the maximum fault response.
The next section of the demo script is set to run the Particle Swarm Optimization once more:
fault_response_vector_set = getFaultResponseVector( RG_results.res_gen_cell, fault_response_vector_set, [] ); % Run all tests, with pre-calculated fault response vector
This time, the previous fault response vector is passed onto the optimization routine. If a lower minimum / greater maximum response is found for any fault source, it will be used. If not, the old values will be preserved.
The new result is:
314.0353 5.2344 0.7522 0.1716
368.7736 31.6754 0.7835 0.0819
Better limits were found for the minimum response of pitch angle measurement fault (4th column) and the maximum response of the angle of sideslip, roll angle and pitch angle measurement faults (1st, 3rd and 4th columns).
However, the results of the 4th column are still incompatible: The top value should be smaller than the bottom value. One more run of the optimization returns.
249.7166 5.2344 0.7522 0.1449
368.7736 31.6754 0.8028 0.1857
Lower bounds were found for the 1st and 4th column and a meaningful upper bound was finally found for the 4th column as well. This is a satisfactory result.
It should be noted that the true lower/upper bound value could be analytically found for most systems, but with painful calculations and derivations. Instead, here, we introduced an approach suitable for treating large-scale systems, with many residual generators and many faults, and obtaining at least some first-pass results.
Decoding the Fault Response Vector¶
Let us take a closer look at the contents of the fault response vector of the single residual generator of this system.
The first, most obvious observation is that the residual is an order of magnitude more sensitive to angle of sideslip measurement faults than airspeed measurement faults, and one more order of magnitude, compared to roll and pitch angle measurement faults.
This raises the suspicion that the residual signal will be practically insensitive to the last two faults, due to the unavoidable signal noise that will manifest in the diagnostic system. Coversely, it is evident that this residual generator is most sensitive to angle of sideslip measurement faults.
Additionally, for the second column, the lower bound response is about 7 times lower than the maximum response, which means that even for the maximum airspeed measurement fault, the residual response will vary this much over the whole flight envelope.
Robustness of Residual Signal against Noise¶
So far, we have assessed the sensitivity of the residual to occurring faults, but in real systems which are subject to noise, this is not enough. The fault response of the residual must be clearly distinguisable from the baseline noise level of the residual, during the fault-free case. Put differently, the Signal-to-Noise ratio of the residual must be adequate.
Noise sources and disturbances can be incorporated in the system model and encoded in the structural graph. They can be seen as pale red circles (with d_*
names).
The noise floor of the residual signal during both fault-free conditions can be estimated with the same numerical optimization approach. As required by our framework, a range domain is specified for each noise source. The characterization of each domain can result from sensor datasheets, state uncertainties etc.
This time, all of the noise sources are included in the optimization simultaneously:
disturbance_ids = gi.getVarIdByProperty('isDisturbance');
pso_opt = ResidualResponse(RG_results.res_gen_cell{1}, disturbance_ids);
robust_threshold = pso_opt.get_max_response();
The result is 29.18
.
Application on Real Flight Data¶
During one of our test flights, it so happened that the wind vane of the angle of sideslip worked itself loose.
Thanks to the redundant measurement sources of the autopilot system, we are able to measure the faulty measurement singal and also reconstruct an estimate of the true angle of sideslip.
The airplane takes off at about t=1300, when the wind vane starts working and the estimated measurement error drops close to zero. Notice that the error is not exactly zero, due to various measurement noise sources.
At t=2400 the plane lands. The absence of a wind stream allows the angle of sideslip sensor to sit at a random position and the error grows large.
The airplane takes off again at t=2900 and the error drops once more, but at about t=3000 the wind vane breaks. The measurement error now deviates from zero significantly more.
Note that the measured value of the angle of sideslip is frozen at a random value, but the actual quantity varies, so the error is not constant.
The residual signal, as the output of a function which is fed with the system measurements ( r=g(u,y) ) can be seen below in blue, with the fault overlayed for temporal reference.
During the fault-free flight segment, the residual is mostly confined within the predicted threshold (marked in blue shade).
During the fault the level of response of the actual, calculated residual (blue) is very close to the predicted value of 368. The reason it exceeds it is most likely due to the presence of other sources of error such as measurement noise which further build up the residual value.
In green, the value of the theoretical value of the residual is plotted, as a function of system state and fault ( r=h(x,f) ). If the optimization procedure was successful in finding the true maximum of the residual reponse, this should match the response level exactly, which is the case.
As a final note, notice that even though the fault is non-zero around t=3050s and t=3500s, the residual response drops close to zero. This seems contradictory and in violation to the assumption of exoneration, but is actually constistent with the underlying theory.
In close inspection, the residual value is dependent upon the fault and its derivative as well:
This is also witnessed by the matched graph of the subsystem at the top of this document, which requires a differentiation of the variable v, which is subsequently subtracted from dot_v, with the residual as the remainder of this operation.
As a result, the residual value is much more dependent on the error derivative than the error itself. These intervals where the residual drops significantly is when the error is significant, but its derivative less so. This is a topic which merits the attention of the diagnostic system designer when tackling dynamic residual generator functions.


A constructor is a special method which initializes your variables and performs any other additional operations when you create an object. It is called whenever you create an object.
Here is the general form of a constructor.
Name(parameters) {
statement1
statement2
...
statementN
}
Here, the name of the constructor is the same as the class name. Constructors usually initialize values of fields.
You have already learnt about parameters in the previous chapter. A parameter is a value that you can send to your constructor. Parameters allow a constructor to be generalized. In other words, such constructors can operate on a variety of data and work differently based on different arguments.
The constructor body begins with a left brace ({
) and ends with a right brace (}
).
You can write any number of statements inside its body. In fact, you can leave
it empty.
Here is an example of a constructor.
public class Example {
public Example() {
}
}
The constructor is public. Which means, other classes can access it. You can even make constructors private or protected. You can prevent a class from being instantiated by other classes, by making the constructor private. You will learn more about protected constructors in the next chapter.
Finally, the constructor shown here does not accept any parameters, making it a default constructor.
As you can see, constructors are similar to methods, with the following differences. * A constructor has no return type. * The name of the constructor must be same as the class name. * Constructors are not considered as members of a class.
Unlike methods, a constructor cannot be called directly. You need to use the
new
operator to invoke a constructor.
Every class has at least one constructor. In the examples shown so far, we not have defined any constructor. But how were we able to create instances? That is because Java automatically provided your classes with constructors. In other words, if you don’t define a constructor in your class, Java automatically creates an empty constructor known as the default constructor.
A default constructor accepts no arguments. It does nothing. But it allows you to create objects of your class. This is why you were able to create objects of the classes you created so far.
Here is an example where we declare an empty class.
public class BlackHole {
}
Here is another way of writing the BlackHole
class.
public class Example {
public Example() {
}
}
Both the classes we declared are exactly the same.
In the first example, Java provides you a default constructor. In the second example, you declared a constructor that does not accept parameters and does nothing. Such a constructor is known as explicit default constructor.
Here is an example of three classes. Each class demonstrates initialization using different techniques.
class Pizza {
public String name;
public String size;
public double price;
@Override
public String toString() {
return "(Pizza) name: " + name + ", size: " + size + ", price: $" + price;
}
}
class Burger {
private String name;
private String size;
private double price;
public void initialize(String n, String s, double p) {
name = n;
size = s;
price = p;
}
@Override
public String toString() {
return "(Burger) name: " + name + ", size: " + size + ", price: $" + price;
}
}
class Roll {
private String name;
private String size;
private double price;
public Roll(String n, String s, double p) {
name = n;
size = s;
price = p;
}
@Override
public String toString() {
return "(Roll) name: " + name + ", size: " + size + ", price: $" + price;
}
}
public class FastFoodJoint {
public static void main(String... arguments) {
Pizza pizza = new Pizza();
pizza.name = "Farm House Pizza";
pizza.size = "Large";
pizza.price = 12.5;
System.out.println(pizza);
Burger burger = new Burger();
burger.initialize("Double Cheeseburger", "Medium", 8);
System.out.println(burger);
Roll roll = new Roll("Chilli Chicken Roll", "Large", 10);
System.out.println(roll);
}
}
The output of this program is shown here.
(Pizza) name: Farm House Pizza, size: Large, price: $12.5
(Burger) name: Double Cheeseburger, size: Medium, price: $8.0
(Roll) name: Chilli Chicken Roll, size: Large, price: $10.0
This example demonstrates three ways you can initialize your objects. You
create three classes which include three fields name
, size
, and price
.
The first technique is the simplest. You simply declare the fields in your class
and expose them, that is, make them public. You create an instance of the Pizza
class and initialize its fields by assigning each field in the main()
method.
Although, this technique is simple you will end up repeating yourself very often.
Imagine you create twenty instances of the Pizza
class in twenty different
places. You may forget to initialize a field. Imagine what happens when you
add or remove a field? You will have to find every place where you initialize
the object and edit your code.
The second technique is efficient. You declare the fields as private but expose
a method which initializes the object. After you create an instance of the
Burger
class, to initialize its fields you invoke the initialize
method
from the main()
method. You pass the values of the fields as arguments to the
method, which in turn assigns to the fields. This is efficient, but you still
need to write two statements: one to create the object and another to initialize
the object. In case you add or remove a field, you simply need to change the
initialize()
method.
For the final technique, we take inspiration from the previous technique and
combine creation and initialization of the object in the same statement. When
you create an instance of the Roll
class, to initialize its fields you pass
the values of the fields to the constructor of Roll
class. The constructor
assigns the fields the values it receives through its parameters.
Constructors are both efficient and simple. We recommend you to always initialize your objects using constructors. After all, that is their primary purpose.
You need to remember that, when you create a parameterized constructor, Java does not provide a default constructor. In which case, you need to explicitly define a default constructor if you need it.
Try to compile this example. The compiler will generate errors.
class Sitcom {
private String title;
private float ratings;
private float length;
public Sitcom(String t, float r, float l) {
title = t;
ratings = r;
length = l;
}
}
public class SitcomExample {
public static void main(String[] arguments) {
Sitcom sitcom = new Sitcom();
}
}
In this example, you try to invoke the default constructor of the Sitcom
class.
The compiler generates errors obediently.
Java does not provide a default constructor for the Sitcom
class. Because we
declared a constructor which accepts parameters. We did not provide an explicit
default constructor either. Because you defined a parameterized constructor in
the Sitcom
class, Java will not provide a default constructor.
Which means, we are calling a constructor that does not exist. This is why
the compiler generates errors. This is basically the gist of the compiler error
you will see when you try to compile this example.


---
title: HTML5
subtitle: STRAPLESS - BUILD
icon: fa-html5
---
{{#markdown}}
## HTML5 / CSS3
> "Code is poetry"
> [Wordpress.org](wordpress.org)
Regardless of backend technology used (whether its Azure, .NET, Sharepoint, Wordpress), the frontend is nearly always going to be composed of markup (HTML) and styling (CSS).
mark up = HTML5
styling = CSS3
---
HTML is also referred to as **markup**.
It's used to structure the content that appears on websites.
It does so in conjuction with CSS and JS to build the presentational part of modern websites.
Browsers on all devices and screen readers look to HTML to understand how to portray different information.
Through various tags (`
,
,
` etc.), HTML takes advantage of the informational hierchy inherent in the content we place on websites.
For example:
~~~html
The Site Title
This Site's Main Section Title
Sentence containing body text. h1-h5 need to nest in a numerically consistent way, but p's can be used anywhere within a wrapper
Sub-Section Title
Sub-section body text.
Sub-Section Title
Sub-section body text.
~~~
We'll get into content strategy later. For now, the main distinction to understand in our approach to building websites is the difference between **containers** and **content**.
Every HTML website contains content.
HTML tags used for content are referred to as _inline_ elements. They include:
- h1
- h2
- h3
- h4
- h5
- p
- ul
- ol
- blockquote
- img
- iframe (mostly used for embedding social media content)
HTML has evolved over the eons to become HTML5, which not only gives us to organize content into a logical
Thinking about the meaning of the content helps us understand how to portray it.
At the same time, it frees us from the need to apply further markup (add classes, nest deeper within divs, sections, or other containers).
In other words, so long as the content is entered semantically, it will naturally appear correctly.
Regardless of cosmetic visual differences, a design system
{{/markdown}}


We are committed to save 1000 doctors' lives over the next 10 years!
Do you know that one third of UK healthcare professionals suffer from mental health disorder? And over 400 doctors took their lives between 2011 to 2015?
Doctors are honorable profession, they work really hard and they save lives! 360 Kick is the community project that bring back the healthy and fulfilling lifestyle to UK healthcare professionals through martial arts and mindfulness practices!
This workshop is designed to help busy healthcare professionals to release stress, form loving relationship with the body and gain resilience through combination of Taekwondo and mindfulness practices.
It encourages the participants to look after their health and wellbeing first, so they can be fulfilled with their career and spark more joy when being of service for others!
Hannah is the owner of her business Xceptional Consultancy, that provides tax consultancy services to doctors. Despite her busy life, she has been living a healthy and active lifestyle for over 10 years.
She is a 2nd Dan Black Belt in Taekwondo and a registered British Taekwondo instructor. She started taekowndo in 2008 and she has committed to the path to black belt as it helped her to gain self confidence and find inner peace through the practice
She now creates this community project, 360 Kick, that aims to encourage doctors to participate in martial arts so help them release stress and they can help more people become healthier and happier!
Bhavna is a 'Heart Centred Mentor' who teaches meditation, Qigong and other mindfulness practices. Bhavna started meditation and mindfulness practice over 30 years ago. She became Reiki Master and teacher since 2007.
Her 'heart-centred' approach is about going to the core of your heart to heal all hidden wounds and uncover your true soul path. This helps you find the place of deep inner peace and allows you to embrace love and compassion in life.
Julie started practicing Taekwondo over 5 years ago and is a 2nd Dan black belt in WT Taekwondo. The martial art has helped her build her confidence, increase not only physical but mental strength and taught her self defense skills.
Julie thrives in helping others develop these benefits and loves to be apart of guiding others in their journey to achieving their desired, individual, goals through her passion.
Julie is now a registered and insured British Taekwondo instructor with a level 2 certificate in coaching Taekwondo.
360 Kick is the community project that brings back the
healthy and fulfilling lifestyle to UK healthcare professionals
through martial arts and mindfulness practices!
The Taekwondo for Self-Care Workshop is designed to help busy healthcare professionals to release stress, form a loving relationship with the body and gain resilience through combination of taekwondo and
mindfulness.
Ultimately, encouraging the participants
to look after their health and wellbeing first.
Friday, 1st March, at 17:00 – 18:30
The 52 Club - UCLH
Bonham Carter House
52 Gower Street
London
WC1E 6EB


Hi! I'd like people to try out this plugin I made which uses the HTML5 Notifications API to display received chat messages as notifications.
One bug which I haven't been able to fix yet is that the first message in the history will be displayed when the chat window is opened or the page is opened with an open chat window.
Code
var notifiedWithinLast30 = false;
BBLog.handle("add.plugin", {
id: "notify-chat",
name: "Chat Desktop Notifications",
init: function(instance) {
// Let's check if the browser supports notifications
if (!("Notification" in window)) {
console.log("This browser does not support desktop notification");
}


--- layout: default ---
{{ site.hero.hero_description }}
Covid-19 ALERT: Due to Covid-19, we are operating by Appointment Only until further notice.
Please call ahead to verify our Hours of Operation{% if site.contact.phone %} {{ site.contact.phone }}{% endif %}.
Due to NC Governor Mandate, we are requiring all customers to wear a face mask.
Revive Nails & Spa has taken the following steps to safeguard the safety of our staff and clients during this time:
| Monday | {{ site.monday }} |
| Tuesday | {{ site.tuesday }} |
| Wednesday & Thursday | {{ site.wednesday_thursday }} |
| Friday & Saturday | {{ site.friday_saturday }} |
| Sunday | {{ site.sunday }} |
{{ site.contact.address }}
We are Independent Family-Own Nail Salon locate in Greensboro, serving the Triad since 2018. We take pride in providing a Clean & Relaxing Salon where customers can come and de-stress from daily life.
{{ treatment.description }}


Enumerate the appropriate registry keys to determine what, if any, trusted documents exist on the host. It will also enumerate trusted locations.
Does not need Admin
def generate(self, obfuscate=False, obfuscationCommand=""):
# the PowerShell script itself, with the command to invoke
# for execution appended to the end. Scripts should output
# everything to the pipeline for proper parsing.
#
# the script should be stripped of comments, with a link to any
# original reference script included in the comments.
moduleSource = self.mainMenu.installPath + "/data/module_source/situational_awareness/host/Find-TrustedDocuments.ps1"
if obfuscate:
helpers.obfuscate_module(moduleSource=moduleSource, obfuscationCommand=obfuscationCommand)
moduleSource = moduleSource.replace("module_source", "obfuscated_module_source")
try:
f = open(moduleSource, 'r')
except:
print helpers.color("[!] Could not read module source path at: " + str(moduleSource))
return ""
moduleCode = f.read()
f.close()
script = moduleCode
scriptEnd = "Find-TrustedDocuments"
if obfuscate:
scriptEnd = helpers.obfuscate(self.mainMenu.installPath, psScript=scriptEnd, obfuscationCommand=obfuscationCommand)
script += scriptEnd
return script


Ghost in the Machine
About
I'm a programmer and musician who recently graduated with a PhD in Biomechanics from Cambridge University. Before that I studied mechanical engineering at Manchester University. This is my personal site where I occasionally write about things I find interesting.
You can find my LinkedIn profile here, my Google Scholar page here, and my GitHub page here.
The title of this website is from the book of the same name by Arthur Koestler.


Dashboard
Welcome ameen
Bangalore City
Settlement Report
| TRIP ID |
TERMINAL ID |
AMOUNT |
DATE |
STATUS |
| T130 |
J123 |
100 |
4-Dec-14 |
PENDING |
| T130 |
J123 |
100 |
4-Dec-14 |
PENDING |
| T130 |
J123 |
100 |
4-Dec-14 |
PENDING |
| T130 |
J123 |
100 |
4-Dec-14 |
PENDING |
| T130 |
J123 |
100 |
4-Dec-14 |
PENDING |
| T130 |
J123 |
100 |
4-Dec-14 |
SUCCESS |
| T130 |
J123 |
100 |
4-Dec-14 |
PENDING |
| T130 |
J123 |
100 |
4-Dec-14 |
SUCCESS |
| T130 |
J123 |
100 |
4-Dec-14 |
PENDING |
| T130 |
J123 |
100 |
4-Dec-14 |
SUCCESS |
| T123 |
J123 |
100 |
4-Dec-14 |
FAIL |
| T123 |
J123 |
100 |
4-Dec-14 |
FAIL |
| T123 |
J123 |
100 |
4-Dec-14 |
FAIL |
| T130 |
J123 |
100 |
4-Dec-14 |
PENDING |
| T130 |
J123 |
100 |
4-Dec-14 |
SUCCESS |
| T123 |
J123 |
100 |
4-Dec-14 |
FAIL |


{% extends 'base.html' %} {% block content %}
Don’t have an account? Register Now! it’s really simple and you can start enjoying all the benefits!


@* * Copyright 2019 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. *@ @import play.twirl.api.Html @import uk.gov.hmrc.play.views.html.helpers._ @import uk.gov.hmrc.feedbacksurveyfrontend.LocalTemplateRenderer @()(implicit request: Request[AnyRef], messages: play.api.i18n.Messages, templateRenderer: LocalTemplateRenderer) @main_template(title = Messages("generic.unauthorised.heading"), userLoggedIn = false){
@Messages("generic.unauthorised.reason_start")
@Messages("generic.unauthorised.reason_1")
@Messages("generic.unauthorised.reason_2")
}


3D object detection is an essential task in autonomous driving. Recent techniques excel with highly accurate detection rates, provided the 3D input data is obtained from precise but expensive LiDAR technology. Approaches based on cheaper monocular or stereo imagery data have, until now, resulted in drastically lower accuracies — a gap that is commonly attributed to poor image-based depth estimation. However, in this paper we argue that data representation (rather than its quality) accounts for the majority of the difference. Taking the inner workings of convolutional neural networks into consideration, we propose to convert image-based depth maps to pseudo-LiDAR representations — essentially mimicking LiDAR signal. With this representation we can apply different existing LiDAR-based detection algorithms. On the popular KITTI benchmark, our approach achieves impressive improvements over the existing state-of-the-art in image-based performance — raising the detection accuracy of objects within 30m range from the previous state-of-the-art of 22% to an unprecedented 74%. At the time of submission our algorithm holds the highest entry on the KITTI 3D object detection leaderboard for stereo image based approaches.
@article{wang2018pseudo, title={Pseudo-LiDAR from Visual Depth Estimation: Bridging the Gap in 3D Object Detection for Autonomous Driving}, author={Wang, Yan and Chao, Wei-Lun and Garg, Divyansh and Hariharan, Bharath and Campbell, Mark and Weinberger, Kilian Q.}, journal={arXiv preprint arXiv:1812.07179}, year={2018} }


nips nips2004 nips2004-9 nips2004-9-reference knowledge-graph by maker-knowledge-mining
Source: pdf
Author: Saharon Rosset, Ji Zhu, Hui Zou, Trevor J. Hastie
Abstract: We consider the situation in semi-supervised learning, where the “label sampling” mechanism stochastically depends on the true response (as well as potentially on the features). We suggest a method of moments for estimating this stochastic dependence using the unlabeled data. This is potentially useful for two distinct purposes: a. As an input to a supervised learning procedure which can be used to “de-bias” its results using labeled data only and b. As a potentially interesting learning task in itself. We present several examples to illustrate the practical usefulness of our method.
[1] Acton, F. (1990) Numerical Methods That Work. Washington: Math. Assoc. of America.
[2] Dennis, J. & Schnabel, R. (1983) Numerical Methods for Unconstrained Optimization and Nonlinear Equations. New Jersey: Prentice-Hall.
[3] Heckman, J.I. (1976). The common structure of statistical models for truncation, sample selection and limited dependent variables, and a simple estimator for such models. Annals of Economic and Social Measurement 5:475-492.
[4] Lee, W.S. & Liu, B. (2003). Learning with Positive and Unlabeled Examples Using Weighted Logistic Regression. ICML-03
[5] Lin, Y., Lee, Y. & Wahba, G. (2000). Support vector machines for classiﬁcation in nonstandard situations. Machine Learning, 46:191-202.
[6] Liu, B., Dai, Y., Li, X., Lee, W.S. & Yu, P. (2003). Building Text Classiﬁers Using Positive and Unlabeled Examples. Proceedings ICDM-03
[7] Little, R. & Rubin, D. (2002). Statistical Analysis with Missing Data, 2nd Ed. . Wiley & Sons.
[8] Nigam, K., McCallum , A., Thrun, S. & Mitchell, T. (2000) Text Classiﬁcation from Labeled and Unlabeled Documents using EM. Machine Learning 39(2/3):103-134.
[9] Pace, R.K. & Barry, R. (1997). Sparse Spatial Autoregressions. Stat. & Prob. Let., 33 291-297.
[10] Vardi, Y. (1985). Empirical Distributions in Selection Bias Models. Annals of Statistics, 13.
[11] Zou, H., Zhu, J. & Hastie, T. (2004). Automatic Bayes Carpentary in Semi-Supervised Classiﬁcation. Unpublished.


| DOSE: |
60 leaves |
oral |
Coleus |
(tea) |
Before I write this report, I would like to note that I have been taking around 1.2 g piracetam a day in conjunction with soya lecithin.
TIME: 0:00
I took a plant that I had, one of the most healthy as well, and said a quick prayer for it. I then proceeded to wash out all of the soil, and take just the plant with the roots to my sink. I de-stemmed the entire plant, even the leafs (took out the mid section) and left the roots and the loose leaf material. I was left with around 60 leaves and roots. I then put this into one coffee filter *just BARELY fit* and proceeded to brew an 8 cup load through.  The brew was now down to about 5 cups, and was about the color of coffee.
The nice thing about coleus tea: it is tasty. it is fragrant. it is calming just drinking it. Its got a very bold flavor to it, thats almost nutty and a little fruity. It would be enjoyable just having the flavor to brew. Its a great end of the day tea at any strength, however when I am drinking it for its effects rather than its flavor, I like to have it considerably strong.
time: 00:30
I am drinking the first cup now. I decided to go for a walk and listen to Self Titled - tortoise all the way through, since it had been a while. I was sitting on a bench at a local elementary school at about 11pm, smoking cigarettes, and just relaxing.  Thats almost always been the initial effect me. Everything begins to look like an impressionist painting of itself. I hear absinthe shares a similar effect on vision/light. Everything has a shimmering/reflection on the lake effect added to it, and becomes played out on itself just a tad.
I begin to gain a heavy appreciation for the street running next to the school. This street was made out of dirt and rocks (I live in a sort of small town sort of out in the middle of nowhere) until about 5 years ago, when they re-modeled the school. Few cars drive on this road. It was raining slightly a few hours before, and this causes the road to just shimmer in its virgin beauty. All of the lights loose brightness and gain something else, I cannot quite describe it, but god does coleus make me feel in love with everything....Coleus is truly the plant of love. Salvia always makes me feel taken back. Just bewildered by everything, and theres always a chance of having a horrible time with it, and ending up in a worse mood than before. Datura shares a few traits when smoked with coleus, but the negative side effects always overpower the positive ones. Coleus is subtle and beautiful, and truly speaks to the undercurrent of light and love that the entire world is pulsing with.
Time: 1:00
I realize that my ipod has died. It had probably been dead for around 15 minutes. I don't really care. I wasn't enjoying the music much anyways. I had been enjoying the feeling of the wet bench against my legs and the sound of the crickets. I begin to think about my life in general. The tea has made me removed from myself almost completely. Most times this amount of plant material is not this intense, if you could even call coleus intense in any respect. Maybe adding the root to the brew helped punch it up a little bit. My thoughts aren't flowing. They feel non existant. How long have I been sitting here? how do I feel about that house?
Time: 1:15
I finish my last cup of tea. I am the most blissful mood you can ever imagine. I fear I might just cum my pants walking home from the school (god forbid...) Nothing external or internal seems to matter right now though. I feel as if my core essence, my core being, my core light, has been stripped raw and is left in a plain of darkness illuminating the emptiness around me. It should be noted with that last statement that coleus is never intense, it just wraps its arms around everything.
I notice I am stumbling a bit, probably due to the fact that the strong brew has made me slightly sleepy. I begin to walk home. I feel strongly connected with the path that I took to get here. I can almost taste the heaviness of my footsteps leading to this place, and I can almost see them. Almost touch them. I must have been so uptight before. Why the worry? Should life be so intense that I have to leave a metaphysical skid mark wherever I go?
Of course not. No one should. Sometimes we get wrapped up in things and thats okay, but its important to never loose awareness of the undercurrent. There IS a force at work at here. It may not be intelligent, but it will be forever omnipresent. I feel extremely content with the realization that no matter what happens, love will prevail.
time: 1:30
This is the hour of our lives. All things flow. All things mesh. The coleus has not had too much effect on my body, other than making me slightly tired and sleepy. The mind is where it has hit. I cannot imagine how much work it would have taken to put everything where it is right now.  I wish I could appreciate just the random beauty that is going on around me, for just one second, in its entirety. I think if I did that, I just might die.
time: 1:45
I wake up on the couch.  Guess I dozed off. I realize that the coleus wanted me to sleep, and was trying to show me something in my dreams. I fall back asleep quickly.
Time: -----
I remember almost nothing from my dreams, although I do remember it being highly natural in feel. Maybe I was on a mountain - I think maybe? Oh well.
The night that I experienced left me with an incredibly glowing mood for at least a week afterwards. I'm not sure if it has ever completely faded. Something about this 'trip' brought me so much closer to my own existence. I do not think that it was the trip that changed me. I think that the trip was just a vehicle to bring me to something higher and more complete, and something that is not chemically induced, which I why I think that it never really faded, and I don't think it ever will.
-----------
All in all, this was a great way to say my good byes to a plant. Coleus has always loved me. Always held me. Always cared for me when I needed him most (yes, coleus is a male). I will probably always care for at least one coleus plant, seeing as he has given me so much love and warmth I could never repay him even if I grew him and propagated him amoung friends for the rest of my life.
And after all why should it all be about the plant. I should pay my respects more to the undercurrent of love than the method with which I discovered it. I hope that I never forget what I learned that night.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Reset
ISO:
0
Exposure:
0
Focus distance:
0
Contrast:
0
Saturation:
0
Sharpness:
0
Brightness:
0
Exposure Compensation:
0
Color Temperature:
wb_auto
Zoom:
0
iso
exposure
tune
center_focus_strong
ac_unit
zoom_in
flash_off
photo_camera
camera_front


---
layout: default
title: About
permalink: /about/
---
About
Jacmendt is one of the three Co-Founders of PIKOBYTES, a company which develops solutions for sensor driven and environmental data applications. Before that jacmendt worked for the Saxony State and University Library (SLUB)
in Dresden as a Project Manager and Web Developer focussed on mapping and infrastructure applications. Beside that he worked as Consultant in different areas of spatial it and software development. My main areas of interest are
Spatial Data, Web Development and Sensor Networks, with a strong focus on business development. When I'm not working I really like to play Basketball and do some Music.


This is a dummy page that loads your app so steal can get all the files.
If you built your app to depend on HTML in the page before DOMContent loaded or onload, you can add the HTML here, or you can change the build.js script to point to a better html file.


#David Hobbs
Currently learning the MEAN stack. Coming from a business background.
Currently
I am enrolled in Soft Stack Factory learning about javascript app development. I also work full time as a SEO specialist for business owners.
Education
University of Southern California - Marshall School of Business
Technical skills
- SEO
- HTML
- Internet Marketing
- Wordpress
- Javascript
- Node


Zip Download Mp3 Aaa Aaa Love Song Collection Album Download Home Portfolio Name
Aaa I4u Call Free Japan Mp3 Ape Music Download Japansmusic Com
Arashi Party Starters Single Mp3 Jpoplibs
Amazon Com Music Free Downloader Mp3 Songs Download Song For Free Appstore For Android
Joeboy Call Official Audio Youtube
Album Aaa Aaa 15th Anniversary All Time Best Thanx Aaa Lot Jpop Song Library
Single Arashi A Ra Shi Reborn Jpoplibs
Download Mp3 Walshy Fire X Mr Eazi X Kranium Call Me
Download Super Junior Red Carpet Aaa 2020 Mp3 Free And Mp4
Download Mp3 Falz Squander Remix Ft Niniola Kamo Mphela Naijastudio
Aaa I4u Call Mp3 Album Download
Home Zip Download Mp3 Aaa Aaa Dome Tour 2017 Way Of Glor Album Download Crafter Depot
Sound Chips Download And Play Your Own Mp3 Sounds Talking Products Ltd
Aaa I4u Call Mp3 Album Download
Waterproof Wireless Doorbell 200m Remote Home Mp3 Download Cordless Door Bell Ring Video Peephole 433mhz Wireless Doorbell Doorbell Aliexpress
Members Download Album Aaa Color A Life Zip Mp3 Crafter Depot
Album Aaa Aaa 15th Anniversary All Time Best Thanx Aaa Lot Jpop Song Library
Springfield Office Solutions Directory 2012 13 Part 2 By Core Creative Issuu
Free Download Among Us Vs Other Aaa Games Mp3 With 08 32
Kpop On Twitter Single Shinee 샤이니 Atlantis The 7th Album Repackage Atlantis 2021 Mp3 Shinee 샤이니 Atlantis Dontcallme Kpop Descargar Download Https T Co Yqhx3rvhn1 Https T Co Fxy48ar7jw
Amazon Com Ringtones Plus Mp3 Cutter And Ringtone Maker Appstore For Android
Sound Chips Download And Play Your Own Mp3 Sounds Talking Products Ltd
Old Programs Collection Well I On The Downeaster Alexa Mp3 Download
Download Mp3 Bella Shmurda Only You
Download Mp3 Teni Xxxl Video Lyrics Neolife International
Download Quran Tagalog Translation Mp3 Free For Android Quran Tagalog Translation Mp3 Apk Download Steprimo Com
Download Audio Brymo Take Me Back To November Mp3 Zaravibes
Download Call It What You Want Mp3 By Rum Gold Call It What You Want Lyrics Download Song Online
Sound Chips Download And Play Your Own Mp3 Sounds Talking Products Ltd
Mp3 Download Davido Sweet In The Middle Ft Naira Marley Zlatan Ibile Wurld Marley Mp3 Album


@* * Copyright 2021 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. *@ @import iht.constants.Constants._ @this( previousAnswers: filter.previous_answers, ihtMainTemplateRegistration: iht_main_template_registration ) @(estimatedValue: String, jointAssets: Boolean, titleStr: String)(implicit request:Request[_], messages: Messages) @ihtMainTemplateRegistration(title = Messages(titleStr), browserTitle = Some(Messages(titleStr)), isFullWidth = false, hasSignOut = false, hasTimeOut = false) { @if(estimatedValue == under325000) {
@Messages("page.iht.filter.useService.under325000.paragraph0")
@Messages("page.iht.filter.useService.paragraphFinal")
} @if(estimatedValue == between325000and1million) {@Messages("page.iht.filter.useService.between325000And1Million.paragraph0") @Html(Messages("page.iht.filter.useService.between325000And1Million.IHTFormlink")) @Messages("page.iht.filter.useService.between325000And1Million.paragraph1")
@Messages("page.iht.filter.useService.between325000And1Million.paragraph2")
@Messages("page.iht.filter.useService.between325000And1Million.section1.p1")
@Messages("page.iht.filter.useService.between325000And1Million.section1.p2")
@Messages("page.iht.filter.useService.between325000And1Million.section1.p3") @Html(Messages("page.iht.filter.useService.between325000And1Million.IHTFormlink1")) @Messages("page.iht.filter.useService.between325000And1Million.section1.p4")
@Messages("page.iht.filter.useService.between325000And1Million.section2.p1.start") @Html(Messages("page.iht.filter.useService.between325000And1Million.section2.p1.link")) @Messages("page.iht.filter.useService.between325000And1Million.section2.p1.end")
@Messages("page.iht.filter.useService.between325000And1Million.section2.p2") @Html(Messages("page.iht.filter.useService.between325000And1Million.IHTFormlink1"))
@Messages("page.iht.filter.useService.between325000And1Million.section3.p1.start") @Messages("page.iht.filter.useService.between325000And1Million.section3.p1.link") @Messages("page.iht.filter.useService.between325000And1Million.section3.p1.end") @Html(Messages("page.iht.filter.useService.between325000And1Million.IHTFormlink")) @Messages("page.iht.filter.useService.between325000And1Million.section3.p1.end2")
@Messages("page.iht.filter.useService.between325000And1Million.section4.p1")
@Messages("page.iht.filter.useService.between325000And1Million.section4.p2.start") @Messages("page.iht.filter.useService.between325000And1Million.section4.p2.link") @Messages("page.iht.filter.useService.between325000And1Million.section4.p2.end")
@Messages("page.iht.filter.useService.between325000And1Million.section4.p3")
} else {@Messages("page.iht.filter.useService.under325000.p1.a") @Messages("page.iht.filter.useService.under325000.p1.b") @Messages("page.iht.filter.useService.under325000.p1.c")
@Messages("page.iht.filter.useService.under325000.p2")


Press release
Skills Minister Matthew Hancock announces the appointment of Barbara Spicer as the interim Chief Executive of the Skills Funding Agency.
Skills Minister Matthew Hancock has today (20 November 2013) announced the appointment of Barbara Spicer as the interim Chief Executive of the Skills Funding Agency ( SFA ).
Barbara leaves her post as Chief Executive of Salford City Council. She will take up her role on Monday 25 November 2013, taking over from Kim Thorneywork who took up the post in May 2012 and is currently off due to ill health.
Skills Minister Matthew Hancock said:
I am delighted that Barbara Spicer has accepted the post of interim Chief Executive at the Skills Funding Agency .
Her wealth of knowledge and experience will be a valuable asset to the Agency, ensuring that quality and reform is driven forward in the sector.
I would also like to thank Kim Thorneywork for her commitment and hard work in the role and look forward to welcoming her back next year.
Barbara Spicer said:
I am delighted to have been asked to join the team at the agency. For me skills are a critical part of our economic policy and being part of a system that makes such an important contribution to our economic success will be both personally exciting and challenging.
I want to support the ambitious reform agenda and work with the sector to continue to focus directly on the current needs of employers, the skills that the UK will need in the future, and how we connect our individual learners to those needs.
I’m looking forward to working with the Minister, the Advisory Board and of course all of the team over coming months to ensure we have the most fit for purpose system to help our economy grow.
In the meantime I wish Kim Thorneywork all the very best for her recovery.
Barbara Spicer will take up the post on Monday 25 November 2013.
She leaves her post as the Chief Executive of Salford City Council and Chief Executive of Greater Manchester Police Authority. As Chief Executive of Salford City Council Barbara has responsibility for a budget in excess of £700 million and a workforce of around 10,000.
The government’s economic policy objective is to achieve ‘strong, sustainable and balanced growth that is more evenly shared across the country and between industries’. It set 4 ambitions in the ‘Plan for Growth’ , published at Budget 2011:
Work is underway across government to achieve these ambitions, including progress on more than 250 measures as part of the Growth Review. Developing an Industrial Strategy gives new impetus to this work by providing businesses, investors and the public with more clarity about the long-term direction in which the government wants the economy to travel.
Published: 20 November 2013


Module CoroniumGSClient
Coronium GS Client
- Copyright 2014 develephant
- License 2-clause BSD
- Author Chris Byerley
Functions
-
cancelGame ()
-
Cancel a
Game
in a waiting state. Useful when no games found.
You will revieve GameCancel when the game has been canceled.
Usage:
gs:cancelGame()
-
connect (connection_table)
-
Connect to a listening game server instance.
Parameters:
-
createGame (players_max, game_criteria)
-
Create a new game for other players to connect to.
You can only use this method after the ClientConnect client-side
event. Only call createGame OR joinGame once in each client, not both.
Parameters:
- players_max
int
The maximal amount players
needed to start this game.
- game_criteria
table
Special criteria for other players to find the game with.
This is useful for private, friend to friend, or matchmaking games. The game_criteria
table supports a 'tag' table key that will be matched up with the joinGame method.
This creates a way to direct clients to specific rooms. See also joinGame .
Usage:
function onClientConnect( event )
gs:createGame( 2 )
gs:createGame( 2, { tag = 'custom_str' } )
end
-
disconnect ()
-
Closes the client connection.
Usage:
gs:disconnect()
-
getData ()
-
Get current stored game data from server.
Returned as table via the GameData event.
Usage:
gs.events:on( "GameData", function( event )
gs.p( event.data.game_data )
end )
gs:getData()
-
getGameId ()
-
Get the client game id.
Returns:
string
The current game ID
Or
nil
No game id found.
Usage:
local game_id = gs:getGameId()
-
getPlayerHandle ()
-
Get the client players connection handle.
Returns:
string
The players handle.
Usage:
local player_handle = gs:getPlayerHandle()
-
getPlayerNum ()
-
Get the client player position.
Returns:
int
The player position.
Usage:
local player_num = gs:getPlayerNum()
-
getPlayersInfo ()
-
Get the game players info data table.
This method can only be called after the GameCreate
or GameJoin client-side event.
Returns:
table
A table of game players meta data.
Usage:
function onGameJoin( event )
local info_table = gs:getPlayersInfo()
for key, value in pairs( info_table ) do
p( value )
end
end
-
isConnected ()
-
Check if the client is connected to the server
Returns:
bool
The client connection state.
Usage:
local is_connected = gs:isConnected()
-
isGameRunning ()
-
Check if the game is running and socket connected.
Returns:
bool
The current state as boolean.
Usage:
local state = gs:isGameRunning()
-
joinGame (players_max, game_criteria)
-
Join a game that was created with the createGame method.
You can only use this method after the ClientConnect client-side event.
Only call createGame OR joinGame once in each client, but not both.
Parameters:
- players_max
int
Join a game with
players_max
players.
- game_criteria
table
Special criteria to find game by. This table
supports a 'tag' key which you can use to find specifically created games.
See also createGame .
Usage:
function onClientConnect( event )
gs:joinGame( 2 )
gs:joinGame( 2, { tag = 'custom_str' } )
end
-
new ([asGlobal=false])
-
Create a new game client instance.
Parameters:
- asGlobal
boolean
Automatically 'globalize' the module.
This includes the Pretty Printer 'p' method as well.
(default false)
Returns:
Client
The newly created client.
Usage:
local gs = require( 'gs.CoroniumGSClient' ):new()
-
p (tbl)
-
Pretty print table data.
Parameters:
- tbl
table
The table data to print.
Usage:
gs.p( some_table_data )
-
reconnect ([reconnect_delay=3000])
-
Create a fresh connection to the server. Useful after
a game has ended and you want to reconnect.
Parameters:
- reconnect_delay
int
Milliseconds delay before reconnecting.
(default 3000)
Usage:
gs:reconnect( 5000 )
-
send (data_tbl)
-
Send table data to the server.
Parameters:
- data_tbl
table
A table of data to send.
Usage:
gs:send( { move_done = 1 } )
Tables
-
connection_table
-
The connection table used for the connect method.
A key can be set on the server to help limit unwanted connections.
You must pass a matching key in the key parameter to
successfully pair the client to the server.
By enabling the ping parameter, you keep the client alive and connected.
This basically disables any client timeout settings on the server-side.
The handle parameter can be used as a username, player name, or any other
identifier. Additional starting data can be sent as a simple table in
the data parameter. You can retrieve this data with the
client:getPlayerData() method. See Client.
Fields:
- host
string The host address.
- port
int The host port.
(default 7173)
- handle
string String based identifier for the client.
(default server assigned)
- data
table A simple starting data table for the client.
(default nil)
- key
string The server pairing key.
(default 'abc')
- ping
bool The ping flag.
(default false)
Usage:
local conn_tbl =
{
host = 'ping.coronium.gs',
port = '7173',
handle = 'Chris',
data = { color = "blue", fun = "Yes!" },
key = 'abc',
ping = true
}
gs:connect( conn_tbl )
Game Events
You can listen for the following
Game events.
-
GameCancel
-
The game has been canceled. State reset.
Usage:
gs.events:on( "GameCancel", function( event )
print( "game canceled" )
end )
-
GameCreate
-
A game has been created. This event will only
be received by the client/player calling it.
Usage:
gs.events:on( "GameCreate", function( event )
print( event.data )
end )
-
GameData
-
Game data has been received.
Usage:
gs.events:on( "GameData", function( event )
p( event.data.game_data )
end )
-
GameDone
-
The game is finished. See the server-side call publishGameDone as well.
Usage:
gs.events:on( "GameDone", function( event )
print( event.data )
end )
-
GameJoin
-
A player has joined the game.
Usage:
gs.events:on( "GameJoin", function( event )
print( event.data )
end )
-
GameLeave
-
A player has left the game.
Usage:
gs.events:on( "GameLeave", function( event )
print( event.data )
end )
-
GameStart
-
The game has started. All players present.
Usage:
gs.events:on( "GameStart", function( event )
print( event.data )
end )
Client Events
You can listen for the following
Client events.
-
ClientClose
-
Client has closed.
Usage:
gs.events:on( "ClientClose", function( event )
print( "client closed" )
end )
-
ClientConnect
-
Client has connected to server.
Usage:
gs.events:on( "ClientConnect", function( event )
print( "client connected" )
end )
-
ClientData
-
Incoming Client data.
Usage:
gs.events:on( "ClientData", function( event )
print( event.data.some_table_key )
end )
-
ClientError
-
Client has thrown an error.
Usage:
gs.events:on( "ClientError", function( event )
print( "error: " .. event.data )
end )
-
ClientPing
-
Client has received a ping.
Usage:
gs.events:on( "ClientPing", function( event )
print( "timestamp: " .. event.data )
end )


Chapter 3
Recipes
1 - Extend the Text Classes of .display-* and Add Hover Effects with Hover.css
2 - Create Comment Sections using Media Objects
3 - Style Text Content with Bootstrap Typography Classes
4 - Customize the Blockquote Element with CSS
5 - Extend Blockquote Styles with Sass
6 - Align Text Around Images
7 - Wrap Text Around Rounded Images
8 - Style a Pricing Section using Bootstrap's Default Table Classes
9 - Style a Pricing Section by Customizing Bootstrap's Table Classes
About
(current)
Chapter 3, Recipe 1:
Extend the Text Classes of .display-* and Add Hover Effects with Hover.css
This webpage contains the recipes from the 3rd chapter of
Bootstrap 4 Cookbook
:
Author:
Ajdin Imsirovic
Technical Reviewer:
Zlatko Alomerovic
Publisher:
Packt Publishing


Example of how to integrate jQuery UI Datepicker into VisualSearch.js
Github
Try searching for
day
or
date
:


Please complete this form to login
Sample by Internet of LEGO
Base Grant Url:
User Continue URL:
Client IP:
Client MAC:
Access Point MAC:
Login Results:


Before Change
transformed.coord = np.dot(transformed.coord, rot_x)
transformed.coord = np.dot(transformed.coord, rot_y)
transformed.coord = np.dot(transformed.coord, rot_z)
if transformed.box is not None:
transformed.box = np.dot(transformed.box, rot_x)
transformed.box = np.dot(transformed.box, rot_y)
transformed.box = np.dot(transformed.box, rot_z)
return transformed
def rotate_centered(atoms, angles):
After Change
// Copy AtomArray(Stack) and apply rotations
// Note that the coordinates are treated as row vector
positions = coord(atoms).copy()
positions = np.dot(positions, rot_x)
positions = np.dot(positions, rot_y)
positions = np.dot(positions, rot_z)
//if positions.box is not None:
// positions.box = np.dot(positions.box, rot_x)


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.util.AbstractMap<K,V> java.util.HashMap<Symbol,Section> cetus.analysis.Section.MAP
public static class Section.MAP
Class MAP represents map from variables to their sections. For the convenience of implementation, we assign empty section for scalar variables.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class java.util.AbstractMap |
|---|
java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V> |
| Constructor Summary | |
|---|---|
Section.MAP()
Constructs an empty map. |
|
Section.MAP(Symbol var,
Section section)
Constructs a map with a pair of variable and section. |
| Method Summary | |
|---|---|
void |
clean()
Cleans up empty sections. |
java.lang.Object |
clone()
Returns a clone object. |
Section.MAP |
differenceFrom(Section.MAP other,
RangeDomain rd)
Performs difference operation between the two section maps with the specified range domain. |
Section.MAP |
differenceFrom2(Section.MAP other,
RangeDomain rd)
Performs conditional difference operation after adding unresolved bound relation from the current section map. |
Section.MAP |
intersectWith(Section.MAP other,
RangeDomain rd)
Performs intersection operation between the two section maps with the specified range domain. |
void |
print(java.lang.String str)
|
void |
print(java.lang.String str,
int verbosity)
|
void |
removeAffected(java.util.Collection<Symbol> vars)
Removes sections that contains the specified set of variables. |
void |
removeAffected(Symbol var)
Removes sections that contains the specified symbol. |
void |
removeSideAffected(Traversable tr)
Removes sections that are unsafe in the given traversable object due to function calls. |
java.lang.String |
toString()
|
Section.MAP |
unionWith(Section.MAP other,
RangeDomain rd)
Performs union operation between the two section maps with the specified range domain. |
| Methods inherited from class java.util.HashMap |
|---|
clear, containsKey, containsValue, entrySet, get, isEmpty, keySet, put, putAll, remove, size, values |
| Methods inherited from class java.util.AbstractMap |
|---|
equals, hashCode |
| Methods inherited from class java.lang.Object |
|---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface java.util.Map |
|---|
equals, hashCode |
| Constructor Detail |
|---|
public Section.MAP()
public Section.MAP(Symbol var, Section section)
var
- the key variable.section
- the section associated with the variable.| Method Detail |
|---|
public java.lang.Object clone()
clone
in class java.util.HashMap<Symbol,Section>
public void clean()
public Section.MAP intersectWith(Section.MAP other, RangeDomain rd)
other
- the other section map to be intersected with.rd
- the specified range domain.
public Section.MAP unionWith(Section.MAP other, RangeDomain rd)
other
- the other section map to be united with.rd
- the specified range domain.
public Section.MAP differenceFrom(Section.MAP other, RangeDomain rd)
other
- the other section map to be differenced from.rd
- the specified range domain.
public Section.MAP differenceFrom2(Section.MAP other, RangeDomain rd)
public void removeAffected(Symbol var)
public void removeAffected(java.util.Collection<Symbol> vars)
public void removeSideAffected(Traversable tr)
public void print(java.lang.String str)
public void print(java.lang.String str, int verbosity)
public java.lang.String toString()
toString
in class java.util.AbstractMap<Symbol,Section>
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


{% include 'header.html' %} Page not found Everything you need to Contact<EMAIL_ADDRESS>{% include 'footer.html' %}
Everything you need to Contact support@reponse.co


{% post_to_telegram 'Check out a review "{{object.title}}" of movie {{object.movie.title}}!' object post%}
{% post_to_facebook object "Facebook"%}
{% post_to_twitter 'Check out a review "{{object.title}}" of movie {{object.movie.title}}!' object "Twitter"%}
{% post_to_reddit 'Check out a review "{{object.title}}" of movie {{object.movie.title}}!' object "Redit" %}


We know exactly what [Dan] is going through. We also bought a cheap wireless doorbell and are plagued by the batteries running down. When that happens, the only way you know is when people start pounding on the door because you’re not answering the bell. Well no more for [Dan]. He built a backup system which monitors the voltage of the batteries on the chime unit.
You can see the small bit of protoboard he used to house the microcontroller and the UI. It’s an ATtiny13 along with a green LED and a single push button. The idea is to use the chip’s ADC to monitor the voltage level of the pair of batteries which power the chime. When it drops below 3V the green LED will come on.
First off, we wish these things would come with better power supply circuits. For instance, we just replaced the CR2032 in an Apple TV remote and measured the voltage at 2.7V. That remote and the chime both run from a 3V source. Can’t they be made to work down to 1.8V? But we digress.
In addition to monitoring voltage [Dan's] rig also counts the number of times the chime has rung. Every eight seconds it flashes the count in binary, unless he presses the red button to clear the count. This is shown in the video after the break. We guess he wants to know how many times this thing can be used before running the batteries down.
Seriously though, for a rarely used item like this how hard would it be to use ambient light harvesting to help save the batteries? Looking at some indoor solar harvesting numbers shows it might be impossible to only power this from PV, but what if there was a super-cap which would be topped off with a trickle from the panels but would still use the batteries when that runs down?
Recent comments


{% extends 'layout.html' %} {% block body %} {% from "includes/_formhelper.html" import render_field %}
Order ID:
Address:
Email:
What item did you order?


Created by James Robinson for Hamilton Re
SELECT Name, Date FROM atlantic
SELECT TOP 10 * FROM atlantic
SELECT [Maximum Wind] FROM atlantic
Used to compare values that are the same, numeric types only.
SELECT * FROM atlantic
WHERE time = 600
Used to Exclude values which are not the same, numeric types only.
SELECT * FROM atlantic
WHERE time <> 600
SELECT * FROM atlantic
WHERE time != 600
Used to select rows where the value in the named column is greater than the specified value
SELECT * FROM atlantic
WHERE latitude > 28
Used to select rows where the value in the named column is less than the specified value
SELECT * FROM atlantic
WHERE latitude < 28
Used to select rows where the value in the named column is greater than or equal to the specified value
SELECT * FROM atlantic
WHERE latitude >= 28
Used to select rows where the value in the named column is less than or equal to the specified value.
SELECT * FROM atlantic
WHERE latitude <= 28
Used to select rows where the value in the named column is BETWEEN the specified values.
SELECT * FROM atlantic
WHERE latitude BETWEEN 28 AND 30
Used to select rows where the value in the named column is one of those listed in brackets.
SELECT * FROM atlantic
WHERE latitude IN (28, 29, 30)
Used to select rows where the value in the named column is the special NULL value.
SELECT * FROM atlantic
WHERE Event IS NULL
Used to invert any other command.
SELECT * FROM atlantic
WHERE Event IS NOT NULL
SELECT * FROM atlantic
WHERE latitude NOT IN (28, 29, 30)
Used to select rows where the value in the named column matches the pattern provided. Normally capitals and lower case do not matter.
SELECT * FROM atlantic
WHERE name LIKE 'Harvey'
Matches when precisely 'HARVEY'.
SELECT * FROM atlantic
WHERE name LIKE 'Har%'
Matches when begins with 'HAR'.
SELECT * FROM atlantic
WHERE name LIKE '%vey'
Matches when ends with 'VEY'.
SELECT * FROM atlantic
WHERE name LIKE '%rve%'
Matches when contains 'RVE' anywhere.
SELECT * FROM atlantic
WHERE name LIKE '_ar%y'
Matches when 'ar' are the second and third letters and ends with a 'y'.
SELECT * FROM atlantic
WHERE name LIKE 'H_____'
Matches when the column begins with an 'H' and has precisely 6 letters.
Used to compound two commands together where both must be satisfied.
SELECT * FROM atlantic
WHERE Event IS NOT NULL AND Status LIKE 'HU'
Used to compound two commands together where either may be satisfied.
SELECT * FROM atlantic
WHERE Event IS NOT NULL OR Status LIKE 'HU'
Show the names, dates and times of all the pacific rows that have a maximum wind speed of 80.
SELECT Name, Date, Time FROM pacific
WHERE [Maximum Wind] = 80
Show all the columns of all the rows that represent atlantic hurricanes.
SELECT * FROM atlantic
WHERE Status LIKE 'HU'
Show the latitude and longitude of all the atlantic rows that did not occur at midnight.
SELECT Longitude, Latitude FROM atlantic
WHERE TIME != 0
Show the latitude and longitude of all the atlantic rows that were not a hurricane.
SELECT Latitude, Longitude FROM atlantic
WHERE Status NOT LIKE 'HU'
Show the first 10 names, dates and times of all the atlantic rows that have a maximum wind speed of 80 and a time of midday
SELECT TOP 10 Name, Date, Time FROM atlantic
WHERE [Maximum Wind] = 80 AND Time = 1200
Show the names, dates and times of all the atlantic rows that have a maximum wind speed between 75 and 125
SELECT Name, Date, Time FROM atlantic
WHERE [Maximum Wind] BETWEEN 75 AND 125
Show the date of all the atlantic rows that have a latitude greater than 30 or a longitude less than -100
SELECT Date FROM atlantic
WHERE latitude > 30 OR longitude < -100
Show the names of all Hurricanes whose names have exactly 3 letters in
SELECT Name FROM atlantic
WHERE Name LIKE '___' AND status LIKE 'HU'
Show all the first 100 atlantic rows with all columns where the name contains an 'e' and an 'i'
SELECT Name, Date, Time FROM atlantic
WHERE Name LIKE '%e%i%' OR Name LIKE '%i%e%'
Show all columns of all the atlantic rows that have a maximum wind speed of 80 or a latitude between 28 and 29 and a longitude between -98 and -99
SELECT * FROM atlantic
WHERE [Maximum Wind] = 80
OR (Latitude BETWEEN 28 AND 29 AND Longitude BETWEEN -99 AND -98)


Tell a non-tech friend a problem you got stuck on. What was the problem?
I was trying to make a block of code so that when certain circles were made either green, blue or invisble, the count for green, blue or invisible increased. To do this I needed my code to 'loop through' all of my circles checking if they were green, blue or invisible and updating the tally accordingly. I got stuck on the line of code that explains to the computer what to do if a circle was green, blue or invisible.
What problem solving techniques did you use?
I used the techniques of trying something (guess and check), reading through my materials, and asking my peers for help. It was through asking my peers for help that I was able to solve the problem. On reflection I recognised that I was probably over- thinking the problem and that I maybe just needed to follow the instructions and steps given to us more closely.
How did you feel throughout the process?
Slightly confused, frustrated and overwhelmed but also excited by the challenge and opportunity to learn.
What did you learn?
I learnt a lot more about 'for' statements and what you are instructing a computer to do in a 'for' statement. I also feel like I understand 'if' and 'else' statements better as well.
How confident do you feel using different problem solving techniques and processes?
- Pseudocode: Semi confident. I would really like to use this technique more and more as I grow my knowledge of and familiarity with JavaScript.
- Trying something: Very confident, especially when I can easily see the result of what I have tried.
- Rubber ducky method: I haven't tried this method/technique yet but I think that it will be a very helpful technique for me to use going forward.
- Reading error messages: Semi confident. I find these helpful if I understand what they are saying. Half of the time I find it difficult to understand what error messages are trying to convey.
- Console.logging: Not so confident. I have not quite got my head around console.log and exactly what the console is and where to locate it.
- Googling: Very confident. There is so much helpful information out there.
- Asking your peers for help: Very confident. The guys and girls at DevAcademy Auckland are awesome.
- Asking coaches for help: Semi confident. The coaches are super busy so I try to exhaust other ways of solving a problem before asking the coaches.
- Improving your process with reflection: Reasonably confident. This has been helpful in relation to certain problems. Other problems, even when solved, raise other questions so reflection can get frustrating if there are too many unanswered questions. Learning CSS has been a bit like this a we only had a limited time and I feel there is so much I have not yet mastered or even touched on in CSS.


Introduction to CSS
These tutorials teach you CSS.
Tutorial 1
To begin with tutorial 1
Tutorial 2
To begin with tutorial 2


Help:
You will need to input numbers into the boxes for each player.
1 for 1st Car, 2 for second and 3 for third and then click start and an alert will pop up with the person who won.
Restart button for reloading the page and having a go again.


Gelfand: Chunk 13 - Rational Expressions Quickie
February 21, 2017
Section 33 of Gelfand’s Algebra introduces the incredibly simple concept of Rational Expressions. These are in effect a super-set of polynomials, created by slightly relaxing the rules of what makes a polynomial a polynomial and allowing in division.
Did I say “incredibly simple”? How could I possibly be mistaken? Let’s take a step back for a second to bring something subtle to mind.
The Subtleties of Division
In coming back to all this algebra after my last two posts, a few fundamental misconceptions from my early maths history have been challenged. Amongst these was my mistaken belief that multiplication and division were two sides of the same coin in the same way that addition and subtraction actually are. What I’d failed to grasp was that whereas in the latter, a movement in position of terms was always possible in my simple world-view (it’s the Commutative Law, in it’s addition-form)
but the same could not be said for the former (the Commutative Law applies to multiplication but not division remember).
Therefore
but
In fact, if you write this in another way, using fractions, then the inequality becomes patently evident.I’ll possibly come back to all this as it seems an area rich in potential discoveries.
It’s nice to note that explicitly - division isn’t a flip side of multiplication.
But we can keep going. When we do add division, as we have by expanding things to take in rational expressions, there’s also the problem of zero.
A divide by zero basically blows up on us. Boom!Or it does until we get on to the concept of infinity which is another post, perhaps when I get back to Turing and Petzold.
With these in hand, we can now get back to the concept the post should be about: Rational Expressions.
Rational Expressions - Zero-Denominator-Disallowed
In his introduction to these, Gelfand basically points out the latter of the two realisations above - you can’t have a denominator in a rational expression which is zero, or is identically equal to zero ( is his example). Given the above notes, it’s clear why this is the case.
The Actual Work of Rational Expressions
Usually I’d now embark on a long-winded explanation of how I eventually grokked this concept, and the tricks arising, but it was in fact (aside from the above notes) very simple given I’d already got my head round much fo these concepts when confronting Fractions (see Chunk 4 - Fractions Ugh). What you do need to do however is hop over there. You might recall I jumped ahead at that point to discuss the various rules of working with fractionsAdding, multiplying, etc. and I jumped ahead to this section of Gelfand.
Some Form of Concluding Aside
There’s not much else to put in this chunk I don’t think. So to give things some kind of conclusion, I wanted to share a bit of knowledge I extrapolated from Petzold which I’m currently reading in parallel to writing this. Here it comes:
Rational expressions are so called, because they are ratios of something else, i.e. fractions of polynomials.
I’m guessing here, but based on the fact that the “rational numbers” are ones which can be expressed as ratios of two integers (e.g. ). I think this isn’t too much of a leap.


You will be taken to home page of WiFi Password Recovery Pro. Please click the below link to visit directly.
Our Enterprise Edition of WiFi Password Recovery Pro


Add Data
Step 1:
Select fasta file
Region:
V4
ITS1
Step 2:
Experiment details (for a new experiment a new ID will be created)
Type:
name
http
doi
mgrast
dryad
sra
pubmed
qiita
Value:
<<<Example>>>
name: Temporal and regional variability in the skin microbiome of humpback whales along the Western Antarctic Peninsula
sra: PRJNA395930
pumbed: 29269499
Doi: 10.1128/AEM.02574-17
Step 3:
Add annotations
Is A
contamination
common (>50% of samples)
high freq (>1% of reads)
other
Differential presence
All
High
Low
Step 4:
Description (additional free text describing the data. This step is optional)
Back to main page


class Bundler::Resolver
Constants
- ALL
Attributes
errors[R]
iteration_counter[R]
iteration_rate[R]
started_at[R]
Public Class Methods
new(index, source_requirements, base)
click to toggle source
# File lib/bundler/resolver.rb, line 137 def initialize(index, source_requirements, base) @errors = {} @base = base @index = index @deps_for = {} @missing_gems = Hash.new(0) @source_requirements = source_requirements @iteration_counter = 0 @started_at = Time.now end
resolve(requirements, index, source_requirements = {}, base = [])
click to toggle source
Figures out the best possible configuration of gems that satisfies the list of passed dependencies and any child dependencies without causing any gem activation errors.
Parameters¶ ↑
- *dependencies<Gem::Dependency>
-
The list of dependencies to resolve
Returns¶ ↑
- <GemBundle>,nil
-
If the list of dependencies can be resolved, a
collection of gemspecs is returned. Otherwise, nil is returned.
# File lib/bundler/resolver.rb, line 125 def self.resolve(requirements, index, source_requirements = {}, base = []) Bundler.ui.info "Resolving dependencies...", false base = SpecSet.new(base) unless base.is_a?(SpecSet) resolver = new(index, source_requirements, base) result = resolver.start(requirements) Bundler.ui.info "" # new line now that dots are done SpecSet.new(result) rescue => e Bundler.ui.info "" # new line before the error raise e end
Public Instance Methods
activate_gem(reqs, activated, requirement, current)
click to toggle source
# File lib/bundler/resolver.rb, line 206 def activate_gem(reqs, activated, requirement, current) requirement.required_by.replace current.required_by requirement.required_by << current activated[requirement.name] = requirement debug { " Activating: #{requirement.name} (#{requirement.version})" } debug { requirement.required_by.map { |d| " * #{d.name} (#{d.requirement})" }.join("\n") } dependencies = requirement.activate_platform(current.__platform) debug { " Dependencies"} dependencies.each do |dep| next if dep.type == :development dep.required_by.replace(current.required_by) dep.required_by << current @gems_size[dep] ||= gems_size(dep) reqs << dep end end
clean_req(req)
click to toggle source
# File lib/bundler/resolver.rb, line 413 def clean_req(req) if req.to_s.include?(">= 0") req.to_s.gsub(/ \(.*?\)$/, '') else req.to_s.gsub(/\, (runtime|development)\)$/, ')') end end
clear_search_cache()
click to toggle source
# File lib/bundler/resolver.rb, line 380 def clear_search_cache @deps_for = {} end
debug() { || ... }
click to toggle source
# File lib/bundler/resolver.rb, line 148 def debug if ENV['DEBUG_RESOLVER'] debug_info = yield debug_info = debug_info.inspect unless debug_info.is_a?(String) $stderr.puts debug_info end end
dependency_tree(m, requirements)
click to toggle source
# File lib/bundler/resolver.rb, line 440 def dependency_tree(m, requirements) requirements.each_with_index do |i, j| m << " " << (" " * j) m << "#{clean_req(i)}" m << " depends on\n" end m << " " << (" " * requirements.size) end
error_message()
click to toggle source
# File lib/bundler/resolver.rb, line 449 def error_message errors.inject("") do |o, (conflict, (origin, requirement))| # origin is the SpecSet of specs from the Gemfile that is conflicted with if origin o << %Q{Bundler could not find compatible versions for gem "#{origin.name}":\n} o << " In Gemfile:\n" required_by = requirement.required_by o << gem_message(requirement, required_by) # If the origin is "bundler", the conflict is us if origin.name == "bundler" o << " Current Bundler version:\n" other_bundler_required = !requirement.requirement.satisfied_by?(origin.version) # If the origin is a LockfileParser, it does not respond_to :required_by elsif !origin.respond_to?(:required_by) || !(origin.required_by.first) o << " In snapshot (Gemfile.lock):\n" end required_by = origin.required_by[0..-2] o << gem_message(origin, required_by) # If the bundle wants a newer bundler than the running bundler, explain if origin.name == "bundler" && other_bundler_required o << "This Gemfile requires a different version of Bundler.\n" o << "Perhaps you need to update Bundler by running `gem install bundler`?" end # origin is nil if the required gem and version cannot be found in any of # the specified sources else # if the gem cannot be found because of a version conflict between lockfile and gemfile, # print a useful error that suggests running `bundle update`, which may fix things # # @base is a SpecSet of the gems in the lockfile # conflict is the name of the gem that could not be found if locked = @base[conflict].first o << "Bundler could not find compatible versions for gem #{conflict.inspect}:\n" o << " In snapshot (Gemfile.lock):\n" o << " #{clean_req(locked)}\n\n" o << " In Gemfile:\n" required_by = requirement.required_by o << gem_message(requirement, required_by) o << "Running `bundle update` will rebuild your snapshot from scratch, using only\n" o << "the gems in your Gemfile, which may resolve the conflict.\n" # the rest of the time, the gem cannot be found because it does not exist in the known sources else if requirement.required_by.first o << "Could not find gem '#{clean_req(requirement)}', which is required by " o << "gem '#{clean_req(requirement.required_by.first)}', in any of the sources." else o << "Could not find gem '#{clean_req(requirement)} in any of the sources\n" end end end o end end
find_conflict_state(conflict, states)
click to toggle source
# File lib/bundler/resolver.rb, line 198 def find_conflict_state(conflict, states) return unless conflict until states.empty? do state = states.pop return state if conflict.name == state.name end end
find_state(current, states)
click to toggle source
# File lib/bundler/resolver.rb, line 188 def find_state(current, states) states.detect { |i| current && current.name == i.name } end
gem_message(requirement, required_by=[])
click to toggle source
For a given conflicted requirement, print out what exactly went wrong
# File lib/bundler/resolver.rb, line 426 def gem_message(requirement, required_by=[]) m = "" # A requirement that is required by itself is actually in the Gemfile, and does # not "depend on" itself if requirement.required_by.first && requirement.required_by.first.name != requirement.name dependency_tree(m, required_by) m << "#{clean_req(requirement)}\n" else m << " #{clean_req(requirement)}\n" end m << "\n" end
gems_size(dep)
click to toggle source
# File lib/bundler/resolver.rb, line 376 def gems_size(dep) search(dep).size end
handle_conflict(current, states, existing=nil)
click to toggle source
# File lib/bundler/resolver.rb, line 173 def handle_conflict(current, states, existing=nil) until current.nil? && existing.nil? current_state = find_state(current, states) existing_state = find_state(existing, states) return current if state_any?(current_state) return existing if state_any?(existing_state) existing = existing.required_by.last if existing current = current.required_by.last if current end end
other_possible?(conflict, states)
click to toggle source
# File lib/bundler/resolver.rb, line 192 def other_possible?(conflict, states) return unless conflict state = states.detect { |i| i.name == conflict.name } state && state.possibles.any? end
resolve(reqs, activated)
click to toggle source
# File lib/bundler/resolver.rb, line 254 def resolve(reqs, activated) states = [] depth = 0 conflicts = Set.new until reqs.empty? indicate_progress debug { print "\e[2J\e[f" ; "==== Iterating ====\n\n" } reqs = reqs.sort_by do |a| [ activated[a.name] ? 0 : 1, a.requirement.prerelease? ? 0 : 1, @errors[a.name] ? 0 : 1, activated[a.name] ? 0 : @gems_size[a] ] end debug { "Activated:\n" + activated.values.map {|a| " #{a}" }.join("\n") } debug { "Requirements:\n" + reqs.map {|r| " #{r}"}.join("\n") } current = reqs.shift $stderr.puts "#{' ' * depth}#{current}" if ENV['DEBUG_RESOLVER_TREE'] debug { "Attempting:\n #{current}"} existing = activated[current.name] if existing || current.name == 'bundler' # Force the current if current.name == 'bundler' && !existing existing = search(DepProxy.new(Gem::Dependency.new('bundler', VERSION), Gem::Platform::RUBY)).first raise GemNotFound, %Q{Bundler could not find gem "bundler" (#{VERSION})} unless existing existing.required_by << existing activated['bundler'] = existing end if current.requirement.satisfied_by?(existing.version) debug { " * [SUCCESS] Already activated" } @errors.delete(existing.name) dependencies = existing.activate_platform(current.__platform) reqs.concat dependencies dependencies.each do |dep| next if dep.type == :development @gems_size[dep] ||= gems_size(dep) end depth += 1 next else debug { " * [FAIL] Already activated" } @errors[existing.name] = [existing, current] conflicts << current.name parent = current.required_by.last if existing.respond_to?(:required_by) parent = handle_conflict(current, states, existing.required_by[-2]) unless other_possible?(parent, states) else parent = handle_conflict(current, states) unless other_possible?(parent, states) end if parent.nil? && !conflicts.empty? parent = states.reverse.detect { |i| conflicts.include?(i.name) && state_any?(i)} end raise version_conflict if parent.nil? || parent.name == 'bundler' reqs, activated, depth, conflicts = resolve_conflict(parent, states) end else matching_versions = search(current) # If we found no versions that match the current requirement if matching_versions.empty? # If this is a top-level Gemfile requirement if current.required_by.empty? if base = @base[current.name] and !base.empty? version = base.first.version message = "You have requested:\n" " #{current.name} #{current.requirement}\n\n" "The bundle currently has #{current.name} locked at #{version}.\n" "Try running `bundle update #{current.name}`" elsif current.source name = current.name versions = @source_requirements[name][name].map { |s| s.version } message = "Could not find gem '#{current}' in #{current.source}.\n" if versions.any? message << "Source contains '#{name}' at: #{versions.join(', ')}" else message << "Source does not contain any versions of '#{current}'" end else message = "Could not find gem '#{current}' " if @index.source_types.include?(Bundler::Source::Rubygems) message << "in any of the gem sources listed in your Gemfile." else message << "in the gems available on this machine." end end raise GemNotFound, message # This is not a top-level Gemfile requirement else @errors[current.name] = [nil, current] parent = handle_conflict(current, states) reqs, activated, depth = resolve_conflict(parent, states) next end end state = State.new(reqs.dup, activated.dup, current, matching_versions, depth, conflicts) states << state requirement = state.possibles.pop activate_gem(reqs, activated, requirement, current) end end successify(activated) end
resolve_conflict(current, states)
click to toggle source
# File lib/bundler/resolver.rb, line 237 def resolve_conflict(current, states) # Find the state where the conflict has occurred state = find_conflict_state(current, states) debug { " -> Going to: #{current.name} state" } if current # Resolve the conflicts by rewinding the state # when the conflicted gem was activated reqs, activated, depth, conflicts = resolve_for_conflict(state) # Keep the state around if it still has other possibilities states << state unless state.possibles.empty? clear_search_cache return reqs, activated, depth, conflicts end
resolve_for_conflict(state)
click to toggle source
# File lib/bundler/resolver.rb, line 226 def resolve_for_conflict(state) raise version_conflict if state.nil? || state.possibles.empty? reqs, activated, depth, conflicts = state.reqs.dup, state.activated.dup, state.depth, state.conflicts.dup requirement = state.requirement possible = state.possibles.pop activate_gem(reqs, activated, possible, requirement) return reqs, activated, depth, conflicts end
search(dep)
click to toggle source
# File lib/bundler/resolver.rb, line 384 def search(dep) if base = @base[dep.name] and base.any? reqs = [dep.requirement.as_list, base.first.version.to_s].flatten.compact d = Gem::Dependency.new(base.first.name, *reqs) else d = dep.dep end @deps_for[d.hash] ||= begin index = @source_requirements[d.name] || @index results = index.search(d, @base[d.name]) if results.any? version = results.first.version nested = [[]] results.each do |spec| if spec.version != version nested << [] version = spec.version end nested.last << spec end deps = nested.map{|a| SpecGroup.new(a) }.select{|sg| sg.for?(dep.__platform) } else deps = [] end end end
start(reqs)
click to toggle source
# File lib/bundler/resolver.rb, line 160 def start(reqs) activated = {} @gems_size = Hash[reqs.map { |r| [r, gems_size(r)] }] resolve(reqs, activated) end
state_any?(state)
click to toggle source
# File lib/bundler/resolver.rb, line 184 def state_any?(state) state && state.possibles.any? end
successify(activated)
click to toggle source
# File lib/bundler/resolver.rb, line 156 def successify(activated) activated.values.map { |s| s.to_specs }.flatten.compact end
version_conflict()
click to toggle source
# File lib/bundler/resolver.rb, line 421 def version_conflict VersionConflict.new(errors.keys, error_message) end
Private Instance Methods
indicate_progress()
click to toggle source
Indicates progress by writing a ‘.’ every #iteration_rate time which is approximately every second. #iteration_rate is calculated in the first second of resolve running.
# File lib/bundler/resolver.rb, line 520 def indicate_progress @iteration_counter += 1 if iteration_rate.nil? if ((Time.now - started_at) % 3600).round >= 1 @iteration_rate = iteration_counter end else if ((iteration_counter % iteration_rate) == 0) Bundler.ui.info ".", false end end end


Services like AWS and Azure is providing notification frameworks. If you use any of those then you may not need to worry about the table structures. All you need is to trigger the notification from different point of your application.
For example when a user likes something from another user, then your application can trigger a send event (can be sent to thousands of users with a single API call). The API will store and forward the record to the destination user or users.
The implementation depends on the design, where it will go in future and the environment you will implement in. You might choose a twitter-esque implementation, a SAN-backed system of XML, Relational Databases, Hadoop and tons of others.
Paradoxically, it’s rather challenging to come up with a real world example of an observer pattern that doesn’t involve computing, because nearly every technological service or device we use on a daily basis implements an observer pattern in one way or another. App notifications on your phone or email alerts from your favorite shopping site are just two of the extremely common observer pattern scenarios many of us frequently experience.
One slightly less technical real world example of the observer pattern is when you sign up for a magazine subscription, such as WIRED (one of my personal favorites). While computers are obviously handling all the logic behind-the-scenes, the observer pattern is still being used in this case. You (an observer) have subscribed to a magazine provider. When the provider publishes a new issue (the data), you receive it in the mail a few days later. Critically, this is not a one-to-one relationship, in which the provider is sending the notification (magazine) only to you. Instead, they’re able to send it to thousands of people all at once, just as most digital services do when you sign-up for their email newsletter.
Howard Administration Building 2800 University Blvd N Jacksonville, FL 32211


It was a great honour to be elected President this year. With a passion for student rights and representation I am keen to develop the peer and professional support systems of the UQDSA. On behalf of my brilliant leadership team, I am confident that the 2015 year will see the UQDSA continue to grow and enrich the university experience of our members.
My name is Wenny and I will be your VP this year. I enjoy challenging myself and organizing various activities. I look forward to meeting all of you!
As Vice President External I'll be liasing with those from the world outside the dental school. I am very keen to represent the dental school and help make this year the best one yet!
With a dash of nerd and a spligen of control freak I am quite excited to be putting myself to good use as 2015 treasurer for UQDSA. As someone whose thrown themselves into most of what the past associations have had to offer, I'm really passionate to be involved in a little bit of everything this year's committee brings. At the same time I'll make sure I keep our crazy spenders in check and endeavour to continue the great work of my predecessors so that UQDSA is in awesome financial health for future generations.
This year I am really excited to be part of UQDSA. Good organisation is the key to successful events and in this regard I will endevour to be the locksmith.
Having been involved in UQDSA sports for many years, I am proud to be convening them. Nothing makes me happier than our team crushing the opponents while having fun and making memories.
I am excited to stand as Social Officer this year. As an avid costumer and designer, I will up the ante on pagentry this year. Having studied Certificate IV in digital art and hospitality will help me in this goal while my easy-going personality will aid in opening inter-year communication.
I have taken on the role as UQDSA Media Office to be more involved in the social aspect of dental school. Being a self proclaimed social media queen I am passionate about raising awareness about UQDSA on a platform which will reach the student body.


--- layout: page title: About me subtitle: "Or: why you'd want to go on a date with me" css: "/css/aboutme.css" ---
Previously worked as a software engineer (Google, IBM, Tagged.com) and web developer in tiny startups (Wish.com, MakeupBee.com, glittr.com, jauntr.com).
Currently a graduate student in Bioinformatics at the University of British Columbia (supervised by Jenny Bryan), with a Bachelor of Computer Science from the University of Waterloo, Canada. My thesis project involves developing computational methods to automatically analyze droplet digital PCR data.
I enjoy writing useful & reusable software tools to help others — check out my projects. I have also recently become an avid and active R useR.
I'm addicted to soccer, travelling at any given (and non-given) moment, getting into philosophical debates, and meeting new people :)
The projects page is a nice place to see some of my work, but you can also view my (somewhat outdated) resume.
Grew up in Tel Aviv, Israel, moved to Toronto, Canada during my teens, worked in San Francisco after undergrad, crossed the border again to Vancouver, Canada for grad school, spent many months in other countries backpacking.
I also have an old blog, mostly from high school and some old travelling trips, that I'll leave here just because I want to have a reference to it somewhere.
I do a lot of consulting work in R and Shiny, so feel free to get in touch if you want to discuss potential work.
You can find my email and social media links at the bottom of every page. As I said, I love meeting new people so don't hesitate to send a message!
If you want to show your support for anything I do, here's a PayPal Donate button that you may click :)
I spend a lot of time on my packages and I make sure they're high quality.
I try to always respond to questions or bug reports about my packages immediately.
I spent a considerable amount of time developing the Beautiful Jekyll theme and I've gone through dozens of iterations on the instructions in order to ensure they are as simple as possible.
Each of my technical blog posts and tutorials take many many hours because I really try to make everything as clear and useful as possible.
I also get emails daily asking for some advice or help (mostly with R or Shiny), and I make an honest attempt at responding to everyone.
Since I am devoting so much of myself to all this, it would be amazing if some of my hard work translated into some compensation so that I—a student in the most expensive city in Canada—will be able to shop at fancy Whole Foods once in a while :)
If you do click the Donate button, I thank you immensely!


This project provides components which fill the gap between HST-2 framework and Spring Framework.
See Features page for all the features.
For example, HST-2 supports Repository Dynamic ResourceBundle stored in the repository. However, Spring Framework Internationalization Support with MessageSource is unaware of how to retrieve HST-2 Dynamic ResourceBundles using HST-2 API. Therefore, this project provides HstRepositoryResourceBundleMessageSource to be able to use HST-2 Dyanmic ResourceBundles as well as the default Java ResourceBundles provided by Spring Framework.
Also, this project supports a HandlerExceptionResolver which can handle HST page not found exception to forward the request to the specified HST 'page-not-found' sitemap item path.
Whenever there's any gap found between HST-2 Framework and Spring Framework, this project will keep providing proper solutions to make seamless integration between two.
Please see Release Notes.


{% load crispy_forms_tags %} {% load staticfiles i18n %}
Your current details are shown below:
If you have errors you can Update Application Update Profile
Print The application