Has anyone had success reading a Trilliant Smart Meter? There appears to be no LED pulse. I assume the Zigbee or what ever they use is encrypted and Ontario Hydro won't share. The other issue is that it is mounted on a pole 50 meters from my home.
Picture of Meter attached
Re: Trilliant Smart Meter
According to this pdf sounds like they disable the IR LED emitter 24 hours after power up!
http://lib.store.yahoo.net/lib/wind-sun/Focus-technical-manual.pdf
7. Meter Calibration
7.1.1. Calibration LED
The FOCUS kWh has an infrared light emitting diode (LED) that emits energy pulses. The calibration
LED is deactivated 24 hours after the meter powers up. Once reactivated (recycle power), the
calibration LED remains active for 24 hours.
The calibration LED is accessible from the front of the meter cover. The user can fix an LED pickup
device to the front of the meter.
The calibration LED is enabled to produce stable pulses in no more than two seconds following meter
power up.
The calibration LED produces pulses in response to energy whether it is delivered (positive) or received
(negative).
Registration verification testing requires no more than 30 seconds at full load.
Re: Trilliant Smart Meter
I believe there is a device on the market that uses a camera and OCR to read the display - how practical that would be outdoors on a pole 50 m away, I'd rather not think about!
It looks as if your only realistic solution is CTs where the cable comes into your home.
Re: Trilliant Smart Meter
Yes, but if the bottom bar of all your digits aren't working then the OCR will fail! I really should complain to Hydro One.
On another note, I have started reading up on the "Green Button" that is in our hydro one account that will download an xml file of your usage, apparently you can give other companies permission right now to get your data and use it in their apps. so there has to be a way we can query our hydro one accounts via a http link with account permissions and then get the xml, we can then parse this and insert the days data into emoncms every so often as a cron job... more research needed cause it currently seems like there is no way to automate that because of a CAPTCHA... its not really clear...
here is the link to the green button stuff
http://www.greenbuttondata.org/
http://www.hydroone.com/MyHome/MyAccount/Manage/GreenButton/Pages/Defaul...
Re: Trilliant Smart Meter
Hmmm... Definitely worth looking at. Maybe we can do something in Node-red and pass to emoncms.
Jeff


| rlang_backtrace_on_error {rlang} | R Documentation |
Errors thrown with abort()
automatically save a backtrace that
can be inspected by calling last_error()
. Optionally, you can
also display the backtrace alongside the error message by setting
the option rlang_backtrace_on_error
to one of the following
values:
"reminder"
: Display a reminder that the backtrace can be
inspected by calling last_error()
.
"branch"
: Display a simplified backtrace.
"collapse"
: Display a collapsed backtrace tree.
"full"
: Display the full backtrace tree.
Call options(error = rlang::entrace)
to instrument base
errors with rlang features. This handler does two things:
It saves the base error as an rlang object. This allows you to
call last_error()
to print the backtrace or inspect its data.
It prints the backtrace for the current error according to the
rlang_backtrace_on_error
option.
# Display a simplified backtrace on error for both base and rlang # errors: # options( # rlang_backtrace_on_error = "branch", # error = rlang::entrace # ) # stop("foo")


--- layout: page title: About header-img: "img/about-bg.png" ---
Place for my blogging assignments during my Flatiron course.


W3 Immersive Caption Community Group - Subtitle Display
The Immersive caption community group, led by Christopher Patnoe, have created a number of demonstrations of captioning methods that can be used in XR.
BBC Research - Subtitle Display
BBC R&D have conducted exploratory work in how subtitles can be placed in 360 video, with this looking at a number of different options (evenly spaced, follow head, follow with lag, appear in front).
Oculus - Vacation Simulator - Subtitle Update
Vacation Simulator is a popular game that is available for the Oculus Quest VR headset. A recent update to this game brought in-game subtitles.


Clippy lints documentation
Loading…
Error loading versions!
You can always try to get
the master branch docs
.
Available versions
{{normalizeVersionDisplay(version)}}


from {{vm.mail.mail_created_by.user_name_full}} {{ vm.mail.mail_created | date:"d MMM y 'at' h:mm a" }}
to Me {{mail_to.user_name_full}}
({{vm.mail.base_file.length}} files)
{{vm.mail.body}}
from {{reply.reply_created_by.user_name_full}} {{ reply.reply_created | date:"d MMM y 'at' h:mm a" }}
to Me {{reply_to.user_name_full}}
({{vm.mail.base_file.length}} files)
{{reply.body}}


The Hardy-Weinberg Equilibrium Model
The Hardy-Weinberg equilibrium model (or law, or principle) states that the frequencies of alleles and genotypes in a population will remain constant over time in the absence of other evolutionary forces. These forces are:
- Genetic drift
- Mutation
- Migration
- Selection (natural or otherwise)
Assumptions of the Model
- None of the the four forces listed above are brought to bear on the model: in effect, evolution does not take place.

- There is an infinite population size (therefore it is not susceptible to genetic drift).
- Generations are non-overlapping, i.e. when a new generation is born, the old generation dies out.
- Body cells are diploid.
Clearly, this is not a realistic scenario, so of what use is the Hardy-Weinberg equilibrium model?
The answer is that it establishes a null model, against which changes in a system can be measured after the application of one or all of the four forces listed above.
Possible Genotypes in a Diploid Cell
To keep things trackable, we focus on one gene, e.g. the one for eye colour *, where the alleles are:
- B = brown eyes (dominant)
- b = blue eyes (recessive)
By convention a capital letter represents the dominant allele, and a lower-case letter the recessive allele.
* This is simplified for the sake of the example. In reality, eye-colour is determined by multiple alleles.
| Father | |||
|---|---|---|---|
| B | b | ||
| Mother | B | BB | bB |
| b | Bb | bb |
The possible genotypes for the B and b alleles are:
- BB: homozygous dominant, brown eyes.
- Bb/bB: heterozygous, brown eyes (the dominant allele will always trump the recessive allele).
- bb: homozygous recessive, blue eyes.
Calculating Genotype Frequencies
We can calculate the genotype frequencies for a population only if we know the percentage of that population in which the homozygous recessive genotype (bb) has been expressed.
That is, in any population we could, in theory, count all the people who had the recessive genotype (bb, blue eyes).
The same could not be done for people with brown eyes: they might have either the homozygous dominant genotype (BB) or the heterozygous genotype (Bb/bB).
The Hardy-Weinberg Equation
The Hardy-Weinberg equation is used to measure genotype frequencies in a population that is in equilibrium, i.e. not evolving.
As can be seen from the following graphic,
- P2 is the frequency of the homozygous dominant genotype (BB)
- 2Pq is the frequency of the heterozygous genotype (Bb/bB) and
- q2 is the frequency of the homozygous recessive genotype (bb).
- The total value is always 1.
Furthermore:
- P is the frequency of the dominant allele (B)
- q is the frequency of the recessive allele (b)
- The total value is always 1.
Example Problem
Twenty individuals, out of a population of a hundred, have blue eyes. The rest have brown eyes. For the population as a whole, what is the frequency of:
- the dominant B allele?
- the recessive b allele?
- the homozygous recessive bb genotype?
- the homozygous dominant BB genotype?
- the heterozygous Bb/bB genotype?
Steps to the Solution
We have already been supplied with the information that twenty out of a hundred individuals have blue eyes, i.e. the homozygous recessive genotype (bb) is carried by 20% of the population.
The corresponding genotype frequency, q2 is: 1. q2 = 20 ÷ 100 = 0.20
From this we can calculate the q allele frequency: 2. q = √q2 = 0.45
From P + q = 1, we can derive the value of P: 3. P + 0.45 = 1 ⇒ 1.00 − 0.45 = P ⇒ P = 0.55
By squaring P we get the frequency of the BB genotype: 4. P2 = 0.55 × 0.55 = 0.30
Finally, we can get the frequency of the Bb/bB genotype by using the Hardy-Weinberg equation: 5. 2Pq = 1 − P2 − q2 = 1.00 − 0.30 − 0.20 = 0.50
Note: we can confirm that the genotype frequencies add up correctly in the Hardy-Weinberg equation: P2 + 2Pq + q2= 0.30 + 0.50 + 0.20 = 1
Answers
In summary, the frequency of the:
- dominant B allele is 0.55,
- recessive b allele is 0.45,
- homozygous recessive bb genotype is 0.20,
- homozygous dominant BB genotype is 0.30, and
- heterozygous Bb/bB genotype is 0.50.
Calculator
To use the calculator you must already know the percentage of the population expressing the homozygous recessive (bb) genotype.
Note: both genotype and phenotype totals do not always equal 1 or 100% respectively, due to rounding. This is expected.
Glossary
- Evolution
- The change in allele frequencies in a population over time.
- Natural Selection
- The change in allele frequencies in a population over time as a result of their fitness for reproduction.
- Genetic Drift
- The change in allele frequencies in a population over time due to random events.
- Allele
- Version of a gene, e.g. the gene for eye colour.
- Genotype
- The combination of two related alleles in a cell.
- Phenotype
- The expression of the gene in the organism, e.g. brown eyes.
- Allele frequency
- The proportion of alleles in a gene pool that are either dominant, e.g. code for brown eyes, or recessive, e.g. code for blue eyes.
- Genotype frequency
- The proportion of allele combinations in a cell.
- Homozygous dominant genotype
- Both the allele inherited from the mother and the one inherited from the father are dominant.
- Homozygous recessive genotype
- Both the allele inherited from the mother and the one inherited from the father are recessive.
- Heterozygous genotype
- One allele is dominant and one is recessive.
Further information
I found the following Bozeman Science videos on YouTube very helpful:


