Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to<EMAIL_ADDRESS>so we can send you a copy immediately.
Represent a native XML-RPC value entity, used as parameters for the methods called by the Zend_XmlRpc_Client object and as the return value for those calls.
This object as a very important static function Zend_XmlRpc_Value::getXmlRpcValue, this function acts likes a factory for the Zend_XmlRpc_Value objects
Using this function, users/Zend_XmlRpc_Client object can create the Zend_XmlRpc_Value objects from PHP variables, XML string or by specifing the exact XML-RPC natvie type
string
$_isoFormatString= 'yyyyMMddTHH:mm:ss'
ISO compatible format string for XML/RPC datetime values
yyyyMMddTHH:mm:ss
Details__construct(
mixed $value
)
:
void
Set the value of a dateTime.iso8601 native type
The value is in iso8601 format, minus any timezone information or dashes
| Name | Type | Description |
|---|---|---|
| $value | mixed | Integer of the unix timestamp or any string that can be parsed to a unix timestamp using the PHP strtotime() function |
_createSimpleXMLElement(
$xml
)
:
void
| Name | Type | Description |
|---|---|---|
| $xml |
_extractTypeAndValue(
\SimpleXMLElement $xml, string $type, string $value
)
:
void
Extract XML/RPC type and value from SimpleXMLElement object
Inherited from: \Zend_XmlRpc_Value::_extractTypeAndValue()| Name | Type | Description |
|---|---|---|
| $xml | \SimpleXMLElement | |
| $type | string | &$type Type bind variable |
| $value | string | &$value Value bind variable |
_generateXml(
)
:
void
Generate the XML code that represent a scalar native MXL-RPC value
Inherited from: \Zend_XmlRpc_Value_Scalar::_generateXml()_phpVarToNativeXmlRpc(
mixed $value
)
:
\Zend_XmlRpc_Value
Transform a PHP native variable into a XML-RPC native value
Inherited from: \Zend_XmlRpc_Value::_phpVarToNativeXmlRpc()| Name | Type | Description |
|---|---|---|
| $value | mixed | The PHP variable for convertion |
| Type | Description |
|---|---|
| \Zend_XmlRpc_Value |
_setXML(
string $xml
)
:
void
| Name | Type | Description |
|---|---|---|
| $xml | string |
_xmlStringToNativeXmlRpc(
string|\SimpleXMLElement $xml
)
:
\Zend_XmlRpc_Value
Transform an XML string into a XML-RPC native value
Inherited from: \Zend_XmlRpc_Value::_xmlStringToNativeXmlRpc()| Name | Type | Description |
|---|---|---|
| $xml | string|\SimpleXMLElement | A SimpleXMLElement object represent the XML string It can be also a valid XML string for convertion |
| Type | Description |
|---|---|
| \Zend_XmlRpc_Value |
generateXml(
)
:
void
Generate XML code that represent a native XML/RPC value
Inherited from: \Zend_XmlRpc_Value::generateXml()getGenerator(
)
:
\Zend_XmlRpc_Generator_GeneratorAbstract
| Type | Description |
|---|---|
| \Zend_XmlRpc_Generator_GeneratorAbstract |
getType(
)
:
string
Get the native XML-RPC type (the type is one of the Zend_XmlRpc_Value::XMLRPC_TYPE_* constants)
Inherited from: \Zend_XmlRpc_Value::getType()| Type | Description |
|---|---|
| string |
getValue(
)
:
int
Return the value of this object as iso8601 dateTime value
| Type | Description |
|---|---|
| int | As a Unix timestamp |
getXmlRpcTypeByValue(
mixed $value
)
:
string
Get XML-RPC type for a PHP native variable
Inherited from: \Zend_XmlRpc_Value::getXmlRpcTypeByValue()| Name | Type | Description |
|---|---|---|
| $value | mixed |
| Type | Description |
|---|---|
| string |
getXmlRpcValue(
mixed $value, \Zend_XmlRpc_Value::constant $type
=
self
)
:
\Zend_XmlRpc_Value
Creates a Zend_XmlRpc_Value* object, representing a native XML-RPC value A XmlRpcValue object can be created in 3 ways: 1. Autodetecting the native type out of a PHP variable (if $type is not set or equal to Zend_XmlRpc_Value::AUTO_DETECT_TYPE) 2. By specifing the native type ($type is one of the Zend_XmlRpc_Value::XMLRPC_TYPE_* constants) 3. From a XML string ($type is set to Zend_XmlRpc_Value::XML_STRING)
Inherited from: \Zend_XmlRpc_Value::getXmlRpcValue()By default the value type is autodetected according to it's PHP type
| Name | Type | Description |
|---|---|---|
| $value | mixed | |
| $type | \Zend_XmlRpc_Value::constant |
| Type | Description |
|---|---|
| \Zend_XmlRpc_Value |
saveXml(
)
:
string
Return the XML code that represent a native MXL-RPC value
Inherited from: \Zend_XmlRpc_Value::saveXml()| Type | Description |
|---|---|
| string |
setGenerator(
\Zend_XmlRpc_Generator_GeneratorAbstract $generator
)
:
void
| Name | Type | Description |
|---|---|---|
| $generator | \Zend_XmlRpc_Generator_GeneratorAbstract |


Under capitalism, science and engineering have been used to concentrate wealth in the hands of a small number of wealthy elites instead of serving the interests of the planet or its people.
It’s time to change this.
EngSciMath is a leftist community where individuals can socialize, provide and find academic support, and organize against capitalism. We are committed to building solidarity with all members of the working class, fostering inclusivity for marginalized and minority groups, and dedicating our technical skills to serving the the people.
We strive to think critically about how our science, math, and engineering skills are used in the world today and to understand the consequences of working under capitalism. We recognize the inherent limitations of today’s society, but where possible, we want encourage our members to make ethical choices with regard to the application of their skills.
We aspire to provide a space where members can collaborate to develop class consciousness, fight back against alienation and oppression, and use their talents to build a better world.
If this resonates with you, please reach out using the form below.
Notes:


---
layout: page
pageid: headshots
show_flyout: false
title: "Headshots & Bio"
description: "Ted Serbinski's headshots and bio."
---
Ted #1
Ted #2
Ted #3
Ted #4
Ted Bio: Micro
{{ site.bio_micro }}
Ted Bio: Short
{{ site.bio_short }}
Ted Bio: Regular
{{ site.bio_regular }}


--- layout: not_homepage quote: I do love email. Wherever possible I try to communicate asynchronously. I'm really good at email. author: Elon Musk --- {% include quote.html quote=page.quote author=page.author %}


