Constitution register contract is used to edit parameters of a Web3 Direct Democracy project. It contains address of all deployed contracts used in a project. Particularly, it contains a list of address of all register contracts that are used in the project, and another list for all Delegations. Hence, Constitution is the central contract in a project. To launch a Web3 Direct Democracy project, we have to launch the Constitution contract. From Constitution deployed contract, we can have access to all the project. There is a single Constitution contract in a project. With Constitution register contract, we can add new register and delegations to the project, we can modify their democratic process parameters, change other register’s _Register_Authorities_ array… Constitution contract goal is to customize the project to specific use cases and to keep it updatable. Once a Web3 Direct Democracy project has just been deployed, it hasn’t any register or delegation. Citizens_Register and DemoCoin contracts haven’t any authority in their _Register_Authorities_ list. Thus, at the beginning of a Web3 Direct Democracy project, we need an initialisation stage. In this initialisation stage, there is a _Transitional_Government_ account that has authority on the constitution and can quickly perform necessary operations without passing by any democratic process :
Functions
| Name | Type | Description |
|---|---|---|
| Constitution_Name | string | Name of the Constitution contract |
| DemoCoin_Address | address | Address of the {DemoCoin} contract of the project |
| Citizen_Address | address | Address of the {Citizens_Register} contract of the project |
| Agora_Address | address | Address of the {Agora} contract of the project |
| transition_government | address | Address of the Transitional_Government. |
Returns:
No parameters
Add an account address to {Register_Authorities}
| Name | Type | Description |
|---|---|---|
| authority | address | address to add to the {Register_Authorities} |
Returns:
No parameters
Allows an address to register ban citizens. The address is added to {Citizens_Banning_Authorities} list
| Name | Type | Description |
|---|---|---|
| new_authority | address | Address to add to {Citizens_Banning_Authorities} list |
Returns:
No parameters
Put a Register contract under the control of a Delegation. The Register contract address is added to {Controled_Registers} list of the Delegation. It means that the Delegation recognize the Register contract as a controled one. But to allow the Delegation to call Register functions of the Register contract, you also have to to add the Delegation' address to the {Register_Authorities} list of the register contract via the {Add_Register_Authority} function.
| Name | Type | Description |
|---|---|---|
| delegation_address | address | Address of the Delegation |
| new_controled_register | address | Address of the Register contract. |
Returns:
No parameters
Add a new address to a Register contract's (contract that inherit from a {Register} abstract contract) {Register_Authorities} list.
| Name | Type | Description |
|---|---|---|
| register | address | Address of the register contract |
| authority | address | Address to add to the {Register_Authorities} list. |
Returns:
No parameters
Allows an address to register new citizens. The address is added to {Citizens_Registering_Authorities} list
| Name | Type | Description |
|---|---|---|
| new_authority | address | Address to add to {Citizens_Registering_Authorities} list |
Returns:
No parameters
**Add Documentation for the method here**
No parameters
Returns:
| Name | Type | Description |
|---|---|---|
| address |
**Add Documentation for the method here**
No parameters
Returns:
| Name | Type | Description |
|---|---|---|
| address |
Removes address from {Citizens_Registering_Authorities} (address allowed to register new citizens) and/or from {Citizens_Banning_Authorities} (address allowed to ban citizens)
| Name | Type | Description |
|---|---|---|
| removed_authority | address | Address to removes {Citizens_Register} contract authorities lists. |
Returns:
No parameters
**Add Documentation for the method here**
No parameters
Returns:
| Name | Type | Description |
|---|---|---|
| address |
Add/Deploy a new Delegation contract to the project. It's address is added to {Delegation_Address_List}
| Name | Type | Description |
|---|---|---|
| Name | string | Name of the Delegation contract |
| delegation_address | address | Address of an already deployed Delegation contract to add to the Project. If the delegation_address argument is address(0) then the function deploy a new Delegation contract. |
| Uint256_Legislatifs_Arg | uint256[6] | Array of uitn256 parameters related to Delegation's legislatif process. We use an array in order to reduce stack size (to avoid the "stack too deep" error). Array elements represent following parameters: - Member_Max_Token_Usage: The maximum amount of token a member is allowed to use for a law project elaboration - Law_Initialisation_Price: The price in token for creating a law project - FunctionCall_Price: The price in token for one FunctionCall. - Proposition_Duration: The duration of the stage in which members are allowed to submit propositions - Vote_Duration: The duration of the stage in which members are allowed to vote for the proposition they want - Law_Censor_Period_Duration: The duration of the stage in which all citizens are allowed to sign a etition against the law project proposed by the Delegation |
| Uint256_Governance_Arg | uint256[5] | Array of uitn256 parameters related to Delegation's Internal governance. We use an array in order to reduce stack size (to avoid the "stack too deep" error). Array elements represent following parameters: - Election_Duration: Duration of the stage in which citizens are allowed to vote for Candidats they prefer - Validation_Duration: Duration of the stage in which citizens can validate their hased vote by revealing their choice and the salt that has been used for hasing - Mandate_Duration: Duration of a delegation mandate - Immunity_Duration: Amount of time after the beginning of a new mandate during which delegation's members can't be revoked - Mint_Token: Amount of token to mint for the Delegation |
| Num_Max_Members | uint16 | Maximum number of members in the delegation. |
| Revert_Proposition_Petition_Rate | uint16 | The minimum ratio of citizens required to cancel a law project |
| Revert_Penalty_Rate | uint16 | Ratio of total amount of token belonged by the delegation that will be lost if a law project is rejected by citizens |
| New_Election_Petition_Rate | uint16 | The minimum ratio of citizens required to revoke the current delegation's members and start a new election |
| Initial_members | address[] | : Initials members of the delegation |
| Ivote_address_legislatif | address | Address of the IVote contract that will be used during Legislatif process |
| Ivote_address_governance | address | Address of the IVote contract that will be used during election stage |
Returns:
No parameters
Add/create a new Register Contract to the Web3 Direct Democracy project. It's address is added to {Registers_Address_List}
| Name | Type | Description |
|---|---|---|
| Name | string | Name of the new Register contract |
| register_type | uint8 | Type of the Register Contract (see {Institution_Type} enum of {Institution} abstract contract). |
| Petition_Duration | uint256 | Duration of the proposition/petition stage |
| Vote_Duration | uint256 | Duration of the voting stage |
| Vote_Checking_Duration | uint256 | Duration of the validation stage |
| Law_Initialisation_Price | uint256 | Amount of DemoCoin token to pay to submit a new Referendum proposition. |
| FunctionCall_Price | uint256 | Amount of DemoCoin token to pay for each new function call of a function call corpus proposal submission. |
| Required_Petition_Rate | uint16 | The minimum ratio of citizens signatures required to submit the referendum proposition as a referendum to all citizens. |
| Ivote_address | address | Address of the IVote contract used in the voting and validation stage |
Returns:
No parameters
**Add Documentation for the method here**
No parameters
Returns:
| Name | Type | Description |
|---|---|---|
| address |
Function called by the {Transitional_Government} account to end the Transitional Government stage. This step is mandatory to start using a Web3 Direct Democracy in a safe way.
No parameters
Returns:
No parameters
Getter for {Register_Authorities}
No parameters
Returns:
| Name | Type | Description |
|---|---|---|
| bytes32[] |
Get the list of all address of Delegation contracts registered in the Constitution
No parameters
Returns:
| Name | Type | Description |
|---|---|---|
| delegation_list | bytes32[] |
Get the list of all address of Register contracts registered in the Constitution
No parameters
Returns:
| Name | Type | Description |
|---|---|---|
| register_list | bytes32[] |
Change the Name of an Institution contract.
No parameters
Returns:
| Name | Type | Description |
|---|---|---|
| string |
Removes address from {Citizens_Registering_Authorities} (address allowed to register new citizens) and/or from {Citizens_Banning_Authorities} (address allowed to ban citizens)
| Name | Type | Description |
|---|---|---|
| authority | address |
Returns:
No parameters
Removes a Register contract from the control of a Delegation. The Register contract address is removed from the {Controled_Registers} list of the Delegation. It means that the Delegation doesn't recognize anymore the Register contract as a controled one. But to fully cut bonds between the Delegation and the Register contract, you also have to to remove the Delegation' address from the {Register_Authorities} list of the register contract via the {Remove_Register_Authority} function.
| Name | Type | Description |
|---|---|---|
| delegation_address | address | Address of the Delegation |
| removed_controled_register | address | Address of the Register contract. |
Returns:
No parameters
Removes a, address from a Register contract's {Register_Authorities} list.
| Name | Type | Description |
|---|---|---|
| register | address | Address of the register contract |
| authority | address | Address to remove from the {Register_Authorities} list. |
Returns:
No parameters
Change address that are allowed to burn DemoCoin Token (Burner authorities). They are contained in the {Burn_Authorities} list of {DemoCoin} contract.
| Name | Type | Description |
|---|---|---|
| Add_Burner | address[] | List of new Burner address |
| Remove_Burner | address[] | List of Burner address to remove from {Burn_Authorities} |
Returns:
No parameters
Change the amount of DemoCoin token to mint for new registered citizens.
| Name | Type | Description |
|---|---|---|
| amount | uint256 | Amount of token to mint. |
Returns:
No parameters
The function Allows to change the Constitution contract the current Institution obey to. The function is only callable by the {Constitution_Address}
| Name | Type | Description |
|---|---|---|
| new_constitution | address | Address of the new Constitution contract. |
Returns:
No parameters
Modify parameters related to the Legislatif process of a Delegation.
| Name | Type | Description |
|---|---|---|
| delegation_address | address | Address of the Delegation contract |
| Election_Duration | uint256 | : Duration of the stage in which citizens are allowed to vote for Candidats they prefer |
| Validation_Duration | uint256 | : Duration of the stage in which citizens can validate their hased vote by revealing their choice and the salt that has been used for hasing |
| Mandate_Duration | uint256 | : Duration of a delegation mandate |
| Immunity_Duration | uint256 | : Amount of time after the beginning of a new mandate during which delegation's members can't be revoked |
| Num_Max_Members | uint16 | : Maximum number of members in the delegation. |
| New_Election_Petition_Rate | uint16 | : The minimum ratio of citizens required to revoke the current delegation's members and start a new election |
| Mint_Token | uint256 | Amount of token to mint for the Delegation: Initials members of the delegation |
| Ivote_address | address | Address of the IVote contract that will be used during election stage |
Returns:
No parameters
Modify parameters related to the Legislatif process of a Delegation.
| Name | Type | Description |
|---|---|---|
| delegation_address | address | Address of an already deployed Delegation contract to add to the Project. If the delegation_address argument is address(0) then the function deploy a new Delegation contract. |
| Uint256_Legislatifs_Arg | uint256[6] | Array of uitn256 parameters related to Delegation's legislatif process. We use an array in order to reduce stack size (to avoid the "stack too deep" error). Array elements represent following parameters: - Member_Max_Token_Usage: The maximum amount of token a member is allowed to use for a law project elaboration - Law_Initialisation_Price: The price in token for creating a law project - FunctionCall_Price: The price in token for one FunctionCall. - Proposition_Duration: The duration of the stage in which members are allowed to submit propositions - Vote_Duration: The duration of the stage in which members are allowed to vote for the proposition they want - Law_Censor_Period_Duration: The duration of the stage in which all citizens are allowed to sign a etition against the law project proposed by the Delegation |
| Revert_Proposition_Petition_Rate | uint16 | The minimum ratio of citizens required to cancel a law project |
| Revert_Penalty_Rate | uint16 | Ratio of total amount of token belonged by the delegation that will be lost if a law project is rejected by citizens |
| Ivote_address | address | Address of the IVote contract that will be used during Legislatif process |
Returns:
No parameters
Change the Constitution address of an Institution contract belonging to current project. After this call, this Institution will not recognize this Constitution anymore.
| Name | Type | Description |
|---|---|---|
| institution_address | address | Address of the Institution contract |
| new_address | address | New Constitution address of the {institution_address} Institution |
Returns:
No parameters
Change the Name of an Institution contract.
| Name | Type | Description |
|---|---|---|
| institution_address | address | Address of the Institution contract |
| name | string | New name of the {institution_address} Institution. |
Returns:
No parameters
Change address that are allowed to mint DemoCoin Token (Minter authorities). They are contained in the {Mint_Authorities} list of {DemoCoin} contract.
| Name | Type | Description |
|---|---|---|
| Add_Minter | address[] | List of new Minter address |
| Remove_Minter | address[] | List of Minter address to remove from {Mint_Authorities} |
Returns:
No parameters
The function Allows to change the Name of the Institution. The function is only callable by the {Constitution_Address}
| Name | Type | Description |
|---|---|---|
| name | string | New name of the Institution. |
Returns:
No parameters
Change parameters of a Register Contract of the project.
| Name | Type | Description |
|---|---|---|
| register_address | address | Address of the Register contract |
| Petition_Duration | uint256 | Duration of the proposition/petition stage |
| Vote_Duration | uint256 | Duration of the voting stage |
| Vote_Checking_Duration | uint256 | Duration of the validation stage |
| Law_Initialisation_Price | uint256 | Amount of DemoCoin token to pay to submit a new Referendum proposition. |
| FunctionCall_Price | uint256 | Amount of DemoCoin token to pay for each new function call of a function call corpus proposal submission. |
| Required_Petition_Rate | uint16 | The minimum ratio of citizens signatures required to submit the referendum proposition as a referendum to all citizens. |
| Ivote_address | address | Address of the IVote contract used in the voting and validation stage |
Returns:
No parameters
**Add Documentation for the method here**
No parameters
Returns:
| Name | Type | Description |
|---|---|---|
| address |
**Add Documentation for the method here**
No parameters
Returns:
| Name | Type | Description |
|---|---|---|
| uint8 |