This section discusses the different types of properties, and the kind of data that you can assign to each one of them.
A number property is pretty simple to understand. You can assign a single number of course:
radius: 100
This will result in that property having that value at all times.
Or you can assign a 2-element array:
radius: [100, 200]
This smoothly interpolates the value from the first element to the second one over the course of the animation.
An additional method is to assign a larger array of values to the property:
radius: [10, 40, 70, 100]
In this case, the property will cycle through the values in the array as the animation progresses. Note, that it will NOT smoothly interpolate between the values. In the example above where there are four values, the first value will be used while t
is between 0 and 0.25. When t
is between 0.25 and 0.5, the second value will be assigned to the property, and so on, with the third value for t
between 0.5 and 0.75 and value four for 0.75 - 1.0
Finally, if none of these work for you, you can assign a function to the property, in the format:
radius: function(t) {
return someValue;
}
This is the most powerful method, allowing you to do whatever calculations you want based on the t
value, and return any value you want. For example, the following code uses a sine wave to oscillate and object back and forth across the canvas, based on t
:
list.addCircle({
x: function(t) {
return 100 + Math.sin(t * Math.PI * 2) * 100;
},
y: [0, 200],
radius: 20
});
Remember that t
will vary from 0 to 1, so here we multiply it by Math.PI * 2
to get an angle that will complete a full cycle of the sine wave.
A string property is also quite simple. Again, you can assign a simple string:
text: "hello"
You can also assign an array of values to the property:
text: ["hello", "goodbye"]
or...
text: ["small", "medium", "large"]
This will function in the same way as a number array, with the difference that even a 2-element array will work this way.
In the first example, text will be assigned the string "hello" for the first half of the animation, and "goodbye" for the last half.
In the second example, text will be assigned "small" for the first third of the animation, "medium" for the middle third, and "large" for the last third
And again you can assign a function to the property, in the format:
text: function(t) {
return someString;
}
For example:
text: function(t) {
return "t = " + t;
}
This will return a string telling you the current value of t, for whatever that's worth. The sky is the limit here.
You can simply assign any valid color string, as you would in addressing Canvas directly. Examples:
Hex strings:
fillStyle: "#ff0000"
or...
fillStyle: "#f00"
rgb strings:
fillStyle: "rgb(255, 0, 0)"
rgba strings:
fillStyle: "rgba(255, 0, 0, 0.5)"
CSS color named color strings:
fillStyle: "fuchsia"
To smoothly animate between two colors, supply a 2-element array:
fillStyle: ["#ff0000", "#00ff00"]
This works with ALL kinds of strings described above. You can even mix and match them. All of the following are exactly equivalent and will create a smooth interpolation:
fillStyle: ["#ff0000", "green"]
fillStyle: ["#f00", "rgb(0, 255, 0)"]
fillStyle: ["red", "rgba(0, 255, 0, 1)"]
fillStyle: ["rgb(255, 0, 0)", "#00ff00"]
fillStyle: ["rgba(255, 0, 0, 1)", "#0f0"]
Even something as crazy as this works:
fillStyle: ["burlywood", "mediumorchid"]
Yes, that will animated between those two colors just fine. CSS color names are also case insensitive, so you can type "burlywood", "BurlyWood", "BURLYWOOD" or even "bUrLyWoOd" if you are so inclined.
A word on alpha channels. You can specify the alpha channel of a color two ways:
1. With an rgba string: "rgba(255, 0, 0, 0.5)"
2. With a hex string: "#80ff0000"
.
Both of the above examples will give you a red color with 50% transparency. Specifying colors any other way will give you full alpha.
"red"
, "#ff0000"
, "#f00"
and "rgb(255, 0, 0)"
will all give you a fully opaque red, as will "#ffff0000"
and "rgba(255, 0, 0, 1)"
.
You can animate between alpha values with any of these combinations as well.
fillStyle: ["rgba(255, 0, 0, 1)", "#00ff0000"]
fillStyle: ["#f00", "rgba(255, 0, 0, 0)"]
fillStyle: ["#ff0000", "#00ff0000"]
fillStyle: ["#ffff0000", "rgba(255, 0, 0, 0)"]
All of the above are equivalent and will create an animation from fully opaque red to fully transparent red.
You can also create an array with more than two elements:
fillStyle: ["#ff0000", "#00ff00", "#0000ff"]
In this case, the colors would not be interpolated, but would jump from one to the other.
And of course, you can assign a function. This function must return a valid color string! If you're using numerical values to calculate a color, you need to convert that back into a color string before returning it. You can use the color module described in the Styles section to do this easily with the color.num
method.
Boolean values are pretty simple. They're either true or false. Single values are easy:
stroke: true
Like strings, you can assign an array of any length:
stroke: [true, false, true, true]
Here, stroke would be true for the first 25% of the animation, false for the next 25% and true again for the remainder.
And like other values, you use a function:
stroke: function(t) {
return trueOrFalse;
}
There are two cases for the array type - the lineDash
style and the path
property of the Path object. Both of these require an array of values to work properly. So a single array cannot be used to create an animation. We need two arrays - one containing the starting values, and one with the end values.
So, in the case of lineDash
, assigning an array does NOT create an animation. It just creates a regular line dash:
lineDash: [50, 10, 20, 10]
This will create a static line dash. To animate the dash, you need to assign an array of arrays!
lineDash: [[50, 10, 20, 10], [20, 10, 50, 10]]
This will actually animate the dash to reverse the 50-pixel and 20-pixel segments.
The same applies to the Path object. It needs an array of points. So if you want to animate a path, you need to supply a starting array, and an ending array.
And, like all the others, you can assign a function that returns an array:
lineDash: function(t) {
return someArray;
}


10 November 2000
Disease Outbreak Reported
As of 10 November, the Ugandan Ministry of Health has reported cumulative figures for Gulu district of 301 cases, including 99 deaths.
Of the three laboratory confirmed cases in Mbarara district (see previous report), the two most recently diagnosed cases have died.


Inspection Commands
By the end of this exercise, you should be able to:
- Gather system level info from the docker engine
- Consume and format the docker engine's event stream for monitoring purposes
Inspecting System Information
We can find the
info
command undersystem
. Execute:[centos@node-3 ~]$ docker system info
This provides some high-level information about the docker deployment on the current node, and the node itself. From this output, identify:
- how many images are cached on your machine?
- how many containers are running or stopped?
- what version of containerd are you running?
- whether Docker is running in swarm mode?
Monitoring System Events
There is another powerful system command that allows us to monitor what's happening on the Docker host. Execute the following command:
[centos@node-3 ~]$ docker system events
Please note that it looks like the system is hanging, but that is not the case. The system is just waiting for some events to happen.
Open a second connection to
node-3
and execute the following command:[centos@node-3 ~]$ docker container run --rm alpine echo 'Hello World!'
and observe the generated output in the first terminal. It should look similar to this:
2017-01-25T16:57:48.553596179-06:00 container create 30eb63 ... 2017-01-25T16:57:48.556718161-06:00 container attach 30eb63 ... 2017-01-25T16:57:48.698190608-06:00 network connect de1b2b ... 2017-01-25T16:57:49.062631155-06:00 container start 30eb63 ... 2017-01-25T16:57:49.065552570-06:00 container resize 30eb63 ... 2017-01-25T16:57:49.164526268-06:00 container die 30eb63 ... 2017-01-25T16:57:49.613422740-06:00 network disconnect de1b2b ... 2017-01-25T16:57:49.815845051-06:00 container destroy 30eb63 ...
Granular information about every action taken by the Docker engine is presented in the events stream.
If you don't like the format of the output then we can use the
--format
parameter to define our own format in the form of a Go template. Stop the events watch on your first terminal withCTRL+C
, and try this:[centos@node-3 ~]$ docker system events --format '--> {{.Type}}-{{.Action}}'
now the output looks a little bit less cluttered when we run our alpine container on the second terminal as above.
Finally we can find out what the event structure looks like by outputting the events in
json
format (once again after killing the events watcher on the first terminal and restarting it with):[centos@node-3 ~]$ docker system events --format '{{json .}}' | jq
which should give us for the first event in the series after re-running our alpine container on the other connection to
node-3
something like this (note, the output has been prettyfied for readability):{ "status":"create", "id":"95ddb6ed4c87d67fa98c3e63397e573a23786046e00c2c68a5bcb9df4c17635c", "from":"alpine", "Type":"container", "Action":"create", "Actor":{ "ID":"95ddb6ed4c87d67fa98c3e63397e573a23786046e00c2c68a5bcb9df4c17635c", "Attributes":{ "image":"alpine", "name":"sleepy_roentgen" } }, "time":1485385702, "timeNano":1485385702748011034 }
Conclusion
In this exercise we have learned how to inspect system wide properties of our Docker host by using the docker system info
command; this is one of the first places to look for general config information to include in a bug report. We also saw a simple example of docker system events
; the events stream is one of the primary sources of information that should be logged and monitored when running Docker in production. Many commercial as well as open source products (such as Elastic Stack) exist to facilitate aggregating and mining these streams at scale.


{% extends "basic.html" %} {% block title %} About Us | BlogNow {% endblock title %} {% load static %} {% block body %}
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.


A defined benefit pension guarantees workers a fixed payment throughout their years of retirement. Though increasingly rare in the private sector, it remains the standard form of retirement benefit provided by state and local governments. Pensions are now one of the most hotly-debated topics in public finance, due to their rising costs and generosity relative to what most taxpayers receive.
The pension calculator tool is intended to inform the pension debate. In addition to estimating the pension that you would collect after a career in government, the calculator will also provide an estimate of the total annuity cost, or how much someone would need to save to replicate that guaranteed income stream in retirement. To compare generosity of benefits between states, go back to the main page and click on the "Compare States" tab.