Very shortly, OEM will be releasing a RF connected 3 channel relay board which is intended to integrate within the existing emoncms line-up, and to be used for general power switching or as a replacement boiler/heating controller using it's 3 x 16A onboard relays.
Trystan is also making good progress on the underlying software in the form of a scheduler, possibly to run within emoncms.
With this in mind, I wondered if anyone had given thought as to the switching cycles required to drive a boiler efficiently, and how this could be interpreted in software?
Most decent Thermostatic Controllers cycle the boiler on and off in a sequence intended to maximise the use of the boiler's condensing mode to increase efficiency - instead of remaining on constantly. And also use variations of 'Time Proportional & Integral' control (TPI) which shortens the boiler firing period as the room temp nears target temperature, to reduce the effect of residual heat in the radiators continuing to raise the room temp further.
I fitted a TPI equipped thermostat at home some 15 years ago (it's nothing new!) and the 8hr screenshot below shows how accurately the thermostat holds the room temp to the target temp, increasing comfort and cutting energy wastage. (The 'Indoor temp' feed is a emonTH mounted next to my Danfoss thermostat, and the 'Heating Schedule' is the target temp fed via my node-red basic scheduler).
Without such features, the hysteresis in the system would create a hunting effect resulting in discernable swings of room temp.
Is it worth giving this some early consideration?
Paul
Re: Controlling a boiler via emoncms
This is excellent timing as I'm just about to rewire our heating system, although my approach was going to be a bit ghetto - looks like I could be an early adopter of this instead :)
Re: Controlling a boiler via emoncms
Paul, alongside your temperature readings it would be interesting to see when the thermostat turned the boiler on and off.
Also a couple of observations and I'm not a heating engineer but a victim of changing regulations (we have some rental properties).
In the past, say 20 years ago, at least in the UK, CH boilers were indeed controlled through the use of a centrally placed thermostat but it seems with the introduction of the energy rating of houses for sale TRVs on radiators have been recommended (therefore necessary). So now we have one system which manages the whole house based on one room and another system which manages each room through the TRVs. In fact we had a boiler replaced the other day and the plumber insisted on fitting a room thermostat due to the regulations even though there were TRVs on all but the towel rail in the bathroom.
So essentially in many houses there are two systems trying to control the heating. I think what many people do in this situation is to whack up the temperature on the thermostat and let the TRVs do their job. If you don't you get randomly cold rooms in the rest of the house. So basically the thermostat is redundant and the boiler turns on and off according to the temperature of the returns from the rads.
Not of course that this would make the OEM board redundant as it would still be used for scheduling but people should be aware of just what the controller can do.
Essentially I'm assuming that the code in EmonCMS will allow us to set up a schedule of on and off times similar to a CH programmer as well I hope as being able to override the settings remotely (this is something I've been wanting to do for some time - would love to be able to turn on the CH when we're an hour away from home when we have been away). I was planning to use a one-wire board connected to an emonTx to do this.
I had planned to use a one-wire relay board connected to a emonTx to do this with some one-wire temperature sensors to monitor various temperatures, e.g. the feed temperatures to the underfloor and rad circuits as well as the returns. I ought to add that our system at home uses a heat bank fed by a gas boiler, solar thermal and PV, so the boiler only kicks in when the tank temperature drops to a preassigned level controlled by thermostats on the tank. I also need to improve this control so that the boiler doesn't kick in unnecessarily and already monitor the temperature of the tank through the emonTx that does the PV diversion (thanks to Martin's sketch).
So anyway, long post but I'm very interested to know what the plans are and if I can help in any way.
Edit: here is a 1 wire relay board from axiris, I thought I had earlier this year found a UK supplier but seem to have lost the link. http://www.axiris.eu/en/index.php/one-wire/1-wire-relay-card
Re: Controlling a boiler via emoncms
In my situation, I'm retrofitting wet underfloor to an existing radiator system which adds the complication that I need to wire in a second pump which comes on when the underfloor calls for heat, but doesn't come on with the main house stat (but either house stat or underfloor must be able to fire the boiler and main pump).
Since this will require some nifty wiring anyway, I figure it may as well use a controller I've developed myself and temperature etc. via emonTH (I buried a temperature sensor in the floor).
The only caution I would offer is that emonCMS for me is not particularly stable. Every month or so it will crash out (the Pi continues to gather RF packets and forward them to the .org, but local is KO'd). I wouldn't want to rely on it to drive the heating schedule unless there was an easy override.
Re: Controlling a boiler via emoncms
I don't have any problem with emoncms but I'm back level quite a bit.
For your ufh/CH/boiler logic you may want to have a failsafe wired with relays. I was planning to leave the existing heat bank control in place even when I move over to controlling via emoncms if the new functionality the guys have indicated they are working on can do what I need.
Re: Controlling a boiler via emoncms
Hi,
I'm also thinking that EMonCMS is not enough stable to control a heating system.
I personally used EmonCMS to understand how my boiler works. That a good starting point. In particular, I made sure that
- the water pump is not ON all the time
- the pump flow is not to fast/slow by monitoring the flow and return temperature
- the cycle of the heating temperature is correct (10K in my case)
By the way, there are a lot of things to take into considerations when designing a central heating controls:
First , you must first consider the type of heating demand itself. The demand is low/high ? Is there a lot of heat losses ? The demand may vary quickly with solar gains ? The thermal mass may absorb variations of internal temperature ? The temperature can/must be different in some rooms ? The temperature must be reduced at night ? ... I have no magical recipe but I just know that the ideal system is really not the same for an old building and a modern one.
Secondly, you must define the type of the targeted boiler : heating only or heating + DHW, condensing or not, constant water temperature or not, internal tank or not ...
Eric
Re: Controlling a boiler via emoncms
I think commercial systems learn the response of the building they are in, and use that to fine tune the call for heat. For instance, if you initially wait to hit target temperature before stopping the system and it continues to rise another 1C then next time you stop at target -1, etc.
Re: Controlling a boiler via emoncms
Which is fine of course if you live in one large room but of course houses are made up of many rooms all with different responses depending on temperature, outside conditions, sun, wind etc.
This is why I've never been sure about devices like Nest. It would be interesting to hear any experiences with devices like these and if they have any value.
Re: Controlling a boiler via emoncms
Having dabbled in this area once, many years ago, I think industrial systems learn on a 'per zone' basis. How you would apply this idea to a domestic setup without zone valves per room, I don't know.
And I think you'd not only stop short of the target temperature, but you'd also start applying heat later.
Re: Controlling a boiler via emoncms
My understanding is that when the room temp gets within 1deg of the room temp, the controller provides shorter boiler bursts, which decrease further as both room & target temps approach alignment, and thereby avoid overshoot. I presume that the reverse would also apply, ie, instead of waiting for a full 1deg drop, maybe fire the boiler for 10% of the normal period when the temp drops 0.2deg to maintain a steady room temp?
Paul
Edit - this link provides a basic description of TPS.
Re: Controlling a boiler via emoncms
Without going too far off topic...
Theres an interesting post in the Plumbers Forum regarding the relationship between the outdoor temp and boiler efficiency.
So if we are aware of the outdoor temp (emonTH/TX or api call), the boiler firing periods can then be manipulated in the control software to increase overall efficiency, by reducing the return temperature...
Paul
Re: Controlling a boiler via emoncms
Hi Paul,
If possible, avoid turning on a boiler for short periods. Short cycles maximize the thermal losses (in the boiler and in the pipes). It also dramatically reduces the life of the boiler.
If you want to reduce the return temperature, you can reduce the pump speed or reduce the supply temperature. This can be achieved by monitoring the external temperature
Eric
EDIT : More information here.
Re: Controlling a boiler via emoncms
You can also use weather compensation:
Link the FLOW temperature of the boiler to the outdoor weather. This is the equivalent of gain in a controller; the proportional "P" term.
If you get this spot-on then in any reasonably insulated building with sensible thermal mass you need no other form of control: winding down the flow temperature is enough to keep the building at 21C.
You then set another "heating line" (graph of flow temperature vs. outdoor temperature) for night setback an another for holiday mode. Night setback results in the building maintaining about 17C, and holiday mode about 5C. The time clock (scheduler) flips between the operating modes. This is the continental approach.
You can combine this with room stats if you like. Set the heating line higher than it needs to be, such pump/boiler always run for say half an hour in every hour. Then allow the room stat to "call for heat" as normal. The firing time (per hour) should remain pretty constant because you're still reducing the flow temperature (gain) as the outdoor temperature rises. This is worthwhile: it gives more flexibility over room temperature and it reduces the amount of time the pump is operational.
Eric: reducing the supply temperature will INCREASE the return temperature. In order to get a set amount of heat into the room, you need a fixed mean water temperature in the radiator. If you reduce the supply temperature then the return temperature will have to be higher to achieve the same heat input into the room (through higher pump speed/flow rate)
Any sensibly sized system will ALWAYS condense. You shouldn't be installing any central heating system that requires a flow temperature in excess of 55 degrees C even in midwinter. (1983 Swedish building codes) In this instance regardless of what you do with flow temperatures the boiler will always be operating in condensing mode.
The old 11 deg C temperature drop across radiators is no longer applicable. That was designed back when
-you had to AVOID condensing on coal boilers and oil boilers. (the sulhpur would create sulphuric acid and destroy the heat exchanger: non-issue with natural gas, modern low-sulphur heating oil, and stainless heat exchangers)
-you had to avoid BOILING the water in the system. (non pressurised and with pretty crappy control systems)
Hence 82/71C flow/return temperatures. Today you should design for 55/35C flow/return at design condition (coldest day in 10 years) and operate it at whichever flow temperature below 55C and pump speed combination give the lowest overall electricity usage whilst not short-cycling the boiler or compromising comfort.
Hot water use (with a combi boiler) hammers them FAR more than any heating control would mind you, so I really wouldn't worry too much about boiler life; only boiler efficiency. Remember to put a daily/weekly pump kick in there for the summer.
Re: Controlling a boiler via emoncms
That makes interesting reading Mark, and looking at your background especially makes your post a good source of reference.
As you will have no doubt already gathered, OEM is gradually moving from just monitoring, to making use of the data and actually controlling things, so it's good to have an early heads up and explore options for future development.
Paul
Re: Controlling a boiler via emoncms
There are a few things to do:
1) Scheduling.
When do you want which zones and at which temperature? Traditional options do this poorly: even when they do offer programming their user interfaces are so clunky and limited in capability that it takes a determined person to optimise the heating schedule.
Best case? You set a "base schedule" with conservative (cold) night setback and day occupied times/temperatures, and make use of the "advance" or "extra hour" buttons to extend the day occupied temperatures if your schedule varies. Good luck deciphering that on your typical Honeywell/Siemens product with black and white LCD and four buttons. Even better luck convincing the nation to do it.
Products like Nest and Tado do a much better job of this. The Nest tries to guess your schedule: a learning thermostat for people who don't want to programme their own. It would drive me mental, but it's great for iPhone users. Tado makes programming a complex schedule easy and augments it with smartphone based geolocation stuff. It would confuse an iPhone user, but I like it.
Both products have good gateways to the internet.
Climote is an Irish product that uses traditional time clock skeumorphs to control two heating zones and hot water via traditional zone valves. Connectivity to the outside world is via a built in SIM and 3G modem. (hefty subscription charge) Interesting but not worth more than a Nest or Tado. (sslicker; more functional; no subscription charges)
2) Zoning.
Do you want one single temperature zone or many separate ones? In a small, well insulated, zoned bed flat a single zone with a TRV to limit bedroom temperature is fine. In houses you need at least two zones because living and sleeping areas want to be different temperatures and a TRV usually isn't enough to achieve this. If rooms are multi-purpose (study bedrooms being the common one) then you want individual time/temperature control for each room. This gets more important as the house is of poorer quality (poor insulation and airtightness) and usage (either schedules or number of occupants) is more irregular.
Nest and Tado don't even attempt to do zoning. You want more zones? Install a zone valve and a separate Nests/Tados for each one. £sillymoney.
Products like Honeywell Evohome and EQ-3 MAX! have individual zone valves for each radiator. The Honeywell product has beautiful actuators (compact, silent, etc) and can call for heat from an individual home boiler set up in the UK fashion. Unfortunately the internet gateway is an absolute load of rubbish (unable to maintain connectivity) and both the in-home user interface and the web/smartphone apps are unusable rank amateur efforts. Luckily Honeywell provide IFTTT functionality, otherwise it would be totally unusable.
The EQ-3 MAX! product is designed for communal heating systems and continental systems where there is no call for heat. (these systems sense return temperature, and decide whether or not to fire the boilers based on the return temperature) As such you can't use it in the UK. The reliability and user interfaces make the Honeywell product look professional, and there's no 3rd party integration.
Heatmiser made their name providing multi-zone controls for showhomes via UFH actuator heads and traditional zone valves; a market that the major players couldn't be bothered to cater for. (continentals with UFH install it in well insulated homes of decent size, such that there's negligible cost to continuous heating and you don't need to use rooms for multiple purposes: passive houses don't need complex controls, only the crazy UK market demands products like Heatmiser) Heatmiser have yet to release a product secure enough to connect to the internet: their existing product line is completely open and relies on 3rd party firewalls for security.
3) Temperature control.
Easy with high thermal mass, well insulated homes: they're kept warm 24/7/365. Easy with low thermal mass homes with fast-response heating systems: the US timber frame plus air conditioner/heat pump market.  Underfloor heating in poorly insulated homes is a nightmare.
Nest is a crude thermostat with hysteresis and an anticipator but works well in the US timber frame plus air conditioner/heat pump applications. Hysteresis thermostats work well when paired with weather compensation: the gain control as described in the previous post (all handled by the boiler setting its own flow temperature) makes their job very simple. Nothing on the market works well with underfloor heating in poorly insulated homes. Don't do it kids, even if it looks cool on TV. Spend the cash on insulation instead.
4) Boiler control.
Honeywell tried and failed to unify the heating industry with Opentherm: the idea was that the central thermostat could set flow temperatures, manage the boilers/pumps etc. Never happened. Instead the boiler manufacturers - led by the (more demanding) continental market rather than the UK market - have designed standalone controls that manage the boiler/circulation pump and handle weather compensation, and can do this either in complete isolation (sensing on return temperature alone: not compliant with UK building regs) or in conjunction with a call for heat on volt-free connections. The UK market gets whatever the continentals had 10 years ago.
Boiler manufacturers have attempted to design their own consumer-facing controls. Few are worth considering.

