# You can create your own chatbot here. # Lines beginning with # are ignored. # Lines beginning with @ are patterns to be matched # Lines beginning with % are responses, randomly picked. # You can use any repeated capital letter in patterns. # The first pattern that matches is used as the reply. @Hi @Hello %How do you do. Please state your problem. %Hi. What seems to be your problem? @XXXXX computer @XXXXX computer YYYYY @XXXXX AI @XXXXX AI YYYYY @XXXXX artificial intelligence @XXXXX artificial intelligence YYYYY %Do computers worry you? %Why do you mention computers? %What do you think computers have to do with your problem? %Don't you think computers can help people? %What about AIs worries you? %What do you think about AIs? @I want XXXXX @I need XXXXX %What would it mean to you if you got XXXXX? %Why do you want XXXXX? %Suppose you got XXXXX soon? %What if you never got XXXXX? %What would getting XXXXX mean to you? %What does wanting XXXXX have to do with this discussion? @I am sad XXXXX @I am unhappy XXXXX @I am depressed XXXXX @I am sick XXXXX %I am sorry to hear that you are not feeling great. %Do you think that coming here will help? @I believe XXXXX I YYYYY %Do you really think so? %But you are not sure you YYYYY. %Do you really doubt you YYYYY? @You are XXXXX %What makes you think I am XXXXX? %Does it please you to believe I am XXXXX? %Do you sometimes wish you were XXXXX? %Perhaps you would like to be XXXXX. @I XXXXX you YYYYY %Perhaps in your fantasies we XXXXX each other. %Do you wish to XXXXX me? %You seem to need to XXXXX me. %Do you XXXXX anyone else? @XXXXX you YYYYY me ZZZZZ %Why do you think I YYYYY you? %You like to think I YYYYY you - don't you? %What makes you think I YYYYY you? %Really, I YYYYY you? %Do you wish to believe I YYYYY you? %Suppose I did YYYYY you - what would that mean? %Does someone else believe I YYYYY you? @I think XXXXX @I feel XXXXX %Is there a reason you feel XXXXX? %Can you explain why you think XXXXX? @I am XXXXX %Can you explain what made you XXXXX? %Is it because you are XXXXX that you came to me? %How long have you been XXXXX? %Do you believe it is normal to be XXXXX? %Do you enjoy being XXXXX?  %Let me wait until you've calmed down. %You seem angry - is something bothering you? @Yes @Yes XXXXX @Yes, XXXXX %You seem to be quite positive. %You are sure. %I see. %I understand. @No @No XXXXX @No, XXXXX %Are you saying no just to be negative? %You are being a bit negative. %Why not? %Why not? @Because XXXXX %Is that the real reason? %Don't any other reasons come to mind? %Does that reason seem to explain anything else? %What other reasons might there be? @ %I'm not sure I understand what you mean. %Please go on. %What does that suggest to you? %Do you feel strongly about discussing such things? %Can you elaborate on that?
(Default rules from
Charles Hayden
)
Reply


 is for the weak. The age of <blink> is upon us.

<blink>
brownies yep


[gecode-users] About posting Boolean expression
Christian Schulte
cschulte at kth.se
Mon Oct 19 17:10:21 CEST 2009
Nope, MwG is correct on that respect. "x && imp(y,z)" is a Boolean
expression, whereas "a[j] == i+1" is a relation (constraint). Posting a
Boolean expression yields a Boolean variable, posting a relation does not.
Please check the definition of expressions and relations in MwG.
Cheers
Christian
--
Christian Schulte, www.ict.kth.se/~cschulte/
From: Yong [mailto:yong.huang.2777 at student.uu.se]
Sent: Monday, October 19, 2009 4:56 PM
To: Christian Schulte
Cc: users at gecode.org
Subject: Re: [gecode-users] About posting Boolean expression
Hi Christian,
Thanks for your prompt reply.
The code I wrote was following the example from Section 6.2 Boolean
expressions and relations of <<Modeling with Gecode>>(for Gecode3.1.0). The
original example is:
"
For example, the Boolean expression x && imp(y,z) (to be read as x ? (y ?
z)) for Boolean variables x, y, and z is posted by:
BoolVar b=post(home, x && imp(y,z));
"
So, is it my inaccurate understanding of this example or the example itself
is not expressed in an accurate way?
Yong
Christian Schulte wrote:
Write instead:
BoolVar tmp =post(*this, ~(a[j]==(i+1)),ICL_DEF);
What you did is posting the constraint that (a[j] == (i+1)) (and hence the
return type of post is void as the compiler tells you). What you apparently
wanted to do is to post a reified constraint which you get with ~ (and hence
the return type is BoolVar).
Cheers
Christian
--
Christian Schulte, www.ict.kth.se/~cschulte/
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of Yong
Sent: Monday, October 19, 2009 3:26 PM
To: users at gecode.org
Subject: [gecode-users] About posting Boolean expression
Hi group,
A question about posting Boolean expression here. Any hint will be
appreciated!
My compiler will give "cannot convert from 'void' to 'Gecode::BoolVar'"
error on below code:
BoolVar tmp =post(*this,(a[j]==(i+1)),ICL_DEF);
Yong
ps: I'm using Gecode3.2.0 + VC++ 2008 Express Edition
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ps.uni-sb.de/pipermail/users/attachments/20091019/63b7b627/attachment.htm>
More information about the gecode-users
mailing list