public class HB
extends java.lang.Object
HBAction
's HBAction.action(HB)
method, where users can play sounds, create network listeners, send network messages, and perform other actions.| Modifier and Type | Class and Description |
|---|---|
static class |
HB.AccessMode |
static class |
HB.DeviceType
The Type of Hardware that this instance of HappyBrackets is running on
|
static interface |
HB.StatusChangedListener |
| Modifier and Type | Field and Description |
|---|---|
net.beadsproject.beads.core.AudioContext |
ac
The
AudioContext used by HappyBrackets. |
static BroadcastManager |
broadcast
The
BroadcastManager object used to communicate with other devices using 1-many broadcasts. |
net.beadsproject.beads.ugens.Clock |
clock
The
Clock used by HappyBrackets. |
net.beadsproject.beads.ugens.Envelope |
clockInterval
The
Envelope that controls the clock interval. |
NetworkCommunication |
controller
The
NetworkCommunication object used to communicate with the controller. |
static HB |
HBInstance |
net.beadsproject.beads.ugens.Envelope |
masterGainEnv
The
Envelope used to control the master gain. |
net.beadsproject.beads.ugens.PolyLimit |
pl
The
PolyLimit that controls polyphony. |
java.util.Random |
rng
A random number generator for general use.
|
java.util.Hashtable<java.lang.Class<? extends Sensor>,Sensor> |
sensors
A
Hashtable to store sensors. |
java.util.Hashtable<java.lang.String,java.lang.Object> |
share
A
Hashtable to store generic objects. |
Synchronizer |
synch
The
Synchronizer object used to manage time synch between devices. |
| Constructor and Description |
|---|
HB(net.beadsproject.beads.core.AudioContext _ac)
Creates the HB.
|
HB(net.beadsproject.beads.core.AudioContext _ac,
HB.AccessMode _am)
Creates the HB.
|
HB(net.beadsproject.beads.core.AudioContext _ac,
HB.AccessMode _am,
boolean start_network)
Creates the HB.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addBroadcastListener(de.sciss.net.OSCListener listener)
Add a new
OSCListener , listening to broadcasts. |
void |
addControllerListener(de.sciss.net.OSCListener listener)
Add a new
OSCListener , listening to incoming messages from the controller. |
boolean |
addDeviceAddress(java.lang.String name,
java.net.InetAddress address)
Associate a device name with an
InetAddress |
void |
addDeviceConnectedEventListener(DeviceConnectedEventListener listener)
Add a
DeviceConnectedEventListener to be informed when a new device is detected on the network |
void |
addStatusChangedListener(HB.StatusChangedListener listener)
Add Listeners for status change event
|
static void |
adjustScheduleTime(double amount,
long duration)
Adjust the
HBScheduler scheduler time |
void |
attemptHBActionFromClassName(java.lang.String class_name)
Attempts to load the given class as an
HBAction . |
void |
broadcast(java.lang.String string,
java.lang.Object... args)
Broadcast an
OSCMessage msg over the multicast group. |
void |
clearRegisteredVariable(java.lang.String name)
Erases @
Object with the given name from the registered memory store. |
void |
clearSound()
Clears all of the audio that is currently playing (connected to output).
|
static Clock |
createClock(double interval)
Create a new Clock using HappyBrackets scheduler
|
static DynamicControl |
createControlBuddyPair(java.lang.Object parent_sketch,
ControlType control_type,
java.lang.String name,
java.lang.Object initial_value,
java.lang.Object min_value,
java.lang.Object max_value)
A dynamic control pair that can be accessed from outside
it is created with the sketch object that contains it along with the type
only a single dynamic control is returned becasue the buddy is a mirror
|
static DynamicControl |
createDynamicControl(ControlType control_type,
java.lang.String name)
A dynamic control that can be accessed from outside
it is created with the sketch object that contains it along with the type
|
static DynamicControl |
createDynamicControl(ControlType control_type,
java.lang.String name,
java.lang.Object initial_value)
A dynamic control that can be accessed from outside
it is created with the sketch object that contains it along with the type
|
static DynamicControl |
createDynamicControl(ControlType control_type,
java.lang.String name,
java.lang.Object initial_value,
java.lang.Object min_value,
java.lang.Object max_value)
A dynamic control that can be accessed from outside
it is created with the sketch object that contains it along with the type
|
static DynamicControl |
createDynamicControl(java.lang.Object parent_sketch,
ControlType control_type,
java.lang.String name)
A dynamic control that can be accessed from outside
it is created with the sketch object that contains it along with the type
|
static DynamicControl |
createDynamicControl(java.lang.Object parent_sketch,
ControlType control_type,
java.lang.String name,
java.lang.Object initial_value)
A dynamic control that can be accessed from outside
it is created with the sketch object that contains it along with the type
|
static DynamicControl |
createDynamicControl(java.lang.Object parent_sketch,
ControlType control_type,
java.lang.String name,
java.lang.Object initial_value,
java.lang.Object min_value,
java.lang.Object max_value)
A dynamic control that can be accessed from outside
it is created with the sketch object that contains it along with the type
|
static de.sciss.net.OSCMessage |
createOSCMessage(java.lang.String name,
java.lang.Object... args)
Creates a valid OSC message.
|
static HB.DeviceType |
detectDeviceType()
Detect the type of device we are running by reading specific files through filesystem
If detected, the new
HB.DeviceType is stored |
void |
doAtTime(double time,
Delay.DelayListener listener) |
void |
doAtTime(double time,
java.lang.Object param,
Delay.DelayListener listener) |
void |
doAtTime(java.lang.Runnable runnable,
long time)
Deprecated.
|
void |
fadeOutClearSound(float fadeTime)
Like
clearSound() but with a fade out of the specified duration before clearing. |
void |
fadeOutReset(float fadeTime)
Like
reset() but with a fade out of the specified duration before clearing. |
Sensor |
findSensor(java.lang.Class sensorClass) |
static void |
flashLed(int num_blinks,
int interval)
FLash the onboard LED
|
java.lang.String |
friendlyName()
Returns a freindly name for the device.
|
java.lang.Object |
get(java.lang.String s)
Gets an @
Object with the given name from the global memory store. |
static net.beadsproject.beads.core.UGen |
getAccelerometer_X()
Return a UGen that is mapped to Accelerometer X value
|
static net.beadsproject.beads.core.UGen |
getAccelerometer_X(double scale_min,
double scale_max)
Return a UGen that is mapped to Accelerometer X value
|
static net.beadsproject.beads.core.UGen |
getAccelerometer_Y()
Return a UGen that is mapped to Accelerometer Y value
|
static net.beadsproject.beads.core.UGen |
getAccelerometer_Y(double scale_min,
double scale_max)
Return a UGen that is mapped to Accelerometer Y value
|
static net.beadsproject.beads.core.UGen |
getAccelerometer_Z()
Return a UGen that is mapped to Accelerometer Z value
|
static net.beadsproject.beads.core.UGen |
getAccelerometer_Z(double scale_min,
double scale_max)
Return a UGen that is mapped to Accelerometer Z value
|
static net.beadsproject.beads.core.UGen |
getAudioOutput()
Get the default HappyBrackets audio output as a UGen
|
net.beadsproject.beads.core.Bead |
getBead(java.lang.String s)
Gets an object of type @
Bead from the global memory store. |
java.net.InetAddress |
getDeviceAddress(java.lang.String name)
Return the
InetAddress associated with this device name that we can address that device with
If the device is this, then it will return the loopback address |
static HB.DeviceType |
getDeviceType()
The Type of Device this instance of HappyBrackets is running on
|
float |
getFloat(java.lang.String s)
Gets an object of type float from the global memory store.
|
float |
getFloatArg(de.sciss.net.OSCMessage m,
int index)
Gets a float arg from an
OSCMessage . |
static double |
getFutureSchedulerTime(double milliseconds)
Get a scheduler time in the future from
getSchedulerTime() . |
float |
getGain()
Get the current gain of the device
|
static net.beadsproject.beads.core.UGen |
getGyroscopePitch()
Return a UGen that is mapped to Gyroscope Pitch value
|
static net.beadsproject.beads.core.UGen |
getGyroscopeRoll()
Return a UGen that is mapped to Gyroscope Roll value
|
static net.beadsproject.beads.core.UGen |
getGyroscopeYaw()
Return a UGen that is mapped to Gyroscope Yaw value
|
int |
getInt(java.lang.String s)
Gets an object of type int from the global memory store.
|
java.util.Collection<java.lang.String> |
getKnownDeviceNames()
Get the names of the devices that we know are on the network.
|
MuteControl |
getMuteControl()
Return the Mute Control
|
static int |
getNumOutChannels()
Get the number of audio channels on the default HappyBrackets audio output
This parameter is dependant upon the configuration of the device |
static net.beadsproject.beads.ugens.PolyLimit |
getPolyLimitedOutput()
Get the
PolyLimit that is connected to the HappyBrackets audio output as a UGen |
java.lang.Object |
getRegisteredVariable(java.lang.String name)
Gets an @
Object with the given name from the registered memory store. |
static HBScheduler |
getScheduler()
Get the global
HBScheduler |
static double |
getSchedulerTime()
Get the amount of time elapsed since we set reference time in
HBScheduler |
java.net.InetAddress |
getSendingController(java.lang.Object classObject)
Get the
InetAddress of the controller that sent the class
If the class was loaded on startup it will be null |
Sensor |
getSensor(java.lang.Class sensorClass)
Gets the sensor with the given sensor ID.
|
java.lang.String |
getStatus()
Returns the current status @
String of the device. |
java.lang.String |
getString(java.lang.String s)
Gets an object of type @
String from the global memory store. |
double |
getSynchTime()
Returns the system time adjusted according to the result of any device synch attempts.
|
net.beadsproject.beads.core.UGen |
getUGen(java.lang.String s)
Gets an object of type @
UGen from the global memory store. |
boolean |
hasClassesLoaded()
Determine if we have any classes Loaded
|
static boolean |
isEnableSimulators()
Return whether we will displaysimulator sensors if no hardware sensor is found
|
static boolean |
isOurAddress(java.net.InetAddress address)
Detect whether this
InetAddress is actually this device |
boolean |
messageIs(de.sciss.net.OSCMessage m,
java.lang.String match)
Checks for an exact match to a string.
|
boolean |
muteAudio(boolean mute)
Perform a mute or Unmute of Output
|
int |
myConnectPort() |
int |
myIndex()
Returns the assigned ID of the current device.
|
java.lang.String |
pattern(net.beadsproject.beads.core.Bead pattern)
Adds a new pattern
Bead object to the Clock . |
java.lang.Object |
perm(java.lang.String id,
java.lang.Object o)
Stores an object in the global memory store.
|
void |
pullConfigFileFromController()
Notifies the device that it should try to pull the device config file from the controller.
|
void |
put(java.lang.String s,
java.lang.Object o)
Puts an
Object into the global memory store with a given name. |
static void |
rebootDevice()
Reboots the device immediately.
|
void |
registerVariable(java.lang.String name,
java.lang.Object value)
Puts an
Object into the global memory store with a given name. |
void |
reset() |
void |
resetLeaveSounding()
Like
reset() except that any sounds currently playing are kept. |
static boolean |
runDebug(java.lang.Class<?> action_class)
Run HB in a debug mode so we can debug sample code in INtelliJ
run the command like this: HB.runDebug(MethodHandles.lookup().lookupClass());
|
void |
sendAliveMessage()
Force device to send alive message to all controllers
|
static boolean |
sendScheduleChange(double amount,
long duration,
java.util.Collection<java.lang.String> targets)
Send a schedule adjustment message to one or more devices.
|
static boolean |
sendScheduleSetTime(double new_time,
java.util.Collection<java.lang.String> targets)
Send a Schedule Set time to one or more targets
|
static void |
sendStatus(java.lang.String status)
Static version of
sendStatus(String) . |
void |
sendToController(java.lang.String string,
java.lang.Object... args)
Send an
OSCMessage to the controller. |
void |
setAliveTimeInterval(int milliseconds)
Sets how often in milliseconds this device will send an alive message to all
controllers.
|
static boolean |
setDeviceLedValue(boolean on)
Return the Integer value required to turn the onboard LED on or off based on stored
HB.DeviceType |
static void |
setEnableSimulators(boolean enableSimulators)
Set whether we will displaysimulator sensors if no hardware sensor is found
|
void |
setFriendlyName(java.lang.String name)
We will set the friendly of the device here.
|
void |
setGain(float new_gain,
float millseconds)
Set the output gain of the device in an envelope.
|
void |
setMyIndex(int val)
We will set the index of the device here.
|
static void |
setScheduleTime(double new_time)
Set the global
HBScheduler scheduled time to this time |
void |
setStatus(java.lang.String s)
Sets the status @
String of this device. |
void |
setTCPServerPort(int tcpServerPort)
Set the TCP Osc Port given to us by operating system
We will pass it to the controller so it knows how to connect to us
|
void |
setUseEncryption(boolean enable)
Whether we will use encryption in transferring class data
|
static void |
shutdownDevice() |
java.lang.String |
sound(net.beadsproject.beads.core.UGen snd)
Adds a UGen to
PolyLimit connected to the audio output. |
void |
startAudio()
Causes audio processing to start.
|
void |
sychronisedBleep(double schedule_time)
Perform a bleep at the network scheduled time.
|
void |
syncAudioStart(int intervalForSyncAction)
Deprecated.
Syn functions removed
|
static double |
synchroniseClocks()
Synchronise
HBScheduler timer with the system time on next tick |
static double |
synchroniseClocks(long slew_time)
Synchronise global
HBScheduler timer with the system time |
void |
testBleep()
Produces a single short test bleep on the device.
|
void |
testBleep3()
Produces a short series of 3 bleeps on the device.
|
void |
testBleep6()
Produces a short series of 6 bleeps on the device to indicate an error.
|
public static HB HBInstance
public final net.beadsproject.beads.core.AudioContext ac
AudioContext
used by HappyBrackets. This is autorun by default from the start script, but that can be controlled by a commandline flag.public final net.beadsproject.beads.ugens.Clock clock
Clock
used by HappyBrackets. This is up and running, with a default interval of 500ms and default "ticks per beat" of 16.public final net.beadsproject.beads.ugens.Envelope clockInterval
Envelope
that controls the clock interval. Default value is 500ms.public final net.beadsproject.beads.ugens.PolyLimit pl
PolyLimit
that controls polyphony. This is used for sounds added with the sound(UGen)
method. Default number of voices is 4.public final net.beadsproject.beads.ugens.Envelope masterGainEnv
Envelope
used to control the master gain. Default value is 1.public final java.util.Hashtable<java.lang.Class<? extends Sensor>,Sensor> sensors
Hashtable
to store sensors.public final java.util.Hashtable<java.lang.String,java.lang.Object> share
Hashtable
to store generic objects.public final java.util.Random rng
public final NetworkCommunication controller
NetworkCommunication
object used to communicate with the controller. The important methods are provided directly from HB
, e.g., sendToController(String, Object...)
and addControllerListener(OSCListener)
.public static BroadcastManager broadcast
BroadcastManager
object used to communicate with other devices using 1-many broadcasts. The important methods are provided directly from HB
, e.g., broadcast(String, Object...)
and addBroadcastListener(OSCListener)
.public final Synchronizer synch
Synchronizer
object used to manage time synch between devices. The important methods are provided directly from HB
, e.g., doAtTime(Runnable, long)
and getSynchTime()
.public HB(net.beadsproject.beads.core.AudioContext _ac) throws java.io.IOException
_ac
- the AudioContext
for audio.java.io.IOException
- if any of the core network set up fails. Could happen if port is already in use, or if setting up multicast fails.public HB(net.beadsproject.beads.core.AudioContext _ac, HB.AccessMode _am) throws java.io.IOException
_ac
- the AudioContext
for audio._am
- The access mode.java.io.IOException
- if any of the core network set up fails. Could happen if port is already in use, or if setting up multicast fails.public HB(net.beadsproject.beads.core.AudioContext _ac, HB.AccessMode _am, boolean start_network) throws java.io.IOException
_ac
- the AudioContext
for audio._am
- The access mode.start_network
- true if we are to start networkingjava.io.IOException
- if any of the core network set up fails. Could happen if port is already in use, or if setting up multicast fails.public MuteControl getMuteControl()
public static boolean isEnableSimulators()
public static void setEnableSimulators(boolean enableSimulators)
enableSimulators
- true if we want to display simulator controlspublic void setTCPServerPort(int tcpServerPort)
tcpServerPort
- the Port we need to connect to TCP serverpublic void setUseEncryption(boolean enable)
enable
- true if we want to use encryptionpublic java.net.InetAddress getSendingController(java.lang.Object classObject)
InetAddress
of the controller that sent the class
If the class was loaded on startup it will be nullclassObject
- the class that was sent by the controllerpublic boolean hasClassesLoaded()
public void addStatusChangedListener(HB.StatusChangedListener listener)
listener
- The listener to addpublic static boolean setDeviceLedValue(boolean on)
HB.DeviceType
on
- true if turning LED on, false if Turning Offpublic static HB.DeviceType getDeviceType()
public void setAliveTimeInterval(int milliseconds)
sendAliveMessage()
milliseconds
- number of milliseconds betweenpublic void sendAliveMessage()
public static HB.DeviceType detectDeviceType()
HB.DeviceType
is storedpublic boolean muteAudio(boolean mute)
mute
- true if we want to mutepublic static boolean runDebug(java.lang.Class<?> action_class) throws java.lang.Exception
action_class
- The class that we are debugging. use MethodHandles.lookup().lookupClass()java.io.IOException
- if there is a problem with the debugjava.lang.Exception
public void broadcast(java.lang.String string, java.lang.Object... args)
OSCMessage
msg over the multicast group.string
- the message string to send.args
- the args to the message.public static de.sciss.net.OSCMessage createOSCMessage(java.lang.String name, java.lang.Object... args)
name
- OSC Message nameargs
- argumentspublic void sendToController(java.lang.String string, java.lang.Object... args)
OSCMessage
to the controller. The controller already responds to certain OSCMessages that are already generated automatically. Best not to interefere with these. This function is only really useful if you are going to modify your controller program.string
- the message string to send.args
- the args of the message.public void addBroadcastListener(de.sciss.net.OSCListener listener)
OSCListener
, listening to broadcasts.listener
- the new OSCListener
.public void addControllerListener(de.sciss.net.OSCListener listener)
OSCListener
, listening to incoming messages from the controller.listener
- the new listener.public void syncAudioStart(int intervalForSyncAction)
intervalForSyncAction
- time at which to sync, according to the agreed clock timepublic double getSynchTime()
public void doAtTime(java.lang.Runnable runnable, long time)
runnable
- the action to perform.time
- the time at which to perform the action, in millseconds since 1st Jan 1970.public void doAtTime(double time, Delay.DelayListener listener)
time
- the Schedulerlistener
- The listener to receive call
The param returned in the listener will be nullpublic void doAtTime(double time, java.lang.Object param, Delay.DelayListener listener)
time
- the Schedulerparam
- the parameter to pass to listenerlistener
- The listener to receive callpublic void startAudio()
DeviceMain
.public void pullConfigFileFromController() throws java.io.IOException
java.io.IOException
- if the HTTP connection fails.public boolean messageIs(de.sciss.net.OSCMessage m, java.lang.String match)
m
- the message to check.match
- the string to check for.public float getFloatArg(de.sciss.net.OSCMessage m, int index)
OSCMessage
. Accesses the arg as a float even if the arg is type int.m
- the message.index
- the index of the argument.public void sychronisedBleep(double schedule_time)
schedule_time
- the time on the global HBScheduler
to action messagepublic void testBleep()
public static void flashLed(int num_blinks, int interval)
num_blinks
- the number of times the LED wil blink on and Offinterval
- The interval between blinkspublic void testBleep3()
public void testBleep6()
public void attemptHBActionFromClassName(java.lang.String class_name)
HBAction
. If an HBAction
can be found matching the fully qualified Java classname then this is loaded and its HBAction.action(HB)
method is run.class_name
- The class namepublic Sensor getSensor(java.lang.Class sensorClass)
findSensor(java.lang.Class)
instead.public Sensor findSensor(java.lang.Class sensorClass) throws SensorNotFoundException
sensorClass
- the class of the Sensor
you want returnedSensor
SensorNotFoundException
- if sensor type not foundpublic void put(java.lang.String s, java.lang.Object o)
Object
into the global memory store with a given name. This overwrites any object that was previously stored with the given name.s
- String
name to store the object with.o
- Object
to store.public void registerVariable(java.lang.String name, java.lang.Object value)
Object
into the global memory store with a given name. This overwrites any object that was previously stored with the given name.
Values does not get reset, however, is still volatilename
- String
name to store the object with.value
- Object
to store.public java.lang.Object getRegisteredVariable(java.lang.String name)
Object
with the given name from the registered memory store. Returns null if there is no object with this name.name
- String
name object is mapped asObject
or null if there is no object.public void clearRegisteredVariable(java.lang.String name)
Object
with the given name from the registered memory store.name
- String
name object is mapped aspublic java.lang.Object get(java.lang.String s)
Object
with the given name from the global memory store. Returns null if there is no object with this name.s
- the name of the object.Object
or null if there is no object.public int getInt(java.lang.String s)
s
- the name of the int.java.lang.ClassCastException
- if the stored object is not an int.public float getFloat(java.lang.String s)
s
- the name of the float.java.lang.ClassCastException
- if the stored object is not a float.public java.lang.String getString(java.lang.String s)
String
from the global memory store.s
- the name of the @String
.String
, or null if there is no object.java.lang.ClassCastException
- if the stored object is not a @String
.public net.beadsproject.beads.core.UGen getUGen(java.lang.String s)
UGen
from the global memory store.s
- the name of the @UGen
.UGen
, or null if there is no object.java.lang.ClassCastException
- if the stored object is not a @UGen
.public net.beadsproject.beads.core.Bead getBead(java.lang.String s)
Bead
from the global memory store.s
- the name of the @Bead
.Bead
, or null if there is no object.java.lang.ClassCastException
- if the stored object is not a @Bead
.public java.lang.Object perm(java.lang.String id, java.lang.Object o)
id
- ID String
of the object to store.o
- the object.public java.lang.String pattern(net.beadsproject.beads.core.Bead pattern)
Bead
object to the Clock
. This will be removed using reset()
or resetLeaveSounding()
, or can be specifically removed by killing the Bead
.pattern
- to play.public java.lang.String sound(net.beadsproject.beads.core.UGen snd)
PolyLimit
connected to the audio output. The sound, in the form of any @UGen
, is played immediately. It can be killed by calling reset()
, or by manually destroying the sound with a Bead.kill()
message.
Note that the system automatically limits the number of sounds added using a @PolyLimit
object.snd
- the sound to play.public void clearSound()
reset()
and if you want to clear everything except the sound, use resetLeaveSounding()
.public void reset()
public void resetLeaveSounding()
reset()
except that any sounds currently playing are kept. This includes everything that is in the global memory store, all patterns, all dependents, all sensor behaviours and all controller listener behaviours.public static net.beadsproject.beads.core.UGen getAudioOutput()
public static net.beadsproject.beads.ugens.PolyLimit getPolyLimitedOutput()
PolyLimit
that is connected to the HappyBrackets audio output as a UGenpublic static int getNumOutChannels()
public void fadeOutClearSound(float fadeTime)
clearSound()
but with a fade out of the specified duration before clearing.fadeTime
- the fade out time in milliseconds.public void fadeOutReset(float fadeTime)
reset()
but with a fade out of the specified duration before clearing.fadeTime
- the fade out time in milliseconds.public int myIndex()
public int myConnectPort()
public void setMyIndex(int val)
val
- new valuepublic java.lang.String friendlyName()
public void setFriendlyName(java.lang.String name)
name
- the friendly namepublic static void rebootDevice()
public static void shutdownDevice()
public static void sendStatus(java.lang.String status)
sendStatus(String)
.status
- the status message we are sendingpublic void setStatus(java.lang.String s)
String
of this device. The status string is sent to the controller and is reported in the device's list item. Note that certain application behaviours automatically set the device status, such as when the device has been assigned and ID, or when a new @HBAction
has been loaded onto the device.s
- the status of the device.public void setGain(float new_gain, float millseconds)
new_gain
- the new target gain to set device tomillseconds
- the duration of the segment to reach the new gain in millisecondspublic float getGain()
public java.lang.String getStatus()
String
of the device.public static DynamicControl createDynamicControl(java.lang.Object parent_sketch, ControlType control_type, java.lang.String name, java.lang.Object initial_value)
parent_sketch
- the object calling - typically thiscontrol_type
- The type of control you want to createname
- The name we will give to differentiate between different controls in this classinitial_value
- The initial value of the controlpublic static DynamicControl createDynamicControl(java.lang.Object parent_sketch, ControlType control_type, java.lang.String name)
parent_sketch
- the object calling - typically thiscontrol_type
- The type of control you want to createname
- The name we will give to differentiate between different controls in this classpublic static DynamicControl createDynamicControl(java.lang.Object parent_sketch, ControlType control_type, java.lang.String name, java.lang.Object initial_value, java.lang.Object min_value, java.lang.Object max_value)
parent_sketch
- the object calling - typically thiscontrol_type
- The type of control you want to createname
- The name we will give to differentiate between different controls in this classinitial_value
- The initial value of the controlmin_value
- The minimum value of the controlmax_value
- The maximum value of the controlpublic static DynamicControl createDynamicControl(ControlType control_type, java.lang.String name, java.lang.Object initial_value, java.lang.Object min_value, java.lang.Object max_value)
control_type
- The type of control you want to createname
- The name we will give to differentiate between different controls in this classinitial_value
- The initial value of the controlmin_value
- The minimum value of the controlmax_value
- The maximum value of the controlpublic static DynamicControl createDynamicControl(ControlType control_type, java.lang.String name, java.lang.Object initial_value)
control_type
- The type of control you want to createname
- The name we will give to differentiate between different controls in this classinitial_value
- The initial value of the controlpublic static DynamicControl createDynamicControl(ControlType control_type, java.lang.String name)
control_type
- The type of control you want to createname
- The name we will give to differentiate between different controls in this classpublic static DynamicControl createControlBuddyPair(java.lang.Object parent_sketch, ControlType control_type, java.lang.String name, java.lang.Object initial_value, java.lang.Object min_value, java.lang.Object max_value)
parent_sketch
- the object calling - typically thiscontrol_type
- The type of control you want to createname
- The name we will give to differentiate between different controls in this classinitial_value
- The initial value of the controlmin_value
- The minimum value of the controlmax_value
- The maximum value of the controlpublic static Clock createClock(double interval)
interval
- int6erval in milliseconds. Can use fractions of a millisecondpublic static net.beadsproject.beads.core.UGen getAccelerometer_X()
public static net.beadsproject.beads.core.UGen getAccelerometer_X(double scale_min, double scale_max)
scale_min
- the value for axis pointing to groundscale_max
- the value for axis pointing to skypublic static net.beadsproject.beads.core.UGen getAccelerometer_Y()
public static net.beadsproject.beads.core.UGen getAccelerometer_Y(double scale_min, double scale_max)
scale_min
- the value for axis pointing to groundscale_max
- the value for axis pointing to skypublic static net.beadsproject.beads.core.UGen getAccelerometer_Z()
public static net.beadsproject.beads.core.UGen getAccelerometer_Z(double scale_min, double scale_max)
scale_min
- the value for axis pointing to groundscale_max
- the value for axis pointing to skypublic static net.beadsproject.beads.core.UGen getGyroscopeYaw()
public static net.beadsproject.beads.core.UGen getGyroscopePitch()
public static net.beadsproject.beads.core.UGen getGyroscopeRoll()
public java.net.InetAddress getDeviceAddress(java.lang.String name)
InetAddress
associated with this device name that we can address that device with
If the device is this, then it will return the loopback addressname
- The name of the device we require the address ofpublic java.util.Collection<java.lang.String> getKnownDeviceNames()
ControlScope.TARGET
using the device name.
If you require the InetAddress
of the device, for example, if you want to use OpenSoundControl,
then use the device name in the function getDeviceAddress(String)
public void addDeviceConnectedEventListener(DeviceConnectedEventListener listener)
DeviceConnectedEventListener
to be informed when a new device is detected on the networklistener
- the listener that will be notified when a device is connectedpublic boolean addDeviceAddress(java.lang.String name, java.net.InetAddress address)
InetAddress
name
- The device name to use as a keyaddress
- the InetAddress
to associate with the namepublic static boolean isOurAddress(java.net.InetAddress address)
InetAddress
is actually this deviceaddress
- the address we are testing forpublic static HBScheduler getScheduler()
HBScheduler
public static double getSchedulerTime()
HBScheduler
public static double getFutureSchedulerTime(double milliseconds)
getSchedulerTime()
.milliseconds
- the number of milliseconds into the future we want the time forgetSchedulerTime()
+ millisecondspublic static void setScheduleTime(double new_time)
HBScheduler
scheduled time to this timenew_time
- the new timepublic static void adjustScheduleTime(double amount, long duration)
HBScheduler
scheduler timeamount
- the amount of milliseconds we need to adjust our time by. A positive amount will advance the schedulerduration
- the number of milliseconds over which we want this change to occur so we don't just get a jumppublic static double synchroniseClocks()
HBScheduler
timer with the system time on next tickpublic static double synchroniseClocks(long slew_time)
HBScheduler
timer with the system timeslew_time
- the amount of milliseconds that we want to take to complete itpublic static boolean sendScheduleChange(double amount, long duration, java.util.Collection<java.lang.String> targets)
HBScheduler
on that deviceamount
- the amount of milliseconds we need to adjust our time by. A positive amount will advance the schedulerduration
- the number of milliseconds over which we want this change to occur so we don't just get a jumptargets
- The names of HB devices. If this is null, will send a broadcastpublic static boolean sendScheduleSetTime(double new_time, java.util.Collection<java.lang.String> targets)
new_time
- the new time to set our device scheduler totargets
- The names of HB devices. If this is null, will send a broadcast