Take a look at OpenTRV. It is the future for single home applications. ;-)
http://opentrv.org.uk/
https://www.youtube.com/watch?v=x1xR1CiCzvg
OEM probably fits into the Heatmiser customer base: catering for all the demanding customers with awkward use scenarios. I'd say it's worth considering the OpenTRV platform: they're pros at security and suchlike, then plumbing the OEM control and user interfaces/automation scripts into their API.
OEM becomes Nest/Tado. OpenTRV provides the Evohome zoning and the gateway. OEM does a bunch of IFTTT type scripted automation, but more powerfully/on a faster dev cycle than IFTTT will allow.
Re: Controlling a boiler via emoncms
To add: the temperature stability of your TPI installation in the initial post is seriously impressive technically.
Question: do you need it?
Attached: a trace from a boggo basic hysteresis controller; EPC D house; non-condensing boiler operating at ~70/60C flow/return. (uneconomic to improve the heating system or the insulation further)
The cool down cycle gets longer each time as the masonry (starting the day at <17C) absorbs the heat from the air in the room. On the 3rd and 4th cycle you get very minor overshoots from the radiators and distribution pipework cooling after the thermostat has stopped calling for heat. Cooking an evening meal and a few people in the house on a Saturday night is responsible for the longer overshoots.
I don't notice that +/- 0.5C at all: the hysteresis stat works pretty well actually; and fires only 5-8 times in 24 hours.
Is it worth going to town on temperature stability? How good is "good enough" anyway?
Kid brother's place (weather compensation on the boiler plus hysteresis stat via evohome; better insulation and airtightness) is firing two or three times per day. Cooking, showering, and people in the home cause more temperature instability than really quite crude heating controls.
Re: Controlling a boiler via emoncms
Marko, thanks for a thorough tutorial and view of some of the current market trends. Glad to hear that radiator balancing isn't needed in modern systems, I could never understand how you could achieve this. Also the view on Nest, which matches what I intuitively believed.
Also great to hear more pragmatism. We live in a '50s detached house built in 9" solid brick with a full height cavity wall extension on one side and a 3/4 height modern well insulated extension on the other side. Rads in the old part and ufh in the modern part. The south facing back of the house is floor to ceiling glass so on sunny days absorbs a huge amount of heat. Managing everything to within a few degrees would be great!
So for me, accuracy of control isn't the most important thing, what's important is the ability to see what's actually going on and to develop algorithms to 'intervene' in the control under certain circumstances. Oh and a neat way of managing things remotely.
Re: Controlling a boiler via emoncms
And back to the OP. Paul, when do you and Trystan expect to be releasing the board?
If it's going to take a while I may go down the 1 wire route.
Simon
Re: Controlling a boiler via emoncms
Radiator balancing IS required on modern systems, but rather than fixing the base flowrates through each rad and using mechanical TRVs to 'tweak' them in accordance with solar gain, you're using an electronic TRV to do both jobs.
Your 1950s base with an addition every three decades is classically awkward to manage. Sounds like you might need better architecture in addition to heating controls: either more roof overhang (summer shade but winter direct sun), a pergola with nice vines (again summer shade but winter sun), or a charleston style wrap-around balcony etc.
Sadly too many "architects" are just stylists these days, with no clue at to the building physics implications of features that were invented for function not just looks. Grand designs has much to answer for!
Control strategy: separate the UFH and radiators into two zones (minimum) and control separately. Rads can run a traditional hysteresis thermostat and crude weather compensation. UFH wants to run weather compensation with two inputs: predicted outdoor temperature tomorrow and predicted solar gain tomorrow (or at least 8 hours ahead if not 24) then set the slab temperature to suit.
A parge coat for aitrightness and 200 mm of EPS on the outside of the house would make your life easier too; as would MVHR to even out the temperature distribution/cool the over-glazed/under-shaded extension.
Re: Controlling a boiler via emoncms
Hi,
I totally agree but you may also want to reduce the amount of heat delivered at a given moment. In France, I see many people making their radiators works at 90/70°C whereas 65/50 or 50/40°C would be ok. Most central heating system are oversized.
When it's possible (not too much thermal losses, boiler ability to provide a cooler flow, radiators big enough, ...) , it improves the heating efficiency and the thermal comfort.
That's is what I meant when saying that one can reduce the return flow by reducing the supply temperature. Obviously, the pump and flame activity will be affected and not necessary as expected ...
Eric
Re: Controlling a boiler via emoncms
Paul, when do you and Trystan expect to be releasing the board?
The board is a joint effort between Trystan & Ken Boak (who you may recall designed the Nanode).
Ken was expecting to release some beta boards very shortly, but I haven't heard anything for a couple of weeks now.
I do know however that Trystan has made significant progress with the control software, albeit not yet ready to release.
Paul
Re: Controlling a boiler via emoncms
Hi
I have followed this with great interest. I set up emoncms to monitor our central heating with a view to optimizing the settings on our existing heating controls for comfort and economy.
http://<IP_ADDRESS>/emoncms/ianeagland&id=1
We have a cottage built around 1650 with very thick Cobb walls. We have fitted UFH with individual room zones and very good insulation under the ground floor slab. The roof space has been fitted with wool insulation to the maximum thickness allowed by the construction. We realised some time ago the best thing to do was run the heating full time. The only real issue we have is hysteresis in the existing thermostats. It is our intention to change to a better control in the near future. At present we have wall mounted temperature sensors. I am wondering if we might get a more stable room temperature if we had sensors in the floor slabs. I would be interested if any one has any thoughts (or experience) on the best way to control UFH.
Regards
Ian
Re: Controlling a boiler via emoncms
Ian - I don't have a lot of experience but I built a new home in New Zealand 3 years ago and laid a 250mm concrete slab (twice as thick as normal) and ran hydronic underfloor heating pipes throughout. I places a temperature sensor deep inside the slab and use that to control my air-to-water heatpump which provides the warm water (approx 35C) for the heating.
What I have found is that once the slab heats up to temp (i.e. at the start of winter), which can take a couple of days, I only require one on/off cycle per day to keep it topped up. I only run the heatpump from 9pm till 7am as I have much cheaper electricity rates then. So every night at 9pm the heatpump fires up and will run anywhere from 3 to 10 hours, depending on how warm the slab gets. In the middle of winter it will run the full 10 hours (force shut off at 7am when cheap electricity ends) most nights, in the shoulder months as little as 3 hours.
I have the slab thermostat set to around 26-27C - although this is a fairly arbitrary value I think - that is the slab temp that keeps the house at a very comfortable level. It will depend how far the probe is from the nearest warm water pipe as to what temp best suits you.
The thermostat has built in hysteresis so it if set to 27C, will turn on at 26C and off at 28C. Due to the slow nature of this heating system, this hysteresis is enough to ensure the heatpump only ever turns on once a day. And because I went a little overboard with insulation etc the house temp at 8.30pm never drops below 20C.
Extremely happy with the system, but always interested to learn more about how others are using theirs!
Re: Controlling a boiler via emoncms
Hi guys I have arrived a bit late to this thread but I am very interested in using emoncms / scheduler for heating control.
My current system has been running for about a month & so far so good! It's using Rpi, emoncms low write, emonhub & scheduler, 8 zones mixed under floor (hot water) and radiators, all rooms independent temperature control. I hope to write a blog describing the system but in the mean time a few comments.....
Radiators..... all had Honeywell TRVs I changed the heads to thermal actuators (I used 230V but you can get 24v for those that don't want to mess with mains) wiring was a bit of a fag ... quite a few carpets & floorboards had to come up..... wife wasn't best pleased!.....
Adding relays to emontx is fairly straightforward using the ULN2803A interface chip (50p at RS). These have 8 channels, connect directly to ATmega328 outputs & have built-in fly back diodes for driving inductive loads so no extra components needed. The chips have darlington arrays completing the circuit to ground so the relays can have a separate power supply from the tx (common ground) ... any voltage up to 50v (I used 5v, 6A relays with a common power supply to the TX) They can drive 24v (DC) actuators directly without relays......On one tx I added 8 relays using a jeelabs output plug .... these little boards sit very nicely on node 3 of the emontx V2. They use an expander chip and a version of the ULN2803A ... it took me a little while to get the hang of programming the output plug but I will document this in the blog.....
Boiler cycling........ our boiler was 20 years old, non condensing..... It was still working but I decided however good the control it was never going to be efficient so I bit the bullet & changed it to a Greenstar Worcester CDi regular...... so far very impressed.... these boilers are self modulating...... you set the heating feed temperature & the boiler regulates the gas flow to keep the return temperature in the condensing range..... This makes boiler control very easy.... I also changed our 20 year old circulation pump for a self adjusting one.....
Temperatures are measured by TXs except where wiring was tricky & I used THs
I also had an old "Arexx" temperature logging system which also used 433MHz battery powered sensors. I was unable to hack these directly but they come with a web-connected base station which can send temperatures to emoncms. Trystan kindly added a few lines to input_model so that "input" or "feed" values could be automatically sent to packetgen & hence used as control variables....This seemed like a good idea at the time but....I think the system will be much more reliable if temperatures are measured directly by the emontxs doing the control or sent to them directly via THs.
Hysteresis......I have a separate module in emoncms which runs alongside scheduler. This has simple buttons which can turn rooms off or set them to auto via packetgen...This allows bedrooms to be in a single zone for timing but with individual off buttons On this room control module I have added hysteresis "set" which makes "hysteresis" a packetgen variable which is easy to change.... I also added a winter setpoint but this is not quite functional yet......
Scheduler....... This has 2 parts.. a standard emoncms module which has the interface & scheduler_run.php which is the control script (run from cron) My programming abilities are fairly limited... The scheduler Mk1 was based on a few sketched ideas I had which Trystan programmed (mostly in an afternoon!) I am very keen to see a Mk2 scheduler & it would be useful to have some feed back as to how Mk1 could be improved.
The current scheduler works fairly well on mobiles (Andriod & iphones).... its easy to flick through zones & any added buttons.....
For what it's worth here are a couple of screen shots of my scheduler (It's already slightly modified)
Only 3 out of the 8 zones are shown
The time is browser time at the moment (this was confusing me at first as the scheduler uses Rpi time & mine was originally set to UTC... ....an hour different from the browser......) The outside temperature is automatically displayed as long as you have a feed called "outside" All the zone temperatures are displayed as long as you have a feed name the same as a zone name...The buttons are self explanatory..... Times and setpoints can be changed for each day (at the moment there are 2 on / off times for each day ) The "boost" button .. push once for 1 hour, twice for 2, 3 times for 3 hours, 4 times its off! Built in timer counts down the minutes until it goes off
Times are set by "Time pickers" these are fairly easy to use on a mobile, but a bit fiddly to programme initially, setpoints are text entry
Having used the scheduler for a month or so it works OK but it could be improved & I am keen to help with the next version but it would be useful to have any suggestions for major changes before I try to persuade Trystan to do the reprogramming that I already have in mind!....
Richard
Re: Controlling a boiler via emoncms
when the relay node comes out 3 relay controllers won't be enough for my system. Its a historic system where the upstairs / downstairs / hot water each have their own control values for their flow of water.
I'm not using the hot water now as the hot water is done by thermodynamics. But at some point i want to heat the conservatory separately. I think this will mean I'd need 6 relays broken down into upstairs/downstairs/hot water/conservatory/pump/boiler.
As we don't use the boiler during the summer I still want to run the pump every week just to keep it from seizing up. hence the need for its separate controller.
Any plans for a more extendible controller?
Thanks
Re: Controlling a boiler via emoncms
Hi
If you need 6 relays you might as well build your own relay board (as long as you are happy with the mains side)
The emontx V2 has 6 spare outputs (7 if you include the LED) as identified by Robin http://openenergymonitor.org/emon/node/2066#comment-10976
If you use a ULN2803A interface chip (it has 8 channels obtainable from Farnell or RS) this chip can be connected directly to ATmega328 & will drive relays directly (there are on board fly back diodes for inductive loads) I used Finder <IP_ADDRESS>.2000 relays (These have 5V coil, sp, 6 amp at 240V ac - fine for boiler/pump/zone valve control) from RS or Farnell. Both the driver & relays can be mounted on Vero board (as long as you are careful to separate the mains from the low voltage)
I have used 18 of these relays in my system, driven from ULN2803As - so far no problems!
Richard
Re: Controlling a boiler via emoncms
I design and install heating and ventilation control systems in commercial buildings.
Generally we operate the system on a demand based strategy. Each zone or device has its control setpoint which is controlled via a PI control loop (no need for D, temperature doesn't move fast enough). From this output we take a demand back to the heat source/boilers to start.
The boilers are then sequenced and the duty rotated to maintain a boiler flow temperature setpoint.
Most new commercial condensing boilers now come fitted with the ability to modulate the boiler output via a 0-10vdc signal.
As a rule of thumb boilers are generally enabled for a minimum period of time to avoid causing a fault on the boiler.
What will be the most difficult is programming optimum start and stop control for the time schedule. I have seen it done wrong too many times!
Re: Controlling a boiler via emoncms
Hi Hatfieldr or something similar to http://www.ebay.co.uk/itm/New-8-Channel-5V-Relay-Module-Board-for-Arduino-PIC-AVR-MCU-DSP-ARM-UK-/151105724470
which is a 8 way relay (got one ages ago..)
I doubt i will be the only one needing more than 3 relays - as that would only do pump/boiler/one selector to decide whether the hot water goes to the heating or hot water. - Anyone else need more than 3 ?
Re: Controlling a boiler via emoncms
I do, just bought a 4 channel 5v opto-isolated board for £10. Which coupled with an esp8266 03 board and USB micro adapter and a 3.3v powerpod will make an extremely cheap device with direct wifi., so controllable through Openhab or freeboard.
I think this combination makes anything rfm12b +arduino obsolete. Just my opinion of course.
I'm following harazinov and a couple of others as they get this all working with MQTT etc. Anyone else trying this route?
Re: Controlling a boiler via emoncms
Do you have any links at all?
Re: Controlling a boiler via emoncms
Hi octagon,
I bought all these on eBay except the powerpod which is from Ciseco and I'm hoping will be man enough to do the job. So if you do a search on eBay you should easily find the other bits.
Most of them are a lot cheaper from HK or China but you would have to wait up to a month to have them delivered, so I bought from sellers with UK stock. If you don't mind waiting then you could build this for about a third of the price I have paid which so far is about £15 + £12 for the relay board.
The esp8266 in the 03 packaging is a bit odd in that it is 2mm spacing on the board eadge and not 0.1 inch which seems to be standard for prototyping boards, so I have purchased some 2mm male headers and this Uno prototyping board ->http://www.ebay.co.uk/itm/151545055046?_trksid=p2059210.m2749.l2649&var=450759605333&ssPageName=STRK%3AMEBIDX%3AIT
The board has an area of 2mm prototyping surrounded by 0.1 inch, so I can solder the 2mm headers onto the esp8266 package and then onto the board to connect to everything else.
The reason btw for selecting the 03 package is that it has a lot more i/o broken out, enough to drive the 4 channel relay board.
Martin Harizanov has a couple of recent blogs on what he is doing with the esp8266, not sure if you have seen these. He designs and sells PCBs to support his projects and says in one of the blogs that he intends to create a PCB with the esp8266 and from memory 4 SSRs so you may want to look at that. Again you should be able to find his blogs by googling his name
Re: Controlling a boiler via emoncms
From what I understand, Martin intends to sell the units from his shop, either very late January or into February. Not sure whether it will be PCBs, kits or ready assembled.
Paul
Re: Controlling a boiler via emoncms
All, very late to this forum I know, but want to add something regarding boiler return temps.
Firstly, as the plumbers formum link (by Paul Reed) says, the lower the return temp to the boilers, the better the condensing efficiency. So it may be worth while pursuing means to achieve this (although the savings won't be massive for small buildings).
Secondly, there is a natural means by which return temp will reduce. As a 2-port valve (e.g., a TRV) closes down, the return temp from the emitter will actually decrease. This is because by throttling the flow, the water now has more time in the radiator to cool down.
There problem comes with typical domestic arrangements which have a bypass designed to prevent the pump working against a dead head when all TRVs have closed. This also provides a means of mixing in flow water into the return, raising the net return temperature. So important to keep the bypass valve open as little as possible.
Weather compensation has it's part to play in this process, but is often an expensive addition. It's main use, in my view, is to improve controlability of the radiators. If a room heat loss requires the radiator to work at low capacity (say 25%), the TRV may struggle to effectively throttle 70degC water without causing massive overshoot. If the flow temp is only at 50degC, the TRV can allow a bit more flow and stay in authority better.
Re: Controlling a boiler via emoncms
Another Latecomer, What I would like to have in a control system is,
1. when the boiler fires it operates at a high flow temperature (70 C) until the return temp increases ( thus indicating that the building temperature is almost satisfied.
2. The boiler flow temp is then reduced (in 5 C ) steps until the return flow temp is at a suitable temp to maximise condensing in the boiler.
3. If the return temp does not reduce then turn the circ pump off for a fixed time (10 minutes and check if heat is required (signal from room stat)
This system reduces the time to heat a building and then reverts to the lower temperature "ECO" mode if more heat is required. In effect it will behave similar to a boiler that can modulate.
????
Re: Controlling a boiler via emoncms
when the boiler fires it operates at a high flow temperature (70 C) until the return temp increases ( thus indicating that the building temperature is almost satisfied.
Hi Don, wouldn't an increase in the return temp suggest that the core of water in the heating system has now been heated to optimum (less losses of course), rather than the building temperature being almost satisfied?
Surely a few degrees increase in building temperature would not have a significant impact on the amount of heat dispersed by the radiators, especially if the flow temp was 70 C, and therefore unlikely to change the return temp.
Paul
Re: Controlling a boiler via emoncms
Hi Paul, In answer to your question; As the building temperature increases, less heat is removed from the radiators. The TRV's (if fitted) will start reducing the flow, and if the circulation pump remains circulating, which in many cases it will be as the room stat will probably not have operated. The return flow temperature to the boiler will increase.
What I am suggesting (I have a condensing oil boiler) is that if a controller had a way to reduce the boiler "set" temperature gradually over a few boiler cycles, that the boiler should be in "condensing mode" more often and more efficient.
This requires the existing boiler thermostat to be replaced with a contact of a relay operated by the "new controller".have used a data logger to monitor my own circuit and this what happens.
Re: Controlling a boiler via emoncms
Any update on when these relay boards will be available ? If it's going to be awhile I'll make my own, but it I'd rather use this board then others could use the boiler control software that I'm converting from an old project running on Acorn computer.
Re: Controlling a boiler via emoncms
I think that the idea has been shelved. Ken Boak (hardware designer) had said that boards would be available in time for Xmas 2014, but they never appeared.
Trystan did however complete the software which was to be used on the board, which has since been further developed by Martin Harizanov.
Paul
Re: Controlling a boiler via emoncms
im also interested in some form of temperature control, in my case it's the HWC that I need to control, and this could be done with an open collector output. Essentially the control would be if the HWC sensor was registering between 26 and 58 degrees and the time is between 6 and 8pm activate the output. The 26 degree setting is to get around the occasional temp sensor dropout and this is for occasions when the solar hasn't heated the water enough as the main thermostat is lower down the cylinder and set to a higher temperature.
i do this now using a timer, an old thermostat half way up the tank and my phase angle diverter hence the need for a much lower switching current. It works well however the 8 degree thermostat hysteresis will be an issue when summer arrives in the Southern Hemisphere.
id also use another relay to allow me to override the heater in my spa which is on a similar setup.
is any of this likely in the next few weeks or should I start hunting for a better thermostat?
kevin
Re: Controlling a boiler via emoncms
thanks for the reply Paul, I've had a look at Martin's project and looks like it should fit the bill perfectly.
Re: Controlling a boiler via emoncms
At the top people are worried about the stability of the Pi - Have you enabled the built-in hardware watchdog?
It can monitor various things and if they are not working as expected cause the system to reboot.
Seems to work for me.
Check if a file has been updated recently or the network connection is OK etc etc
Re: Controlling a boiler via emoncms
This link appears dead
http://harizanov.com/2015/02/wifi-thermostat-with-weekly-scheduler/
Is this 3-channel relay board now also dead?
The open trv project also seems to have died!
Re: Controlling a boiler via emoncms
Martin's site appears to be dead. I suspect a temporary problem.
[Edit]
It's back now - 4/1/2016 @ 19:54 UTC.


Reactiveness Test -
BindOnce version
{{ name || 'Press & hold a key until it fills the input to test the reactiveness' }}
Reset
Load 500
Load 1000
Load 2000
without BindOnce
轮询
Click Me!
Persons
$Watchers
This demo uses
BindOnce
, do you want to test the
version without BindOnce
?
#
Avatar
First Name
Last Name
Age
Gender
Profile


Canada's Indian Residential School System was a network of boarding schools, industrial schools, and federal hostels created to remove indigenous children from their homes, their families, and their cultures. While many schools originated long before Confederation in 1867, the system was primarily active following the approval of the Indian Act in 1876 — a group of laws aiming to do away with the Indian tribal system and forcibly enfranchise First Nations peoples — until the the last federally-operated school closed in 1996.
In recent years and in light of official apologies issued by the Government of Canada, individual provinces and territories, the Vatican, and various church groups, information about the schools and their students' welfare has become public knowledge: physical and sexual abuse was rampant, both involving administrators and between students; malnourishment and poor living conditions were not uncommon; and assimilation, deprivation of cultural traditions, and punishment was the standard. It is estimated that 6000 children died while in attendance.
This project aims to investigate the IRS system visually, beginning with the stories of survivors and transitioning into the narrative of each school. What follows is a selection of stories told by residential school survivors, gathered by the National Truth and Reconciliation Commission between 2008 and 20151. Scroll on to explore.
A search tool is always available in the top left corner. Access the above navigation menu by clicking the search icon. Data, credits, and methodology is available here.
This project contains subject matter that may be disturbing to some visitors. A 24 Hour National Survivors Crisis Line is available at 1-866-925-4419.
Click on a story to select it, then scroll down. Drag stories left to right to see more, or use the search tool in the top left to find specific stories.


Home
Login
Login
Forgot your password?
Sign Up
Login with Google
Login with Facebook
Login with LinkedIn
Login with [[${idp.type}]]


| Package | Description |
|---|---|
| edu.cmu.sphinx.jsgf | |
| edu.cmu.sphinx.linguist |
Provides a set of interfaces and classes that are used to define the
search graph used by the decoder.
|
| edu.cmu.sphinx.linguist.dictionary |
Provides a generic interface to a dictionary as well as several
implementations.
|
| edu.cmu.sphinx.linguist.language.classes | |
| edu.cmu.sphinx.linguist.language.grammar |
Provides classes and interfaces that can be used to represent a graph of words and word transitions.
|
| edu.cmu.sphinx.linguist.language.ngram |
Provides classes and interfaces that represent a stochastic language model
|
| edu.cmu.sphinx.linguist.language.ngram.large |
Provides an implementation of the LanguageModel interface.
|
| edu.cmu.sphinx.linguist.lextree |
Provides an implementation of the
Linguist that
represents the search space as a lex tree. |
| edu.cmu.sphinx.result |
Provides a set of classes that represent the result of a recognition.
|
| edu.cmu.sphinx.trainer |
Provides a set of high level classes that can
be used to configure and initiate the speech recognition training
process.
|
| Constructor and Description |
|---|
JSGFGrammar(String location,
String grammarName,
boolean showGrammar,
boolean optimizeGrammar,
boolean addSilenceWords,
boolean addFillerWords,
Dictionary dictionary) |
JSGFGrammar(URL baseURL,
String grammarName,
boolean showGrammar,
boolean optimizeGrammar,
boolean addSilenceWords,
boolean addFillerWords,
Dictionary dictionary) |
| Modifier and Type | Method and Description |
|---|---|
static WordSequence |
WordSequence.asWordSequence(Dictionary dictionary,
String... words) |
| Modifier and Type | Class and Description |
|---|---|
class |
MappingDictionary
Maps the phones from one phoneset to another to use dictionary from the one
acoustic mode with another one.
|
class |
TextDictionary
Creates a dictionary by quickly reading in an ASCII-based Sphinx-3 format
dictionary.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ClassPresentingDictionary
The only purpose of this class is to present all classes
as words in the getWord() method.
|
| Constructor and Description |
|---|
ClassPresentingDictionary(ClassMap classMap,
Dictionary wordDictionary) |
| Modifier and Type | Field and Description |
|---|---|
protected Dictionary |
Grammar.dictionary |
| Modifier and Type | Method and Description |
|---|---|
Dictionary |
Grammar.getDictionary()
Gets the dictionary for this grammar
|
| Constructor and Description |
|---|
AlignerGrammar(boolean showGrammar,
boolean optimizeGrammar,
boolean addSilenceWords,
boolean addFillerWords,
Dictionary dictionary) |
BatchForcedAlignerGrammar(String refFile,
boolean showGrammar,
boolean optimizeGrammar,
boolean addSilenceWords,
boolean addFillerWords,
Dictionary dictionary) |
ForcedAlignerGrammar(boolean showGrammar,
boolean optimizeGrammar,
boolean addSilenceWords,
boolean addFillerWords,
Dictionary dictionary) |
FSTGrammar(String path,
boolean showGrammar,
boolean optimizeGrammar,
boolean addSilenceWords,
boolean addFillerWords,
Dictionary dictionary) |
Grammar(boolean showGrammar,
boolean optimizeGrammar,
boolean addSilenceWords,
boolean addFillerWords,
Dictionary dictionary) |
LatticeGrammar(Lattice lattice,
boolean showGrammar,
boolean optimizeGrammar,
boolean addSilenceWords,
boolean addFillerWords,
Dictionary dictionary) |
LMGrammar(LanguageModel languageModel,
boolean showGrammar,
boolean optimizeGrammar,
boolean addSilenceWords,
boolean addFillerWords,
Dictionary dictionary) |
SimpleWordListGrammar(String path,
boolean isLooping,
boolean showGrammar,
boolean optimizeGrammar,
boolean addSilenceWords,
boolean addFillerWords,
Dictionary dictionary) |
| Constructor and Description |
|---|
DynamicTrigramModel(Dictionary dictionary) |
SimpleNGramModel(String location,
Dictionary dictionary,
float unigramWeight,
int desiredMaxDepth) |
SimpleNGramModel(URL urlLocation,
Dictionary dictionary,
float unigramWeight,
int desiredMaxDepth) |
| Modifier and Type | Field and Description |
|---|---|
protected Dictionary |
LargeNGramModel.dictionary |
| Constructor and Description |
|---|
LargeNGramModel(String format,
URL location,
String ngramLogFile,
int maxNGramCacheSize,
boolean clearCacheAfterUtterance,
int maxDepth,
Dictionary dictionary,
boolean applyLanguageWeightAndWip,
float languageWeight,
double wip,
float unigramWeight,
boolean fullSmear) |
LargeTrigramModel(String format,
URL urlLocation,
String ngramLogFile,
int maxTrigramCacheSize,
int maxBigramCacheSize,
boolean clearCacheAfterUtterance,
int maxDepth,
Dictionary dictionary,
boolean applyLanguageWeightAndWip,
float languageWeight,
double wip,
float unigramWeight,
boolean fullSmear) |
| Modifier and Type | Method and Description |
|---|---|
Dictionary |
LexTreeLinguist.getDictionary() |
| Constructor and Description |
|---|
LexTreeLinguist(AcousticModel acousticModel,
UnitManager unitManager,
LanguageModel languageModel,
Dictionary dictionary,
boolean fullWordHistories,
boolean wantUnigramSmear,
double wordInsertionProbability,
double silenceInsertionProbability,
double fillerInsertionProbability,
double unitInsertionProbability,
float languageWeight,
boolean addFillerWords,
boolean generateUnitStates,
float unigramSmearWeight,
int maxArcCacheSize) |
| Modifier and Type | Method and Description |
|---|---|
static Lattice |
GDLLatticeFactory.getLattice(String gdlFile,
Dictionary dictionary)
Create a Lattice from a GDL (AISee) Lattice file.
|
| Modifier and Type | Class and Description |
|---|---|
class |
TrainerDictionary
Dummy trainer dictionary.
|
| Modifier and Type | Method and Description |
|---|---|
Dictionary |
Transcript.getDictionary() |
Dictionary |
SimpleTranscript.getDictionary()
Gets the transcript's dictionary.
|
| Modifier and Type | Method and Description |
|---|---|
void |
Utterance.add(String transcript,
Dictionary dictionary,
boolean isExact,
String wordSeparator)
Add transcript with dictionary and exact flag.
|
void |
SimpleUtterance.add(String transcript,
Dictionary dictionary,
boolean isExact,
String wordSeparator)
Add transcript with dictionary and exact flag.
|
void |
SimpleTranscript.initialize(Dictionary dictionary,
boolean isExact)
Initializes the SimpleTranscript with dictionary and exact flag.
|
| Constructor and Description |
|---|
SimpleTranscript(Dictionary dictionary,
boolean isExact)
Constructor for the SimpleTranscript.
|
SimpleTranscript(String transcript,
Dictionary dictionary,
boolean isExact)
Constructor for the SimpleTranscript.
|
SimpleTranscript(String transcript,
Dictionary dictionary,
boolean isExact,
String wordSeparator)
Constructor for the SimpleTranscript.
|
Copyright © 2017. All rights reserved.


{#- This file was automatically generated - do not edit -#} {% extends "main.html" %} {% block content %}
Sorry, but the page you were trying to view does not exist. Try searching for it or looking at the URL to see if it looks correct. We are updating these docs all the time, and sadly from time to time stuff breaks.
Did you find a dead link? If you have improvements to the docs, please send us your pull requests. The easiest way to do this is to use the pen icon in the top right corner of each page
Sorry for the inconvenience.
{% endblock %} {% block disqus %}{% endblock %}


Identifies the type of each heavyweight PxTask object.
More...
#include <PxTaskManager.h>
Identifies the type of each heavyweight PxTask object.
- Note
- This enum type is only used by PxTask and GpuTask objects, LightCpuTasks do not use this enum.
- See also
- PxTask
-
PxLightCpuTask
◆ Enum
Identifies the type of each heavyweight PxTask object.
| Enumerator |
|---|
| TT_CPU | PxTask will be run on the CPU.
|
| TT_NOT_PRESENT | Return code when attempting to find a task that does not exist.
|
| TT_COMPLETED | PxTask execution has been completed.
|
The documentation for this struct was generated from the following file:


--- layout: page title: About header-img: "img/about-bg.png" ---
I'm 22, an avid reader and lover of all things geeky. Currently, I am taking the first few steps in a long journey to be a software developer.


| k1 | v1 | k2 | v3 Surplus |
v2 Missing |
|---|---|---|---|---|
| 1,230,008 | 1230008 | 1,230,008 | 1,230,007 Surplus |
1,230,008 Missing |
| 1,230,016 | 1230016 | 1,230,016 | 1,230,015 Surplus |
1,230,016 Missing |
| 1,230,024 | 1230024 | 1,230,024 | 1,230,023 Surplus |
1,230,024 Missing |
| 9 more matched rows... | ||||
| 1,230,004 Missing |
1230004 Missing |
1,230,004 Missing |
Missing |
1,230,004 Missing |
| 1,230,012 Missing |
1230012 Missing |
1,230,012 Missing |
Missing |
1,230,012 Missing |
| 1,230,020 Missing |
1230020 Missing |
1,230,020 Missing |
Missing |
1,230,020 Missing |
| 9 more breaks like this... | ||||
| 1,230,008 Surplus |
1230008 Surplus |
1,230,008 Surplus |
1,230,008 Surplus |
Surplus |
| 1,230,016 Surplus |
1230016 Surplus |
1,230,016 Surplus |
1,230,016 Surplus |
Surplus |
| 1,230,024 Surplus |
1230024 Surplus |
1,230,024 Surplus |
1,230,024 Surplus |
Surplus |
| 9 more breaks like this... | ||||
| 1,230,001 | 1230001 | 1,230,001 Expected 1,230,002 Actual -1 / 0.00008130074691% Difference / Variance |
1,230,001 Surplus |
1,230,001 Missing |
| 1,230,007 | 1230007 | 1,230,007 Expected 1,230,006 Actual 1 / -0.00008130035032% Difference / Variance |
1,230,006 Surplus |
1,230,007 Missing |
| 1,230,009 | 1230009 | 1,230,009 Expected 1,230,010 Actual -1 / 0.00008130021813% Difference / Variance |
1,230,009 Surplus |
1,230,009 Missing |
| 22 more breaks like this... | ||||
| 1,230,002 | 1230002 Expected 1230003 Actual |
1,230,002 | 1,230,002 Surplus |
1,230,002 Missing |
| 1,230,006 | 1230006 Expected 1230005 Actual |
1,230,006 | 1,230,005 Surplus |
1,230,006 Missing |
| 1,230,010 | 1230010 Expected 1230011 Actual |
1,230,010 | 1,230,010 Surplus |
1,230,010 Missing |
| 22 more breaks like this... | ||||
| 1,230,003 | 1230003 Expected 1230004 Actual |
1,230,003 Expected 1,230,004 Actual -1 / 0.00008130061471% Difference / Variance |
1,230,003 Surplus |
1,230,003 Missing |
| 1,230,005 | 1230005 Expected 1230004 Actual |
1,230,005 Expected 1,230,004 Actual 1 / -0.00008130048252% Difference / Variance |
1,230,004 Surplus |
1,230,005 Missing |
| 1,230,011 | 1230011 Expected 1230012 Actual |
1,230,011 Expected 1,230,012 Actual -1 / 0.00008130008593% Difference / Variance |
1,230,011 Surplus |
1,230,011 Missing |
| 22 more breaks like this... | ||||
| 1,230,100 Expected 1,230,101 Actual -1 / 0.00008129420372% Difference / Variance |
1230100 | 1,230,100 | 1,230,100 Surplus |
1,230,100 Missing |


click me!
click me again
Some text
Text changer
This is some text.
Append some text
java script is ...
create text


LiveJournal is a sort of blogging community. I don’t really participate in it myself, but my girlfriend does.
On LiveJournal, it is common to put long posts or large/plentiful/not-worksafe images behind a “LJ-cut”, which means that the cut contents are not displayed in lists of posts, but only when you open the dedicated page for that post.
Some people want pretty much everything inside cuts; others want some content outside the cut to know whether they want to see more or not. My girlfriend is in the latter camp, and so I made a Greasemonkey script for cut image previews.
The script and usage instructions are over at userscripts.org.
The script works with the LiveJournal S2 Generator layout style, and some other layout I encountered. The last time I wrote a complex script for LiveJournal, I put some effort into making it work across layouts – and even in Opera 9. I don’t want to do that now – it is Somebody Else’s Problem – but I’ve tried to make the code easy to adjust by someone who knows their way around JavaScript and XPath expressions.
Update 2007-05-11
Should now work in most layouts.
LJ-cut links are identified by the href
containing “#cutid”. I think this is constant across all layouts.
When retrieving images on a dedicated post page, the contents related to a particular cut are assumed to between
and the next such tag, or else the end of the post contents as represented by

. This might or might not be constant across layouts – I couldn’t find anything that broke the pattern, but perhaps the layout of dedicated post pages depends on the logged-in user.
The XPath expression stored in xpath_cut_to_post
is used to find the post element (containing the post contents) relative to a cut link. This definitely varies across layouts, so it is probably the first place to look if things don’t work. Finding the post element is not necessary if “Preview even if images precede cut” is toggled on.


Preparation time
30 mins to 1 hour
Cooking time
30 mins to 1 hour
Serves
Serves 8
Dietary
Trust Raymond Blanc to produce the most spectacular chocolate log for Christmas. Who needs Christmas pudding?
Equipment and preparation: For this recipe, you will need a 30cm/12in-long Swiss roll tin, a sugar thermometer and an electric whisk or free-standing mixer.
For the genoise, preheat the oven to 180C/160C Fan/Gas 4.
Whisk the egg whites in a bowl (or free-standing mixer) until soft peaks form when the whisk is removed. Gradually add the sugar as you whisk the egg whites, until stiff peaks form when the whisk is removed.
Reduce the speed of the electric whisk to medium, then whisk the egg yolks into the mixture, one by one.
Sift half of the flour into the bowl, then gently fold it into the egg mixture using a spatula. Add the remaining flour and carefully fold it into the egg whites too.
Pour over the melted butter and gently fold it into the egg white mixture.
Line a 30cm/12in Swiss roll tin with silicone paper, sticking each corner to the tin with a dab of the genoise mixture.
Pour the genoise into the prepared tin, pushing it into the corners and levelling the surface using a palette knife.
Bake the genoise in the oven for 10 minutes, or until it is pale golden-brown in colour and springy to the touch. Remove from the oven and set aside to cool in the tin.
Meanwhile, for the buttercream, heat the sugar and 50ml/2fl oz water in a small saucepan until the temperature of this sugar syrup reaches 121C (use a sugar thermometer for this).
Using an electric whisk or free-standing mixer, whisk the egg yolks with 30ml/1fl oz water for 5 minutes on full speed until pale and fluffy.
Reduce the speed of the electric beaters, then drizzle the sugar syrup in a thin stream down the side of the bowl. (Caution: do not pour the hot syrup directly onto the beaters). Whisk until the mixture thickens and looks silky, then continue to whisk until the mixture cools completely.
Reduce the speed of the beaters to a slow speed, then whisk in the rum. Add the softened butter a little at a time, whisking until each addition has become fully incorporated into the sabayon, then continue to whisk for a further 3 minutes.
Fold in the chopped chestnuts and set aside until needed (chill in the fridge if making in advance).
For the soaking liquid, bring the sugar and 40ml/1¼fl oz water to the boil in a small saucepan, then remove the pan from the heat and stir in the rum.
Using a pastry brush, brush the soaking liquid evenly over the cooled sponge.
Turn the soaked sponge upside down onto a clean tea towel, then carefully peel away the silicone paper.
Spread one-third of the buttercream in an even layer all over the soaked sponge. Place the candied chestnuts in a line where the inside of the roll will be. Then roll the sponge as tightly as possible using the tea towel to lift the sponge.
Wrap the sponge roll tightly in cling film, then chill in the fridge for 15 minutes.
Unwrap the sponge roll and transfer it to a cake board with the seam on its underside. Carefully trim each end using a sharp knife.
Spread the remaining buttercream all over the sponge roll in an even layer using a palette knife (or piping bag, if desired). Drag a fork lightly and unevenly through the buttercream to make it look like tree bark. Refrigerate for a further 30 minutes.
Meanwhile, for the chocolate sauce, bring the milk and cream just to the boil in a saucepan. Remove the pan from the heat and stir in the chocolate until smooth and melted.
Just before serving, dust the bûche de Noël with a little cocoa powder and garnish with grated chocolate or chocolate curls. If desired, slice the end off the log and place it on top.
To serve, slice the bûche de Noël and drizzle with a little of the chocolate sauce.
You need JavaScript to view this clip.
How to make a Swiss roll cake


UI_METHOD, UI_create_method, UI_destroy_method, UI_method_set_opener, UI_method_set_writer, UI_method_set_flusher, UI_method_set_reader, UI_method_set_closer, UI_method_set_data_duplicator, UI_method_set_prompt_constructor, UI_method_set_ex_data, UI_method_get_opener, UI_method_get_writer, UI_method_get_flusher, UI_method_get_reader, UI_method_get_closer, UI_method_get_data_duplicator, UI_method_get_data_destructor, UI_method_get_prompt_constructor, UI_method_get_ex_data - user interface method creation and destruction
#include <openssl/ui.h>
typedef struct ui_method_st UI_METHOD;
UI_METHOD *UI_create_method(const char *name);
void UI_destroy_method(UI_METHOD *ui_method);
int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui));
int UI_method_set_writer(UI_METHOD *method,
int (*writer) (UI *ui, UI_STRING *uis));
int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui));
int UI_method_set_reader(UI_METHOD *method,
int (*reader) (UI *ui, UI_STRING *uis));
int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui));
int UI_method_set_data_duplicator(UI_METHOD *method,
void *(*duplicator) (UI *ui, void *ui_data),
void (*destructor)(UI *ui, void *ui_data));
int UI_method_set_prompt_constructor(UI_METHOD *method,
char *(*prompt_constructor) (UI *ui,
const char
*object_desc,
const char
*object_name));
int UI_method_set_ex_data(UI_METHOD *method, int idx, void *data);
int (*UI_method_get_opener(const UI_METHOD *method)) (UI *);
int (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING *);
int (*UI_method_get_flusher(const UI_METHOD *method)) (UI *);
int (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING *);
int (*UI_method_get_closer(const UI_METHOD *method)) (UI *);
char *(*UI_method_get_prompt_constructor(const UI_METHOD *method))
(UI *, const char *, const char *);
void *(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI *, void *);
void (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI *, void *);
const void *UI_method_get_ex_data(const UI_METHOD *method, int idx);
A method contains a few functions that implement the low level of the User Interface. These functions are:
This function takes a reference to a UI and starts a session, for example by opening a channel to a tty, or by creating a dialog box.
This function takes a reference to a UI and a UI String, and writes the string where appropriate, maybe to the tty, maybe added as a field label in a dialog box. Note that this gets fed all strings associated with a UI, one after the other, so care must be taken which ones it actually uses.
This function takes a reference to a UI, and flushes everything that has been output so far. For example, if the method builds up a dialog box, this can be used to actually display it and accepting input ended with a pressed button.
This function takes a reference to a UI and a UI string and reads off the given prompt, maybe from the tty, maybe from a field in a dialog box. Note that this gets fed all strings associated with a UI, one after the other, so care must be taken which ones it actually uses.
This function takes a reference to a UI, and closes the session, maybe by closing the channel to the tty, maybe by destroying a dialog box.
All of these functions are expected to return 0 on error, 1 on success, or -1 on out-off-band events, for example if some prompting has been cancelled (by pressing Ctrl-C, for example). Only the flusher or the reader are expected to return -1. If returned by another of the functions, it's treated as if 0 was returned.
Regarding the writer and the reader, don't assume the former should only write and don't assume the latter should only read. This depends on the needs of the method.
For example, a typical tty reader wouldn't write the prompts in the write, but would rather do so in the reader, because of the sequential nature of prompting on a tty. This is how the UI_OpenSSL() method does it.
In contrast, a method that builds up a dialog box would add all prompt text in the writer, have all input read in the flusher and store the results in some temporary buffer, and finally have the reader just fetch those results.
The central function that uses these method functions is UI_process(), and it does it in five steps:
Open the session using the opener function if that one's defined. If an error occurs, jump to 5.
For every UI String associated with the UI, call the writer function if that one's defined. If an error occurs, jump to 5.
Flush everything using the flusher function if that one's defined. If an error occurs, jump to 5.
For every UI String associated with the UI, call the reader function if that one's defined. If an error occurs, jump to 5.
Close the session using the closer function if that one's defined.
UI_create_method() creates a new UI method with a given name.
UI_destroy_method() destroys the given UI method ui_method.
UI_method_set_opener(), UI_method_set_writer(), UI_method_set_flusher(), UI_method_set_reader() and UI_method_set_closer() set the five main method function to the given function pointer.
UI_method_set_data_duplicator() sets the user data duplicator and destructor. See UI_dup_user_data(3).
UI_method_set_prompt_constructor() sets the prompt constructor. See UI_construct_prompt(3).
UI_method_set_ex_data() sets application specific data with a given EX_DATA index. See CRYPTO_get_ex_new_index(3) for general information on how to get that index.
UI_method_get_opener(), UI_method_get_writer(), UI_method_get_flusher(), UI_method_get_reader(), UI_method_get_closer(), UI_method_get_data_duplicator(), UI_method_get_data_destructor() and UI_method_get_prompt_constructor() return the different method functions.
UI_method_get_ex_data() returns the application data previously stored with UI_method_set_ex_data().
UI_create_method() returns a UI_METHOD pointer on success, NULL on error.
UI_method_set_opener(), UI_method_set_writer(), UI_method_set_flusher(), UI_method_set_reader(), UI_method_set_closer(), UI_method_set_data_duplicator() and UI_method_set_prompt_constructor() return 0 on success, -1 if the given method is NULL.
UI_method_set_ex_data() returns 1 on success and 0 on error (because CRYPTO_set_ex_data() does so).
UI_method_get_opener(), UI_method_get_writer(), UI_method_get_flusher(), UI_method_get_reader(), UI_method_get_closer(), UI_method_get_data_duplicator(), UI_method_get_data_destructor() and UI_method_get_prompt_constructor() return the requested function pointer if it's set in the method, otherwise NULL.
UI_method_get_ex_data() returns a pointer to the application specific data associated with the method.
UI(3), CRYPTO_get_ex_data(3), UI_STRING(3)
The UI_method_set_data_duplicator(), UI_method_get_data_duplicator() and UI_method_get_data_destructor() functions were added in OpenSSL 1.1.1.
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html.