Map Overview
Hydrograph
Under Active Development
Station Information
Click on a station to get started!
This research is being carried out by Bangladesh University of Engineering and Technology under Haor Imporovement and Livlihood Protection (HILIP) funded by International Fund for Agricultural Development (IFAD).


'More' - Ex-Manchester United boss makes Celtic and Aston Villa claim
Aston Villa latest news | Villa have hired their fair share of managers in the past few years but have hit upon a settled formula with Dean Smith in charge at Villa Park
by Richard CusackDavid Moyes has revealed how close he came to landing the Aston Villa job.
Moyes was understood to have been on the shortlist to take over at Villa Park following the club's relegation to the Championship in 2016.
The Scot eventually linked up with Sunderland and oversaw a relegation campaign that took them out of the Premier League following several near-misses.
Villa were looking for a replacement for Remi Garde, the Frenchman sacked in March 2016 after just 147 days in charge at the club having replaced
.
Aston Villa latest
This is your round up of all things Villa; the one-stop shop that will keep you updated on the latest goings on at the club and beyond.
Transfers, injuries, match-days and managers, we’ve got you covered.
We’ll be bringing the very latest on the Villains throughout the week and around the clock.
Make sure you keep yourself updated with our handy daily catch up...
Must reads...
- Rangers sent transfer message
- Dean Smith makes Wolves claim
- Carragher unleashes stunning VAR rant
- Latest twist in Villa v Liverpool clash
For all your latest AVFC news, opinion, analysis and transfer gossip, click here
You can follow our Villa reporter Ashley Preece on Twitter, and his email address is<EMAIL_ADDRESS>Moyes was reported to have impressed former owner Dr Tony Xia, but the Chinese businessman opted to hire Roberto Di Matteo instead - the Italian sacked after only 12 matches.
Former Manchester United manager Moyes, who was most recently in charge at West Ham United, says he also met with Celtic and Everton as well as Villa.
"Yes (it's true)," Moyes told the BBC.
"And more.
"Before I took the Sunderland job on I had also met Celtic and I had also met Everton, around that time as well.