[gecode-users] Diagnosing failures
Mikael Zayenz Lagerkvist
zayenz at gmail.com
Wed Nov 21 08:02:50 CET 2007
On Nov 21, 2007 12:14 AM, Malcolm Ryan <malcolmr at cse.unsw.edu.au> wrote:
> Clearly not. But neither do you want to inspect all the machine
> operations in a standard program. Some abstraction is necessary. The
> S-boxes idea is a good start. Grouping the variables into meaningful
> structures (i.e. objects) could also help. And then you have causal
> relations between propagator executions, don't you? Ie, propagator X
> fired, constraining variable V, which in turn caused propagator Y to
> fire. If you could visualise the causation graph at a level of
> abstraction, you'd have the beginnings of a useful tool.
What causes a propagator to do some propagation might not be so simple
as you describe. Typically, a propagator will have many variables it
subscribes to, and several of them might be modified. Furthermore, the
variables might be modified by different propagators, or a variable
might be modified several times by a single propagator (due to
priorities).
Even harder, even if there is only a single modification to a variable
x that makes propagator P run, it might not be the only relevant
modification for the result of the propagation of P. Here is a small
example of this.
Variables: x={1,2,3,4}, y={1,2,3,4}
Propagators: P1 (x!=3), P2 (y>=3), and P3 (y==x)
P1 and P2 are currently scheduled for execution, but P3 is not.
Furthermore, P3 is a bounds-consistent equality propagator (thus it
only reasons on the bounds of variables).
In the first step, P1 runs. This gives the domains x={1,2,4},
y={1,2,3,4}. Nothing changes in the bounds of x and y, which means
that P3 is not going to be scheduled.
In the second step, P2 runs. This gives the domains x={1,2,4},
y={3,4}, and P3 is scheduled for propagation (the bounds of y has
changed).
In the third step, P3 runs giving the domains x={4}, y={4}.
The removal of 3 from the domain of y by propagator P3 is not "caused"
by P2 in some sense, even though this is the only propagator that made
modifications that made P3 runnable. Instead it is caused by the
modifications done by P1, which -at the time they were done- were not
relevant to P3.
I hope this explains the complexity of causation a little more.
Cheers,
Mikael
--
Mikael Zayenz Lagerkvist, http://www.ict.kth.se/~zayenz/
More information about the gecode-users
mailing list