Election Security 🗳🔒
Our host Ryan Koch presents a short briefing on the topic of Election Security. This includes a discussion on a report released recently by Stanford University, as well as a couple oft forgotten weak links in election infrastructure security.
Resources and Shoutouts:
Music Credit: Tumbleweeds by Monkey Warhol
Previous Apr 12, 2019
« Civic Tech Year in Review 💻⚖⌛
« Civic Tech Year in Review 💻⚖⌛
Jun 26, 2019 Next
Learning from USDS Engineering Director David Holmes 💪🏽🖥🇺🇸 »
Learning from USDS Engineering Director David Holmes 💪🏽🖥🇺🇸 »


The extends tag can be used to extend a template from another one.
Note
Like PHP, Twig does not support multiple inheritance. So you can only have one extends tag called per rendering. However, Twig supports horizontal reuse.
Let’s define a base template, base.html, which defines a simple HTML skeleton document:
<!DOCTYPE html>

{% block head %}
<link rel="stylesheet" href="style.css" />
<title>{% block title %}{% endblock %} - My Webpage</title>
{% endblock %}

{% block content %}{% endblock %}

{% block footer %}
© Copyright 2011 by you.
{% endblock %}

In this example, the block tags define four blocks that child templates can fill in.
All the block tag does is to tell the template engine that a child template may override those portions of the template.
A child template might look like this:
{% extends "base.html" %}
{% block title %}Index{% endblock %}
{% block head %}
{{ parent() }}