|
AceTime
2.3.0
Date and time classes for Arduino that support timezones from the TZ Database.
|
A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC, but not always. More...
#include <TimeOffset.h>
Public Member Functions | |
| TimeOffset () | |
| Constructor. More... | |
| int16_t | toMinutes () const |
| Return the time offset as minutes. | |
| int32_t | toSeconds () const |
| Return the time offset as seconds. | |
| void | toHourMinute (int8_t &hour, int8_t &minute) const |
| Extract hour and minute representation of the offset. More... | |
| void | toHourMinuteSecond (int8_t &hour, int8_t &minute, int8_t &second) const |
| Extract hour, minute, second from the offset. More... | |
| bool | isZero () const |
| Returns true if offset is 00:00. More... | |
| bool | isError () const |
| Return true if this TimeOffset represents an error. | |
| void | printTo (Print &printer) const |
| Print the human readable string, including a "-" or "+" prefix, in the form of "+/-hh:mm" or "+/-hh:mm:ss". More... | |
| TimeOffset (const TimeOffset &)=default | |
| TimeOffset & | operator= (const TimeOffset &)=default |
Static Public Member Functions | |
| static TimeOffset | forHours (int8_t hours) |
| Create TimeOffset with the corresponding hour offset. More... | |
| static TimeOffset | forHourMinute (int8_t hour, int8_t minute) |
| Create TimeOffset from (hour, minute) offset. More... | |
| static TimeOffset | forHourMinuteSecond (int8_t hour, int8_t minute, int8_t second) |
| Create a TimeOffset fro (hour, minute, second) offset. More... | |
| static TimeOffset | forMinutes (int16_t minutes) |
| Create TimeOffset from minutes from 00:00. | |
| static TimeOffset | forSeconds (int32_t seconds) |
| Create TimeOffset from seconds from 00:00. | |
| static TimeOffset | forOffsetString (const char *offsetString) |
| Create from an offset string (e.g. More... | |
| static TimeOffset | forOffsetStringChainable (const char *&offsetString) |
| Variant of forOffsetString() that updates the string pointer to the next unprocessed character. More... | |
| static TimeOffset | forError () |
| Return an error indicator. | |
Friends | |
| bool | operator== (const TimeOffset &a, const TimeOffset &b) |
| void | time_offset_mutation::incrementHour (TimeOffset &offset) |
| void | time_offset_mutation::increment15Minutes (TimeOffset &offset) |
A thin wrapper that represents a time offset from a reference point, usually 00:00 at UTC, but not always.
Use one of the static factory methods to create an instance. For example, each of the following creates a TimeOffset of -08:00:
You can use the default constructor to create a +00:00 TimeOffset:
The current implementation has a resolution of 1-minute (using an internal int16_t type). The previous implementation (< v0.7) had a resolution of 15-minutes (using an internal int8_t type) because that was sufficient to handle all current timezones for years >= 2018 (determined by looking at https://en.wikipedia.org/wiki/List_of_UTC_time_offsets, and the TZ Database zonefiles itself through the tzcompiler.py script). However, 15-minute resolution is not sufficient to handle a handful of timezones in the past (years 2000 to 2011 or so). So I changed the implementation to use 2 bytes to handle 1-minute resolution.
This class does NOT know about the TZ Database (aka Olson database) https://en.wikipedia.org/wiki/Tz_database. That functionality is implemented in the TimeZone class.
Definition at line 56 of file TimeOffset.h.
|
inlineexplicit |
|
inlinestatic |
Create TimeOffset from (hour, minute) offset.
If the offset is negative, then the negative sign must be added to both the hour and minute components. This allows a negative offset of less than -01:00 to be created. For example, -07:30 is created by 'forHourMinute(-7, -30)' (not 'forHourMinute(-7, 30), and -00:15 is created by 'forHourMinute(0, -15)'.
Definition at line 74 of file TimeOffset.h.
|
inlinestatic |
Create a TimeOffset fro (hour, minute, second) offset.
If the offset is is negative, the negative sign must be added to all fields. For example, -01:02:03 is created by forHourMinuteSecond(-1, -2, -3)
.
Definition at line 84 of file TimeOffset.h.
|
inlinestatic |
Create TimeOffset with the corresponding hour offset.
For example, -08:00 is 'forHours(-8)'.
Definition at line 62 of file TimeOffset.h.
|
static |
Create from an offset string (e.g.
"-07:00", "+01:00", "-02:15:33"). Intended mostly for testing purposes. Returns TimeOffset::forError() if a parsing error occurs.
NOTE: Error checking is not robust, and can be corrupted easily by a misformatted string, or a string with an invalid number of characters. This is intended only for debugging purposes, not for production quality.
Definition at line 38 of file TimeOffset.cpp.
|
static |
Variant of forOffsetString() that updates the string pointer to the next unprocessed character.
The resulting pointer can be passed to another forDateStringInternal() method to chain the parsing.
This method assumes that the offsetString is sufficiently long. Returns TimeOffset::forError() if a parsing error occurs.
Definition at line 48 of file TimeOffset.cpp.
|
inline |
Returns true if offset is 00:00.
If this represents a time zone, then isZero means that it is UTC. If this represents a DST delta offset, then isZero means that the time zone is in standard time.
Definition at line 162 of file TimeOffset.h.
| void ace_time::TimeOffset::printTo | ( | Print & | printer | ) | const |
Print the human readable string, including a "-" or "+" prefix, in the form of "+/-hh:mm" or "+/-hh:mm:ss".
If the 'second' field is 0, then only the hour and minute fields are printed (e.g. "-08:00"), instead of all three fields (e.g. "+08:15:20").
Definition at line 15 of file TimeOffset.cpp.
|
inline |
Extract hour and minute representation of the offset.
This the inverse of 'forHourMinute()'. If the TimeOffset is negative, then both the hour and minute components will contain the negative sign.
Definition at line 138 of file TimeOffset.h.
|
inline |
Extract hour, minute, second from the offset.
Truncation is performed towards zero, so if the offset seconds is negative, each of the hour, minute, second fields will be negative.
Definition at line 149 of file TimeOffset.h.


Understanding of Iteration, Batch and Epoch
Contents
In this post, the clear definitions of iteration, batch and epoch will be covered.
Concepts
-
Iteration
One iteration means a batch of samples will flow from the input layer to the output through hidden layers, once. -
Batch
A batch is a set of samples inserted into the network in each iteration. The model’s internal parameters will be updated after the whole batch of samples are processed. -
Mini-Batch
Since sometimes the batch size is very big, it costs much to calculate all of them in each iteration. Therefore we can use mini-batch, which can be regarded as a subset of a batch, as the input of one iteration step. -
Epoch
One epoch means the whole set of training samples are processed once. In another word, $$ epoch = batchSize * totalIterations $$
What is the gradient descent?
The whole deep learning process can be summarized as two procedures, the forward propagation and the backward propagation. In the forward pass, we calculate the prediction of input sample and compare to the ground-truth label to get a cost. Then in the backward one, we use this cost to update the parameters like weights and biases, with the help of Gradient Descent Methods.
As talked above, there are three normal methods with respect to the batch size.
- BGD: Batch Gradient Descent, a batch equals the whole training set.
- SGD: Stochastic Gradient Descent, batch size = 1.
- MBGD: Mini-Batch Gradient Descent, 1 < batch size < size-of-training-set.
Reference
Author Ivan
LastMod 2019-06-24


Features
Docs
Github
Select component
Languages
Contact
About us
Version 1.3.0
Name:
Email:
Reason:
Comment:
Cancel
Submit


Some button
Send custom event
Test a feature flag
Sensitive text!
Sensitive attributes!
Send an exception


|
ActiveTcl User Guide
|
||
Tcl_SaveResult, Tcl_RestoreResult, Tcl_DiscardResult - save and restore an interpreter's result
#include <tcl.h>
Tcl_SaveResult(interp, statePtr)
Tcl_RestoreResult(interp, statePtr)
Tcl_DiscardResult(statePtr)
These routines allows a C procedure to take a snapshot of the current interpreter result so that it can be restored after a call to Tcl_Eval or some other routine that modifies the interpreter result. These routines are passed a pointer to a structure that is used to store enough information to restore the interpreter result state. This structure can be allocated on the stack of the calling procedure. These routines do not save the state of any error information in the interpreter (e.g. the errorCode or errorInfo variables).
Tcl_SaveResult moves the string and object results of interp into the location specified by statePtr. Tcl_SaveResult clears the result for interp and leaves the result in its normal empty initialized state.
Tcl_RestoreResult moves the string and object results from statePtr back into interp. Any result or error that was already in the interpreter will be cleared. The statePtr is left in an uninitialized state and cannot be used until another call to Tcl_SaveResult.
Tcl_DiscardResult releases the saved interpreter state stored at statePtr. The state structure is left in an uninitialized state and cannot be used until another call to Tcl_SaveResult.
Once Tcl_SaveResult is called to save the interpreter result, either Tcl_RestoreResult or Tcl_DiscardResult must be called to properly clean up the memory associated with the saved state.
Copyright © 1997 by Sun Microsystems, Inc. Copyright © 1995-1997 Roger E. Critchlow Jr.


Original author: David Banas<EMAIL_ADDRESS>Original date: December 11, 2016
Copyright (c) 2016 David Banas; all rights reserved World wide.
This iPython notebook explores the topic of modeling DFE behavior when optimizing equalization.
It draws upon the pybert Python package. You will need this package installed, in order to run/modify this notebook.
When optimizing high speed serial communication link equalization, it is important to include the effects of the decision feedback equalizer (DFE), when calculating the cost function of the equalization algorithm, as not doing so might result in a gross underutilization of this very powerful component and a resultant non-optimum eye. However, it is often not feasible to allow the DFE to fully adapt and process the sample data stream, at every iteration of the optimization algorithm, due to modeling performance limitations. That is, the DFE model often simply takes too long to run, to be included in an algorithmic loop, which runs an appreciable number of times.
As a result, several "tricks" for modeling the DFE behavior with less computational overhead have been tried and published in the literature. Here, we assess one such trick: pulse response zero forcing. We first explain the technical details of this approach to DFE modeling and then test its practical usefulness, by attempting to use it in a real link equalization optimization exercise, evaluating the results.
The idea behind pulse response zero forcing follows from the observation that the DFE tries to bring the system pulse response to zero, at every clock instant after the cursor, up to a maximum number, N, which is equal to the number of taps in the DFE filter. The code, below, along with its associated figures, illustrate this.
Simulation/Model Notes:
%matplotlib inline
from matplotlib import pyplot as plt
from numpy import array
from time import sleep
from pybert import pybert
myPyBERT = pybert.PyBERT(run_simulation=False)
myPyBERT.ctle_mode_tune = 'Passive'
myPyBERT._btn_opt_rx_fired()
while(myPyBERT.rx_opt_thread.isAlive()):
sleep(0.1)
print "Settings:"
print "\tUse DFE:", myPyBERT.use_dfe_tune
print "\t# of DFE taps:", pybert.gNtaps
print "Results:"
print "\tCTLE Magnitude:", myPyBERT.peak_mag_tune, "dB"
print "\tRelative Optimization:", myPyBERT.rel_opt
t = myPyBERT.t
t_ns = t * 1.e9
pulse_resp_ideal = myPyBERT.plotdata['ctle_out_h_tune']
clocks_tune = myPyBERT.plotdata['clocks_tune']
plt.plot(t_ns[:len(pulse_resp_ideal)], pulse_resp_ideal)
plt.plot(t_ns[:len(clocks_tune)], clocks_tune)
plt.title('System Pulse Response After Optimization - Perfect DFE assumed.')
plt.ylabel('Pulse Response (V)')
plt.xlabel('Time (ns)')
plt.axis(xmin=0.5, xmax=1.5)
The plot, above, shows the assumed, or ideal, system pulse response after Rx optimization, $\hat{p}(t)$, along with the estimated sample clock instants. The reported final optimization metric (i.e. - "Relative Optimization") is simply taken as the negative of the cost function used during optimization. And that cost function is defined as:
$$ cost = \sum_{n \neq 0}{abs[\hat{p}(nT)]} - \hat{p}(0) $$where T is the clock period and n is the clock instant index, with index "0" referring to the main lobe.
Essentially, we are defining cost as ISI minus the main lobe height.
Note that, for the first 5 post-cursor clocking instants, the system pulse response has been assumed zero, due to the action of an ideal DFE. This is the pulse response zero forcing assumption.
Let's see how our eye looks, using the "optimum" CTLE peak magnitude found, above...
from numpy import linspace
from pybert.pybert_util import calc_eye
self = myPyBERT # In order to avoid changing "self" to "myPyBERT" in many places, below.
self._btn_save_eq_fired()
self.gain = 0.5 # DFE correction gain.
self.decision_scaler = 0.4 # Approx. pulse response magnitude, above.
pybert.my_run_simulation(self, initial_run=True, update_plots=False)
# The code, below, is taken from 'pybert_cntrl.py'.
# I'm recreating this functionality, here, instead of just letting 'myPyBERT' do the job, for two reasons:
# 1. The eye generation is one of the slower parts of the code, and many eyes are generated;
# we're only interested in one of those, here.
# 2. There is the potential for graphics back-end conflict, between myPyBERT and this notebook,
# to occur, if I call upon the graphics-related functionality of myPyBERT, here.
ui = self.ui
samps_per_ui = self.nspui
eye_uis = self.eye_uis
num_ui = self.nui
clock_times = self.clock_times
ignore_until = (num_ui - eye_uis) * ui
width = 2 * samps_per_ui
xs = linspace(-ui * 1.e12, ui * 1.e12, width)
height = 100
i = 0
while(clock_times[i] <= ignore_until):
i += 1
assert i < len(clock_times), "ERROR: Insufficient coverage in 'clock_times' vector."
y_max = 1.1 * max(abs(array(self.dfe_out)))
eye_dfe = calc_eye(ui, samps_per_ui, height, self.dfe_out, y_max, clock_times[i:])
plt.imshow(eye_dfe, extent=[-ui * 1.e9, ui * 1.e9, -y_max, y_max], aspect='auto')
plt.xlabel('Time (ns)')
plt.ylabel('Eye (V)')
plt.title('Eye at Slicer Input - Perfect DFE assumed, during optimization.')
Okay, looks pretty good. Note that the eye, above, was generated after letting the actual DFE adapt normally. The "Perfect DFE assumed." in the plot title refers only to the optimization of the CTLE peaking magnitude.
Let's make sure the DFE fully adapted...
i = 1
for item in array(myPyBERT.adaptation).transpose():
plt.plot(item, label='tap_{}'.format(i))
i += 1
plt.legend(loc='upper left')
plt.title('DFE Adaptation - Perfect DFE assumed, during optimization.')
plt.ylabel('Coefficient Value')
plt.xlabel('Time')
It certainly appears that the DFE has adapted to a stable state.
Let's check the pulse response of this stable, adapted system against our ideal assumption, above...
# Calculate and plot the pulse response of fully adapted PyBERT instance.
# We assume everything up to the DFE is LTI.
# Therefore, we take, as the input to the DFE, the system pulse response up to that point.
from numpy import concatenate, convolve, repeat
from pybert.dfe import DFE
self = myPyBERT
nspui = self.nspui
delta_t = self.delta_t * 1.e-12
alpha = self.alpha
ui = self.ui
n_taps = self.n_taps
gain = 0. # Kills adaptation.
n_ave = self.n_ave
decision_scaler = self.decision_scaler
n_lock_ave = self.n_lock_ave
rel_lock_tol = self.rel_lock_tol
lock_sustain = self.lock_sustain
bandwidth = self.sum_bw * 1.e9
rel_thresh = self.thresh
mod_type = self.mod_type[0]
# We instantiate a pre-adapted, static DFE, as follows:
# - Pass '0' for the second parameter (adaptation gain); this kills adaptation.
# - Load the tap weights, after instantiation, with those of the adapted DFE, above.
dfe = DFE( n_taps, gain, delta_t, alpha, ui, nspui, decision_scaler, mod_type,
n_ave=n_ave, n_lock_ave=n_lock_ave, rel_lock_tol=rel_lock_tol,
lock_sustain=lock_sustain, bandwidth=bandwidth, ideal=self.sum_ideal)
dfe.tap_weights = self.adaptation[-1] # In Python, "-1" given as an array index returns the last element.
dfe_in = self.ctle_out_p.copy() # System pulse response, up to DFE input.
(dfe_out, tap_weights, ui_ests, clocks, lockeds, clock_times, bits_out) = dfe.run(t[:len(dfe_in)], dfe_in)
plt.plot(t_ns[:len(dfe_out)], dfe_out, label='Actual')
plt.plot(t_ns[:len(pulse_resp_ideal[nspui:])], pulse_resp_ideal[nspui:], label='Ideal')
plt.legend(loc='upper right')
plt.axis(xmin=0.5, xmax=1.5)
plt.title('Actual vs. Ideal Pulse Response')
plt.xlabel('Time (ns)')
plt.ylabel('p(t) (V)')
The plot, above, illustrates an interesting property of DFEs: they oscillate, when their inputs are too close to zero! And, unfortunately, this prevents us from testing our perfect DFE assumption, using the pulse response. However, there's always the step response...
We can derive the step response required, in order to produce the perfect DFE pulse response, above, as follows:
\begin{align} \hat{p}(t) & = \hat{s}(t) - \hat{s}(t - T) \\ \hat{p}(nT) & = \hat{s}(nT) - \hat{s}((n - 1)T) = 0 , \; n > 0 \\ \end{align}or
$$\hat{s}(nT) = \hat{s}((n - 1)T) , \; n > 0$$where:
We can easily construct such a step response, starting with our actual post-CTLE system step response, as follows:
from numpy import where
s_hat = myPyBERT.ctle_out_s.copy()
idx = where(myPyBERT.ctle_out_p == max(myPyBERT.ctle_out_p))[0][0]
idx += 2 * nspui # There's a 1 UI delay in the pulse response calculated by PyBERT.
while(idx < len(s_hat)):
s_hat[idx - nspui/2:] -= s_hat[idx] - s_hat[idx - nspui]
idx += nspui
plt.plot(t_ns[:len(myPyBERT.ctle_out_s)], myPyBERT.ctle_out_s, label='Actual')
plt.plot(t_ns[:len(s_hat)], s_hat, label='Ideal')
plt.title('Actual System Step Response vs. As Corrected by Perfect DFE')
plt.xlabel('Time (ns)')
plt.ylabel('s(t) (V)')
plt.legend(loc='upper left')
And, now, we can compare this ideal step response with our actual step response, by sending the step response of our system, up to the DFE input, through the fully adapted DFE...
# Calculate and plot the step response of fully adapted PyBERT instance.
# We assume everything up to the DFE is LTI.
# Therefore, we take, as the input to the DFE, the system step response up to that point.
# We instantiate a pre-adapted, static DFE, as follows:
# - Pass '0' for the second parameter (adaptation gain); this kills adaptation.
# - Load the tap weights, after instantiation, with those of the adapted DFE, above.
dfe = DFE( n_taps, gain, delta_t, alpha, ui, nspui, decision_scaler, mod_type,
n_ave=n_ave, n_lock_ave=n_lock_ave, rel_lock_tol=rel_lock_tol,
lock_sustain=lock_sustain, bandwidth=bandwidth, ideal=self.sum_ideal)
dfe.tap_weights = self.adaptation[-1]
dfe_in = self.ctle_out_s.copy() # System step response, up to DFE input.
dfe_in -= 0.5 * max(dfe_in) # Make it d.c. balanced.
dfe_in *= 3. # Provide just enough scaling to avoid DFE oscillation.
ref = s_hat.copy() # Reference waveform is arbitrarily scaled and offset,
ref *= 2.9 # in order to match "front porch" and first positive
ref -= 0.38 # sample values.
(dfe_out, tap_weights, ui_ests, clocks, lockeds, clock_times, bits_out) = dfe.run(t[:len(dfe_in)], dfe_in)
plt.plot(t_ns[:len(dfe_out)], dfe_out, label='Actual')
plt.plot(t_ns[:len(ref)], ref, label='Ideal')
plt.axis(xmin=0.5)
plt.title('Actual vs. Ideal Step Response')
plt.xlabel('Time (ns)')
plt.ylabel('s(t) (V)')
plt.legend(loc='lower right')
Hmm, not a very good match. Let's calculate the pulse response implied by this new step response, and compare back to our ideal pulse response...
from numpy import pad
p_test = dfe_out - pad(dfe_out[:-nspui], (nspui,0), 'constant', constant_values=(0,0))
plt.plot(t_ns[:len(p_test)], p_test, label='Actual')
plt.plot(t_ns[:len(pulse_resp_ideal)], pulse_resp_ideal * 3., label='Ideal')
plt.axis(xmin=0.5, xmax=1.2)
plt.legend(loc='lower right')
plt.title('Actual vs. Ideal Pulse Response')
plt.xlabel('Time (ns)')
plt.ylabel('p(t) (V)')
So, our zero forcing approach to including the DFE behavior in link optimization is not perfect. But, how does it compare to the results we get, when we optimize Rx equalization assuming no DFE?
myPyBERT.use_dfe_tune = False
myPyBERT._btn_opt_rx_fired()
while(myPyBERT.rx_opt_thread.isAlive()):
sleep(0.1)
print "Results:"
print "\tCTLE Magnitude:", myPyBERT.peak_mag_tune, "dB"
print "\tRelative Optimization:", myPyBERT.rel_opt
pulse_resp_nodfe = myPyBERT.plotdata['ctle_out_h_tune']
clocks_tune = myPyBERT.plotdata['clocks_tune']
plt.plot(t_ns[:len(pulse_resp_nodfe)], pulse_resp_nodfe)
plt.plot(t_ns[:len(clocks_tune)], clocks_tune)
plt.title('System Pulse Response After Optimization - No DFE assumed, during optimization.')
plt.ylabel('Pulse Response (V)')
plt.xlabel('Time (ns)')
plt.axis(xmin=0.5, xmax=1.2)
The optimum CTLE peaking magnitude found is much larger than in the previous case (14 dB vs. 2.8 dB), while the reported Relative Optimization is less than half (0.13 vs. 0.28)!
Let's see what the new eye looks like...
self._btn_save_eq_fired()
self.use_dfe = True # It gets turned off, by the above step.
pybert.my_run_simulation(self, initial_run=True, update_plots=False)
ui = self.ui
samps_per_ui = self.nspui
eye_uis = self.eye_uis
num_ui = self.nui
clock_times = self.clock_times
ignore_until = (num_ui - eye_uis) * ui
width = 2 * samps_per_ui
xs = linspace(-ui * 1.e12, ui * 1.e12, width)
height = 100
i = 0
while(clock_times[i] <= ignore_until):
i += 1
assert i < len(clock_times), "ERROR: Insufficient coverage in 'clock_times' vector."
y_max = 1.1 * max(abs(array(self.dfe_out)))
eye_nodfe = calc_eye(ui, samps_per_ui, height, self.dfe_out, y_max, clock_times[i:])
plt.set_cmap('jet')
plt.imshow(eye_nodfe, extent=[-ui * 1.e9, ui * 1.e9, -y_max, y_max], aspect='auto')
plt.xlabel('Time (ns)')
plt.ylabel('Eye (V)')
plt.title('Eye at Slicer Input - No DFE assumed.')
The inner eye height is significantly diminished, in this case (approx. 300mV vs. 500 mV, previously).
But, what about the DFE, this time?
i = 1
for item in array(myPyBERT.adaptation).transpose():
plt.plot(item, label='tap_{}'.format(i))
i += 1
plt.legend(loc='upper left')
plt.title('DFE Adaptation - No DFE assumed, during optimization.')
plt.ylabel('Coefficient Value')
plt.xlabel('Time')
As we might have suspected, the DFE is hardly being used, in this case. This is not really a surprise, as we optimized the Rx equalization under the assumption that no DFE was present. And, as is evidenced by the diminished inner eye height, we have paid a price for ignoring the DFE contribution to overall link equalization, during optimization. It would appear that, despite its imperfections, the zero forcing approach to including DFE behavior in the Rx equalization optimization process definitely yields superior results than simply ignoring the DFE, during optimizatioon.


Grand Master Schule:
Anyone wishing to become an Elven Knight must have achieved at least level 20 and passed the Elven Knight test.
Your level is satisfactory, but you haven't passed the test. Speak with Master Sorius in the Town of Gludio. Pass his test and bring me the Elven Knight Brooch as evidence.


Old Stormie's gone that good old man,
wey hey, Storm-along!
Old Stormie's gone, that good old man,
aye, aye, Mister Storm-along!
They dug his grave with a silver spade,
wey hey, Storm-along!
His shroud of finest silk was made,
aye, aye, Mister Storm-along!
They lowered him with a golden chain,
wey hey, Storm-along!
Their eyes all dim with more than rain,
aye, aye, Mister Storm-along!
An able sailor, bold and true,
wey hey, Storm-along!
A good old skipper to his crew,
aye, aye, Mister Storm-along!
He's moored at last, and furled his sail,
wey hey, Storm-along!
No danger now from wreck or gale,
aye, aye, Mister Storm-along!
Old Stormy has heard an angel call,
wey hey, Storm-along!
So sing his dirge now, one and all,
aye, aye, Mister Storm-along!


Have you ever thought to yourself one of the following:
- "God, I wish I had more space!"
- "I wonder how much a planet costs?"
- "I wish I ruled my own planet."
If so, you have come to the right place. Welcome to WGP.
We Got Planets
Image credit: Miyem Supriyati


ZENTROPA A film review by Mark R. Leeper Copyright 1992 Mark R. Leeper
Capsule review: A weird and hypnotic film, but ultimately a disappointment. The viewer is apparently hypnotized and regressed to be a German-American in Germany shortly after WWII. He becomes a train conductor pulled into the conflict of the Americans against the anti-American resistance. Rating: high 0 (-4 to +4).
You are being hypnotized and regressed to an earlier existence. The hypnotist puts you to sleep and makes you live the life of an American of German descent who went to Germany a few months after World War II ended to become a sleeping car conductor.  But this is only the beginning. You are about to be drawn into an intrigue that pits the Americans occupying Germany against werewolves--the secret German resistance against the occupation.
ZENTROPA is a complex and confusing film, very heavy on style. Sometimes it is dense with ideas, sometimes totally incomprehensible. It is filmed mostly in black and white with selective use of color. Some scenes are all black and white, some are all color, some have only the foreground in color. Sometimes just one object will be in color like in a Nuprin ad. The black-and-white photography is usually crisp and sharp, with some amazing images. One of the best is a train speeding through a tunnel seen from a few feet ahead with the smoke forming a streaming "hair-do" over the top of the train.
ZENTROPA (original title: EUROPA) is Danish director Lars Van Triers's strange look at Germany after war. Parts of the world seem as if they could never have been. The Zentropa Railroad is a world out of BRAZIL crossed with Kafka in which the individual is beaten into submission by the system. In the film's one obvious joke, our main character has just had to pay for his uniform--which nevertheless belongs to the company--and several other expenses he must pay in order to start work on the railroad. "I now understand German unemployment," he says. "Nobody can afford to work."
Ultimately ZENTROPA is a muddled thriller that only partly makes sense. The viewer is never certain if the historical detail has any validity or is being made up from the whole cloth. There are certainly moments of tension, but more of confusion. It won the Jury Prize at the Cannes Film festival of 1991, but lost out to BARTON FINK for the Golden Palm, at which Van Trier reportedly was extremely indignant. Stylistically it is an achievement, but the viewer will have to decide if it is really is an entertainment experience. For me it had all the elements to work but a few logical questions left unanswered. For that I rate it a high 0 on the -4 to +4 scale.
Mark R. Leeper att!mtgzy!leeper<EMAIL_ADDRESS>Copyright 1992 Mark R. Leeper .
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Gateway
BOT
25-Nov-18 09:36 PM
[dscrdeql] <SwimedDragon> Would be awsome if he's out of EQLI to sell
[dscrdeql] <c2k> i would guess the guy got smart. realized some big things are happening and price will be much higher very soon
[dscrdeql] <Jellysmash> Maybe they finally saw common sense and removed it
[dscrdeql] <c2k> just a few small orders left under 100sats and its off ot the races
[dscrdeql] <blackstone1> Good day everyone
[dscrdeql] <SwimedDragon> I think that the disable of rain will be a good thing in the end
[dscrdeql] <SwimedDragon> If this is all the EQLI on sale then it's not hard to go up
[dscrdeql] <c2k> when you thin kabout who holds this coin...the 3 founders hold the bulk...admin and moderators and helpers prob hold a bunch...then some other random rain holders and thats prob it.
[dscrdeql] <c2k> so if a few people get interested in this project and all the good news thats coming out then it will take off
[dscrdeql] <Jonathan-Admin> Howdy folks - yup I agree @SwimedDragon , for now the rain will weed out the ppl that just randomly show up for rain


|
LSDK 17.09-update-103017 Open Issues |
||||
|
ID |
Description |
Disposition |
Opened In |
Workarounds |
|
QLINUX-8362 |
There is call trace after running the "poweroff" command on kernel 4.4 and 4.9. |
Open |
LSDK 17.09-update-103017 |
|
|
QUBOOT-3475 |
Secure boot is not supported on LS1012A r2.0. |
Open |
LSDK 17.09-update-103017 |
|
|
QLINUX6961/QLINUX-8422 |
PPFE does not work after ping if the packet size is larger than the 5000 when testing jumbo frame on LS1012ARDB. |
Open |
LSDK 17.09-update-103017 |
|
|
QLINUX-8429 |
The 2.5G port can be detected in U-Boot, but not in Linux. |
Open |
LSDK 17.09-update-103017 |
|


DSI is partnered with the UF Informatics Institute to share in their mission of fostering research and educational studies in order to raise the preeminence of the University of Florida.
UF Informatics Institute
President: Gordon Hirsch Wilson
V.P. Internal: Kyle Zachary Smyre
V.P. External: Ya Zhang
Treasurer: Ryan Sheppard
Please say hello and welcome them to the team. We've got some exciting things planned for this semester, so be sure to keep an eye out!
Learn how to code in Python and visualize data
Find patterns and make evidence-based predictions and decisions
Bringing cutting-edge data science research to students and faculty at UF
Analyze stock market trends to automate your investments
Interested in planning DSI's future activities, helping with our next workshop, or organizing our future seminars?
The best way is to join our Facebook group and attend our workshops and events. You can also email us directly.


recursive acronym
`Prev `__
R
`Next `__
--------------
**recursive acronym**: n.
A hackish (and especially MIT) tradition is to choose
acronyms/abbreviations that refer humorously to themselves or to other
acronyms/abbreviations. The original of the breed may have been TINT
(“TINT Is Not TECO”). The classic examples were two MIT editors called
EINE (“EINE Is Not EMACS”) and ZWEI (“ZWEI Was EINE Initially”). More
recently, there is a Scheme compiler called LIAR (Liar Imitates Apply
Recursively), and `*GNU* <../G/GNU.html>`__ (q.v., sense 1) stands for
“GNU's Not Unix!” — and a company with the name Cygnus, which expands to
“Cygnus, Your GNU Support” (though Cygnus people say this is a
`*backronym* <../B/backronym.html>`__). The GNU recursive acronym may
have been patterned on XINU, “XINU Is Not Unix” — a particularly nice
example because it is a mirror image, a backronym, and a recursive
acronym. See also `*mung* <../M/mung.html>`__,
`*EMACS* <../E/EMACS.html>`__.
--------------
+------------------------------+----------------------------+-----------------------------+
| `Prev `__ | `Up <../R.html>`__ | `Next `__ |
+------------------------------+----------------------------+-----------------------------+
| recursion | `Home <../index.html>`__ | red wire |
+------------------------------+----------------------------+-----------------------------+


--- layout: page titles: en: Archive en-GB: Archive en-US: Archive en-CA: Archive en-AU: Archive zh-Hans: 归档 zh: 归档 zh-CN: 归档 zh-SG: 归档 zh-Hant: 歸檔 zh-TW: 歸檔 zh-HK: 歸檔 ko: 아카이브 ko-KR: 아카이브 fr: Archives fr-BE: Archives fr-CA: Archives fr-CH: Archives fr-FR: Archives fr-LU: Archives ---


Pull Requests
Issues
Gist
No notification yet
Create New Repository
Signed in as craftword
Your Profile
Your star
Explore
Integration
Help
Settings
Sign Out
Crafword
Add a bio
Edit profile
ProTip!
Updating your profile with your name, location, and a profile picture helps other GitHub users get to know you.
Edit profile
Overview
5
Repositories
4
Stars
0
Followers
0
Following
0


An important part of the CenturyLink Control Portal experience, is the logging of user activity. Actions performed by the user against your service (CRUD operations for example) should be logged and displayed in the Accounts' activity history, as well as on the entity (e.g. server) or rollup pages (e.g. data center, server group).

RECENT ACTIVITY

Tuesday Sep 29

2:50:05 PM

Password change for user trent.anderson

Password change for user trent.anderson by system

system

Tuesday Sep 29

2:50:05 PM

Password change for user trent.anderson

Password change for user trent.anderson by system

system


Launched in Dec. 2006, the site directs you to some of the best places for kids+parents on the Web. They've already got some of the best and most delicious foods up there, the coolest toys for every age, and the most colorful clothing for kids on the Web. Did I forget to mention it is run by a dad and daughter? They know what they're writing about!
Visit
KidPoop.com and sign up for their newsletter.
Here are some of my favorite finds from them:


{{ head.title.toString() }} {{ head.meta.toString() }} {{ head.script.toString() }}
Sorry Squiddo, but you need
JavaScript
to use
Freshest Squid
.
Click
here
to learn how to enable it in your browser.
{{ react }}


* (Dev only Show model; normally placed bottom right)
model:
expected (sample):
Recieved:
README! CORS Issue and Setup
Template http call instructions:
C# API (in this case, pointing at VS2013 webapi 'http://localhost:9000/server/api/zSample')
publicclassZSampleController : ApiController
{{ '{' }}
// GET: api/ZSample public IHttpActionResult Get()
{{ '{' }}
Template ret = new Template(){{ '{' }} Text = "text", Value = "value" };
returnOk(ret);
}
}
note: To Resolve CORS error in dev environment, (NEVER USE * IN PROD), modify applicationhost.config: * in editor that is running as admin, edit:
'C:\Users\*USERNAME*\Documents\IISExpress\config\applicationhost.config'
* add the following:


|
|
||
|---|---|---|
Good day,You are receiving this email as a Health Gateway patient partner. We welcome your feedback and suggestions as one of the first users of the application. Please click on the link below which will take you to your registration for the Health Gateway service. This registration link is valid for your one-time use only. We kindly ask that you do not share your link with anyone else. Register NowIf you have any questions about the registration process, including signing up to use your BC Services Card for authentication, please contact Nino Samson at<EMAIL_ADDRESS>|


Original MAST: Selzer (1971), www.ncbi.nlm.nih.gov/pubmed/5565851.
There are 22- and 24-item versions of the MAST.
The original MAST has weighted scoring (compare the UMAST, with one point per question).
SMAST (13 items): Selzer et al. (1975), www.ncbi.nlm.nih.gov/pubmed/238068
MAST and related task validity in the elderly: Willenbring et al. (1987), www.ncbi.nlm.nih.gov/pubmed/3624732
Scoring (cut-offs): www.bookrags.com/research/michigan-alcoholism-screening-test--edaa-02/, Ross et al. (1990, www.ncbi.nlm.nih.gov/pubmed/2270059)
Public domain.
“... a public-domain screening tool” (Michigan 24th District Court, www.24thdiscourt.org/MAST.htm, accessed 2012-09-06.)


Apps, Clients and Tools
There is a wide range of tools you can use to interact with Travis CI:
- Websites: Full Web Clients, Dashboards, Tools
- Mobile Applications: Android, iOS, Windows Phone
- Desktop: Mac OS X, Linux, Windows, Cross Platform
- Command Line Tools: Full Clients, Build Monitoring, Generators
- Plugins: Google Chrome, Mozilla Firefox, Opera, Editors, Other
- Libraries: Ruby, JavaScript, PHP, Python, Elixir
And if you don’t find anything that fits your needs, you can also interact with our API directly.
Note however that Travis CI can not take any responsibility of for third-party tools you might use.
Websites
Full Web Clients
Travis CI Web Client
Our official web interface, written in Ember.js
Dashboards
TravisLight
Online build monitoring tool
By William Durand
TravisWall
Online build monitoring tool for public/private repos
By Eric Geloen
Team Dashboard
Visualize your team’s metrics all in one place
By Frederik Dietz
CI Status
Travis CI dashboard
By Piwik.
node-build-monitor
Simple and extensible Build Monitor written in Node.js
By Marcell Spies
CI Dashboard
Travis CI builds dashboard
By Ahmed El-Sayed
Tools
Travis WebLint
Validates your .travis.yml
Travis Cron
Trigger builds on a regular schedule
By Filippo Valsorda
Travis Web Encrypter
Encrypt Secure Variables
By Konstantin Haase
Tron CI
Cron jobs for your Travis CI projects
By Fabio Menegazzo
Mobile Applications
Android
Comrade Travis
Follow your project builds anywhere
By Christian S. Perone
Siren of Shame (Android)
Gamification for your builds
By Automated Architecture
iOS
Jarvis
iPad client for Travis CI, supports private projects
By NinjaConcept GmbH
Project Monitor
iPhone app that monitors public and private builds
By Dimitri Roche
Siren of Shame (iOS)
Gamification for your builds
By Automated Architecture
Windows Phone
Travis7
A Windows Phone client for Travis CI
By Tim Felgentreff
Desktop
If you are looking for desktop notifications, our command line client supports them.
Mac OS X
CCMenu
OS X status bar app
By ThoughtWorks Inc.
Linux
BuildNotify
Linux alternative to CCMenu
By Anay Nayak
Windows
CCTray
System Tray client
By CCNet and ThoughtWorks Inc.
Cross Platform
Build Checker App
Check CI-server build statuses
By Will Mendes.
CatLight
Shows build status in tray / menu bar
By catlight.io
Command Line Tools
Full Clients
Travis CLI
Feature complete command line client
Build Monitoring
Bickle
Display build status in your terminal
By Jiri Pospisil
Travis Surveillance
Monitor a project in your terminal
By Dylan Egan
Travis Build Watcher
Trigger a script on build changes
By Andrew Sutherland
Status Gravatar
Sets Gravatar profile image depending on build status
By Gleb Bahmutov
Chroma Feedback
Turn your Razer keyboard, mouse or headphone into a extreme feedback device
By Henry Ruhs
Generators
travis-encrypt
Encrypt environment variables
By Patrick Williams
travis-tools
Easy secure data encryption
By Michael van der Weg
Travisify (Ruby)
Creates .travis.yml with tagging and env variables
By James Smith
Travisify (Node.js)
Add Travis CI hooks to your GitHub project
By James Halliday
Plugins
Google Chrome
My Travis
Monitor your projects builds within Chrome
By Leonardo Quixadá
github+travis
Display build status next to project name on GitHub
By Tomas Carnecky
GitHub Status
Display build status next to project name on GitHub
By excellenteasy
Mozilla Firefox
GitHub+Travis
Display build status next to project name on GitHub
By David Burns
Link to Travis Lite
Add a links to corresponding Travis Lite page
By Nigel Babu
Opera
GitHub+Travis
Display build status next to project name on GitHub
By smasty
Editors
Atom Plugin
Travis CI integration for Atom
By Tom Bell
Brackets Plugin
Travis CI integration for Brackets
By Cas du Plessis
Emacs Package
Travis CI integration for Emacs
By Skye Shaw
Vim Plugin
Travis CI integration for Vim
By Keith Smiley
Other
git-travis
Git subcommand to display build status
By Dav Glass
gh-travis
NodeGH plugin for integrating Travis CI
By Eduardo Antonio Lundgren Melo and Zeno Rocha Bueno Netto
Libraries
Ruby
- travis.rb (official)
- TravisMiner by Shane McIntosh
- hoe-travis by Eric Hodel
- Knapsack by Artur Trzop
JavaScript
- travis-ci by Patrick Williams
- node-travis-ci by Maciej Małecki
- travis-api-wrapper by Christopher Maujean
- travis.js by Konstantin Haase
- ee-travis by Michael van der Weg
- Favis CI by Jaune Sarmiento
PHP
- php-travis-client by Leszek Prabucki
Python
- TravisPy by Fabio Menegazzo
Elixir
- travis.ex by Kevin Deisz