Title of tab 1
Some content...
Title of tab 2
Some different content...
Title of tab 3
Some completely unrelated content...


BitReserve (a.k.a BR) is a Singapore based Foundation registered on (...).
Project preparation
Business model readjusting, brand & product positioning and program landing.


Main settings
Device settings
usbStickDevicePath
refreshInterval
Channel
Name
Transit time
Actions
1
av_timer
2
av_timer


Interfaces
-
Interface data and metadata are listed here.
To reload data from the database, press the Refresh button below
-
Interfaces
require_login(); ?>
Interface data and metadata are listed here.
To reload data from the database, press the Refresh button below


Govt vows tough legal action against rumours about salt amid panic buying
by bdnews24.comThe government has vowed to take tough legal action against any person who spreads rumours about salt amid panic buying.
A quarter is out to spread rumours in Bangladesh and there are “evil attempts” to spread rumours about the supply of salt, the government said in a statement on Tuesday.
It noted the industries ministry already assured people of enough salt in stock and new products are expected to arrive in December.
“So, there is no lack of salt and no possibilities of any shortage,” the statement said.
“If any person or group tries to spread rumours about salt or anything else on social media or in any other way, they will face tough legal steps,” it added.
The rumour of a salt price hike spread in Sylhet, Habiganj, Gopalganj, Thakurgaon and Netrakona districts on Monday evening following weeks of skyrocketing onion prices due to a supply squeeze.
Panicked consumers started stockpiling salt, giving rogue traders the opportunity to charge extra across the country, including Dhaka.
A mobile court sentenced four Habiganj businessmen on Monday night for trying to stockpile salt by spreading rumours. Such drives were conducted in many other places.
Commerce Minister Tipu Munshi told a press conference in Dhaka that he had asked officials to jail and fine unscrupulous traders if they sold salt at higher prices.
He urged all not to pay heed to any rumours. “The industries ministry control salt trade. [Scrupulous traders] are taking an unfair advantage. There is no reason to pay heed to any rumours.”
A total of 650,000 tonnes of salt is in stock in the country, according to Munshi.
“Salt import has also been stopped to assist local producers. There is no reason behind any price hike. The consumer rights authorities have been asked to monitor the market and slap jail terms and fines whenever necessary,” he said.
Earlier, the Ministry of Industries said in a statement: “It appears that a vested quarter is spreading rumours to make windfall profits by manipulating salt prices. The public is requested not to get confused.”
“The demand for edible salt per month is around 100,000 tonnes. On the other hand, we have a salt reserve of 600,000 tonnes. So, there is no question of a salt crisis.”
In addition, sufficient quantity of salt is available in the reserves of various salt company dealers, wholesalers and retailers across the country, it said.
“The salt production season has also started.”
The Bangladesh Small & Cottage Industries Corporation, or BSCIC, has opened a control room at its headquarters to take salt-related queries on 02-9573505 and<PHONE_NUMBER>9.