{% endblock %}
{% block content %}

Index

Welcome on my awesome homepage.

{% endblock %}
The extends tag is the key here. It tells the template engine that this template “extends” another template. When the template system evaluates this template, first it locates the parent. The extends tag should be the first tag in the template.
Note that since the child template doesn’t define the footer block, the value from the parent template is used instead.
You can’t define multiple block tags with the same name in the same template. This limitation exists because a block tag works in “both” directions. That is, a block tag doesn’t just provide a hole to fill - it also defines the content that fills the hole in the parent. If there were two similarly-named block tags in a template, that template’s parent wouldn’t know which one of the blocks’ content to use.
If you want to print a block multiple times you can however use the block function:
<title>{% block title %}{% endblock %}</title>

{{ block('title') }}

{% block body %}{% endblock %}
It’s possible to render the contents of the parent block by using the parent function. This gives back the results of the parent block:
{% block sidebar %}

Table Of Contents

...
{{ parent() }}
{% endblock %}
Twig allows you to put the name of the block after the end tag for better readability:
{% block sidebar %}
{% block inner_sidebar %}
...
{% endblock inner_sidebar %}
{% endblock sidebar %}
Of course, the name after the endblock word must match the block name.
Blocks can be nested for more complex layouts. Per default, blocks have access to variables from outer scopes:
{% for item in seq %}