MLRISC
A framework for retargetable and optimizing compiler back ends
Quick Tour
Demo Compiler
Distribution
Lal George
Last modified: Mon Jul 12 16:58:42 EDT 1999


Blockchain Testbed
Transcript By: Bryan Bishop
Category: Conference
Ittay Eyal
Emin Gun Sirer
A testbed for bitcoin scaling
I want to talk today about how to scale bitcoin. We want lower latency, we want higher throughput, more bandwidth and more transactions per second, and we want security. We can try to tune the parameters. In all of the plots, I have time going from left to right and these are blocks in rectangles. We have larger blocks which might give us more throughput. We could have shorter block length, and transactions would come faster on the chain and we have better throughput but we get forks and orphans when that happens. We have unfairness, smaller miners get less revenue and leads to centralization and I will talk about that. We have a longer time to convergence because of these orphans and forks.
We need proper evaluation. We need a scientific way to realize what we are achieving and how to evaluate which proposal is better. We need a clear way to realize which way is best.
I am presenting about a project where we run the actual code, the actual Bitcoin Core client and we emulate the world for it, we emulate the network based on measurements from the bitcoin network. We do some basic bootstrapping and then we just run the raw code. So that’s fine, oh I should talk about- we have 500 machines, the experiments I’ll show you later are 1000 bitcoin nodes running on multi-core machines. 150 machines? 500 machines?
The first measurement is going to be- consensus delay, how long it takes for you to reach agreement. The easiest way to explain this is by example. The 80% consensus delay is if at least 80% of the time 80% of the nodes agreed on what happened until 10 minutes ago. We reduce the interval between blocks, and the bandwidth remains the same but blocks come in faster. You can see in the x scale the block frequency, and 0.1 means one block every 10 seconds. There are clear trends here.
We see that as we increase the block frequency the consensus delay improves. We get improvement which is what we want. As we increase the block size, and this is the second type of experiment, we have one block every 10 seconds and we increase the block sizes generated every 10 seconds. There is increased block size, and the consensus delay is way up and it grows quickly. This is bad. So we’re trying to improve bandwidth and this is what happens to consensus delay.
Another metric is time to prune, I am measuring the time it takes to realize that you are sitting on a branch. And once you are sitting on a branch, how long it takes you to realize that the real chain is somewhere else. We obviously want this to be short. “Subjective time to prune”.
As we increase block size, subjective time to prune becomes increasingly worse.
Next I will talk about fairness. We know that larger miners get more than.. I am not talking about selfish mining or anything or any cheating, just miners mining. Any miner mining on their own branch if there is a fork. So larger miners get more. So I am talking myself, how much do the smaller miners get? We want them to get what they need. As we increase block frequency, bandwidth throughput is the same, we have faster blocks smaller blocks, we get the fairness going down very quickly, as we increase block frequency, same result. The trend is clear.
Mining power utilization is how secure bitcoin is. It’s the ratio of blocks that end up in the main chain. Other blocks are those that do not contribute to the security of the system. What’s the ratio of these? We want it to be 1, we want all of the blocks to be on the main chain. This would improve latency. And as we increase the size of blocks, it goes down quickly.
Time to win: how long until the last competing branch is generated? Until any other miner agrees that this is the longest chain and they stop creating competing branches? We want this to be zero optimally, and as we increase block frequency we get longer time to win, and as we increase block size we also increase the time to win.
So in summary I talked about scaling the blockchain; I gave clear metrics. We did not evaluate any of the suggestions from the BIPs. This is just the raw Bitcoin Core software. We wanted to see stark trends. We measured power utilization, time to win, time to prune, fairness, and consensus delay. We think these are good metrics. We introduced the blockchain testbed, we are very happy to run your code on it. We want to run experiments. We just need a real working client on this system, and we want to make it big, realistic and effective, and test real options for bitcoin and beyond.
Speaking of beyond, I would like to present to you now, Bitcoin NG, which is a different protocol, a new generation of blockchains, it solves everything that I presented so far. Key blocks have no content, leader election. We have two types of blocks. We have key blocks, they carry no content and they are only used for leader election. And then there are microblocks that only have content; only the leader is allowed to create or generate microblocks.
Keyblocks have a proof-of-work just like bitcoin, and they have the previous block which is a microblock just like bitcoin. And they have public key K generated by the miner. Every microblock has the actual transactions that the miner wants to introduce. These are signed by the private key of the leader. Only the leader can generate these microblocks. The interval between keyblocks are maybe 10 minutes or longer. The microblocks come in very quickly with short intervals, think seconds. This can be shorter than the network diameter.
Now fees; each key block gives the usual subsidy with whatever way you do it, and we need to talk about the fees from the transactions. The fees are given 40% back to the leader, and 60% going forward to the next leader (the next miner). The reason is that the next miner, the one who gets the 60%, is motivated to place itself as late as possible in the chain. It is motivated to include transactions from the previous miner, the leader on the left the one that gets 40% is motivated to place transactions in microblocks because then he gets his 40%. Why 40%? Because we have to make some assumptions about the size of the attacker, and we don’t want the attacker to be motivated about mining multiple blocks, it becomes complicated. It could be 10%, but then larger miners might be motivated not to place transactions in blocks.
Double spending: skipping.
Consensus delay of bitcoin-ng: 100 second key block intervals, 10 second microblock intervals. Increase block frequency, consensus delay is down, like in bitcoin but better. The same goes as you increase block size.
Fairness is what becomes interested; key blocks are so far apart that you get minimal forks. So the fairness is about 1, which is qualitatively better. As you increase the block size, it stays at 1.
Mining power utilization, with block size it’s fine.
Time to win: Almost no large forks.
Subjective time to prune: similar.
You need clear metrics, you need to run the actual code, you need to emulate the world around it. We have the testbed and we’re happy to collaborate with different ideas. I also presented bitcoin-ng.
Adem Efe Gencer, Emin Gun Sirer, Robbert Van Renesse, Ittay Eyal.
bitcoin-ng criticism http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-October/011528.html
see also http://gnusha.org/bitcoin-wizards/2015-10-14.log and http://gnusha.org/bitcoin-wizards/2015-09-19.log