{% load staticfiles %} {# Bulma as the CSS framework #} {# Font, could try other fonts from Google Fonts #} {# Font Awesome for Icons #} {# Our custom CSS #}


Active Quizzes
Past Quizzes
Account
Add Quiz
E-Cell
Dashboard
Quizzes
Active Quiz
Past Quiz
Performance
Statistics
Log out


@(params: Map[String, Any]) @maskedAccountNumber = @{ "****" + params("ACCOUNTNUMBER").toString.drop(4) } @uk.gov.hmrc.hmrcemailrenderer.templates.helpers.html.template_main(params, "VAT Return Direct Debit: Reinstated Direct Debit Instruction") {
Dear @params("NAME")
Direct Debit mandate reference @params("DDIREFERENCE")
Your bank has told us that your Instruction to allow us to collect payments under this Direct Debit reference has been reinstated.
Your direct debit will continue to be taken from:
| Sort code | @params("SORTCODE") |
|---|---|
| Account number | @maskedAccountNumber |
If this is not correct, amend your Direct Debit Instruction immediately.
From HMRC Direct Debit Team
}


--- layout: page title: 150k Javascript Dataset --- This dataset is released as a part of Machine Learning for Programming project that aims to create new kinds of programming tools and techniques based on machine learning and statistical models learned over massive codebases. For more information about the project, tools and other resources please visit the main project page.
We provide a dataset consisting of 150'000 JavaScript files and their corresponding parsed ASTs that were used to train and evaluate the DeepSyn tool. The JavaScript programs are collected from GitHub repositories by removing duplicate files, removing project forks (copy of another existing repository), keeping only programs that parse and we aim to remove obfuscated files. For parsing we used the error-tolerant Acorn parser (using the parse_dammit interface). The dataset is split into two parts -- 100'000 files used for training and 50'000 files used for evaluation.
Raychev, V., Bielik, P., Vechev, M. and Krause, A. Learning Programs from Noisy Data. In Proceedings of the 43nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (2016), POPL ’16, ACM
console.log("Hello World!");The serialized AST is as follows:
[ { "id":0, "type":"Program", "children":[1] }, { "id":1, "type":"ExpressionStatement", "children":[2] }, { "id":2, "type":"CallExpression", "children":[3,6] }, { "id":3, "type":"MemberExpression", "children":[4,5] }, { "id":4, "type":"Identifier", "value":"console" }, { "id":5, "type":"Property", "value":"log" }, { "id":6, "type":"LiteralString", "value":"Hello World!" }, 0]As can be seen, the json contains array of objects followed by number 0. Each object contains several name/value pairs:


Liverpool and Man City fans can't believe ex-midfielder's transfer claim about Tottenham star
The former Liverpool midfielder made the claim about the Spurs forward
by Andy HaDanny Murphy claims Tottenham Hotspur striker Harry Kane would walk into the Manchester City and Liverpool teams.
The former Reds midfielder says Kane would even displace Roberto Firmino in Jurgen Klopp's table-topping side.
Kane scored a first half hat-trick for England in Thursday's 7-0 win over Montenegro to take his international tally to 11 goals in nine games.
And Murphy believes Liverpool and Manchester City would both take Kane “with open arms”.
Speaking on talkSPORT, Murphy said: “Would Liverpool and Man City fans take Harry Kane now?
“I think Harry Kane would get in Liverpool’s team ahead of Firmino. He would score more goals.
“I love Firmino, but he’s not Harry Kane. And with Aguero being nearly 32, I think Man City fans would welcome Harry Kane with open arms.
“Are Spurs going to make the top four? I don’t think so. Are they going to win the Champions League? No.
“What would he cost? That’s another question.
“It could be a world record, he’s got a phenomenal goal record.”
Liverpool and Manchester City supporters took to social media to respond to Murphy's claim, with many Reds fans believing that Kane would not be an improvement on Firmino.


Authors: Bilel Hamdi, Taoufi Aguili
Source: FERMAT, Volume 22, Communication 3, Jul.-Aug., 2017
Abstract: Studying of mechanical steerable antennas has been considered the subject of feature research. In order to reduce the cost of the mechanical system and to grow up the steering capabilities of the radar, we suggest replacing any mechanical antenna components with an electronically controlled 3D or conformal antennas arrays. 3D antenna arrays can be easily produced with existing manufacturing technologies and offer a considerable advantages in terms of 3-D steerable radiation beam, size, directivity, HPBW and SLL reduction. In this paper, we have developed the neural networks method based beamforming that will be applied to the array pattern synthesis for three-dimensional (3D) conformal antenna arrays. This approach permits to model and optimize the antenna arrays system, by acting on many parameters of the array and taking into account predetermined general criteria. The goal is then to build a feed-forward neural network with supervised learning that approximates the following array pattern’s function. It explains how to introduce the basic principles of artificial neural network (ANN), some fundamental networks are examined in detail for their ability to solve simple pattern synthesis problem in conformal antenna arrays. This fact increases the complexity of the problem under consideration and fitting the neural network model, such as training function, architecture and parameter that would improve and result more accuracy about input-output relations. Then, the used neural technique proved its effectiveness in improving performance using the known conformal isotropic antenna arrays.
Index Terms: mechanical steerable antennas
View PDF
Optimization of Electronically Scanned Conformal Antenna Array Synthesis Using Artificial Neural Network Algorithm


Although our dolos are conveniently available online, we love to have our dolo artists make in-person appearances at one of our dolo showrooms. Choose the location nearest you. We'll resist the urge to ask you for an autograph.


SPONSORED CONTENT
Mechanic required for local bus company
Jobs Alert
by David LynchA local bus company are looking for a full time or part time mechanic.
Experience essential.
Any candidates interested can call<PHONE_NUMBER>
A local bus company are looking for a full time or part time mechanic.
Experience essential.
Any candidates interested can call<PHONE_NUMBER>


| startX | startY | endX | endY | |
|---|---|---|---|---|
| line 1 | L1X1: 0 | L1Y1: 140 | L1X2: 40 | L1Y2: 115 |
| line 2 | L2X1: L1X2 | L2Y1: L1Y2 | L2X2: houseX | L2Y2: 130 |
| line 3 | L3X1: houseX+houseW | L3Y1: 135 | L3X2: trunkX | L3Y2: 140 |
| line 4 | L4X1: trunkX+trunkW | L4Y1: L3Y2 | L4X2: width | L4Y2: 110 |
With all these new blanks filled in, the applet is complete. There was quite a lot of tedious work involved, but now this applet can be put on the Web and this fine art can be enjoyed anywhere in the World!
import java.applet.Applet; import java.awt.*; // assume that the drawing area is 350 by 250 public class houseComplete extends Applet { final int width = 350, height = 250; final int houseX = 65, houseY = 100, houseW = 110, houseH = 110 ; final int doorY = 165, doorW = 25, doorH = 40 ; final int lWindX = 90, lWindY = 115, lWindW = 30, lWindH = 30 ; final int rWindX = 130, rWindY = 115, rWindW = 30, rWindH = 30 ; final int trunkX = 255, trunkY = 100, trunkW = 10, trunkH = 100 ; // tree leaves final int treeX = 200, treeY = 45, treeW = 125, treeH = 55 ; final int L1X1 = 0, L1Y1 = 140, L1X2 = 40, L1Y2 = 115; final int L2X1 = L1X2, L2Y1 = L1Y2, L2X2 = houseX, L2Y2 = 130; final int L3X1 = houseX+houseW, L3Y1 = 135, L3X2 = trunkX, L3Y2 = 140; final int L4X1 = trunkX+trunkW, L4Y1 = L3Y2, L4X2 = width, L4Y2 = 110; final int roof1X1 = houseX, roof1Y1 = houseY; final int roof1X2 = houseX + houseW/2, roof1Y2 = 50; final int roof2X1 = roof1X2, roof2Y1 = roof1Y2; final int roof2X2 = houseX + houseW, roof2Y2 = houseY; final int doorX = houseX + houseW/2 - doorW/2; public void paint ( Graphics gr ) { gr.setColor( Color.orange ); // there is no color brown gr.drawRect( houseX , houseY , houseW, houseH); // house gr.fillRect( doorX , doorY , doorW , doorH ); // door gr.drawRect( lWindX , lWindY , lWindW, lWindH); // lwind gr.drawRect( rWindX , rWindY , rWindW, rWindH); // rwind gr.fillRect( trunkX , trunkY , trunkW, trunkH); // trunk gr.setColor( Color.green ); gr.fillOval( treeX, treeY, treeW, treeH ); gr.drawLine( L1X1, L1Y1, L1X2, L1Y2 ); // line 1 gr.drawLine( L2X1, L2Y1, L2X2, L2Y2 ); // line 2 gr.drawLine( L3X1, L3Y1, L3X2, L3Y2 ); // line 3 gr.drawLine( L4X1, L4Y1, L4X2, L4Y2 ); // line 4 gr.setColor( Color.green ); gr.drawLine( roof1X1, roof1Y1, roof1X2, roof1Y2 ); gr.drawLine( roof2X1, roof2Y1, roof2X2, roof2Y2 ); } }
Here is the output of the applet:


This is a pptx generator for Node.js based on templates. It can read pptx files and insert selected slides or single slide elements into another presentation. pptx-automizer will not write files from scratch, but edit and merge existing pptx files. Template slides are styled within PowerPoint and will be merged into the output presentation. Most of the content can be modified by using callbacks with xmldom.
This generator can only be used on the server-side and requires a Node.js environment.
Please note that this project is work in progress. At the moment, you might encounter difficulties for special shape types that require internal relations. Although, most shape types are already supported, such as connection shapes or charts.
Importing a single element is limited to shapes that also do not require further relations.
All testing focuses on PowerPoint 2019 pptx file format.
You can add this package to your own project using npm or yarn:
yarn add pptx-automizer
or
npm install pptx-automizer
import Automizer, { modify } from "pptx-automizer"
// First, let's set some preferences
const automizer = new Automizer({
templateDir: `my/pptx/templates`,
outputDir: `my/pptx/output`
})
// Now we can start and load a pptx template.
// Each addSlide will append to any existing slide in RootTemplate.pptx.
let pres = automizer.loadRoot(`RootTemplate.pptx`)
// We want to make some more files available and give them a handy label.
.load(`SlideWithShapes.pptx`, 'shapes')
.load(`SlideWithGraph.pptx`, 'graph')
// Skipping the second argument will not set a label.
.load(`SlideWithImages.pptx`)
// addSlide takes two arguments: The first will specify the source
// presentation's label to get the template from, the second will set the
// slide number to require.
pres.addSlide('graph', 1)
.addSlide('shapes', 1)
.addSlide(`SlideWithImages.pptx`, 2)
// You can also select and import a single element from a template slide.
// The desired shape will be identified by its name from slide-xml's
// 'p:cNvPr'-element.
pres.addSlide('image', 1, (slide) => {
// Pass the template name, the slide number, the element's name and
// (optionally) a callback function to directly modify the child nodes
// of <p:sp>
slide.addElement('shapes', 2, 'Arrow', (element) => {
element.getElementsByTagName('a:t')[0]
.firstChild
.data = 'Custom content'
})
})
// It is possible to modify an existing element on a newly added slide.
pres.addSlide('shapes', 2, (slide) => {
slide.modifyElement('Drum', [
// You can use some of the builtin modifiers to edit a shape's xml:
modify.setPosition({x: 1000000, h:5000000, w:5000000}),
// Log your target xml into the console:
modify.dump
])
})
// Modify an existing chart on an added slide.
pres.addSlide('charts', 2, (slide) => {
slide.modifyElement('ColumnChart', [
// Use an object like this to inject the new chart data.
// Additional series and categories will be copied from
// previous sibling.
modify.setChartData({
series: [
{ label: 'series 1' },
{ label: 'series 2' },
{ label: 'series 3' },
],
categories: [
{ label: 'cat 2-1', values: [ 50, 50, 20 ] },
{ label: 'cat 2-2', values: [ 14, 50, 20 ] },
{ label: 'cat 2-3', values: [ 15, 50, 20 ] },
{ label: 'cat 2-4', values: [ 26, 50, 20 ] }
]
})
// Please notice: If your template has more data than your data
// object, automizer will atm not remove these nodes.
])
})
// Finally, we want to write the output file.
pres.write(`myPresentation.pptx`).then(summary => {
console.log(summary)
})
If you prefer instant testing, you can clone this repo and install dependencies first. Feel free and run:
yarn dev
The output file will demonstrate some of the recently implemented features.
You can run tests using these commands:
yarn test
yarn test-coverage
This project is deeply inspired by:
Generated using TypeDoc


Peter Piper picked a peck of pickled peppers, a peck of pickled peppers Peter Piper picked.
Red, green stem, fresh, home grown.
Pineapples represent peace or pool parties depending how you look at it.
Sweet, ripe, orange, tropical, fresh
Dried, tasty, mango smoothies, best fruit ever!


{% extends 'base.html' %} {% block body %}
The following allows the user to access supermaket data for data analysis
| #1 | Times Visited | Consumers | Products | Coupon | Revenues |
|---|---|---|---|---|---|
| #2 | Supermarket Visit Trend | Find Top Consumers by Revenue | Find Top Products by Revenue | Find Top Coupons | Total Revenues |
| #3 | Income Range | D3 | Find Top Products by Quantity | Find Coupons Renewed | Increase Revenues |


#include <boost/constrained_value/constrained.hpp>
Public Member Functions | |
| broken_constraint (const std::string &what="Attempt to give constrained object a value that is not constraint-conforming.") | |
| Constructs the exception. |
Definition at line 46 of file constrained.hpp.
| broken_constraint | ( | const std::string & | what = "Attempt to give constrained object a value that is not constraint-conforming." |
) | [explicit] |
Constructs the exception.
Passes what to the base class' constructor.
Definition at line 51 of file constrained.hpp.


Data Fields | |
| int | iConnectorIndex |
| index of the connector(0-based) | |
| int | iConnectorId |
| used for disply identification/ordering | |
| int | iSlotIndex |
| index of the slot, 0-based index. | |
| int | iType |
| Type of the connector. Connector Type. | |
| int | iOffset |
| Position of the connector(in millimeters), from the right side of the slot. | |
| int | iLength |
| Length of the connector(in millimeters). |
this structure is used to get the connector information like length, positions & etc.
index of the connector(0-based)
used for disply identification/ordering
index of the slot, 0-based index.
Type of the connector. Connector Type.
Position of the connector(in millimeters), from the right side of the slot.
Length of the connector(in millimeters).


2 Kings 5:2
And the Syrians had gone out by companies, and had brought away captive out of the land of Israel a little maid; and she waited on Naaman's wife.


Grab a drink & get connected.
Wifi: username / password
| This presentation | http://bit.ly/CnCMaySlides |
| The worksheet | http://bit.ly/CnCMayWork |
| Install the Tools | http://bit.ly/CnCTheTools |
Program Director
Program Co-Director
Curriculum Director
Mentor Director
Presentation Director
Architecture is conceptual...
how files are organized
Building a house requires good architecture...
the same applies to apps/sites
A toolshed is not like a baseball stadium...
different apps/sites require different structures
Promotes code reuse
Don't
Repeat
Yourself!
Single Responsibility Principle:
chunks of code that do one thing
These chunks are called modules/components
Easier to maintain over time
(happy devs, happy clients, cost savings)
Architecture can vary based on...
Another drink!
Wifi: username / password
| This presentation | http://bit.ly/CnCMaySlides |
| The worksheet | http://bit.ly/CnCMayWork |
| Install the Tools | http://bit.ly/CnCTheTools |
Documentation:
Helps devs build and understand the project
Naming Conventions:
Files & folders follow conventions or are self-describing
Build tools:
Simplify proceses (running tests, minifying code, etc)
Scaffolding tool that sets up your project's file stucture
Language agnostic
(HTML/JS/CSS, Python, C#, Java, PHP, etc)
Scaffolding is the structure of your project. Varies by language & requirements.
npm install -g yo
Use it with 'yo' in the CLI
A Yeoman plugin that defines an architecture template
Install a generator with npm install -g generator-whatever
Can't find a solution for your app?
Create your own!
gulp serve
gulp
gulp serve:dist
npm run serve
yo --help
yo webapp --help
yo doctor
Another drink?
Wifi: username / password
| This presentation | http://bit.ly/CnCMaySlides |
| The worksheet | http://bit.ly/CnCMayWork |
| Install the Tools | http://bit.ly/CnCTheTools |
#LadyDevs #KCWiT #CodingAndCocktailsKC


Emonhub is now the recommended method of interfacing a rfm12pi to a local or remote emoncms install, and replaces the PHP and Python scripts which we have previously used.
Thanks to Paul Burnell, the author of emonhub, installation of emonhub can be achieved via a command line, which clones an installation script to automate the installation process.
The process is slightly different, depending upon if you have the 'raspberry pi module' already installed in an existing installation and wish to change to emonhub, or if you have a new installation and the 'raspberry pi module' has not been installed. Firstly the former;
1) If you have the raspberry pi module already installed, it's important that it is removed prior to installing emonhub, as only one software can use the serial UART the RFM2Pi is connected to at any one time.
To remove the existing module, and then install emonhub, enter the following command line;
$ git clone https://github.com/emonhub/dev-emonhub.git ~/dev-emonhub && ~/dev-emonhub/upgrade
You will notice that after running this command, that emoncms will stop updating, this is expected until the configuration file is updated as follows;
$ nano /etc/emonhub/emonhub.conf
Enter your emoncms read/write api key in [[[runtimesettings]]] and also enter your rfm2pi frequency, group & base id under [[[runtimesettings]]]
Save your settings, and;
$ sudo service emonhub restart
NOTE - This update will not orphan or alter your input processes, feeds, visualizations or feed data, as it only changes the way in which data is fed to emoncms.
2) To install emonhub on an system where the raspberry pi module is not already installed the process is slightly different and includes two additional steps;
$ git clone https://github.com/emonhub/dev-emonhub.git ~/dev-emonhub && ~/dev-emonhub/install
Edit the configuration file - emonhub.conf exactly same as 1) above;
$ nano /etc/emonhub/emonhub.conf
Then disable the serial console by editing /etc/inittab and /boot/cmdline.txt
Firstly edit the inittab file by adding a '#' to the beginning of the last line, so it reads;
# T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
...and edit the cmdline.txt file by changing the single line to;
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
(The reference to mmcblk0p2 may be different on your installation, depending if you are using a SD card for your root, or an external HDD)
Problems?
View the error log;
$ tail -f /var/log/emonhub/emonhub.log
By default this is set to record 'WARNING', however this can be changed to either - DEBUG, INFO, WARNING, ERROR, and CRITICAL by editing the configuration file.
Paul
Re: Emonhub installation/update
Hi Paul
Can you clarify the usage of Emonhub. Is it useable only if you have a rfm12pi module on the Raspberry Pi? I use a Pi as my local server but with data coming in on the network connection as I use a remote NanodeRF as the base station.
Regards
Ian
Re: Emonhub installation/update
Yes, it's purely the gateway to enable the rfm12b module to talk to emoncms.
Paul
Re: Emonhub installation/update
Thankyou Paul Reed and Paul Burnell for posting this. Thats brilliant, Il copy it into a blog post.
Re: Emonhub installation/update
Thanks for posting the info about emonHub Paul, the scripts you've linked to need to be improved (and documented), they do the job but are a little rough around the edges. The dev-emonhub script was just a tool I knocked up to use during development of emonHub before it got debian packaged (hence the dev- prefix).
The install script does not yet tackle access to the serial port by disabling the serial console so the /boot/cmdline.txt and /etc/inittab will need editing if installed to a new image.
The last line in /etc/inittab should read (in particular the # should of been added)
# T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
And the single line in /boot/cmdline.txt should read (changind mmcblk0p2 if required)
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
I intend to improve the install scripts (and the documentation) soon ('ish), especially as I don't think the debian packaging will be happening for a while now.
Thanks Trystan a blog post would be good.
Ian, Although currently the only interfacer used in emonHub is indeed primarily for the RFM2Pi, emonHub is actually able to accept other inputs, the socket interfacer just needs to be defined in the conf file to work. This functionality is carried over from OEMGateway and allows data from the LAN to come in via a websocket.
If you cast your mind back sometime to a discussion we had about your nanodeRF I started an issue on OEM gateway, which was carried over to emonHub. I also did some experimenting and found that "all" that is really needed was some form of authentication as it is already possible to do what you need with emonHub but not in a secure way. see https://github.com/emonhub/emonhub/issues/25.
I will take a look at implementing some sort of authentication ( hopefully sometime soon) as I think this would be very useful,
Paul
Re: Emonhub installation/update
cmdline.txt & inittab changes now added to main post.
Paul
Re: Emonhub installation/update
Hi,
As a starting point, I would like to use the ready-to-go SD card image described here that contains emonhub + emoncms (low write version). Two questions :
1. I guess I have to update emonhub using the first procedure above. Correct ?
2. The issue described here is solved or not after updating emonhub ?
Thank's
Eric
Re: Emonhub installation/update
Hi Eric
The scripts mentioned in this thread are for installing emonhub from scratch (one also removes a previous rfm2pi interface). Since emonhub is included in the ready to go image you wouldn't need either of these.
The "read-only time issue" in that discussion isn't specific to emonhub, it's to do with keeping time on the Raspbian OS when the file system is mounted as read-only. To avoid the issue you can install ntp-backup, which is the modification mentioned in that same thread,
You can run this command when in RW mode (rpi-rw) to install ntp-backup to the "read-only SD image"
git clone https://github.com/emonhub/ntp-backup.git ~/ntp-backup && ~/ntp-backup/install
Paul
Re: Emonhub installation/update
Ok but do I need to update emonhub if I want to use this image ? If yes, how ?
Eric
Re: Emonhub installation/update
And which version(s) is/are the starting point on which to run the scripts? That's a vital piece of information that's missing.
Re: Emonhub installation/update
Eric, the upgrade is to change from the old rfp2pi interface, not an upgrade from emonhub to a newer version of emonhub. You either have it or you don't as there is only one release version at this time. The image you are installing comes with emonhub pre installed, so there is no need to install it again.
Robert, I view emonhub as a completely separate piece of software from emoncms, and the only connection is that they talk to each other, the same way that the old rfm2pi interface did. So it doesn't matter what version of emoncms you use, as the communication protocol is common across as many versions of emoncms that I can recall.
Paul
Re: Emonhub installation/update
Paul (Reed), I didn't mention emonCMS, like you I'm talking about the Raspberry Pi software. My point was that it's not clear where to start from. If it's the "new" version (that goes by two names!) that's recommended in OpenEnergyMonitor Guide then it wouldn't hurt to say so. And what about the two SD cards in the shop - are they both ready to go, or which script should be used for those? Again, an explicit mention of what's right and what's wrong would give some clarity.
Re: Emonhub installation/update
There is now only one current "image" that may get referred to by several labels many depend on context, the current version of that "image" is emonSD-13-08-14.img.
That "image" is the complete Raspbian OS modified to mount in read-only mode with both emonhub and emoncms pre-installed. emonhub just needs the configuration file edited with some details to work out of the box where as emoncms is installed but not configured, so additional steps are required to "enable" emoncms if a local instance is required, otherwise it will remain dormant.
The version of emonhub pre-installed is the "Pre-Release development version (rc1.0)" which is still the current copy in general use. ...(rc1.1) is in progress and any other versions are not strictly supported as they are early prototypes etc.
The pre-installed emoncms version is "master:8.2.8, bufferedwrite:0.0.1" which is an early copy of the newer, leaner "low-write" or "lite" strain of emoncms, which has since been revised and the current version is "8.3.6, bufferedwrite:0.0.2" this can be updated on the "image" using usual git methods.
emoncms can also be upgraded from the "low-write version" to a "full version" if using a hdd and would like to regain the features suppressed to reach "low-write" status. This I believe can be achieved by switching git branches after installing a hdd as documented in this guide (despite the references to an earlier "image")
I believe the only difference in the 2 cards sold in the shop is the media format. Both are 4gb and both have the "latest image". The new Pi model B+ only accepts a microSD card and the previous Pi model B takes a standard larger SD card (or a microSD in an adapter).
If using an "image" whether purchased on one of the cards or downloaded as an "image" and written to a card, emonhub is ready to go (except config) and doesn't require installing or (at this time) updating so the only "script" that should be run is the ntp-backup script. This is to further modify the changes made to the latest "image" to accommodate the clock in a read-only file system. It should also be safe to use on earlier images but is predominantly needed by the latest "image" due to a characteristic of that image. It is IMO recommended that the ntp-backup script be used with any "read-only" raspbian image.
The "dev-emonhub/install" script is something basic I knocked up to install emonhub to a fresh image during development and can be used for that purpose without an issue, it is not a refined installer and it may not cope with other scenarios eg an existing install.
In addition to that script there is "dev-emonhub/upgrade" (note - upgrade not update), it is a simple script which will remove a pre-existing emoncms "rfm2pi package" or "raspberrypi module", before triggering the afore mentioned basic "dev-emonhub/install" script. It does not update emonhub it merely removes the old rfm2pi interface to allow an upgrade to "emonhub" from said interface, which is done in turn by the "dev-emonhub/install" script.
When emonhub gets revised and an update is required it will probably be via the usual git route or I may create another script to automate the process. All of this is work in progress and hopefully one day all scenarios will be catered for in one menu driven script, but thats a way off yet.
When Trystan puts the next "image" together, I expect it will have the latest emonhub and emoncms at that time and hopefully, the ntp-backup mod too.
Sorry for the long post, I hope it helps clarify (and not confuse further) what can be quite a confusing subject. It isn't intended to be a "how to" guide, just an insight and explanation of how the current "bits" fit together.
Paul
Re: Emonhub installation/update
Thank's Paul for this very complete post. Now it's clear in my mind.
Eric
Re: Emonhub installation/update
Hello all!
Tried switching to the new SD image as I had a corrupt SD :-(...
I followed this guide, edited the emonhub conf file and also ran this command:
git clone https://github.com/emonhub/ntp-backup.git ~/ntp-backup && ~/ntp-backup/install
The only things my log give me are:
pi@raspberrypi ~ $ tail -f /var/log/emonhub/emonhub.log
1970-01-01 00:00:25,080 INFO EmonHub Pre-Release Development Version (rc1.0)
1970-01-01 00:00:25,083 INFO Opening hub...
2014-10-31 17:07:43,745 INFO EmonHub Pre-Release Development Version (rc1.0)
2014-10-31 17:07:43,747 INFO Opening hub...
After a reboot:
pi@raspberrypi ~ $ tail -f /var/log/emonhub/emonhub.log
2014-10-31 17:08:58,559 INFO EmonHub Pre-Release Development Version (rc1.0)
2014-10-31 17:08:58,562 INFO Opening hub...
emonCMS version: Powered by openenergymonitor.org | v8.3.6, bufferedwrite:0.0.2
And ofcourse an empty input screen in emonCMS. Any clues here? I use a RFM2Pi with RFM69CW module, can that be the problem?
Re: Emonhub installation/update
Hi, yes emonHub rc1.0 doesn't accommodate the rfm69 yet (rc1.1 definitely will) I've PM'd you some details rather than go too far off topic on this thread, since the rfm69 isn't widely used yet.
You should also set "loglevel = debug" in emonhub.conf to see more of what's going on when trying to iron out any issues it's far more informative.
Paul
Re: Emonhub installation/update
Does the PacketGen module work with emonHub?
Re: Emonhub installation/update
There is a "hack" that Trystan put together as a temporary measure. The previous implementation wasn't carried over into emonHub so other methods of passing control packets could be explored without the restriction of having to fit in with pre-existing code.
This will tie in with other areas of development like MQTT, Data over secure HTTP into emonhub, emonHub configuration via emonCMS etc
Paul
Re: Emonhub installation/update
The oemgateway had an implementation called OemGatewayRFM2PiListenerRepeater that enabled me to send packets on the RFM12PI via sockets. Are there any plans of of implementing something similar for Emonhub?
Re: Emonhub installation/update
Hi Paul
Thanks for the update and appreciate the time that you are committing to this, it's good to know that it's still under development, and look forward to the next release.
Paul
Re: Emonhub installation/update
There certainly is intention to provide the same functionality, I would like to say soon but may need to settle for hopefully soon'ish. It was deliberately omitted from emonHub to leave room for a more universal solution to outgoing data.
Rather than retain the ListenerRepeater and add packetgen code and then bolt on some MQTT etc etc I'm looking at making emonHub interfacers bi-directional, with some routing control. As mentioned in a post on the MQTT thread today I do have a working prototype but it still needs a fair bit of work yet.
Paul
Re: Emonhub installation/update
I just followed the guide here
http://openenergymonitor.blogspot.co.uk/2014/10/emonhub-installationupda...
I did
git clone https://github.com/emonhub/dev-emonhub.git ~/dev-emonhub && ~/dev-emonhub/upgrade
now when I run the command to start i get an error
root@oemgateway:~/emonhub/service# ./emonhub start
[....] Starting OpenEnergyMonitor emonHub: emonhubstart-stop-daemon: unable to start /usr/share/emonhub/emonhub.py (Permission denied)
Any ideas, as I would rather not reinstall the whole sd ?
it does seem to be updating but I dont know why it errors..
Re: Emonhub installation/update
Have you tried;
$ sudo service emonhub start
-- as per the blog?
Paul
Re: Emonhub installation/update
Yep
MacBook-Pro:~ davidd$ ssh <IP_ADDRESS> -lroot
<EMAIL_ADDRESS>password:
root@oemgateway:~# sudo service emonhub start
[....] Starting OpenEnergyMonitor emonHub: emonhub has been started okstart-stop-daemon: unable to start /usr/share/emonhub/emonhub.py (Permission denied)
root@oemgateway:~#
Re: Emonhub installation/update
I'm just heading out so can only point you in the right direction for the moment.
Your command prompt "root@oemgateway" suggests you are using the older OEM gateway "rock-solid" image.
The IPE-R1 read-only OS that that image was based on is the main reason behind the image needing replacing, it cannot be updated and has several flaws, it was never factored in that someone may want to replace OEMG and retain IPE-R1. You really are in effect keeping the worst bit and trying to replace the good bit with something that was not really designed to run on IPE-R1.
It may well work but not by just using the installer I'm afraid. If you are still getting data it is probably because OEMG is still functioning. The error message tells us emonhub couldn't be started due to permission issues. which maybe related to the fact IPE-R1 is run as root (which isn't good either)
If you run
that should prevent emonhub from attempting to start at boot and OEMG should work as before.
I would recommend considering the new image as it's built on raspbian and runs read-only mode which was the original and only real benefit of IPE-R1.
Paul
Re: Emonhub installation/update
OK Thanks, I have run your suggested command and will go to emonSD-13-08-14.img.zip in the festive break
Re: Emonhub installation/update
Hi David,
Can you tell me how you configured OemGatewayRFM2PiListenerRepeater?
Is it just a case of adding stuff to the .conf file?
Thanks,
David
Re: Emonhub installation/update
@David - I have answered you on the "Emonhub and OEM Gateway" thread, but yes you just define a ListenerRepeater in place of the existing Listener.
Paul
Re: Emonhub installation/update
Hi,
I installed emonhub. I used raspberrypi module before.
The installation worked fine, but starting emonhub fails.
I receive a "Permission denied" when starting emonhub using root or pi user.
pi@raspberrypi ~ $ sudo service emonhub restart
[....] Restarting OpenEnergyMonitor emonHub: emonhubstart-stop-daemon: unable to start /usr/share/emonhub/emonhub.py (Permission denied)
[ ok been restarted ok.
What is wrong? Can anyone help?
Checking the status of emonhub:
pi@raspberrypi ~ $ sudo service emonhub status
[FAIL] Checking OpenEnergyMonitor emonHub: emonhub process has failed!
I installed emonhub as root.
Emonhub logfile is empty!
Best regards,
Christian
Re: Emonhub installation/update
Hi Christian
What does " ls -la /usr/share/emonhub/emonhub.py " return?
Which OS are you using? Wheezy or Jessie?
Can you expand on "I installed emonhub as root" ? are you saying you were logged in as a root user or that you used sudo for the git clone?
Much of the parts are installed as root from within the install script but using root could have set the cloned emonhub folders to root ownership. If " ls -la /home/pi/emonhub " shows "root:root" try "sudo chown pi:pi /home/pi/emonhub " to reset the ownership.
(Sorry if I'm a bit rusty on this, the scripts were written sometime ago)
Paul
Re: Emonhub installation/update
Hi Paul,
thank you, I got it to work now!
For the first installation I was logged in as root.
s -la /usr/share/emonhub/emonhub.py
returned root:root. Changing the owner did not solve the problem!
I removed emonhub again and installed it using user "pi" (logged in as "pi" and not as "root").
Everthing is fine now!
Thank you for your support. Your post was very helpful!
Best regards,
Christian
Re: Emonhub installation/update
My bad! I think that should of been " sudo chown -R pi:pi /home/pi/emonhub " so that all the files and sub-folders were changed too.
Good to hear you're up and running anyway.
Paul
Re: Emonhub installation/update
Hi Paul,
emonhub works fine now! I am happy with the new version. Great tool, good job!
Hope I can contribute some code to emoncms in the future...
Christian
Re: Emonhub installation/update
Hello,
I have problem that after fresh installation of Raspbian Jessie, Emoncms and EmonHub communication between EmonHub and RFM12Pi does not work.
I followed installation guide - https://github.com/emoncms/emoncms/blob/master/docs/RaspberryPi/readme.md
In EmonHub log I can see:
2015-12-31 20:09:58,348 DEBUG SIGINT received.
2015-12-31 20:09:58,349 INFO Exiting hub...
2015-12-31 20:09:58,442 INFO Exit completed
2015-12-31 20:10:10,090 INFO EmonHub Pre-Release Development Version (rc1.2)
2015-12-31 20:10:10,093 INFO Opening hub...
2015-12-31 20:10:10,094 INFO Logging level set to DEBUG
2015-12-31 20:10:10,095 INFO Creating EmonHubEmoncmsReporter 'emonCMS'
2015-12-31 20:10:10,098 INFO Set up reporter 'emonCMS' (buffer: memory | size: 1000)
2015-12-31 20:10:10,106 INFO Setting emonCMS url: http://localhost/emoncms
2015-12-31 20:10:10,107 INFO Setting emonCMS apikey: set
2015-12-31 20:10:10,109 INFO Creating EmonHubJeeInterfacer 'RFM2Pi'
2015-12-31 20:10:10,111 DEBUG Opening serial port: /dev/ttyAMA0 @ 38400 bits/s
2015-12-31 20:10:12,115 ERROR Unable to create 'RFM2Pi' interfacer: device reports readiness to read but returned no data (device disconnected?)
in syslog I can see repeated following lines:
Dec 31 20:22:56 raspberrypi systemd[1]: Stopping Serial Getty on ttyAMA0...
Dec 31 20:22:56 raspberrypi systemd[1]: Starting Serial Getty on ttyAMA0...
Dec 31 20:22:56 raspberrypi systemd[1]: Started Serial Getty on ttyAMA0.
Dec 31 20:23:07 raspberrypi systemd[1]<EMAIL_ADDRESS>holdoff time over, scheduling restart.
Dec 31 20:23:07 raspberrypi rsyslogd-2007: action 'action 18' suspended, next retry is Thu Dec 31 20:24:07 2015 [try http://www.rsyslog.com/e/2007 ]
I am out of ideas what to check and how to fix it...
Lubos
[Read "Read this before posting" Your duplicate post has been deleted. Moderator (RW)]
Re: Emonhub installation/update
Hi Lubos
Have you definitely restarted the Pi after editing the cmdline.txt file in the "Install Emonhub" section of that guide? the emonhub.log says there is a serial port comms issue and the syslog seems to suggest the original settings for the serial port to be used as a serial console are still in play.
Otherwise ss the baud correct for your device? 38400 is the most widely used now but there are some 9600 and 57600 baud rfm2pi's out there.
Paul
Re: Emonhub installation/update
Hi Paul,
first of all - Happy New Year 2016!
yes, I did (I attached reciever after installation without power RPI) and after that again and again.
I had to reinstall my previous installation due to SD card failure.
Can you please point me where can I change bauds? I can't find it, I tried steps described in post "/etc/inittab no longer present in Raspbian Jessie?" (https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=123081)
"console=ttyAMA0,9600 kgdboc=ttyAMA0,9600 console=tty1"
It did not help.
Thank you,
Lubos
Re: Emonhub installation/update
Am I the first to post in 2016?? (sad I know!)
To force a baud rate to emonhub:
Best Wishes
Paul
Re: Emonhub installation/update
Hello,
I installed Jessie, EmonCMS, EmonHub again and strictly followed the guide (all actions double checked).
Now I see different lines in emonhub.log, I probably made a mistake before.
2016-01-01 12:23:32,976 INFO EmonHub Pre-Release Development Version (rc1.2)
2016-01-01 12:23:32,977 INFO Opening hub...
2016-01-01 12:23:32,980 WARNING Setting emonCMS apikey: obscured
2016-01-01 12:23:32,982 ERROR could not open port /dev/ttyAMA0: [Errno 13] Permission denied: '/dev/ttyAMA0'
2016-01-01 12:23:32,983 ERROR Failed to create 'RFM2Pi' interfacer: Could not open COM port /dev/ttyAMA0
2016-01-01 12:27:51,933 ERROR could not open port /dev/ttyAMA0: [Errno 13] Permission denied: '/dev/ttyAMA0'
2016-01-01 12:27:51,935 ERROR Failed to create 'RFM2Pi' interfacer: Could not open COM port /dev/ttyAMA0
2016-01-01 12:29:10,081 INFO EmonHub Pre-Release Development Version (rc1.2)
2016-01-01 12:29:10,096 INFO Opening hub...
2016-01-01 12:29:14,118 WARNING Device communication error - check settings
2016-01-01 12:32:40,430 INFO Logging level set to DEBUG
2016-01-01 12:34:02,295 DEBUG SIGINT received.
2016-01-01 12:34:02,297 INFO Exiting hub...
2016-01-01 12:34:02,298 DEBUG Closing serial port
2016-01-01 12:34:02,362 INFO Exit completed
Here I restarted R-PI and permission denied disappeared.
2016-01-01 12:34:12,902 INFO EmonHub Pre-Release Development Version (rc1.2)
2016-01-01 12:34:12,921 INFO Opening hub...
2016-01-01 12:34:12,923 INFO Logging level set to DEBUG
2016-01-01 12:34:12,925 INFO Creating EmonHubEmoncmsReporter 'emonCMS'
2016-01-01 12:34:12,928 INFO Set up reporter 'emonCMS' (buffer: memory | size: 1000)
2016-01-01 12:34:12,938 INFO Setting emonCMS url: http://localhost/emoncms
2016-01-01 12:34:12,939 INFO Setting emonCMS apikey: set
2016-01-01 12:34:12,940 INFO Creating EmonHubJeeInterfacer 'RFM2Pi'
2016-01-01 12:34:12,956 DEBUG Opening serial port: /dev/ttyAMA0 @ 38400 bits/s
2016-01-01 12:34:17,022 WARNING Device communication error - check settings
2016-01-01 12:34:17,023 INFO Setting RFM2Pi frequency: 433 (4b)
2016-01-01 12:34:18,026 INFO Setting RFM2Pi group: 210 (210g)
2016-01-01 12:34:19,028 INFO Setting RFM2Pi quiet: 1 (1q)
2016-01-01 12:34:20,031 INFO Setting RFM2Pi baseid: 15 (15i)
I added com_baud = 9600 into emonhub.conf and it works! I can see new nodes in EmonCMS.
2016-01-01 12:42:46,270 DEBUG Closing serial port
2016-01-01 12:42:46,272 INFO Deleting interfacer 'RFM2Pi'
2016-01-01 12:42:46,273 INFO Creating EmonHubJeeInterfacer 'RFM2Pi'
2016-01-01 12:42:46,275 DEBUG Opening serial port: /dev/ttyAMA0 @ 9600 bits/s
2016-01-01 12:42:48,279 INFO RFM2Pi device firmware version & configuration: not available
2016-01-01 12:42:48,280 INFO Setting RFM2Pi frequency: 433 (4b)
2016-01-01 12:42:53,730 DEBUG emonCMS acknowledged receipt with 'ok' from http://localhost/emoncms
2016-01-01 12:42:53,784 DEBUG RFM2Pi confirmed sent packet size: -> ack
2016-01-01 12:42:56,476 DEBUG 3 NEW FRAME :<PHONE_NUMBER>.48 1 250 30 244 11 54 1
2016-01-01 12:42:56,478 DEBUG 3 Timestamp :<PHONE_NUMBER>.48
2016-01-01 12:42:56,481 DEBUG 3 Node : 1
2016-01-01 12:42:56,482 DEBUG 3 Values : [7930, 3060, 310]
2016-01-01 12:42:56,539 DEBUG 3 Append to 'emonCMS' buffer => time:<PHONE_NUMBER>.48, data: [1, 7930, 3060, 310], ref: 3
Thank you for your help!
Lubos
Re: Emonhub installation/update
Pleased that you have got it sorted.
Paul
Re: Emonhub installation/update
Yes good to see it sorted, although I cannot explain the " ERROR could not open port /dev/ttyAMA0: [Errno 13] Permission denied: '/dev/ttyAMA0'" errors, I will try a Jessie install "by the guide" myself and see if I can reproduce.
Paul


Now that we've created our factory and our React component, lets tie it all together as an Angular directive. Lets put the following into src/directives/navigation.directive.js
:
import React from 'react';
import Navigation from './components/Navigation.jsx!';
class NavigationDirective {
constructor() {
return function (scope, element) {
scope.$on('$stateChangeSuccess', function (event, state) {
var slide = state.slide;
var navigationElement = React.createElement(Navigation, {
previous: slide.previous,
next: slide.next
});
React.render(navigationElement, element[0]);
});
}
}
}
export default NavigationDirective;
Lets look at what the above code does:
NavigationDirective
(which it exposes as a module).Returns an anonymous function (the easiest way to define an Angular directive, read here if you want to learn more), this function brings scope and element into use, which respectively refers to the scope the directive hinges on, and the element on which it is implemented.
(In addition to scope and element, attributes and controller may also be supplied as parameters; but we won't make use of them in this case.)
$stateChangeSuccess
, which triggers every time a state is changed. The anonymous function that is triggered are given two parameter, event and state, of which we'll make use of the latter.previous
and next
.element[0]
.At last we need to include our directive in src/app.js
:
import NavigationDirective from './directives/navigation.directive';
angular.module('workshop').directive('presentationNavigation', NavigationDirective);
With all of this in place, we can now navigate between our slides.


RayTracer
src
renderable
Classes
SDFObject.h File Reference
#include "
BoundedVolume.h
"
Include dependency graph for SDFObject.h:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Classes
class
SDFObject
Interface for an object that can be Sphere-Marched.
More...
Generated by
1.8.15


Java, Scala, Node, Ruby, RoR, Erlang, Play, PostgreSQL, RabbitMQ, Riak. Launch & Monitor your apps cross cloud, control your apps using REST API, CLI.
moreIf you are datacenter, SCM, and have a private need to move to cloud we can setup it for you quickly.
moreMegam Cloud - packaged in a box which can be connected via VDI, ideal for offices.
more"


Can't make it to Texas Roadhouse but craving their popular and delicious appetizer Rattlesnake Bites? Make them at home with this simple recipe! A cheesy and spicy appetizer these delicious Copycat Texas Roadhouse Rattlesnake Bites are the perfect appetizer to any meal!


Isar735.github.io
Le Moyne College: a Private Jesuit College Syracuse. Creative Writing Masters Programs Masters in you might find that students writing creative nonfiction could offer New York University Creative Writing.
10 Universities Offering Free Writing Courses Online. Creative Writing Future Students York University. Amazon.com: The Psychology of Creative Writing.
Full course list Archaeology. PhD in Archaeology or Conservation Studies. The Department's distance learning PhD is a three-year full-time or six-year part-time. The NYU Creative Writing Program. is among the most distinguished programs in the country and is a leading national center for the study of writing and literature. Explore the entire process of writing creative nonfiction, from brainstorming for the perfect idea to getting your final product noticed by literary agents. PGDip Creative Writing (online) Balance literary appreciation with practical application to master your craft. Year of entry:.
Groening and Cohen served as executive producers and showrunners during the show's entire run, and also functioned as creative consultants. Ken Keeler became. Our MA in Creative Writing offers a distinctive and flexible pattern of study which will meet the York St John University Course From Masters to My Sister. English Capital University, Columbus.
Summer Camps for Teens New York Film Academy. Message of "truth" highlights inaugural address “The truth shall set us free,” was the message from Dr. Ajay Nair on Oct. 13, as hundreds of students, staff.
Stony Brook University, New York Summer Session. College Admission Essay Samples - Essay Writing Center. 10 Universities Offering Free Writing Courses Online. See our list of universities that offer free online writing courses. Learn about what courses. The Purdue University Online Writing Lab serves writers from around the world and the Purdue University Writing Lab helps writers on Purdue's campus.
York university creative writing masters.
Year 1 This year serves as an introduction to the study of English literature and creative writing at university level. You will discover your talents. Creative Writing, Postgraduate Diploma - Part time online. Creative Writing (PGDip) - Postgraduate taught, University. Creative Arts Camps Capital University, Columbus. Our PgDip in Creative Writing addresses the central The University of York reserves the right to ask View 11 other online Masters in Creative Writing. California State University, Bakersfield (often abbreviated CSUB or shortened to CSU Bakersfield) is a public university located in Bakersfield, California, United. English and Creative Writing University of Salford. York university creative writing masters - work with our scholars to get the quality report following the requirements choose the service, and our experienced. 2019 Top Creative Writing Graduate Programs
Our courses - Distance learning, The University York university creative writing masters rzeczownik. Ma creative writing york university - Select Expert Custom.
Creative Writing courses. Centre for Lifelong Learning University of York, Heslington, York, YO10 5DD, UK Tel: work 01904 328473. York University Top Universities. California State University, Bakersfield - Wikipedia. Creative Writing Program - as.nyu.edu. Writing Creative Non-Fiction The Great Courses. The Making of a Story: A Norton Guide to Creative Writing. Ma creative writing york university Duke university mfa writing, masters in the creative writing mfa program? Why should i enroll in english with the quality. Welcome to Le Moyne College in Syracuse, NY, Upstate New York's Jesuit college. Learn more about our majors, how to apply, values, life as a Dolphin.
Have you ever bothered to look at the creative writing careers that are available? Browse these job possibilities, and then go out there and make it happen. Our students, faculty, staff and alumni are helping evolve the modern workplace. The Psychology of Creative Writing takes a scholarly, psychological look at multiple aspects of creative writing, including the creative writer as a person St Joseph's Catholic High School. Creative Writing MA York St John University.
Get complete details of York University including available Programs, Ranking data, Fees structure, upcoming events.
What you'll learn. The creative writing major is designed for students who wish to pursue careers as writers of imaginative literature: fiction, poetry, the essay. 20 Creative Writing Careers Writing Forward. Find out why Stony Brook University has become an internationally recognized research institution that is changing the world. Explore programs and degrees offered. Alice LaPlante teaches creative writing at San Francisco State University and Stanford University, where she is a former Wallace Stegner Fellow. A comprehensive, coeducational Catholic High school Diocese of Wollongong - Albion Park Act Justly, love tenderly and walk humbly with your God Micah. Come to Cardozo Law's Open House on Tuesday, October 30th. Tour the school, learn about the admissions process, and join faculty and staff for a reception.
Capital’s creative arts summer camp programs will be hosted in the educational and lab facilities on Capital University’s Bexley campus, 1 College State University and I possess a common vision. I, like State University, constantly work to explore the limits of nature by exceeding expectations. York College of Pennsylvania, a private, coeducational, 4-year college, offers more than 50 undergraduate majors and graduate programs in business, education and nursing. Home The ILR School Cornell University. Current Canada Post rotating strikes may delay mail service to and from York University. Ours is one of only a few creative writing degree programs in the country. The New York Film Academy offers a wide array of summer camps for teens and camps during the school year designed for high school students who are looking.


Provides interface and seamless access to LINCS proteomics datasets (P100, GCP, etc.) available in Panorama.


http://www.speakers-podium.com/susangranger.
Susan Granger's review of "THE GENERAL'S DAUGHTER" (Paramount Pictures)
Based on Nelson DeMille's best-selling thriller, this is serious sleaze. Set on a swampy Southern Army base, the lurid story mixes rape and murder with betrayal and serious questioning of powerful West Point principles. John Travolta stars as a Criminal Investigation Divison Warrant Officer who is assigned to solve a bizarre crime. The nude, dead body of the daughter (Leslie Stefanson) of a distinguished General (James Cromwell) with political ambitions is found spread-eagled and staked to the ground in the middle of a training field. Whodunit? And why?  Who could have a motive to kill the beautiful West Point graduate who worked in the Psychological Operations Unit? Everyone, it seems. From the woman's Commanding Officer (the always suspicious James Woods) to the base's Provost Marshal (Timothy Hutton), who seems to pop up repeatedly in odd places, to the General's fiercely loyal Adjutant (Clarence Williams III). "How she died seems to be tied to the way she lived," Travolta astutely observes, after uncovering some decidedly freaky films detailing the woman's promiscuous, sordid sex life. Writers Christopher Bertolini and William Goldman pepper the script with flippant banter, as if they couldn't make up their minds about how seriously to take the grisly, gruesome subject matter, and director Simon West repeatedly contrives to return to the sordid, brutal crime scene as the murky melodrama unfolds to its ironic, if unlikely, conclusion. On the Granger Movie Gauge of 1 to 10, "The General's Daughter" is a perversely kinky 4. It's tortuous, tormented, and trashy.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


DNS v1¶
Note
This service is only available for Rackspace users.
Setup¶
The first step is to pass in your credentials and set up a client. For Rackspace users, you will need your username and API key:
use OpenCloud\Rackspace;
$client = new Rackspace(Rackspace::US_IDENTITY_ENDPOINT, array(
'username' => '{username}',
'apiKey' => '{apiKey}',
));
Operations¶
Glossary¶
- domain
- A domain is an entity/container of all DNS-related information containing one or more records.
- record
- A DNS record belongs to a particular domain and is used to specify information about the domain. There are several types of DNS records. Each record type contains particular information used to describe that record’s purpose. Examples include mail exchange (MX) records, which specify the mail server for a particular domain, and name server (NS) records, which specify the authoritative name servers for a domain.
- subdomain
- Subdomains are domains within a parent domain, and subdomains cannot be registered. Subdomains allow you to delegate domains. Subdomains can themselves have subdomains, so third-level, fourth-level, fifth-level, and deeper levels of nesting are possible.
- pointer records
- DNS usually determines an IP address associated with a domain name. Reverse DNS is the opposite process: resolving a domain name from an IP address. This is usually achieved with a domain name pointer.


{% extends "admin/cms/page/plugin_change_form.html" %} {% block fieldsets %} {% for fieldset in adminform %} {% include "admin/includes/fieldset.html" %} {% endfor %} {% endblock %}


This is some text.
Even more text goes here.
More Text.
This text is cleared so it will not be between the floated divs.


We have studied the Information Commissioner’s Office (ICO) guidelines concerning compliance with the new General Data Protection Regulation (GDPR) rules. This document explains how We Are Open Co-op (WAO) complies, using the structure of the ICO booklet, “Preparing for the General Data Protection Regulation – 12 Steps to Take Now.”
The Company Secretary and all members of WAO are aware that GDPR comes into effect on 25th May 2018. The Company Secretary and all members have read and adhere to our data protection privacy policies.
We hold the following data, which can be accessed by relevant members of WAO:
The Company Secretary has access to the following data:
The Company Secretary and Weaver Financial Ltd. (our accountants) have access to the following data:
We do not share this information with anyone outside of We Are Open Co-op and Weaver Financial Ltd (based in the UK).
We have taken the following steps:
Any individual or organisation may request to be informed on the data held by WAO about them. We will update or delete this data subject to reasonable requests in order to comply with GDPR. Note that we have a legal requirement to retain some financial records for auditing purposes.
We will respond to all requests for information within the one month compliance period. In order to action the request, please note that the individual or organisation will be requested to prove their identity.
Any individual or organisation subscribed to our email lists can unsubscribe at any time by clicking the relevant link in one of our communications, or by contacting us via our website. These email addresses are retained as ‘unsubscribed users’ for a one-year period for auditing reasons.
Information held in Xero is stored solely for accounting purposes.
Individuals and organisations who subscribe to our email lists are over the age of 13. If we find that there are subscribers under this age, we will remove them from the list, explaining why we are doing so.
We aim to prevent data breaches by using strong passwords with two-factor authentication where available. If any organisations who we use as data processors are compromised we would take steps to follow their advice immediately, and inform the data subjects.
We have familiarised ourselves with the ICO’s code of practice on Privacy Impact Assessments.
We have appointed a Data Protection Officer (DPO) who can be contacted at<EMAIL_ADDRESS>We have registered with the UK’s lead data protection supervisory authority, the Information Commissioner’s Office (ICO).
Your privacy is important to us. We are committed to safeguarding the privacy of your information.
When required we collect personal data to provide an appropriate level of service to you and to comply with the law regarding data sharing. In legal terms this is called ‘legitimate interests’. We collected your personal data when you corresponded with us during a sales process or signed up for one of our services. When it is required, we may also ask you for your consent to process your data. We never share your information with others.
We’re committed to using your personal data responsibly and lawfully. Here’s what we do with your personal data:
Your personal data is all stored within the EU or on platforms including Google Applications that have Privacy Shield and/or other features to ensure we can them in ways compliant with the GDPR in general, and our privacy and data retention policies specifically.
Google Apps’ Privacy Sheild Certification is here: https://www.privacyshield.gov/participant?id=a2zt000000001L5AAI
To help us to maintain the accuracy of the personal data that we hold please let us know if we hold out of date or inaccurate information about you.
We hold your data for varying lengths of time depending on the type of information in question but in doing so we always comply with Data Protection legislation. We will hold your data for six years from the end of contracted business relationship or the date of last correspondence, whichever is the later.
We will not share your information with third parties without your consent unless the law requires us to do so or as necessary for own legitimate interests or those of other persons and organisations eg:
There are only a few occasions where we will share your personal data with a third party. They are:
Under Data Protection legislation, you have the right to request access to information about you that we hold. To make a request for your personal information contact our Data Protection Officer (DPO).
You also have the right to:
For further information on how your information is used, how we maintain the security of your information and your rights to access information we hold on you please get in touch with our Data Protection Officer using the contact details below.
If you have a concern about the way we are collecting or using your personal data, you should raise your concern with us in the first instance or directly to the Information Commissioner’s Office at https://ico.org.uk/concerns/
To discuss anything in this privacy notice, please contact our Data Protection Officer<EMAIL_ADDRESS>"Data Protection Legislation" means the Data Protection Act 1998, the Privacy and Electronic Communications Regulations (EC Directive) Regulations 2003 (SI 2426/2003 as amended), and all applicable laws and regulations, including any replacement UK or EU data protection legislation relating to the Processing of Personal Data, including, where applicable, the guidance and codes of practice issued by the Information Commissioner’s Office.
The Data Protection Legislation (“the Legislation”) is concerned with the protection of human rights in relation to personal data. The aim of the Legislation is to ensure that personal data is used fairly and lawfully and that where necessary the privacy of individuals is respected. As part of regular business activities, We Are Open Co-op (“WAO”) will collect, store and process personal data about our members, clients and suppliers and other third parties and we recognise that the correct and lawful treatment of this data will maintain confidence in WAO. This policy sets out the basis on which we will process any personal data we collect from data subjects, or that is provided to us by data subjects or other sources.
The Data Protection Officer (“DPO”) is responsible for ensuring compliance with the Legislation and with this policy. The post is currently held by Doug Belshaw.
Any questions about the operation of this policy or any concerns that the policy has not been followed should be referred in the first instance to the DPO.
Personal data is defined as data relating to a living individual who is or can be identified either from the data or from the data in conjunction with other information that is in, or is likely to come into, the possession of the the data controller.
All personal data should be processed in accordance with the Legislation and this policy. Any breach of this policy may result in disciplinary action such as continued membership of WAO.
Processing includes obtaining, holding, maintaining, storing, erasing, blocking and destroying data.
Personal data is data relating to a living individual. It includes employee data. It will not include data relating to a company or organisation, although any data relating to individuals within companies or organisations may be covered. Personal data can be factual (for example a name, address or date of birth) or it can be an opinion about that person, their actions and behaviour.
Examples of personal data are employee details, including employment records, names and addresses and other information relating to individuals, including supplier details, any third-party data and any recorded information including any recorded telephone conversations, video calls, emails or CCTV images.
The Secretary and members who process data on behalf of WAO should assume that whatever they do with personal data will be considered to constitute processing. Individuals should only process data:
The Secretary and members who process data on WAO’s behalf have a responsibility for processing personal data in accordance with the Legislation. Anyone who has responsibility for processing personal data must ensure that they comply with the data protection principles in the Legislation. These state that personal data must:
WAO are committed to ensuring that this data protection policy is put into practice and that appropriate working practices are being followed. To this end the following steps will be taken:
Handling personal data and data security
We will take appropriate technical and organisational steps to guard against unauthorised or unlawful processing. Records will be stored on Google Apps, Xero, MailChimp, Loomio. Access to these records will be restricted to account holders with passwords only. Paper-based records relating to members, clients or suppliers will be kept secure in a locked cabinet. Access to these will be restricted to the Secretary. The privacy policies of each of the cloud-based applications used by WAO can be found as follows:
We will ensure that the Secretary and members who handle personal data are adequately trained and monitored.
Security policies and procedures will be regularly monitored and reviewed to ensure data is being kept secure.
Where personal data needs to be deleted or destroyed, adequate measures will be taken to ensure data is properly and securely disposed of. This will include destruction of files and back up files and physical destruction of manual files. Particular care should be taken over the destruction of manual sensitive data (written records) including shredding or disposing via specialist contractors.
All data will be stored in a secure location and precautions will be taken to avoid data being accidentally disclosed. Any agent employed to process data on our behalf will be bound to comply with this data protection policy by a written contract. Personal data stored on a laptop should be password protected.
The Legislation gives individuals certain rights to know what data is held about them and what it is used for. In principle everyone has the right to see copies of all personal data held about them. There is also a right to have any inaccuracies in data corrected or erased. Data subjects also have the right to prevent the processing of their data for direct marketing purposes.
Any request for access to data under the Legislation should be made to the DPO in writing. In accordance with the Legislation we will ensure that written requests for access to personal data are complied with within 30 days of receipt of a valid request.
When a written data subject access request is received the data subject will be given a description of a) the personal data, b) the purposes for which it is being processed, c) those people and organisations to whom the data may be disclosed, d) be provided with a copy of the information in an intelligible form.
No sensitive data will be requested, gathered or stored by WAO.
We reserve the right to change this policy at any time. Where appropriate we will notify data subjects of those changes by mail or email.


dubbo:protocol
Service provider protocol configuration. The corresponding class is org.apache.dubbo.config.ProtocolConfig
. If you need to support multiple protocols, you could declare multiple <dubbo:protocol>
tags, and specify the protocol via protocol
property.
| Attribute | Corresponding URL parameter | Type | Required | Default Value | Function | Description | Compatibility |
|---|---|---|---|---|---|---|---|
| id | string | False | dubbo | Configuration association | Bean Id of the protocol, can be referenced in <dubbo:service protocol=""> The default value is equal to the value of name attribute while id is not filled. If name value has already existed, it will add index to it's suffix. |
Above 2.0.5 | |
| name | <protocol> | string | True | dubbo | Performance optimize | Protocol name | Above 2.0.5 |
| port | <port> | int | False | The default port of dubbo protocol is 20880, rmi protocol is 1099, http and hessian protocol are 80；It will allocate the default port if port is not filled; It will allocate an unused port if port equals -1 . To ensure the ports scope is controllable, the port will increase based on the corresponding protocol default port after Dubbo 2.4.0+ |
Service discovery | Service port | Above 2.0.5 |
| host | <host> | string | False | Find local IP automatically | Service discovery | -The host name of services, to specify VIP and domain, or having multiple network cards. If null, it will find local IP automatically- It's recommended to let Dubbo find local IP automatically | Above 2.0.5 |
| threadpool | threadpool | string | False | fixed | Performance optimize | The type of Thread Pool, fixed/cached are available | Above 2.0.5 |
| threads | threads | int | False | 200 | Performance optimize | The size of the services' Thread Pool(Fixed) | Above 2.0.5 |
| iothreads | threads | int | False | The count of CPU + 1 | Performance optimize | The size of io Thread Pool(Fixed) | Above 2.0.5 |
| accepts | accepts | int | False | 0 | Performance optimize | The maximum connection count of the service provider | Above 2.0.5 |
| payload | payload | int | False | 8388608(=8M) | Performance optimize | The length limit of request and response, unit is byte | Above 2.0.5 |
| codec | codec | string | False | dubbo | Performance optimize | Protocol encoding | Above 2.0.5 |
| serialization | serialization | string | False | The default serialization of dubbo protocol is hessian2, rmi protocol is java, http protocol is json | Performance optimize | Protocol serialization, It's used when a protocol has multiple serializations. For example, dubbo protocol has 4 serializations, they are dubbo , hessian2 , java and compactedjava . |
Above 2.0.5 |
| accesslog | accesslog | string/boolean | False | Service discovery | true will write access log to logger. Specifying it to a log path, you can write access logs to special log file. |
Above 2.0.5 | |
| path | <path> | string | False | Service discovery | Context path, the prefix of the service path | Above 2.0.5 | |
| transporter | transporter | string | False | The default value of dubbo protocol is netty | Performance optimize | The server and client implements of the protocol. For example, mina and netty for dubbo protocol. You can configure server or client side separately. | Above 2.0.5 |
| server | server | string | False | The default value of dubbo protocol is netty, http protocol is servlet | Performance optimize | The server implement of the protocol. For example, mina and netty for dubbo ptotocol, jetty and servlet for http protocol. | Above 2.0.5 |
| client | client | string | False | The default value of dubbo protocol is netty | Performance optimize | The client implement of the protocol. For example, mina and netty for dubbo protocol. | Above 2.0.5 |
| dispatcher | dispatcher | string | False | The default value of dubbo protocol is all | Performance optimize | specify the thread model of the way to dispatching. Such as all , direct , message , execution , and connection for dubbo protocol. |
Above 2.1.0 |
| queues | queues | int | False | 0 | Performance optimize | The queue size of the Thread Pool. It's recommended not to specify it in order to invoke other provides rather than queueing unless you have special requirement. | Above 2.0.5 |
| charset | charset | string | False | UTF-8 | Performance optimize | Serialization encoding | Above 2.0.5 |
| buffer | buffer | int | False | 8192 | Performance optimize | The buffer size of networking IO | Above 2.0.5 |
| heartbeat | heartbeat | int | False | 0 | Performance optimize | Heartbeat interval. For long connection, it's difficult to receive closing event while the physical layer is disconnected. So heartbeat is necessary to help checking the connection quality | Above 2.0.10 |
| telnet | telnet | string | False | Service discovery | Supported telnet commands, use , to separate commands. |
Above 2.0.5 | |
| register | register | boolean | False | true | Service discovery | Whether registering the corresponding services to registry center | Above 2.0.8 |
| contextpath | contextpath | String | False | Default value is an empty string | Service discovery | Above 2.0.6 |


Bridges
Draw horizontal or vertical bridges to link up all the islands. Bridges may be single or double; they may not cross; the islands must all end up connected to each other; the number in each island must match the number of bridges that end at that island (counting double bridges as two). Note that loops of bridges are permitted.
Click on an island and drag left, right, up or down to draw a bridge to the next island in that direction. Do the same again to create a double bridge, and again to remove the bridge if you change your mind. Click on an island without dragging to mark the island as completed once you think you have placed all its bridges.


For a limited Time! Create an account now & get 10% off any purchase!
Log in or Register
Spartan-Sports
Mens
Tops
Bottoms
Shoes
Womens
Tops
Bottoms
Shoes
kids
Tops
Bottoms
Shoes
Search
Previous
Next


Introduction to PipeSystems¶
Minipipe has two API’s, PipeLine and PipeSystem. PipeLine is a simple sequential API for linear pipelines. However, it’s also possible to build more complex pipe systems with Minipipe that may branch and join to form more complex graph topologies. In this section we’ll introduce the concepts of multiple inputs/outputs, switchs and regulators.
[1]:
import minipipe as mp
import numpy as np
# Define functors
def genRand(n=5):
# generates fake data
for _ in range(n):
yield np.random.rand(4)
def batch(batch_size=2):
# A coroutine for breaking data up into batches of 2
x = (yield)
for i in range(len(x)//batch_size):
yield x[i*batch_size:(i+1)*batch_size]
def sumBatch(x):
# simple tranform on data
return x.sum()
def switch(x):
# if-then switch
return [x, None] if x > 1 else [None, x]
def output_gt_1(x):
# sink for greater than 1
print('1 <',x)
def output_lt_1(x):
# sink for less than 1
print('1 >',x)
First we’ve introduced a Python coroutine batch
. This coroutine breaks up the data into batches of size 2. This is an example of a Regulator functor.
We’ve also introduced the concept of a switch functor. This functor has two outputs, in this case a list with two elements, however we could have just as easily used a standard tuple. When a Python None
is encountered in a pipe segment it is simple ignored. Thus switch
returns x in either the first or second output depending on the value of x.
The PipeSystem API allows you to define general graphs that may branch and join however you choose. In the PipeSystem API you explicitly define the nodes (Pipes) and edges (Streams) of your graph.
[2]:
# Define streams
s1, s2, s3, s4, s5 = mp.Stream(), mp.Stream(), mp.Stream(), mp.Stream(), mp.Stream()
[4]:
# Create Pipe segments with up/downstreams
# Order is not important
pipes = [
mp.Source(genRand(), 'source1', downstreams=[s1]),
mp.Source(genRand(), 'source2', downstreams=[s1]),
mp.Regulator(batch, 'batcher', upstreams=[s1], downstreams=[s2]),
mp.Transform(sumBatch, 'sum', upstreams=[s2], downstreams=[s3]),
mp.Transform(switch, 'switch', upstreams=[s3], downstreams=[s4, s5]),
mp.Sink(output_gt_1, 'print_gt_1', upstreams=[s4]),
mp.Sink(output_lt_1, 'print_lt_1', upstreams=[s5]),
]
Since switch
has two outputs it must have two downstreams, otherwise the list/tuple will be interpreted as a single output. Pipe segments may also have multiple inputs, in which case they must have multiple upstreams.
[6]:
# Build pipesystem
psys = mp.PipeSystem(pipes)
psys.build()
psys.diagram(draw_streams=False)
[6]:
[7]:
# Run pipesystem
psys.run()
psys.close()
1 < 1.604944539622751
1 < 1.604944539622751
1 < 1.251717255372735
1 < 1.5286125042703245
1 < 1.2712189351541268
2020-01-03 14:27:28,772 - INFO - source2 - End of stream
2020-01-03 14:27:28,774 - INFO - source1 - End of stream
1 < 1.7101062302775798
2020-01-03 14:27:28,786 - INFO - source2 - Local termination
1 < 1.251717255372735
1 > 0.542044961649252
1 < 1.5286125042703245
1 < 1.5037996350353544
1 > 0.542044961649252
1 < 1.2712189351541268
1 > 0.973419707259716
1 > 0.973419707259716
1 < 1.7101062302775798
1 > 0.8593722337853537
1 < 1.5037996350353544
1 > 0.8593722337853537
1 < 1.5116823320879524
1 < 1.5116823320879524
2020-01-03 14:27:28,806 - INFO - source1 - Local termination
2020-01-03 14:27:28,810 - INFO - batcher - Local termination
2020-01-03 14:27:28,812 - INFO - sum - Local termination
2020-01-03 14:27:28,818 - INFO - print_gt_1 - Local termination
2020-01-03 14:27:28,818 - INFO - print_lt_1 - Local termination
2020-01-03 14:27:28,819 - INFO - switch - Local termination


This is an experiment inspired by The Sound of Sorting. It's built with HTML5 Canvas/Web Audio/RequestAnimationFrame API's. Therefor it's likely to break in anything other than the latest version of your browser.
The JavaScript sorting algorithms being used in this project are based on the work of Nicholas C. Zakas. Take a look at his computer-science-in-javascript repository. I also highly recommend reading his blog articles on the subject.
The full source code to this project can be found in the Assortment GitHub repository. Improvements and other contributions are highly welcome.
If you wish to contact me please send an email to daniel (at) webcloud (dot) se