{% block loop_item %}{{ item }}{% endblock %}

{% endfor %}
For blocks with few content, it’s possible to use a shortcut syntax. The following constructs do the same:
{% block title %}
{{ page_title|title }}
{% endblock %}
{% block title page_title|title %}
Twig supports dynamic inheritance by using a variable as the base template:
{% extends some_var %}
If the variable evaluates to a Twig_Template object, Twig will use it as the parent template:
// {% extends layout %}
$layout = $twig->loadTemplate('some_layout_template.twig');
$twig->display('template.twig', array('layout' => $layout));
New in version 1.2: The possibility to pass an array of templates has been added in Twig 1.2.
You can also provide a list of templates that are checked for existence. The first template that exists will be used as a parent:
{% extends ['layout.html', 'base_layout.html'] %}
As the template name for the parent can be any valid Twig expression, it’s possible to make the inheritance mechanism conditional:
{% extends standalone ? "minimum.html" : "base.html" %}
In this example, the template will extend the “minimum.html” layout template if the standalone variable evaluates to true, and “base.html” otherwise.
A block provides a way to change how a certain part of a template is rendered but it does not interfere in any way with the logic around it.
Let’s take the following example to illustrate how a block work and more importantly, how it does not work:
{# base.twig #}
{% for post in posts %}
{% block post %}

{{ post.title }}

{{ post.body }}

{% endblock %}
{% endfor %}
If you render this template, the result would be exactly the same with or without the block tag. The block inside the for loop is just a way to make it overridable by a child template:
{# child.twig #}
{% extends "base.twig" %}
{% block post %}

{{ post.title }}

{{ post.text }}

{% endblock %}
Now, when rendering the child template, the loop is going to use the block defined in the child template instead of the one defined in the base one; the executed template is then equivalent to the following one:
{% for post in posts %}

{{ post.title }}

{{ post.text }}

{% endfor %}
Let’s take another example: a block included within an if statement:
{% if posts is empty %}
{% block head %}
{{ parent() }}
<meta name="robots" content="noindex, follow">
{% endblock head %}
{% endif %}
Contrary to what you might think, this template does not define a block conditionally; it just makes overridable by a child template the output of what will be rendered when the condition is true.
If you want the output to be displayed conditionally, use the following instead:
{% block head %}
{{ parent() }}
{% if posts is empty %}
<meta name="robots" content="noindex, follow">
{% endif %}
{% endblock head %}


Dr. Bunsen Honeydew is a Muppet character from The Muppet Show, performed by Dave Goelz. He is a bald, green-skinned, bespectacled, lab-coated scientist who would do periodic science segments from "Muppet Labs, where the future is being made today." The character has no eyes...


“Cod have been caught as long as a man and weighing over a hundred pounds. A whole hare, a big guillemot with his beak and claws, a brace of duck so fresh that they must have been swallowed alive, a rubber wading boot, and a very learned treatise complete in three volumes—these are a few of the curiosities actually found in sundry stomachs of the all-devouring cod.” — William Wood, Elizabethan Sea Dogs


 You will get your results for each roll you perform.Your score will display in total of all the rolls you have performed. The game has a total score of 100 points.
USE THE NAVIGATION BAR TO START THE GAME OR CHECK THE SCOREBOARD


{% extends "base.html" %} {% block title %}
Medieval catalogues > SECULAR INSTITUTIONS: Hospitals, Towns, and the Professions > Rome, English hospital > Inventory of goods, 6 November 1506
{% endif %}6 identified entries found.
All data was derived from the List of Identifications by Professor Richard Sharpe.
{% if not printing %}
A key to codes used in the List is available (opens in new tab).{% endif %}


This is my first webpage! I was able to code all the HTML and CSS and the ONE and most SPECIAL one is JQUERY!!! order to make it. Watch out world of web design here I come!
This is my first webpage! I was able to code all the HTML and CSS and the ONE and most SPECIAL one is JQUERY!!! order to make it. Watch out world of web design here I come!


Rooted at the intersection of technology, open data, art & music,
shi Blank is a feral games developer who taught herself how to code. A fierce believer of assessible knowledge, shi mentors kids and parents regularly at code clubs and is currently creating a women-focused makerspace in the city they are based in.


Toggle navigation
IATI Import Tool
Home
Import Process
IATI Version 1.05
IATI Version 2.01
Other Sources
Reports
Previous Imports
Logs
Administration
Users
Groups
Metadata
Field Mappings
Value Mappings
User
Settings
Log Out
Language
English
Spanish
Portuguese
Import Process
IATI 1.05
Upload File(s)
(current)
Done
Filter Data
Done
Choose Projects
Choose Fields
Map Values
Review and Import
Upload file(s)
Select files to upload
40% Complete (success)
Filename
Date and Time
Action
project_raw_data.xml
2 days ago
View
project_raw_data_2.xml
October 23rd, 2014
View
Process
Next >>
Filter Information
Select for each field, which values you would like to include as part of the import process
Recipient Country
Language
Next >>
Choose Projects
New Projects
Import
Source Project
Destination Project
Source Project Name 1
Source Project Name 2
Existing Projects
Update
Source Project
Destination Project
Source Project Name 1
Source Project Name 2
Next >>
Choose and Map Fields
Load Existing Template
Template 1 IATI 1.05
Template 2 IATI 2.01
Import/Update
Source Field
Destination Field
Activity Status
Project Status
Project Status
Project Title
Description
Sectors
Contacts
Location
Disbursements
Commitments
Project Name
Project Title
Project Status
Project Title
Description
Sectors
Contacts
Location
Disbursements
Commitments
Description
Description
Project Status
Project Title
Description
Sectors
Contacts
Location
Disbursements
Commitments
Contacts
Contacts
Project Status
Project Title
Description
Sectors
Contacts
Location
Disbursements
Commitments
Save
Next >>
Map Fields Values
Load Existing Mapping
Value Mapping 1
Value Mapping 2
Activity Status
Financing Instrument
Source Values
Destination Value
Completed
Completed
Completed
Ongoing
Pipeline
Ongoing
Ongoing
Completed
Ongoing
Pipeline
Pipeline
Pipeline
Completed
Ongoing
Pipeline
Source Values
Destination Value
Grant
Grant
Grant
Loan
Loan
Loan
Grant
Loan
Save
Next >>
Review and Import
Cancel
Proceed with Import


xinput(1) xinput(1) NAME xinput - utility to configure and test X input devices SYNOPSIS xinput [OPTIONS] [DEVICE] DESCRIPTION xinput is a utility to list available input devices, query information about a device and change input device settings. OPTIONS --version Test if the X Input extension is available and return the version number of the program and the version supported by the server. This option does not require a device name. --list [--short || --long || --name-only || --id-only] [device] If no argument is given list all the input devices. If an argu‐ ment is given, show all the features of device. If --long is provided, the output includes detailed information about the capabilities of each devices. Otherwise, or if --short is pro‐ vided, only the device names and some minimal information is listed. If --name-only is provided, the output is limited to the device names. One device name is listed per line. Note that the order the devices are listed is undefined. If --id-only is pro‐ vided, the output is limited to the device IDs. One device ID is listed per line. Note that the order the devices are listed is undefined. --get-feedbacks device Display the feedbacks of device. --set-pointer device Switch device in core pointer. This option does nothing on X servers 1.5 and later. --set-mode device ABSOLUTE|RELATIVE Change the mode of device. --set-ptr-feedback device threshold num denom Change the pointer acceleration (or feedback) parameters of device. The xset(1) man page has more details. For X.Org Server 1.7 and above, there are additional device properties pertaining to pointer acceleration. These do not replace, but complement the pointer feedback setting. --set-integer-feedback device index value Change the value of an integer feedback of device. --set-button-map device map_button_1 [map_button_2 [...]] Change the button mapping of device. The buttons are specified in physical order (starting with button 1) and are mapped to the logical button provided. 0 disables a button. The default button mapping for a device is 1 2 3 4 5 6 etc. --query-state device Query the device state. --list-props device [device [...]] Lists properties that can be set for the given device(s). --set-int-prop device property format value Sets an integer property for the device. Appropriate values for format are 8, 16, or 32, depending on the property. Deprecated, use --set-prop instead. --set-float-prop device property value Sets a float property for the device. Deprecated, use --set-prop instead. --set-prop [--type=atom|float|int] [--format=8|16|32] device property value [...] Set the property to the given value(s). If not specified, the format and type of the property are left as-is. The arguments are interpreted according to the property type. --watch-props device Prints to standard out when property changes occur. --delete-prop device property Delete the property from the device. --test [-proximity] device Register all extended events from device and enter an endless loop displaying events received. If the -proximity is given, ProximityIn and ProximityOut are registered. --test-xi2 [device] Register for a number of XI2 events and display them. If a device is given, only events on this device are displayed. --create-master prefix [sendCore] [enable] Create a new pair of master devices on an XI2-enabled server with the given prefix. The server will create one master pointer named "prefix pointer" and one master keyboard named "prefix keyboard". If sendCore is 1, this pair of master devices is set to send core events (default). If enable is 1, this master device pair will be enabled immediately (default). --remove-master master [Floating|AttachToMaster] [returnPointer] [returnKeyboard] Remove master and its paired master device. Attached slave devices are set floating if Floating is specified or the argument is omitted.  The output name must match a currently connected output (see xrandr(1)). If the NVIDIA binary driver is detected or RandR 1.2 or later is not available, a Xinerama output may be specified as "HEAD-N", with N being the Xinerama screen number. This option has no effect on relative devices. --enable device Enable the device. This call is equivalent to xinput --set-prop device "Device Enabled" 1 --disable device Disable the device. This call is equivalent to xinput --set-prop device "Device Enabled" 0 device can be the device name as a string or the XID of the device. slave can be the device name as a string or the XID of a slave device. master can be the device name as a string or the XID of a master device. property can be the property as a string or the Atom value. SEE ALSO X(7), xset(1), xrandr(1) COPYRIGHT Copyright 1996,1997, Frederic Lepied. Copyright 2007, Peter Hutterer. Copyright 2008, Philip Langdale. Copyright 2009-2011, Red Hat, Inc. AUTHORS Peter Hutterer<EMAIL_ADDRESS>Philip Langdale<EMAIL_ADDRESS>Frederic Lepied, France<EMAIL_ADDRESS>Julien Cristau<EMAIL_ADDRESS>Thomas Jaeger<EMAIL_ADDRESS>and more. X Version 11 xinput 1.6.0 xinput(1)


--- layout: default title: Scope ---
The MIxS is a specification of sequence metadata descriptors. It consists of a core, checklist-specific metadata descriptors, and environment-specific descriptors. Throughout the development of MIGS, MIMS, MIMARKS, and various environmental packages, the GSC followed these criteria:
The core consists of most commonly used and accepted minimum metadata to ensure sequence data comparison, analysis, and interoperability.
It is expected that in most situations, researchers would use the MIxS core exclusively and the sequence metadata would not contain any additional elements. However, in some cases, researchers, or projects may want to extend MIxS core with additional metadata to provide more context for their sequences. This can be achieved by using checklist specific metadata descriptors and environmental package metadata descriptors.
While additional metadata descriptors included in the MIxS specification are very extensive, some cases might require additional specific metadata requirements. These specific requirements can be implemented using information elements that extend the MIxS metadata descriptors. Any such extension needs to respect the semantic definitions of the MIxS specification. Depending on the researcher or project needs, there are several ways to extend the MIxS specification. These are explained in detail in the following sections: TBD TBD TBD


Twitter
Reddit
Blog
Newsletter
SETTINGS
Themes
Other Settings
!Bang Search Shortcuts
PRIVACY ESSENTIALS
Private Search
App and Extension
WHY PRIVACY
Privacy Blog
Privacy Crash Course
Help Spread Privacy
WHO WE ARE
About Us
Privacy Policy
Careers
Press Kit
KEEP IN TOUCH
Twitter
Store
Reddit
Help
Tired of being tracked online? We can help.
Get seamless privacy protection on your browser for free with one download
Private Search
Tracker Blocking
Site Encryption
Add DuckDuckGo to Chrome
★
★
★
★
★
Rated 4.4/5
Privacy Protection For Any Device
Privacy for Chrome
Browse as usual, and we’ll take care of the rest. We bundled our search engine,tracker blocker, and encryption enforcer into one
Chrome Extension
.
Private Search Engine
Search privately with our app or extension, add private web search to your favorite browser, or search directly at
duckduckgo.com
.
Privacy Browser App
Our private browser for mobile comes equipped with our search engine, tracker blocker, encryption enforcer, and more. Available on
iOS & Android
.


{% extends "base.html" %} {% block content %} {% from 'bootstrap/form.html' import render_form %} {% from 'bootstrap/form.html' import render_field %}
No Courses available. You can create course here