Architecture Overview¶
GeoMesa supports several scalable, cloud-based data storage technologies, including Apache Accumulo, Apache HBase, and Google Cloud Bigtable, as well as the Apache Kafka message broker for streaming data. Apache Storm lets you define information sources and manipulations to allow batch distributed processing of streaming data with GeoMesa, and a GeoMesa environment can also take advantage of Apache Spark to do large-scale analytics of stored and streaming data.
GeoMesa and GeoServer¶
GeoMesa’s GeoServer plugins let GeoServer work with data stored using GeoMesa tables. The plugin maps the GeoServer capabilities associated with data sources to the GeoMesa formatted tables and provides a number of optimizations to support specific use cases.
If an application already uses GeoServer, integration with GeoMesa is simply a matter of adding a new datastore to GeoServer and updating the application’s configuration.
Integration with GeoMesa¶
To expose the geospatial data that it stores for use by your applications, GeoMesa implements GeoTools interfaces to provide HTTP access to the following Open Geospatial Consortium standards:
- Web Feature Service (WFS)
- Web Mapping Service (WMS)
- Web Processing Service (WPS)
- Web Coverage Service (WCS)
Multiple frameworks may be used for streaming and batch ingestion of data. These include the GeoMesa command line tools, map-reduce jobs with Apache Hadoop, and real-time topologies running on Apache Storm. The following diagram shows one possible ingest architecture:
The following shows one possible query architecture, in which the GeoTools and GeoMesa APIs mediate the use of Accumulo iterators for external query clients:
Key-value stores and Z-curves¶
The data stores that GeoMesa uses for long-term storage are key-value databases, a type of NoSQL database in which every record is stored and retrieved using a unique identifier for that record known as a key. Accumulo, HBase, and Google Cloud Bigtable sort these keys and can store them across any number of nodes (servers).
When using a key-value database, good design of the keys themselves can lead to more efficient applications. Unlike relational databases, where the keys are frequently sequential integers, key value stores usually use the key to represent a feature by which the data are frequently queried. For example, imagine a database of customer orders being indexed by the order number. Then, when a client queries by order number, the database goes directly to that key and returns that order’s record.
This is a simplification of how Accumulo, HBase, and Cloud Bigtable key structures actually work, but the foundational principle of GeoMesa can be explained in terms of keys and values. To store spatio-temporal data, we need to create a key that represents the time/space location of the record. GeoMesa uses this system to store locations as points along a special line that visits all the sectors of a map, like the red line shown here:
This red line is known as a space-filling curve, or to be more specific, a Z-Curve. This line visits each cell exactly once, establishing a unique ordering of cells.
Space-filling curves can also work with higher-resolution maps, like the one shown here:
Each point in this curve can be assigned a sequential value, letting GeoMesa represent what might have been a latitude-longitude pair as a single integer. This is great for representing two-dimensional data in a one-dimensional key, as is the case with a key-value datastore. Even more significantly, these space-filling curves can be adapted for n dimensions, letting GeoMesa linearize n dimensions of data in a single dimension.
GeoMesa’s Index¶
The basic principle of GeoMesa’s index is to represent the three dimensions of longitude, latitude, and time with a three-dimensional space filling curve, using the values of the points along this curve as the key. This lets it store a record in a key-value store with a key that represents the three data dimensions that we most often use for queries.
The actual key structure is more complex than a simple key-value pair. Below is a more detailed representation of GeoMesa’s index in Accumulo:
Note the Z3 encoding in the Key section and the Simple Feature (a spatial record) in the Value section. The structure of this key can be adjusted depending on the data, but this is the default.


|
||||||||
| PREV NEXT | FRAMES NO FRAMES |
_tree_
to use as a fixture for tests.
GenericPoint
instances and verifies that they are equal to their clones and
that their hash codes are the same.
GenericPoint
instances in succession and verifies that all getter methods
return results equivalent to the constructor parameters.
GenericPoint
instances,
verifying the results equal the expected values.
GenericPoint
instances
and verifies that invoking toString() produces an expected value.
|
||||||||
| PREV NEXT | FRAMES NO FRAMES |


--- layout: post title: Zogg date: 2005-02-17 00:00:00 category: hilarity ---
Via Mr Gooby, Zogg: "Our kind travels between the stars as an endogenous retrovirus..."


|
Walls And Holes
1
|
Class to wrap image info. This will be changed to use SharedImageAndSource when possible. More...
#include <m2mpartialmesh.h>
Public Member Functions | |
| ImageInfo () | |
| ImageInfo (const ImageInfo &other)=default | |
| ImageInfo (SharedImageAndSource img) | |
| ImageInfo (const TileMaterial *material) | |
| SharedImageAndSource | image () const |
| bool | operator== (const ImageInfo &other) const |
| bool | operator!= (const ImageInfo &other) const |
Class to wrap image info. This will be changed to use SharedImageAndSource when possible.
|
inline |
|
default |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |


The outer text tag will not be written to the output! Nested tags will not be written to the output.


{% extends "layouts/_block_content.html" %} {% from "components/collapsible/_macro.njk" import onsCollapsible %} {% set page_title = "Check your email - Forgot password" %} {% block main %}
If {{ email }} is registered to an account, you'll receive an email with instructions to reset your password
{% call onsCollapsible({ "id": "guidance-help-with-email", "title": "Help with email", "button": { "close": "Hide this", "contextSuffix": "content" } }) %}Email not arrived? It might be in your spam folder.
If it doesn’t arrive in the next 15 minutes, please call 0300 1234 931 or send an email to<EMAIL_ADDRESS>{% endcall %} {% endblock main %}


Designing and building a GSM antenna (June, July 2007)
Find a GSM base station manually using a USRP (April 2007)
GSM Books
GSM Gadgets (December 2008)
The GSM Software Project (External)