| hccm {car} | R Documentation |
Calculates heteroscedasticity-corrected covariance matrices linear models fit by least squares or weighted least squares. These are also called “White-corrected” or “White-Huber” covariance matrices.
hccm(model, ...) ## S3 method for class 'lm' hccm(model, type=c("hc3", "hc0", "hc1", "hc2", "hc4"), singular.ok=TRUE, ...) ## Default S3 method: hccm(model, ...)
model |
a unweighted or weighted linear model, produced by |
type |
one of |
singular.ok |
if |
... |
arguments to pass to |
The original White-corrected coefficient covariance matrix ("hc0"
) for an unweighted model is
V(b) = inv(X'X) X' diag(e^2) X inv(X'X)
where e^2 are the squared residuals, and X is the model matrix. The other methods represent adjustments to this formula. If there are weights, these are incorporated in the corrected covariance matrix.
The function hccm.default
simply catches non-lm
objects.
The heteroscedasticity-corrected covariance matrix for the model.
John Fox<EMAIL_ADDRESS>Fox, J. (2016) Applied Regression Analysis and Generalized Linear Models, Third Edition. Sage.
Fox, J. and Weisberg, S. (2019) An R Companion to Applied Regression, Third Edition, Sage.
Cribari-Neto, F. (2004) Asymptotic inference under heteroskedasticity of unknown form. Computational Statistics and Data Analysis 45, 215–233.
Long, J. S. and Ervin, L. H. (2000) Using heteroscedasity consistent standard errors in the linear regression model. The American Statistician 54, 217–224.
White, H. (1980) A heteroskedastic consistent covariance matrix estimator and a direct test of heteroskedasticity.


{% extends 'base.html' %} {% block content %} {% load bootstrap4 %} {% load static %} {% block styles %} {% bootstrap_css %} {% endblock %}
View your Neighbor-hood
{{ hood.hood.count }}
Some text inside the second card
Some text inside the third card
Some text inside the fourth card


Constructor
new Event(listeners)
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
listeners |
Array | Array | An optional list of listeners which can be a custom array implementation if push, pop, splice, indexOf and [array index] are implemented |
Example
class Ticker {
constructor() {
this.tick = new Event();
this.count = 0;
setInterval(()=>this.increment(),100);
}
increment() {
this.count++;
this.tick.dispatch(this.count);
}
}
const ticker = new Ticker();
ticker.tick.on(console.log); // -> 1,2,3,4,...
ticker.tick.once(console.log); //-> 1
Methods
clear()
Clear all event listeners.
Example
const source = new Event();
const log = ()=>console.log('i will not be called');
source.on(log);
source.clear();
source.dispatch(); // ->
dispatch(…args)
Dispatch an event to all listeners where all provided arguments are treated as
varargs and passed through to the listener.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
args |
* |
<repeatable> |
Any arguments which should be passed to the listeners |
Example
const source = new Event();
source.on(console.log);
source.dispatch('hello', 'world'); // -> "hello, world"
off(…listeners)
Remove a specific event listener by reference. Multiple listeners can be removed at the same time
by passing multiple parameters
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
listeners |
function |
<repeatable> |
The event listener |
Example
const source = new Event();
const log1 = ()=>console.log('i will not be called');
const log2 = ()=>console.log('i will not be called either');
source.on(log1);
source.on(log2);
source.off(log1, log2);
source.dispatch(); // ->
on(listener, …filters) → {function}
Registers a listener on the event source. An un-listener is returned which should be called without
arguments to unregister the event. This eases the use of anonymous functions as the event listener
since it's possible to unregister the listener without a reference to the anonymous function.
Important note!
Adding the same event twice will be seen as a no op, event if the filters are different
Important note!
Adding the same event twice will be seen as a no op, event if the filters are different
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
listener |
function | The listener which will be called when triggered by dispatch - The listener which only will be called | |
filters |
function |
<repeatable> |
A set of function which all must return true for the listener to fire |
Returns:
- A function which unregisters the listener
- Type
- function
Example
const source = new Event();
const log = ()=>console.log('i will be called');
const log2 = ()=>console.log('i will also be called');
source.on(log);
source.on(log2);
source.dispatch(); // -> "i will be called", "i will also be called"
once(listener, …filters) → {function}
Unregisters itself after it's first call, otherwise identical to [on]{Event#on}.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
listener |
function | The listener which only will be called once | |
filters |
function |
<repeatable> |
An optional list of filters which all must return true for the listener to be run |
Returns:
- A function which unregisters the listener
- Type
- function
Example
const source = new Event();
const log = ()=>console.log('i will be called once');
source.once(log);
source.dispatch(); // -> "i will be called once"
source.dispatch(); // ->


Siddharth Shukla evicted from Bigg Boss house? Social media abuzz with rumours as support for Asim Riaz grows
by JKR StaffSocial media platform Twitter is abuzz with rumours that Bigg Boss contestant Siddharth Shukla has been kicked out of the show. The microblogging site exploded after a Twitter handle, known for leaking information from inside the Colors TV’s reality show, claimed that Siddharth had faced eviction for repeatedly indulging in violence against Asim Riaz.
Twitter handle ‘Khabri’ wrote, “Makers are planning something really very big for #SiddhartShukla. High chances of his eviction in #WeekendKaVaar.” It also reported that Khesari Lal Yadav had been evicted already adding that the early eviction of the Bhojpuri star was to ensure that Salman Khan pays full attention to the fight between Siddharth and Asim.
No sooner did the claim on Siddharth’s eviction surface on Twitter, social media users went berserk in reacting to the tweet by ‘Khabri.’ While some felt that this was coming, others refused to believe the claim on Siddharth’s eviction saying that the makers of Bigg Boss lacked the conviction to take such strong action against the TV actor. Meanwhile, supporters of Asim Riaz have been trending hashtags in favour of their star.
Here’s how they reacted:
Earlier, several big names related to the entertainment industry had raised serious objections on the reality show’s inability to take action against Siddharth despite several instances of him indulging in violence.


| Excluded URLs and keys |
The left column contains URL patterns. Vimium will be wholly or partially disabled for URLs
matching these patterns. Patterns are Javascript regular expressions. Additionally, the
character "*" matches any zero or more characters.
The right column contains keys which Vimium would would normally handle, but which should instead be passed through to the underlying web page (for pages matching the pattern). If left empty, then Vimium will be wholly disabled.
|
|
| |
| Custom key mappings |
Enter commands to remap your keys. Available commands:
map j scrollDown unmap j unmapAll " this is a comment # this is also a commentShow available commands. |
|||
| Custom search engines |
This adds search-engine shortcuts to the Vomnibar.
The format is: your-keyword: http://the-site.com/?q=%s%s will be replaced with your search terms. Lines which start with "#" are comments. |
|||
| Show advanced options… | ||||
| Scroll step size | px | |||
| Characters used for link hints |
The characters placed next to each link after typing "f" to enter link-hint mode.
|
|||
| Numbers used for filtered link hints |
The numbers placed next to each link after typing "f" to enter link-hint mode.
|
|||
|
In link-hint mode, this option lets you also select a link by typing its text.
|
||||
|
When enabled, the HUD will not be displayed.
|
||||
|
Switch back to plain find mode by using the
\R escape sequence.
|
||||
| Previous patterns |
The "navigate to previous page" command uses these patterns to find the link to follow.
|
|||
| Next patterns |
The "navigate to next page" command uses these patterns to find the link to follow.
|
|||
| New tab URL |
The page to open with the "create new tab" command.
Set this to "pages/blank.html" for a blank page.
|
|||
| Default search engine |
The search engine to use in the Vomnibar
(e.g.: "http://duckduckgo.com/?q="). |
|||
| CSS for link hints |
The CSS used to style the characters next to each link hint.
These styles are used in addition to and take precedence over Vimium's default styles. |


the and The for dendrimer with molecular dendrimers was {background PAMAM were margin {border-style px;} #ffffff;} delivery drug generation cm− different dynamics synthesis studies from well computational dendrimers. der generations solubility this using .G, Chem. approach have polyamidoamine properties simulations Figure This are effect px; stretch van {font-family N–H amine copper dendrimer. dendritic font-size full molecules peaks polymers simulation targeted terminal Fig. Solubility Table Waals absorption been chemical double; due experimental peptide Pharm. between border-color border-width both color conjugate electrostatic employed energy group half interactions optimization peak potential primary reaction solid; step structural such sulfate system that under used used. various work {font-style {font-weight (amidoamine) All Commons Creative C–C EDA For Molecular Phys. addition after analysis application aqueous atom bending bold can cancer cells changes characteristic complexes core courier; em; evaluation generation. groups i.e. included molecule neutral novel parameter parameters preparation presence pt;} reported size solution solvents suitable surface synthesized usage weight


Change Log
Jaxx Liberty 2.1.2 (Updates):
[01/17/19]
Fixed:
- Resolves an issue that prevented ShapeShift sign in or sign up with Google OAuth
- Updates the error message returned on a transaction failure.
- Ensures fiat reference prices are up-to-date.
- Disconnects ShapeShift account when logging out in Chrome extension.
Jaxx Liberty 2.1.1 (Updates):
[12/21/18]
Features:
- Updated Terms of Service: reorganization and renaming to foreground most-requested areas; app store minimum EULA requirements; updated personal information collection, exposure, and retention descriptions; Jaxx Liberty naming convention
Jaxx Liberty 2.1.0 (Updates):
[12/07/18]
Features:
- Biometric Security. Use your phone’s native biometric security instead of Jaxx Liberty Security Password for added security and convenience.
- Sleep Mode: Hibernate feature for app after 5 minutes of inactivity (saves battery and bandwidth).
- Password Strength checker - real time visual feedback on password strength to help you choose stronger password.
- Critical Alert: UI enhancement to provide the user with clearer notice before sensitive use cases like viewing Private keys, Setting Password, etc.
- Unconfirmed Balance and Transactions optimization to check the last 20 addresses instead of just the current address. This will make the app more responsive to incoming transactions.
- Transaction History UI changes: Now displaying clickable link with transaction ID when expanding transactions in respective wallets. Also added better visibility for “Sent to self” and Pending transactions.
- Enhanced the market module to highlight Digital Assets listed in Jaxx Liberty and added quick access link to each wallet.
- Added rotating Promo Banner.
- Updated Groestlecoin logo.
- Added support for Groestlecoin URI.
Fixed:
- Issue in portfolio where the fiat value was missing for certain tokens (eg: ZRX, OMX, BAT, etc).
- Blue Screen of death when navigating to Global Setting with the device being offline.
- Bug where the receive address was cut off in the confirmation screen.
- Missing arrow for token “Sent to self” transactions in Block Explorer.
- Issue where portfolio value didn’t automatically update after a new transaction.
- A character encoding issue in the News module.
- Bug where Market Cap and 24h volume displayed a zero value.
- 403 issue with Google OAuth 2.0 login for ShapeShift.
- Bug where portfolio was showing infinite percent gain for “1 y” and “all”.
- An issue where the first widget in the home page was missing animation after pair/restore.
- Zero fiat value bug for ICN, DOGE and UCASH in Wallet Info page.
- Issue where crypto value is shown instead of fiat value for Block Explorer Transaction Hash lookup.
- Bug where portfolio failed after initializing BTX, DGB and GRS.
- Transactions are now chronologically ordered in Block Explorer address lookup.
- Bug where Market data is still in USD despite having changed native currency to something other than USD.
- Issue where multiple instance of the same wallets were shown in Wallet list.
- Issue where zero balance was displayed after sending (less than max) tokens out.
- Added display name filtering to allow letters, numbers and special characters for MyJaxx.
- Changed chrome extension icon title to “Jaxx Liberty” from “Jaxx Liberty Platform”.
Jaxx Liberty 2.0.6 (Updates):
[11/08/18]
Features:
- Biometric Security. Use your phone’s native biometric security instead of Jaxx Liberty Security Password for added security and convenience.
- Sleep Mode: Hibernate feature for app after 5 minutes of inactivity (saves battery and bandwidth).
- Password Strength checker - real time visual feedback on password strength to help you choose stronger password.
- Critical Alert: UI enhancement to provide the user with clearer notice before sensitive use cases like viewing Private keys, Setting Password, etc.
- Unconfirmed Balance and Transactions optimization to check the last 20 addresses instead of just the current address. This will make the app more responsive to incoming transactions.
- Transaction History UI changes: Now displaying clickable link with transaction ID when expanding transactions in respective wallets. Also added better visibility for “Sent to self” and Pending transactions.
- Enhanced the market module to highlight Digital Assets listed in Jaxx Liberty and added quick access link to each wallet.
- Added rotating Promo Banner.
- Updated Groestlecoin logo.
- Added support for Groestlecoin URI.
Bug Fixes:
- Issue in portfolio where the fiat value was missing for certain tokens (eg: ZRX, OMX, BAT, etc);
- Blue Screen of death when navigating to Global Setting with the device being offline.
- Bug where the receive address was cut off in the confirmation screen.
- Missing arrow for token “Sent to self” transactions in Block Explorer.
- Issue where portfolio value didn’t automatically update after a new transaction.
- A character encoding issue in the News module.
- Bug where Market Cap and 24h volume displayed a zero value.
- 403 issue with Google OAuth 2.0 login for ShapeShift.
- Bug where portfolio was showing infinite percent gain for “1 y” and “all”.
- An issue where the first widget in the home page was missing animation after pair/restore.
- Zero fiat value bug for ICN, DOGE and UCASH in Wallet Info page.
- Issue where crypto value is shown instead of fiat value for Block Explorer Transaction Hash lookup.
- Bug where portfolio failed after initializing BTX, DGB and GRS.
- Transactions are now chronologically ordered in Block Explorer address lookup.
- Bug where Market data is still in USD despite having changed native currency to something other than USD.
- Issue where multiple instance of the same wallets were shown in Wallet list.
- Issue where zero balance was displayed after sending (less than max) tokens out.
- Added display name filtering to allow letters, numbers and special characters for MyJaxx.
- Changed chrome extension icon title to “Jaxx Liberty” from “Jaxx Liberty Platform”.
Jaxx Liberty 2.0.5 (Updates):
[11/05/18]
Features:
- ZCASH Sapling update
- Groestlecoin (GRS) integration
Jaxx Liberty 2.0.4 (Updates):
[10/26/18]
Features:
- ShapeShift transaction component rework ( app will now await for the ShapeShift order ID before signing transaction )
- Add last updated timestamp to Portfolio Widget
- Portfolio optimization for low powered devices
- Add app version number in the About menu header in Global Settings
- Add link to Changelog History below ToS in Global Settings
Bug Fixes:
- Chrome Extension Unintended click to wallets while swiping through wallets
- Incorrect crypto balance shown on exch
Jaxx Liberty 2.0.3 (Updates):
[10/17/18]
Features:
- ShapeShift transaction component rework ( app will now await for the ShapeShift order ID before signing transaction )
- Add last updated timestamp to Portfolio Widget
- Portfolio optimization for low powered devices
- Add app version number in the About menu header in Global Settings
- Add link to Changelog History below ToS in Global Settings
Bug Fixes:
- Chrome Extension unintended click to wallets while swiping through wallets
- Incorrect crypto balance shown on exchange page
- Native currency is always in USD on MarketCap, supply, and volume when native currency is other than USD in Settings
- Missing coin logo at summary page for block explorer address lookup - for BTC,BCH,BTX and DGB only
- Added upcoming Days of Jaxx tokens to Pricing service
- For tokens with shiftCount balance after initialization is 0 followed by payment received snackbar (false alert) - tokens like MGO, POE, DGD, STORJ will experience this issue
- Missing fiat values for some newly added tokens (intermittent issue)
- False positive for failed ShapeShift transaction - this fix will make sure the app shows an error message for failed ShapeShift transaction instead of showing the user the ShapeShift success page with the rotating heart
- ShapeShift: can pick the same asset to exchange to - users are able to select a same coin pair from the drop down ETC consolidation with password not working
- No balance displayed next to address when viewing private keys
- Private keys with balance not displayed for BTC, ETC, LTC and DOGE
- While performing Pair/Restore from Global Settings app intermittently getting stuck at 10/11
- False negative for Offline warning (when the device is actually online)
- Fixed an issue with the app occasionally not showing the correct balance on the Home Screen Wallet widget
- When sending tokens: confirmation screen shows contract address as receiving address which can lead to sending to contract addresses
Jaxx Liberty 2.0.1 (2) (Hotfix):
[10/11/18]
Bug Fixes:
- Missing information(address panel) for addresses on Block explorer address lookup
- Desktop: Wrong coin color on Wallets widget
- Desktop: Empty blue page after Pair/Restore
- Two of the same wallet is shown on Wallets Widget, Portfolio, and list of Private keys
- UI: Desktop home screen background image is zoomed in
- Wallet Setup: Can't scroll for desktop version
- Block explorer missing icon issue
Jaxx Liberty 2.0.1 (Hotfix) [Released]:
[10/11/18]
Bug Fixes:
- Assets for Tokens
Change Log
1.3.17
• Asset Update
1.3.15
• Security Fixes
1.3.14
• Security Enhancements
• RSK (rootstock) support
• Address Book
https://decentral.zendesk.com/hc/en-us/articles/360001997634-Jaxx-Address-Book-What-is-it-how-it-works-how-to-use-
• UI Enhancements and minor bug fixes
1.3.13
• Feature Updates & Bug Fixes
1.3.12
• More control of the initialization process
• Advance Jaxx custom data validation update
• Tips and Tricks is back
• Assets integration
• Update spendable algorithm
• UI and UX updates
• *Bug Fixes*
1.3.11
• ShapeShift UI major updates
• Mining fee algorithm changes
• Argentina Peso currency added
• Custom data on advance Jaxx update
• Security update for desktop builds
• Dynamic gas price for tokens
• Architecture changes and stable pricing data
• New infrastructure support for up to date information
1.3.9
• ShapeShift improvements
• Hot Fix
1.3.8
New Features
• ETH Gas Limit Control with limit maximums and minimums in Advance Jaxx
• Paper Wallet activation
• Pricing Data update
Bug Fixes
• BTC transaction histories display correct balances
• ETC spendable balance is checked before allowing a send-transaction
• ETH wallets now show accurate balances in transaction history
• ERC20 spendable balance is checked and verified before attempting a send transaction for all ERC20 tokens
• ShapeShift Unavailable Message is now available on all platforms
1.3.7
• Fixed Spendable Issues
1.3.6
• BCH Integration
• Performance improvements
• BTC build transactions have been resolved
• Added jaxx config version
• Implemented general URI support for QR scanner validator
• Minor security updates
• Fixed UI issues
• ETC & ZEC Updated for Transactions and Balances
• Send Confirmation Popup updated
• Fixed issue where Desktop application was not closing on close
1.2.41
• Added BNT
1.2.40
• Added DAP
1.2.39
• Added EOS
1.2.38
• Added ANT
1.2.37
• Added SNT
1.2.36
• Added SAN
1.2.35
• Added WINGS
1.2.34
• Added EDG
1.2.33
• Added RLC
1.2.32
• Added BAT
1.2.31
• Added TenX
1.2.30
• Added Maecenas
1.2.29
• Added QTUM
1.2.28
• Added Musiconomi
1.2.27
• Added Cofound.it
1.2.26
• Added Po.et
1.2.25
• Added Stox
1.2.24
• BTC transactions (mining fees update)
• Change log update
• REP contract update
• Display private keys bug fixes
1.2.21
• Added Civic Token
1.2.20
• Bug fixes
• Roll back Civic token
1.2.19
• Added Civic Token
1.2.18
• LTC multisig support
• Doge private keys UI fix
• Bulletin updates
• ETH
warning message updated based on selecting fiat
• Default gas limit of ICOs updated
1.2.17
• Added Slow mining fee pop up with warning message
• Added ETH warning message for
greater than 1000 ETH
• Pricing updates
1.2.16
• Reduced ETH gas cost
• ETH and ETC gas price display issue in Transaction History fixed
• ETH and ETC Replay Safe Split issue fixed
1.2.15
• Added Pricing information for ICN, BCAP and DigixDAO
• Ethereum Balances updated
•
Bitcoin average mining fees updated
1.2.14
• Added Doge
• Fixed Ethereum cache balances
1.2.13
• Added BCAP
• Ethereum HD addresses no longer generated
1.2.12
• Fixed Gnosis Pricing
• Fixed Golem Caching
• Instant unconfirmed with Dash, litecoin
and Zcash
1.2.11
• Added DigixDAO
1.2.10
• Added Iconomi
1.2.9
• Added Golem
1.2.8
• Added Gnosis
• Fixed minor carousel issue
• Biginteger issue resolved for small amounts
1.2.7
• Added coin-specific Bulletin in Menu
• Sleep mode activates after 5 minutes of inactivity
• Bug with incorrect version numbers fixed
• Terms of Service "Accept" button more
responsive
• Drop down arrow position fixed
• Zcash and LTC minor fixes
• Initializing
Wallet message centered
• Loading Wallet modal after Pair / Restore now opaque
•
Error message in Ethereum Private Keys removed
• REP icon now visible in Ethereum Private
Keys


Gecode::Int::Count::BaseView< VX, VY, VZ, shr > Class Template Reference
#include <count.hh>
Inherits Gecode::Propagator.
Inherited by Gecode::Int::Count::EqView< VX, VY, VZ, shr >, Gecode::Int::Count::GqView< VX, VY, VZ, shr >, Gecode::Int::Count::LqView< VX, VY, VZ, shr >, and Gecode::Int::Count::NqView< VX, VY, VZ, shr >.
Detailed Description
template<class VX, class VY, class VZ, bool shr>
class Gecode::Int::Count::BaseView< VX, VY, VZ, shr >
Base-class for count propagators (view).
Definition at line 283 of file count.hh.
Public Member Functions | |
| virtual size_t | dispose (Space *home) |
| Delete propagator and return its size. | |
| virtual PropCost | cost (ModEventDelta med) const |
| Cost function (defined as dynamic PC_LINEAR_LO). | |
Protected Member Functions | |
| BaseView (Space *home, bool shr, BaseView &p) | |
| Constructor for cloning p. | |
| BaseView (Space *home, ViewArray< VX > &x, VY y, VZ z, int c) | |
| Constructor for creation. | |
| Reflection::ActorSpec | spec (const Space *home, Reflection::VarMap &m, const Support::Symbol &name) const |
| Specification for this propagator. | |
| void | count (Space *home) |
| Count how many views are equal now. | |
| int | atleast (void) const |
| How many views are at least equal. | |
| int | atmost (void) const |
| How many views are at most equal. | |
Static Protected Member Functions | |
| static bool | sharing (const ViewArray< VX > &x, const VY &y, const VZ &z) |
| Test whether there is sharing of z with x or y. | |
Protected Attributes | |
| ViewArray< VX > | x |
| Views still to count. | |
| VY | y |
| View to compare to. | |
| VZ | z |
| View which yields result of counting. | |
| int | c |
| Number of views which are equal and have been eliminated. |
Constructor & Destructor Documentation
template<class VX, class VY, class VZ, bool shr>
| Gecode::Int::Count::BaseView< VX, VY, VZ, shr >::BaseView | ( | Space * | home, | |
| bool | shr, | |||
| BaseView< VX, VY, VZ, shr > & | p | |||
| ) | [inline, protected] |
template<class VX, class VY, class VZ, bool shr>
| Gecode::Int::Count::BaseView< VX, VY, VZ, shr >::BaseView | ( | Space * | home, | |
| ViewArray< VX > & | x, | |||
| VY | y, | |||
| VZ | z, | |||
| int | c | |||
| ) | [inline, protected] |
Member Function Documentation
template<class VX, class VY, class VZ, bool shr>
| Reflection::ActorSpec Gecode::Int::Count::BaseView< VX, VY, VZ, shr >::spec | ( | const Space * | home, | |
| Reflection::VarMap & | m, | |||
| const Support::Symbol & | name | |||
| ) | const [inline, protected] |
template<class VX, class VY, class VZ, bool shr>
| size_t Gecode::Int::Count::BaseView< VX, VY, VZ, shr >::dispose | ( | Space * | home | ) | [inline, virtual] |
template<class VX, class VY, class VZ, bool shr>
| PropCost Gecode::Int::Count::BaseView< VX, VY, VZ, shr >::cost | ( | ModEventDelta | med | ) | const [inline, virtual] |
template<class VX, class VY, class VZ, bool shr>
| void Gecode::Int::Count::BaseView< VX, VY, VZ, shr >::count | ( | Space * | home | ) | [inline, protected] |
template<class VX, class VY, class VZ, bool shr>
| int Gecode::Int::Count::BaseView< VX, VY, VZ, shr >::atleast | ( | void | ) | const [inline, protected] |
template<class VX, class VY, class VZ, bool shr>
| int Gecode::Int::Count::BaseView< VX, VY, VZ, shr >::atmost | ( | void | ) | const [inline, protected] |
template<class VX, class VY, class VZ, bool shr>
| bool Gecode::Int::Count::BaseView< VX, VY, VZ, shr >::sharing | ( | const ViewArray< VX > & | x, | |
| const VY & | y, | |||
| const VZ & | z | |||
| ) | [inline, static, protected] |
Member Data Documentation
template<class VX, class VY, class VZ, bool shr>
ViewArray<VX> Gecode::Int::Count::BaseView< VX, VY, VZ, shr >::x [protected] |
template<class VX, class VY, class VZ, bool shr>
VY Gecode::Int::Count::BaseView< VX, VY, VZ, shr >::y [protected] |
template<class VX, class VY, class VZ, bool shr>
VZ Gecode::Int::Count::BaseView< VX, VY, VZ, shr >::z [protected] |
template<class VX, class VY, class VZ, bool shr>
int Gecode::Int::Count::BaseView< VX, VY, VZ, shr >::c [protected] |
The documentation for this class was generated from the following files:
- gecode/int/count.hh (Revision: 7285)
- gecode/int/count/view.icc (Revision: 7289)


| com.estimote.proximity_sdk.proximity.EstimoteCloudCredentials |
Basic class that keeps your AppId and AppToken needed for communicating with Estimote Cloud. |
| com.estimote.proximity_sdk.exception.EstimoteProximityException | |
| com.estimote.proximity_sdk.proximity.ProximityAttachment |
Data attached to the one beacon. You will get this in your defined actions when user enters/exits your zone. |
| com.estimote.proximity_sdk.proximity.ProximityObserver |
The basic object for proximity observation. It lets you define the zones in which your actions will be called, when defined preconditions were met. |
| com.estimote.proximity_sdk.proximity.ProximityObserverBuilder |
Builder for configuring new ProximityObserver objects. |
| com.estimote.proximity_sdk.trigger.ProximityTrigger |
Interface for starting and stopping Proximity Trigger |
| com.estimote.proximity_sdk.trigger.ProximityTriggerBuilder |
Builds object that handles the deep background system scanning that will invoke given actions. Works only on phones with Android 8.0 or greater. |
| com.estimote.proximity_sdk.proximity.ProximityZone |
The data object that contains configuration defined with ProximityObserver.ProximityZoneBuilder. |
| com.estimote.proximity_sdk.trigger.TriggerBroadcastReceiver | |
| com.estimote.proximity_sdk.exception.UnableToDetectMonitoringStateException |


Something went wrong, so you're seeing this page. Is it not better than just getting a 500? Imagine how cool this could be instead of just this lump of boring text.


|
Web Tools
|
Software Packages
Drought Tools
Drought Tools includes the Palmer Drought Severity Index, Standardized Precipitation Index, Newhall Simulation Model, and Keetch Byram Drought Index in a single to use graphical interface. Drought Tools replaces the former command-line tools which can be downloaded individually below. Installing Drought Tools requires Adobe AIR, a free application that can be downloaded here.
Command-line Tools
The Palmer Drought Severity Index
The value of the PDSI is reflective of the how the soil moisture compares with normal conditions. A given PDSI value is usually a combination of the current conditions and the previous PDSI value, so the PDSI also reflects the progression of trends, whether it is a drought or a wet spell. That means that a single PDSI value is not representative of just the current conditions, but also of recent conditions to a certain extent.
The Standardized Precipitation Index
The Standard Precipitation Index (SPI) quantifies deficit or excess moisture conditions at a location for a specific time interval. The value computed represents the number of standard deviations the measured precipitation for the interval deviates from the normalized mean of all intervals of the same length in the climate record. The NADSS implementation of the SPI quantifies wet and dry spells for 1 - 104 week or 1 - 24 month intervals.
The Newhall Simulation Model
The Newhall Simulation Model (NSM) was designed to run on monthly normals for precipitation and temperature. The process involves running time-sequence monthly climate data against daily moisture status data, and then summarizing the results according to the rules of soil moisture and temperature regimes, thus classifying the site.
Documentation
|


HEBG List
Index
Most Wanted
All Games
Members
Most Wanted
Game:
Wanted By:
Possible hosts:
All Games
Members


Ruby Class Basic
Jan 22, 2015
Ruby beautifully supports object oriented programming. It allows us rebuild the real world in the codes with classes and objects. Let's look at the example code to learn new terms related to class.
Creating a class
- First, class name should be capitalized. We have 'Dog' class here.- Inside a class, the first method is called initialize. Often times, initialize can take arguments and change them as instance variables.
- Instance variable is a variable that can be used inside of a class regardless of methods. To make an instance variable, add '@' in front of a variable. In the above image, we assigned argument name into a instance variable @name. Then, we can call @name in any method within the 'Dog' class when we want to use it in the class.
Looking at the Figure 2. How many methods are inside the 'Dog' class? There are three methods for now, but it is possible to add more methods as many as we want.
- The first method is 'initialize',
- The second one is 'bark' which prints a string of a sentence,
- The last one is 'eat' which takes an argument, item, and print a string of a sentence depending on the item name.
- These methods are called instance methods.
Creating an object and using "new"
At this point, let's see how this class works. I created an object 'mydog' and its name "Lulu." - To make a new object, at the end of the code, type"object_name = class_name.new(arguments)"
- In this Dog class, the argument is a name of an object and we can create an object like this:
mydog = Dog.new("Lulu")
- With an object 'mydog', we can call methods in the Dog class: 'mydog.method.' In the Figure 3 line 23, I called
mydog.bark
Then the output will be
"Lulu barks: Bow wow! Woof woof!"
according to the Figure 2 line 9.
- In Figure 3 line 24, I called eat method with an item "soup." If a method inside the class need an argument (or several arguments), make sure you put an argument(arguments) when calling the method. Now you may guess the output of this code:
"soup is yummy, but I want chicken jerky."
According to the Figure 2 line 16, since the item name is not same as "chicken jerky," it returns the else statement.
Using class, it is available to create an object and use several method with ease. It will be also more useful when you build more complex codes.


of the Kiji table to read or write from.
that will convert data read from Kiji into Cascading's tuple model.
Builds any resources required to read from or write to a Kiji table.
Builds any resources required to read from or write to a Kiji table.
Note: KijiExpress currently does not support automatic creation of Kiji tables.
containing settings for this flow.
true if required resources were created successfully.
always.
Deletes any unnecessary resources used to read from or write to a Kiji table.
Deletes any unnecessary resources used to read from or write to a Kiji table.
Note: KijiExpress currently does not support automatic deletion of Kiji tables.
containing settings for this flow.
true if superfluous resources were deleted successfully.
always.
Provides a string representing the resource this Tap
instance represents.
Provides a string representing the resource this Tap
instance represents.
a java UUID representing this KijiTap instance. Note: This does not return the uri of the Kiji table being used by this tap to allow jobs that read from or write to the same table to have different data request options.
Gets the time that the target Kiji table was last modified.
Gets the time that the target Kiji table was last modified.
Note: This will always return the current timestamp.
containing settings for this flow.
the current time.
Get the tokens from the current user, and add them to the credentials in the jobConf.
Get the tokens from the current user, and add them to the credentials in the jobConf. This is only necessary for operating on a secure cluster, where the HBase delegation tokens are needed to communicate with HBase.
This is safe to run on non-secure clusters, because there will be no tokens for the current user and the jobConf will not be modified.
to add the tokens to.
Opens any resources required to read from a Kiji table.
Opens any resources required to read from a Kiji table.
being run.
that will read from the desired Kiji table.
an iterator that reads rows from the desired Kiji table.
Opens any resources required to write from a Kiji table.
Opens any resources required to write from a Kiji table.
being run.
that will write to the desired Kiji table. Note: This is ignored currently since writing to a Kiji table is currently implemented without using an output format by writing to the table directly from org.kiji.express.flow.framework.KijiScheme.
a collector that writes tuples to the desired Kiji table.
Determines if the Kiji table this Tap
instance points to exists.
Determines if the Kiji table this Tap
instance points to exists.
containing settings for this flow.
true if the target Kiji table exists.
Sets any configuration options that are required for running a MapReduce job that writes to a Kiji table.
Sets any configuration options that are required for running a MapReduce job that writes to a Kiji table. This method gets called on the client machine during job setup.
being built.
to which we will add the table uri.
Sets any configuration options that are required for running a MapReduce job that reads from a Kiji table.
Sets any configuration options that are required for running a MapReduce job that reads from a Kiji table. This method gets called on the client machine during job setup.
being built.
to which we will add the table uri.
A Kiji-specific implementation of a Cascading
Tap
, which defines the location of a Kiji table.KijiTap is responsible for configuring a MapReduce job with the correct input format for reading from a Kiji table.
KijiTap must be used with org.kiji.express.flow.framework.KijiScheme to perform decoding of cells in a Kiji table. org.kiji.express.flow.KijiSource handles the creation of both KijiScheme and KijiTap in KijiExpress.


{% extends "home.html" %} {% load staticfiles %} {% block nav %}
https://www.djangoproject.com
https://plone.org
http://www.pylonsproject.org
https://www.python.org
http://zope.org
Read about our involvement with open source.