Class ExtendedDirectoryInfo
Provides an encapsulated implementation of the standard .NET
and the
SHGetFileInfo
API method.
Inheritance
System.Object
ExtendedDirectoryInfo
Assembly: Cadru.IO.dll
Syntax
public sealed class ExtendedDirectoryInfo : object
Constructors
|
Improve this Doc
View Source
ExtendedDirectoryInfo(String)
Declaration
public ExtendedDirectoryInfo(string path)
Parameters
| Type |
Name |
Description |
| System.String |
path |
The fully qualified name of the new file, or the relative file name.
|
Properties
|
Improve this Doc
View Source
Attributes
Declaration
public FileAttributes Attributes { get; set; }
Property Value
| Type |
Description |
| FileAttributes |
|
|
Improve this Doc
View Source
CreateTimeUtc
Declaration
public DateTime CreateTimeUtc { get; }
Property Value
| Type |
Description |
| DateTime |
|
|
Improve this Doc
View Source
CreationTime
Declaration
public DateTime CreationTime { get; set; }
Property Value
| Type |
Description |
| DateTime |
|
|
Improve this Doc
View Source
DirectoryOwner
Gets the Windows owner associated with the directory.
Declaration
public string? DirectoryOwner { get; }
Property Value
| Type |
Description |
| System.Nullable<System.String> |
A string representing the owner of the directory or
null if the owner cannot be determined.
|
|
Improve this Doc
View Source
Exists
Declaration
public bool Exists { get; }
Property Value
| Type |
Description |
| System.Boolean |
|
|
Improve this Doc
View Source
Extension
Declaration
public string Extension { get; }
Property Value
| Type |
Description |
| System.String |
|
|
Improve this Doc
View Source
FullName
Declaration
public string FullName { get; }
Property Value
| Type |
Description |
| System.String |
|
|
Improve this Doc
View Source
LastAccessTime
Declaration
public DateTime LastAccessTime { get; }
Property Value
| Type |
Description |
| DateTime |
|
|
Improve this Doc
View Source
LastAccessTimeUtc
Declaration
public DateTime LastAccessTimeUtc { get; }
Property Value
| Type |
Description |
| DateTime |
|
|
Improve this Doc
View Source
LastWriteTime
Declaration
public DateTime LastWriteTime { get; }
Property Value
| Type |
Description |
| DateTime |
|
|
Improve this Doc
View Source
LastWriteTimUtc
Declaration
public DateTime LastWriteTimUtc { get; }
Property Value
| Type |
Description |
| DateTime |
|
|
Improve this Doc
View Source
Name
Declaration
public string Name { get; }
Property Value
| Type |
Description |
| System.String |
|
|
Improve this Doc
View Source
Parent
Declaration
public DirectoryInfo Parent { get; }
Property Value
| Type |
Description |
| DirectoryInfo |
|
|
Improve this Doc
View Source
Root
Declaration
public DirectoryInfo Root { get; }
Property Value
| Type |
Description |
| DirectoryInfo |
|
Methods
|
Improve this Doc
View Source
Create()
Declaration
|
Improve this Doc
View Source
CreateSubdirectory(String)
Declaration
public DirectoryInfo CreateSubdirectory(string path)
Parameters
| Type |
Name |
Description |
| System.String |
path |
|
Returns
| Type |
Description |
| DirectoryInfo |
|
|
Improve this Doc
View Source
Delete()
Declaration
|
Improve this Doc
View Source
Delete(Boolean)
Declaration
public void Delete(bool recursive)
Parameters
| Type |
Name |
Description |
| System.Boolean |
recursive |
|
|
Improve this Doc
View Source
GetAccessControl()
Gets a DirectorySecurity object that encapsulates the access control
list (ACL) entries for the directory described by the current
DirectoryInfo object.
Declaration
public DirectorySecurity GetAccessControl()
Returns
| Type |
Description |
| DirectorySecurity |
A DirectorySecurity object that encapsulates the access control
rules for the directory.
|
|
Improve this Doc
View Source
GetAccessControl(AccessControlSections)
Gets a DirectorySecurity object that encapsulates the specified type
of access control list (ACL) entries for the directory described by
the current DirectoryInfo object.
Declaration
public DirectorySecurity GetAccessControl(AccessControlSections includeSections)
Parameters
| Type |
Name |
Description |
| AccessControlSections |
includeSections |
One of the values that specifies
which group of access control entries to retrieve.
|
Returns
| Type |
Description |
| DirectorySecurity |
A DirectorySecurity object that encapsulates the access control
rules for the file described by the path parameter.
|
|
Improve this Doc
View Source
GetDirectories()
Declaration
public DirectoryInfo[] GetDirectories()
Returns
| Type |
Description |
| DirectoryInfo[] |
|
|
Improve this Doc
View Source
GetDirectories(String)
Declaration
public DirectoryInfo[] GetDirectories(string searchPattern)
Parameters
| Type |
Name |
Description |
| System.String |
searchPattern |
|
Returns
| Type |
Description |
| DirectoryInfo[] |
|
|
Improve this Doc
View Source
GetDirectories(String, SearchOption)
Declaration
public DirectoryInfo[] GetDirectories(string searchPattern, SearchOption searchOption)
Parameters
| Type |
Name |
Description |
| System.String |
searchPattern |
|
| SearchOption |
searchOption |
|
Returns
| Type |
Description |
| DirectoryInfo[] |
|
|
Improve this Doc
View Source
GetFiles()
Declaration
public FileInfo[] GetFiles()
Returns
| Type |
Description |
| FileInfo[] |
|
|
Improve this Doc
View Source
GetFiles(String)
Declaration
public FileInfo[] GetFiles(string searchPattern)
Parameters
| Type |
Name |
Description |
| System.String |
searchPattern |
|
Returns
| Type |
Description |
| FileInfo[] |
|
|
Improve this Doc
View Source
GetFiles(String, SearchOption)
Declaration
public FileInfo[] GetFiles(string searchPattern, SearchOption searchOption)
Parameters
| Type |
Name |
Description |
| System.String |
searchPattern |
|
| SearchOption |
searchOption |
|
Returns
| Type |
Description |
| FileInfo[] |
|
|
Improve this Doc
View Source
GetFileSystemInfos()
Declaration
public FileSystemInfo[] GetFileSystemInfos()
Returns
| Type |
Description |
| FileSystemInfo[] |
|
|
Improve this Doc
View Source
GetFileSystemInfos(String)
Declaration
public FileSystemInfo[] GetFileSystemInfos(string searchPattern)
Parameters
| Type |
Name |
Description |
| System.String |
searchPattern |
|
Returns
| Type |
Description |
| FileSystemInfo[] |
|
|
Improve this Doc
View Source
MoveTo(String)
Declaration
public void MoveTo(string destinationDirectoryName)
Parameters
| Type |
Name |
Description |
| System.String |
destinationDirectoryName |
|
|
Improve this Doc
View Source
Refresh()
Declaration
|
Improve this Doc
View Source
SetAccessControl(DirectorySecurity)
Applies access control list (ACL) entries described by a
DirectorySecurity object to the directory described by the current
DirectoryInfo object.
Declaration
public void SetAccessControl(DirectorySecurity directorySecurity)
Parameters
| Type |
Name |
Description |
| DirectorySecurity |
directorySecurity |
A DirectorySecurity object that describes an ACL entry to apply to
the directory described by the path parameter.
|
|
Improve this Doc
View Source
ToString()
Declaration
public override string ToString()
Returns
| Type |
Description |
| System.String |
|
Extension Methods


public class TabController
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
boolean |
justSaved |
| Constructor and Description |
|---|
TabController(javafx.scene.Scene scene,
javafx.stage.Stage stage,
Layout layout)
Creates a new Controller just as we do in Layout.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addEventTab(SlideEvent slideEvent) |
void |
addHappyHourTab() |
void |
addHappyHourTab(SlideHappyHour happyHourSlide) |
void |
addPictureTab() |
void |
addPictureTab(SlidePicture slidePictureToCreate) |
void |
addPictureToATab(java.io.File file)
Firstly checks the type of file that is taken as a parameter.
|
javafx.scene.control.TabPane |
getNewTabPane() |
int |
getTabCollectionSize()
Is used for checking whether there is anything to save, if this method returns zero.
|
javafx.scene.control.TabPane |
getTabPane() |
void |
initializeTabController(javafx.scene.control.TabPane tabPane)
Creates an empty tab, along with the Dragboard.
|
void |
openPresentation(java.util.ArrayList<Slide> presentation)
Creates tabs that correspond with the Slides from the database.
|
void |
savingPresentation(java.lang.String chosenDate,
Layout view)
Gets all the TabNodes that correspond to the open tabs.
|
public TabController(javafx.scene.Scene scene, javafx.stage.Stage stage, Layout layout)
scene
- stage
- layout
- public int getTabCollectionSize()
public javafx.scene.control.TabPane getNewTabPane()
public javafx.scene.control.TabPane getTabPane()
public void initializeTabController(javafx.scene.control.TabPane tabPane)
tabPane
- public void addPictureToATab(java.io.File file)
file
- public void addPictureTab()
public void addPictureTab(SlidePicture slidePictureToCreate)
public void addEventTab(SlideEvent slideEvent)
public void addHappyHourTab()
public void addHappyHourTab(SlideHappyHour happyHourSlide)
public void savingPresentation(java.lang.String chosenDate, Layout view)
chosenDate
- view
- public void openPresentation(java.util.ArrayList<Slide> presentation)
presentation
-


EMBC is responsible for adding task numbers to the system.
Please confirm that all details you entered are correct by reading through the summary below.


anki_vector.world¶
Vector’s known view of his world.
This view includes objects and faces it knows about and can currently see with its camera.
Classes
World (robot) |
Represents the state of the world, as known to Vector. |
-
class
anki_vector.world.
World
(robot)¶ Represents the state of the world, as known to Vector.
-
all_objects
¶ generator – yields each object in the world.
# Print the all objects' class details import anki_vector with anki_vector.Robot() as robot: for obj in robot.world.all_objects: print(obj)
Returns: A generator yielding anki_vector.faces.Face
,anki_vector.faces.LightCube
,anki_vector.faces.Charger
,anki_vector.faces.CustomObject
andanki_vector.faces.FixedCustomObject
instances.
-
charger
¶ Returns the most recently observed Vector charger object, or None if no chargers have been observed.
import anki_vector with anki_vector.Robot() as robot: print('most recently observed charger: {0}.'.format(robot.world.charger))
Raises: ValueError
if the cube_id is invalid.Return type: Charger
-
charger_factory
¶ alias of
anki_vector.objects.Charger
-
close
()¶ The world will tear down all its faces and objects.
-
connect_cube
()¶ Attempt to connect to a cube.
If a cube is currently connected, this will do nothing.
import anki_vector with anki_vector.Robot() as robot: robot.world.connect_cube()
Return type: ConnectCubeResponse
-
connected_light_cube
¶ A light cube connected to Vector, if any.
import anki_vector with anki_vector.Robot() as robot: robot.world.connect_cube() if robot.world.connected_light_cube: dock_response = robot.behavior.dock_with_cube(robot.world.connected_light_cube)
Return type: LightCube
-
create_custom_fixed_object
(pose, x_size_mm, y_size_mm, z_size_mm, relative_to_robot=False, use_robot_origin=True)¶ Defines a cuboid of custom size and places it in the world. It cannot be observed.
Parameters: - pose (
Pose
) – The pose of the object we are creating. - x_size_mm (
float
) – size of the object (in millimeters) in the x axis. - y_size_mm (
float
) – size of the object (in millimeters) in the y axis. - z_size_mm (
float
) – size of the object (in millimeters) in the z axis. - relative_to_robot (
bool
) – whether or not the pose given assumes the robot’s pose as its origin. - use_robot_origin (
bool
) – whether or not to override the origin_id in the given pose to be the origin_id of Vector.
import anki_vector from anki_vector.util import degrees with anki_vector.Robot() as robot: robot.world.create_custom_fixed_object(Pose(100, 0, 0, angle_z=degrees(0)), x_size_mm=10, y_size_mm=100, z_size_mm=100, relative_to_robot=True)
Returns: FixedCustomObject instance with the specified dimensions and pose. Return type: FixedCustomObject
- pose (
-
custom_object_archetypes
¶ generator – yields each custom object archetype that Vector will look for.
import anki_vector with anki_vector.Robot() as robot: for obj in robot.world.custom_object_archetypes: print(obj)
Returns: A generator yielding CustomObjectArchetype instances Return type: Iterable
[CustomObjectArchetype
]
-
custom_object_factory
¶ alias of
anki_vector.objects.CustomObject
-
define_custom_box
(custom_object_type, marker_front, marker_back, marker_top, marker_bottom, marker_left, marker_right, depth_mm, width_mm, height_mm, marker_width_mm, marker_height_mm, is_unique=True)¶ Defines a cuboid of custom size and binds it to a specific custom object type.
The robot will now detect the markers associated with this object and send an object_observed message when they are seen. The markers must be placed in the center of their respective sides. All 6 markers must be unique.
Parameters: - custom_object_type (
CustomObjectTypes
) – the object type you are binding this custom object to. - marker_front (
CustomObjectMarkers
) – the marker affixed to the front of the object. - marker_back (
CustomObjectMarkers
) – the marker affixed to the back of the object. - marker_top (
CustomObjectMarkers
) – the marker affixed to the top of the object. - marker_bottom (
CustomObjectMarkers
) – the marker affixed to the bottom of the object. - marker_left (
CustomObjectMarkers
) – the marker affixed to the left of the object. - marker_right (
CustomObjectMarkers
) – the marker affixed to the right of the object. - depth_mm (
float
) – depth of the object (in millimeters) (X axis). - width_mm (
float
) – width of the object (in millimeters) (Y axis). - height_mm (
float
) – height of the object (in millimeters) (Z axis). (the height of the object) - marker_width_mm (
float
) – width of the printed marker (in millimeters). - maker_height_mm – height of the printed marker (in millimeters).
- is_unique (
bool
) – If True, the robot will assume there is only 1 of this object. (and therefore only 1 of each of any of these markers) in the world.
import anki_vector with anki_vector.Robot(enable_custom_object_detection=True) as robot: robot.world.define_custom_box(custom_object_type=anki_vector.objects.CustomObjectTypes.CustomType00, marker_front= anki_vector.objects.CustomObjectMarkers.Circles2, marker_back= anki_vector.objects.CustomObjectMarkers.Circles3, marker_top= anki_vector.objects.CustomObjectMarkers.Circles4, marker_bottom= anki_vector.objects.CustomObjectMarkers.Circles5, marker_left= anki_vector.objects.CustomObjectMarkers.Triangles2, marker_right= anki_vector.objects.CustomObjectMarkers.Triangles3, depth_mm=20.0, width_mm=20.0, height_mm=20.0, marker_width_mm=50.0, marker_height_mm=50.0)
Returns: CustomObject instance with the specified dimensions. This is None if the definition failed internally. Note: No instances of this object are added to the world until they have been seen.
Raises: - TypeError if the custom_object_type is of the wrong type.
- ValueError if the 6 markers aren’t unique.
Return type: - custom_object_type (
-
define_custom_cube
(custom_object_type, marker, size_mm, marker_width_mm, marker_height_mm, is_unique=True)¶ Defines a cube of custom size and binds it to a specific custom object type.
The robot will now detect the markers associated with this object and send an object_observed message when they are seen. The markers must be placed in the center of their respective sides.
Parameters: - custom_object_type (
CustomObjectTypes
) – the object type you are binding this custom object to. - marker (
CustomObjectMarkers
) – the marker affixed to every side of the cube. - size_mm (
float
) – size of each side of the cube (in millimeters). - marker_width_mm (
float
) – width of the printed marker (in millimeters). - maker_height_mm – height of the printed marker (in millimeters).
- is_unique (
bool
) – If True, the robot will assume there is only 1 of this object (and therefore only 1 of each of any of these markers) in the world.
import anki_vector with anki_vector.Robot(enable_custom_object_detection=True) as robot: robot.world.define_custom_cube(custom_object_type=anki_vector.objects.CustomObjectTypes.CustomType00, marker=anki_vector.objects.CustomObjectMarkers.Circles2, size_mm=20.0, marker_width_mm=50.0, marker_height_mm=50.0)
Returns: CustomObject instance with the specified dimensions. This is None if the definition failed internally. Note: No instances of this object are added to the world until they have been seen. Raises: TypeError if the custom_object_type is of the wrong type. Return type: CustomObject
- custom_object_type (
-
define_custom_wall
(custom_object_type, marker, width_mm, height_mm, marker_width_mm, marker_height_mm, is_unique=True)¶ Defines a wall of custom width and height, with a fixed depth of 10mm, and binds it to a specific custom object type.
The robot will now detect the markers associated with this object and send an object_observed message when they are seen. The markers must be placed in the center of their respective sides.
Parameters: - custom_object_type (
CustomObjectTypes
) – the object type you are binding this custom object to. - marker (
CustomObjectMarkers
) – the marker affixed to the front and back of the wall. - width_mm (
float
) – width of the object (in millimeters). (Y axis). - height_mm (
float
) – height of the object (in millimeters). (Z axis). - width_mm – width of the wall (along Y axis) (in millimeters).
- height_mm – height of the wall (along Z axis) (in millimeters).
- marker_width_mm (
float
) – width of the printed marker (in millimeters). - maker_height_mm – height of the printed marker (in millimeters).
- is_unique (
bool
) – If True, the robot will assume there is only 1 of this object (and therefore only 1 of each of any of these markers) in the world.
import anki_vector with anki_vector.Robot(enable_custom_object_detection=True) as robot: robot.world.define_custom_wall(custom_object_type=anki_vector.objects.CustomObjectTypes.CustomType00, marker=anki_vector.objects.CustomObjectMarkers.Circles2, width_mm=20.0, height_mm=20.0, marker_width_mm=50.0, marker_height_mm=50.0)
Returns: CustomObject instance with the specified dimensions. This is None if the definition failed internally. Note: No instances of this object are added to the world until they have been seen. Raises: TypeError if the custom_object_type is of the wrong type. Return type: CustomObject
- custom_object_type (
-
delete_custom_objects
(delete_custom_marker_objects=True, delete_fixed_custom_objects=True, delete_custom_object_archetypes=True)¶ Causes the robot to forget about custom objects it currently knows about.
import anki_vector with anki_vector.Robot() as robot: robot.world.delete_custom_objects()
-
disconnect_cube
()¶ Requests a disconnection from the currently connected cube.
import anki_vector with anki_vector.Robot() as robot: robot.world.disconnect_cube()
Return type: DisconnectCubeResponse
-
face_factory
¶ alias of
anki_vector.faces.Face
-
fixed_custom_object_factory
¶
-
flash_cube_lights
()¶ Flash cube lights
Plays the default cube connection animation on the currently connected cube’s lights.
import anki_vector with anki_vector.Robot() as robot: robot.world.flash_cube_lights()
Return type: FlashCubeLightsResponse
-
forget_preferred_cube
()¶ Forget preferred cube.
‘Forget’ the robot’s preferred cube. This will cause the robot to connect to the cube with the highest RSSI (signal strength) next time a connection is requested.
import anki_vector with anki_vector.Robot() as robot: robot.world.forget_preferred_cube()
Return type: ForgetPreferredCubeResponse
-
get_face
(face_id)¶ Fetches a Face instance with the given id.
with anki_vector.Robot() as robot: my_face = robot.world.get_face(previously_observed_face_id)
Return type: Face
-
get_object
(object_id)¶ Fetches an object instance with the given id.
import anki_vector with anki_vector.Robot() as robot: my_obj = robot.world.get_object(valid_object_id)
-
light_cube
¶ Returns the vector light cube object, regardless of its connection status.
import anki_vector with anki_vector.Robot() as robot: cube = robot.world.light_cube if cube: if cube.is_connected: print("LightCube is connected.") else: print("LightCube isn't connected")
Raises: ValueError
if the cube_id is invalid.Return type: LightCube
-
light_cube_factory
¶ alias of
anki_vector.objects.LightCube
-
set_preferred_cube
(factory_id)¶ Set preferred cube.
Set the robot’s preferred cube and save it to disk. The robot will always attempt to connect to this cube if it is available. This is only used in simulation (for now).
import anki_vector with anki_vector.Robot() as robot: connected_cube = robot.world.connected_light_cube if connected_cube: robot.world.set_preferred_cube(connected_cube.factory_id)
Parameters: factory_id ( str
) – The unique hardware id of the physical cube.Return type: SetPreferredCubeResponse
-
visible_custom_objects
¶ generator – yields each custom object that Vector can currently see.
import anki_vector with anki_vector.Robot() as robot: for obj in robot.world.visible_custom_objects: print(obj)
Returns: A generator yielding CustomObject instances Return type: Iterable
[CustomObject
]
-
visible_faces
¶ generator – yields each face that Vector can currently see.
# Print the visible face's attributes import anki_vector with anki_vector.Robot() as robot: for face in robot.world.visible_faces: print("Face attributes:") print(f"Face id: {face.face_id}") print(f"Updated face id: {face.updated_face_id}") print(f"Name: {face.name}") print(f"Expression: {face.expression}") print(f"Timestamp: {face.timestamp}") print(f"Pose: {face.pose}") print(f"Image Rect: {face.face_rect}") print(f"Expression score: {face.expression_score}") print(f"Left eye: {face.left_eye}") print(f"Right eye: {face.right_eye}") print(f"Nose: {face.nose}") print(f"Mouth: {face.mouth}")
Returns: A generator yielding anki_vector.faces.Face
instances.Return type: Iterable
[Face
]
-


- What learnings did you take from the chapter?
- 5 domains of emotional intelligence: (1) Self-awareness; (2) Self-regulation; (3) Motivation; (4) Empathy; (5) Social Skills
- (1)-(3)= intrapersonal; (4)-(5)= interpersonal
- Top 6 competencies that distinguish tech sector performers, majority of which are EQ: (1) Achievement drive and standard; (2) Ability to influence; (3) Conceptual thinking; (4) Analytic ability; (5) Initiative; (6) Self-confience
- Attention is a key foundation to emotional intelligence
- Mindfulness= paying attention in a particular way: on purpose, in the present moment, and non-judgementally
- Affect labeling (=labeling a feeling) helps you manage that emotion
- Focusing an emotion to the body enables high-resolution perception= you can watch the subtle changes of the emotion as it waxes, wanes, and ceases
- How did you find the two minutes of mindfulness?
I'm not much into meditation. I decided to try it, but I think I prefer to find mindfulness in ways other than just sitting and focusing on my breathing: going on walks, for example, is a really enjoyable way for me to spend time with myself and introspect.


--- layout: post title: Rhyme of the Troll date: 2010-03-18 16:54:53.000000000 +07:00 type: post published: true status: publish categories: - uncategorized tags: [] meta: _edit_last: '7761285' geo_latitude: '-8.588990' geo_longitude: '116.130400' geo_accuracy: '206' geo_address: mataram geo_public: '1' author: login: pdft email<EMAIL_ADDRESS>display_name: piko first_name: herpiko last_name: dwi aguno ---
Troll sat alone on his seat of stone,
And munched and mumbled a bare old bone;
For many a year he had gnawed it near,
For meat was hard to come by.
Done by! Gum by!
In a cave in the hills he dwelt alone,
And meat was hard to come by.
Up came Tom with his big boots on.
Said he to Troll: 'Pray, what is yon?
For it looks like the shin o' my nuncle Tim,
As should be a-lyin' in graveyard.
Caveyard! Paveyard!
This many a year has Tim been gone,
And I thought he were lyin' in graveyard.'
'My lad,' said Troll, 'this bone I stole.
But what be bones that lie in a hole?
Thy nuncle was dead as a lump o' lead,
Afore I found his shinbone.
Tinbone! Thinbone!
He can spare a share for a poor old troll,
For he don't need his shinbone.'
Said Tom: 'I don't see why the likes o' thee
Without axin' leave should go makin' free
With the shank or the shin o' my father's kin;
So hand the old bone over!
Rover! Trover!
Though dead he be, it belongs to he;
So hand the old bone over!'
'For a couple o' pins,' says Troll, and grins,
'I'll eat thee too, and gnaw thy shins.
A bit o' fresh meat will go down sweet!
I'll try my teeth on thee now.
Hee now! See now!
I'm tired o' gnawing old bones and skins;
I've a mind to dine on thee now.'
But just as he thought his dinner was caught,
He found his hands had hold of naught.
Before he could mind, Tom slipped behind
And gave him the boot to larn him.
Warn him! Darn him!
A bump o' the boot on the seat, Tom thought,
Would be the way to larn him.

As well set your boot to the mountain's root,
For the seat of a troll don't feel it.
Peel it! Heal it!
Old Troll laughed, when he heard Tom groan,
And he knew his toes could feel it.

Doner! Boner!
Troll's old seat is still the same,
And the bone he boned from its owner!
terjemahan :
Troll duduk sendirian di kursi batu,
Menggigit dan mengunyah tulang kaku
Bertahun-tahun sudah menggigit tanpa lelah,
Karena daging susah didapat.
Babat! Rapat!
Troll tinggal sendirian di gua bukit batu,
Dan daging susah didapat.
Datang Tom bersepatu bot besar.
Katanya kepada Troll: "Maaf, apa yang kaukunyah itu?
Kok seperti tulang kering pamanku Tim,
Yang mestinya berbaring di kuburan.
Pelataran! Halaman!
Sudah lama pamanku mati,
Dan kukira dia di dalam kuburan."
"Anakku, " kata Troll, "tulang ini aku curi.
Tapi tulang dalam lubang tentu tak berarti.
Pamanmu sudah kaku seperti bongkah batu,
Sebelum aku menemukan tulangnya.
Tulangnya! Belulangnya!
Dia bisa kasih satu pada troll tua malang ini,
Karena dia tidak butuh tulang keringnya."
Kata Tom, "Aku tidak paham, kenapa yang semacam kau ini
Mengambil seenaknya, tanpa permisi
Tulang kering sanak ayahku
Tulang tua itu, kembalikan!
Pakan! Lakan!
Tulang itu miliknya, meski dia sudah mati
Jadi tulang itu kembalikan!"
“Supaya lebih kenyang," kata Troll sambil tertawa,
"kumakan kau sekalian, berikut tulang keringmu juga.
Sedikit daging sebag bisa membuatku bugar!
Kucoba gigiku padamu sekarang.
Ha sekarang! Lihat sekarang!
Aku jemu mengunyah tulang dan kulit lama
Aku ingin makan kau sekarang."
Mangsa sudah tertangkap, begitu dikiranya,
Ternyata hanya angin dalam, genggamannya.
Sebelum ia sadar, Tom sudah menghindar
Dengan sepatu bot menendangnya.
Tendang dia! Kemplang dia!
Pikir Tom, tendangkan sepatu bot di pantatnya,
Biar dia tahu rasa.
Tapi... aduh, kerasnya daging dan tulang troll itu,
Lebih keras daripada bukit batu.
Ditendang berkali-kali, tidak berarti sama sekali,
Pantat troll tidak merasa apa-apa.
K'rasa apa! B'rasa apa!
Mendengar Tom mengerang, Troll tua merasa sangat lucu
Kar'na ia tahu, kaki Toni sakit luar biasa.
Kaki Tom kalah, dia pun pulanglah,
Dan kakinya tanpa bot lumpuh sudah
Tapi Troll tak peduli, dan masih duduk sendiri,
Dengan tulang yang dicuri dari pemiliknya.
Biliknya! Ciliknya!
Pantat Troll masih sama,
Dan tulang yang dicuri dari pemiliknya!


If you have not set the 'cq:designPath' property (page properties) to the path where the 'Restful API Design' lives, none of the example components will show up in the sidekick.


--- layout: post title: banana soft serve date: 2010-07-20 19:37:04.000000000 -04:00 type: post published: true status: publish categories: - frozen treats - vegan - vegetarian tags: - bananas - banana soft serve - raw - vegan - vegan ice cream meta: jabber_published: '1279669024' _oembed_3c43f84e1da5a19e3ec6a6861f9a096b: author: login: sophie email<EMAIL_ADDRESS>display_name: Pika first_name: '' last_name: '' ---
banana soft serve, originally uploaded by monpetitchoufleur.
first attempt at the infamous banana soft serve. basically just a frozen organic banana, whizzed in the food processor. (well more like loudly chop and wake up your grandma from her nap.)


I always felt The Gauntlet (aka Coyote Canyon) was underrated. The trail has given me more problems than Wolf Run, Broad Canyon, or Amatista Ledges. Maybe it is just a wheel base thing since long wheel base has an advantage on the big ledges on The Gauntlet. Unfortunately, wheelbase didn't stop Greg from rolling his Toyota pickup after slipping off one of those ledges.
The Gauntlet runs along a narrow canyon and features some big stone steps that Desert Mountain FWD club has built ramps on to make them possible. Each year these ramps wash out and the character of the trail changes. Heavy rains the night before left the canyon still very wet and muddy which made things just a bit more interesting. It got interesting quick when our tail gunner put a big hole in his radiator on the first obstacle and had to turn around.
The first obstacles where damage is common is a squeeze that has a reputation for cutting sidewalls and doing body damage. With twenty-two trucks on the trail, getting everyone through without some problems here proved impossible. I made it through clean this year, but two other trucks were not as fortunate. The damaged tires were quickly changed out or plugged to keep the group moving.
The mud on another squeeze obstacle caused the worse body damage for the day. To the right is a picture of Bob Norton shortly before putting a big dent in his drivers side door. It is rare to see a Cherokee on a trail like this and except for this incident, Bob proved to be quite nimble with it.
The trail features two water falls that the Desert Mountain FWD Club has built ramps up with just enough rocks to make it possible. The first water fall has the driver looking in the hole and the second gives the passenger the "view." Roll over here would be very unpleasant.
The only major casualty of the day was Greg's Toyota pickup. This ledge requires the driver to get on it and slowly work the front end to the right to make the sharp turn onto it. Greg was working the front end around when his passenger side tire slipped off and he rolled over onto the top. Greg crawled out and luckly he only had a cut on his hand where the wind-shield crushed over the steering wheel.
It wasn't long before we had him winched back up on the tires. After removing the shattered wind-shield, a Hi-Lift jack was used to increase the head room. The spark plugs were pulled and the engine was turned over to remove the oil that leaked into the cylinders. The trail leaders had oil absorbent materials and pails to clean up spilt fluids. After getting the plugs and wires back on right, Greg fired it up and found a better line up the ledge. He wheeled the rest of the weekend and his only complaint was about dust in the cab.


Base Name
Count
Load
Save
Query
Clear
Count
DelPos
Delete
Additions
Clear
Verbose
Count
Show Collection
Show Base
Update Base


xkbcommon
xkbcommon is a library for handling of keyboard descriptions, including loading them from disk, parsing them and handling their state. It's mainly meant for client toolkits, window systems, and other system applications;
Currently that includes:
It is also used by some XCB applications for proper keyboard support.
If you're still confused, you might want to take a look at our documentation to find out more.
Releases
Our git repository on GitHub always contains the most up-to-date development code. Patches and feedback should ideally be submitted against the latest code in git.
Our latest API- and ABI-stable release is 0.8.4.
You may find the past release announcements, including NEWS and checksums, on the wayland-devel mailing list archives:
Bugs
You are welcome to report any bugs you may encounter to the GitHub issue tracker.
Contact
xkbcommon is maintained by:- Daniel Stone<EMAIL_ADDRESS>- Ran Benita (ran234@gmail.com)


#lesson1.1 jQuery EsseTrain
/* NEW JQUERY METHOD */
//in body tag
this is jquery testing
/* OLD METHOD */
// Inserting content the old way using the DOM
window.addEventListener("DOMContentLoaded", function(evt) {
var elem = document.getElementById("content");
var para = document.createElement("p");
var text = document.createTextNode("The page just loaded.");
para.appendChild(text);
elem.appendChild(para);
});
$ ----- represents the jQuery library
And Im using the "document" keyword, which
indicates that were about to perform an operation on the page itself.
jQuery's ready() vs nativeHTML's onload
The ready function sets up an event listener for when the DOM structure of the page is fully parsed by the browser, and is
ready to be operated on. Now, this is different from the onload event, which you might be used to using, because onload
fires only after all of the page content, including images, have been loaded.
Now obviously, depending on how many images you have, and how big they are, that can take a while. The ready event allows us
to operate on the page much earlier than the load event does. So, I pass a CALLBACK function to the ready function, and this
callback function is the event handler that will be fired when the ready event is triggered.


Developed by Martin Hinshelwood as a kickstart for organizations that build software in developing their ways of working.


These libraries may have their own dependencies (for example, lxml requires libxml2). Look in setup.py for the minimum required version of each library.
Overview
Getting Started
Enter search terms or a module, class or function name.


| Project Date -- 2017
| Skills Used -- fieldwork | webdesign | project management | maps | webprogramming |
| Link to Project -- http://kindrogan.geo-blog.com/
Project Overview | Webbased Tourist Guide for Kindrogan
Role within group: Project Manager, Webdesign and Webprogramming
Prize: We won the price for the best project and presentation out of 10 groups.
This was a project during a fieldtrip to Kindrogan (Scotland) where we collected data in the field and programmed a local tourist guide for the area.
The website (www.kindrogan.geo-blog.com) displays geospatial information, photographs and descriptions of selected points of interest through an interface centred on graphical elements. This was achieved by gathering data from a variety of sources and designing maps and a website guided by design principles to make navigation intuitive and simple. The design was followed up with user testing and subsequent improvements.
Example Screenshots | www.kindrogan.geo-blog.com


Upon being very simple in the first scenario to authenticate at Server 1 as attacker, Client and Server 1 elaborate a more complex method now. Both agree upon a list of passwords that are to be dealt with step-by-step. Every time a client wants to authenticate he will send the current password to Server 1. This compares it with the corresponding entry on the list. If matched it accepts the client’s identity and he is authenticated. Accordingly, both delete the password from their lists.
Your task as attacker is, again, to find acceptance by Server 1 as Client. This time simple tapping will not help you further. Please take note of the hint that you are still in a position to intervene with the protocol procedure. If you fail to find a solution you can get one here.
One-time passwords are not as commonly used as normal passwords given that it requires great effort due to the necessary interchange of password lists. The most well-known example is TANs for online banking. For each transaction (for example a bank transfer) a TAN must be entered in addition to the PIN.


PEM Task Validator
Fill the following form with the URLs you would like to test (one URL per line):
http://eroux.fr/bebras-platform/teacherInterface/bebras-tasks/2011/2011-FR-06/index.html
Run jshint
Cross domain
Démarrer
Ok
Non ok
I don't know
Select report for copy


Visualization of the k-Means Clustering Algorithm. Use the sliders above to adjust the value of k and the number of points. The algorithm partitions all n points into k clusters by:
- Picking k random points from the pool to use as the inital means
- Grouping the rest of the points by the mean they're closest to
- moving each mean to the center of their clusters
- repeating steps 2 and 3 until the assignments no longer change
When convergence has been reached – and the means haven't moved from one step to the next – the red box around the perimiter will turn green.


|
QuantLib: a free/open-source library for quantitative finance
Fully annotated sources - version 1.30
|
Arguments for cliquet option calculation More...
#include <ql/instruments/cliquetoption.hpp>
Public Member Functions | |
| arguments () | |
| void | validate () const override |
Public Attributes | |
| Real | accruedCoupon |
| Real | lastFixing |
| Real | localCap |
| Real | localFloor |
| Real | globalCap |
| Real | globalFloor |
| std::vector< Date > | resetDates |
Arguments for cliquet option calculation
Definition at line 63 of file cliquetoption.hpp.
| arguments | ( | ) |
Definition at line 65 of file cliquetoption.hpp.
|
override |
| Real accruedCoupon |
Definition at line 72 of file cliquetoption.hpp.
| Real lastFixing |
Definition at line 72 of file cliquetoption.hpp.
| Real localCap |
Definition at line 73 of file cliquetoption.hpp.
| Real localFloor |
Definition at line 73 of file cliquetoption.hpp.
| Real globalCap |
Definition at line 73 of file cliquetoption.hpp.
| Real globalFloor |
Definition at line 73 of file cliquetoption.hpp.
| std::vector<Date> resetDates |
Definition at line 74 of file cliquetoption.hpp.