Privacy
We’re committed to protecting your privacy, and to managing any personal and credit related information that we hold about you in accordance with the requirements of the Privacy Act 1988 (Cth).
We collect, hold, use and disclose your personal information in accordance with our Privacy Policy, which also sets out how you may access and correct that personal information – as well as how to lodge a complaint relating to the way we’ve handled your personal information.
You can find more information about how to access and correct the credit related information that we hold about you, as well as how to lodge a complaint relating to the way we’ve handled your credit related information in our Credit Reporting Policy, which forms part of our Privacy Policy.
Privacy collection statements
For more details on the types of information that we collect about you and why we do this, you should read the appropriate collection statement:
- Privacy Collection Statement for Customers & Prospective Customers
- Privacy Collection Statement for Landholders
- Privacy Collection Statement for Community Engagement & Stakeholders
- Privacy Collection Statement for Shareholders
- Privacy Collection Statement for Other Contractors & Visitors
- Privacy Collection Statement for General Enquiries
- Credit Reporting Collection Statement (also applies to Customers)
A combined copy of Origin’s Privacy Collection Statement for Customers and Credit Reporting Collection Statement in printable format can be accessed below.
1. Privacy Collection Statement for Customers & Prospective Customers
Your information is being collected by Origin Energy Limited (ABN 30 000 051 696) or one of its Australian subsidiaries (together, we or us). Our contact details are available at originenergy.com.au/contact or you can email us at<EMAIL_ADDRESS>We collect, use, hold and disclose your personal information (which includes your name, address, telephone and other contact details and banking and credit card details) in order to provide you with energy and related products and services and to process your payments for these products and services.
We may also:
- collect sensitive information about you in some circumstances (for example, if life support equipment is used at your supply address);
- collect, use, hold and disclose additional confidential information that is not personal information (which may include metering data and other information where required under applicable laws) for these purposes;
- if you request that we provide a quote for our products and services, use your personal information to provide that quote, including to follow up if we do not hear from you;
- collect personal information about you from third parties, but will take reasonable steps to ensure that you are aware of the matters contained in this privacy collection statement;
- disclose your personal information to our related parties, contractors, agents, other energy distributors or retailers, government bodies and regulatory authorities (where required or authorised by law) and our service providers;
- disclose your personal information to third parties to whom we have assign your debt; and
- use your personal information for marketing purposes, including disclosing it to third parties who undertake marketing activities on our behalf, and may present you with gas, electricity, green products and other household or business service offers in the future (including after your agreement with us ends).
If you choose not to provide your personal information to us, we may not be able to answer your query or provide energy and related products and services to you.
We may hold personal information about you in, or may disclose this information to third party service providers located in one or more overseas countries. Your personal information may be held in New Zealand, the United States of America, India, the Philippines, Singapore, Vietnam, Chile, Botswana, Indonesia and Papua New Guinea. If your personal information is held in other overseas countries in the future we will update this collection statement.
We may also collect, use, hold and disclose certain credit related information about you. We may collect such credit related information from, and disclose credit related information to, credit reporting bodies and other entities that provide credit directly to you. For more information, please see our specific Credit Reporting Collection Statement.
We will otherwise collect, hold, use and disclose your personal information in accordance with our Privacy Policy, which sets out how you may access and correct the personal information that we hold about you and how to lodge a complaint relating to our treatment of your personal information. Our credit reporting policy, which forms part of our general Privacy Policy, sets out how we will collect, hold, use and disclose any credit related information about you, how you may access and correct the credit related information that we hold about you and how to lodge a complaint relating to our treatment of your credit related information.
2. Privacy Collection Statement for Landholders
Your information is being collected by Origin Energy Limited (ABN 30 000 051 696) or one of its Australian subsidiaries (together, we or us). Our contact details are available at originenergy.com.au/contact, but you can also call us on 1800 526 369 or you can email us at<EMAIL_ADDRESS>We collect, use, hold and disclose your personal information (which includes your name, address, telephone, other contact details and banking details) in order to manage our relationship with you or your relationship with third parties that we act or perform functions for. If it is relevant to the business relationship, we may also collect sensitive information. We may collect personal information about you from third parties, but will take reasonable steps to ensure that you been made aware of the matters contained in this privacy collection statement. If you choose not to provide your personal information to us, we may not be able to answer your query or have a business or other relationship with you.
We may disclose your personal information to third parties, which may include our joint venture partners, entities that we act or provide functions for, our services providers, your authorised representative(s) and government and regulatory authorities (where required or authorised by law). These third parties will manage your personal information in accordance with their own privacy policies and we ask that these third parties hold, use and disclose your personal information in accordance with the Privacy Act.
We will otherwise collect, hold, use and disclose your personal information in accordance with our Privacy Policy, which sets out how you may access and correct the personal information that we hold about you and how to lodge a complaint relating to our treatment of your personal information.
3. Privacy Collection Statement for Community Engagement & Stakeholders
Your information is being collected by Origin Energy Limited (ABN 30 000 051 696) or one of its Australian subsidiaries (together, we or us). Our contact details are available at originenergy.com.au/contact or you can email us at<EMAIL_ADDRESS>When we interact with community organisations and similar stakeholders, we may collect personal information about identified individuals or the representatives of these organisations as part of this engagement process. We may collect your name, address and contact details, as well as any other personal information necessary to respond to enquiries or to address any community or other concerns that have been raised with us or in relation to third parties that we act or perform functions for. If it is relevant to the enquiry or concern, this may include collecting sensitive information.
We only collect, use, hold and disclose personal information to the extent necessary to engage with community organisations and similar stakeholders. If you choose not to provide your personal information to us, we may not be able to answer your query, provide any information or otherwise effectively address any community or other concerns that have been raised with us.
We may disclose your personal information to third parties, which may include our joint venture partners, entities that we act or provide functions for, our services providers, your authorised representative(s) and government and regulatory authorities (where required or authorised by law).
These third parties will manage your personal information in accordance with their own privacy policies and we ask that these third parties hold, use and disclose your personal information in accordance with the Privacy Act.
We will otherwise collect, hold, use and disclose your personal information in accordance with our Privacy Policy, which sets out how you may access and correct the personal information that we hold about you and how to lodge a complaint relating to our treatment of your personal information.
4. Privacy Collection Statement for Shareholders
Your information is being collected by Origin Energy Limited (ABN 30 000 051 696) (we or us). Our contact details are available at originenergy.com.au/contact or you can email us at<EMAIL_ADDRESS>We collect, use, hold and disclose your personal information (which includes your name, address, telephone and other contact details, date of birth, tax file number and banking details) in connection with your shareholding, to keep our share registry up to date and to pay any dividends to you. The collection of this information may be required under the Corporations Act 2001 (Cth) or the Anti-Money Laundering and Counter Terrorism Financing Act 2006 (Cth). If you do not provide your personal information to us, you may not be able to become a shareholder.
We may disclose your personal information to our share registry operator, contractors, agents, government bodies and regulators and to our service providers and professional advisors. In certain circumstances, we may be required by law to grant access to anyone who wishes to inspect our share register and to provide a copy to them.
We will otherwise collect, hold, use and disclose your personal information in accordance with our Privacy Policy, which sets out how you may access and correct the personal information that we hold about you and how to lodge a complaint relating to our treatment of your personal information.
5. Privacy Collection Statement for Other Contractors & Visitors
Your information is being collected by Origin Energy Limited (ABN 30 000 051 696) or one of its Australian subsidiaries (together, we or us). Our contact details are available at originenergy.com.au/contact or you can email us at<EMAIL_ADDRESS>We collect, use, hold and disclose your personal information (which includes your name, address, contact details and details of your employer) in connection with allowing you to access any sites, offices, buildings or other premises that we own or lease or which are under our control. We may also collect sensitive information, including health information, about you in some circumstances (such as if one of our representatives requests that you submit to a drug or alcohol test while on our premises). If you do not provide your personal information to us (including consenting to our collection of your sensitive information), you may not be allowed to access our premises or you may be asked to leave our premises.
We may disclose your personal information to our contractors, agents, government bodies, local authorities and to our service providers.
We will otherwise collect, hold, use and disclose your personal information in accordance with our Privacy Policy, which sets out how you may access and correct the personal information that we hold about you and how to lodge a complaint relating to our treatment of your personal information.
6. Privacy Collection Statement for General Enquiries
Your information is being collected by Origin Energy Limited (ABN 30 000 051 696) or one of its Australian subsidiaries (together, we or us). Our contact details are available at originenergy.com.au/contact or you can email us at<EMAIL_ADDRESS>We collect, use, hold and disclose your personal information (which includes your name, address, telephone and other contact details) in order to answer your query or provide you with a report, document or other information that you have requested. If you choose not to provide your personal information to us, we may not be able to answer your query or provide the report, document or other information that you have requested.
We may disclose your personal information to our contractors, agents, government bodies, local authorities and to our service providers.
We will otherwise collect, hold, use and disclose your personal information in accordance with our Privacy Policy, which sets out how you may access and correct the personal information that we hold about you and how to lodge a complaint relating to our treatment of your personal information.
7. Credit Reporting Collection Statement
Your information is being collected by Origin Energy Limited (ABN 30 000 051 696) or one of its Australian subsidiaries (together, we or us). Our contact details are available at originenergy.com.au/contact or you can email us at<EMAIL_ADDRESS>We may collect, use, hold and disclose certain credit related information about you for the purposes of providing you with energy and related products and services and to process your payments for these products and services. Credit related information includes information such as your name and contact details, your credit history (including any repayments or late repayments you have made), details of any credit you have sought or obtained from other credit providers, any credit rating or credit assessment score that we calculate or that a credit reporting body might provide to us and details of any credit-related court proceedings or insolvency applications that relate to you.
We may collect credit related information about you from credit reporting bodies and other credit providers who have provided credit to you. We may use and hold this credit related information in order to conduct a credit assessment on you, to evaluate your credit-worthiness and to decide whether to provide you with energy and related products and services on credit. We may disclose your credit related information and your personal information to third parties, including debt collectors, credit management agencies, other credit providers, credit reporting bodies and government bodies and regulatory authorities (where required or authorised by law). Credit reporting bodies collect a range of credit related information about individuals and use that information to provide a credit-related service to their customers (which include us).
The credit reporting bodies that we may disclose your information to are:
- Dun & Bradstreet (Australia) Pty Ltd (contact details available at www.checkyourcredit.com.au/ContactUs); and
- Veda Advantage Information Services and Solutions Limited (contact details are available at www.mycreditfile.com.au/support).
If we disclose your information to other credit reporting bodies in the future we will update this collection statement.
These credit reporting bodies may include your information in reports provided to other credit providers to assist them to assess your credit worthiness. If you do not pay for the energy and related products and services that we provide to you, if you commit fraud or try to do so, or if you otherwise commit a serious credit infringement, we may disclose this information to these credit reporting bodies. This may affect your ability to obtain credit in the future.
We also have a credit reporting policy, which forms part of our general Privacy Policy. You may obtain a copy of the credit reporting bodies’ credit reporting policies by contacting them using the contact details set out above.
We may also disclose credit relating information about you to third parties to whom we have assigned your debt.
You have a right to access the credit related information that we hold about you, to correct that credit related information and to make a complaint about our handling of your credit related information. More information about how to access and correct the credit related information that we hold about you and how to lodge a complaint relating to our treatment of your credit related information (and how we will deal with it) can be found in our credit reporting policy.
You also have a right to request that credit reporting bodies do not use any credit related information held by them for the purposes of pre-screening any direct marketing by credit providers. If you would like to make such a request, please contact the credit reporting bodies using the contact details set out above.
We disclose credit related information to third parties that provide services to us or that provide services to you on our behalf. We may hold this credit related information in, or may disclose this information to third party services providers located in, one or more overseas countries. Your credit related information may be held in New Zealand, the United States of America, India, the Philippines, Singapore, Vietnam, Chile, Botswana, Indonesia and Papua New Guinea. If your credit related information is held in other overseas countries in the future we will update this collection statement.
If you believe that you have been a victim of fraud or identity theft, you have a right to contact the credit reporting bodies and ask them not to disclose your credit related information. If you would like to make such a request, please contact the credit reporting bodies using the contact details set out above.


Spellmaker
Maker
Spells
Components
Devise a Spell
Spell Name
What form does the spell take?
Charm
Infusion
Bath
Ointment
Incense
Spell Process
What does the spell work towards?
Clairvoyance
Exorcism
Fertility
Fidelity
Healing
Hex Breaking
Love
Luck
Lust
Money
Mood
Protection
Purification
Sleep
Spirituality
Wisdom
Spell Intention
Spell Description
Detail a Component
Component Name
Latin Name
Synonyms (Separate w/ Commas)
Associated Deities
Deities
Uses
Uses
Planet
Sun
Mercury
Venus
Moon
Mars
Jupiter
Saturn
Uranus
Neptune
Pluto
Unknown
Planet
Element
Earth
Fire
Air
Water
Unknown
Element
Is it toxic?
Yes
No
Toxic?


This is helpful if you want to use test objects prior to running. For example, the tests returned could be displayed in a UI prior to running the tests.
The function will raise an exception if a cycle is detected. A cycle is when a test depends, directly or indirectly, on itself.
Gets tests based on the SEPs and search strings specified
in config
and calls runTests, which ensures all depedencies are run
prior to each test. Each test run is yield'ed back to the caller.
The function will raise an exception if a cycle is detected. A cycle is when a test depends, directly or indirectly, on itself.
Runs the tests passed, including dependencies, and yields them back to the caller.
Maintains a global context object. Expects each test to provide the data defined in Context.provides to the global context and ensures the global context has the data defined in each Context.expects.
If a test directly or indirectly depends on itself or if one of its dependencies fails, a relevant [[Faliure]] will be added to the test's result and yielded and the test will not be run.
The Stellar Ecosystem Proposals (SEPs) this library supports testing.


{% extends "mainapp/layout.html" %} {% block pagename %}Downloads{% endblock %} {% block body %}
You can download the latest nightly here.


Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus.
You can use the mark tag to highlight text.
This line of text is meant to be treated as deleted text.
This line of text is meant to be treated as no longer accurate.
This line of text is meant to be treated as an addition to the document.
This line of text will render as underlined
This line of text is meant to be treated as fine print.
This line rendered as bold text.
This line rendered as italicized text.
attr
HTML
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.
Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.
Donec id elit non mi porta gravida at eget metus.

should be wrapped as inline.

Sample text here...

And another line of sample text here...

y = mx + b
To switch directories, type cd followed by the name of the directory.


Stefan Armbruster
e<EMAIL_ADDRESS>t: darthvader42
http://blog.neo4j.org/2012/12/neo4j-1-8-1-release-stability-and-cypher-performance.html http://www.neo4j.org/release-notes#neo4j-1.8.1
http://blog.neo4j.org/2012/12/neo4j-19m03-released.html http://blog.neo4j.org/2013/01/neo4j-milestone-19m04-released.html
http://blog.neo4j.org/2013/01/fun-with-beer-and-graphs.html
http://vimeo.com/57207925 http://vimeo.com/57207926
http://blog.neo4j.org/2013/01/why-most-important-part-of-facebook.html
http://blog.neo4j.org/2013/01/2013-whats-coming-next-in-neo4j.html


| /local1/git/blue_sky_workflow_engine/workflow_engine/__init__.py |
2 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/admin/__init__.py |
21 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/admin/configuration_admin.py |
16 |
6 |
0 |
62% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/admin/configuration_inline.py |
6 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/admin/executable_admin.py |
10 |
1 |
0 |
90% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/admin/job_admin.py |
74 |
37 |
0 |
50% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/admin/job_queue_admin.py |
18 |
3 |
0 |
83% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/admin/task_admin.py |
35 |
16 |
0 |
54% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/admin/well_known_file_admin.py |
25 |
13 |
0 |
48% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/admin/workflow_admin.py |
16 |
3 |
0 |
81% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/admin/workflow_edge_admin.py |
9 |
1 |
0 |
89% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/admin/workflow_node_admin.py |
26 |
3 |
0 |
88% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/apps.py |
6 |
6 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/celery/__init__.py |
0 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/celery/setup_logging_handler.py |
7 |
4 |
0 |
43% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/celeryconfig.py |
1 |
1 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/circus_logger.py |
15 |
15 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/client_settings.py |
28 |
3 |
0 |
89% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/file_holder.py |
59 |
38 |
0 |
36% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/import_class.py |
15 |
2 |
0 |
87% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/ingest/__init__.py |
0 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/ingest/ingest_client.py |
56 |
56 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/ingest/ingest_tileset.py |
81 |
81 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/ingest/schemas.py |
27 |
27 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/log_holder.py |
15 |
11 |
0 |
27% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/management/__init__.py |
0 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/management/manage.py |
13 |
13 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0001_initial.py |
13 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0002_configuration.py |
6 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0003_improved_json_configuration.py |
8 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0004_blank_admin_fields.py |
6 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0005_blank_executable_fields.py |
5 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0006_workflow_archive.py |
5 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0007_delete_datafix.py |
5 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0008_generic_task_job_relations.py |
6 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0009_workflow_edges.py |
19 |
8 |
0 |
58% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0010_source_sink.py |
5 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0011_enqueueable.py |
5 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0012_enqueued_object_relation.py |
6 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0013_remove_task_object_class_string.py |
5 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0014_remove_job_enqueued_object_class_string.py |
5 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0015_more_optional_admin_fields.py |
6 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0016_archive_false_manager.py |
6 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0017_edge_order.py |
5 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0018_running_state.py |
17 |
4 |
0 |
76% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/0019_drop_run_state_model.py |
4 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/migrations/__init__.py |
0 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/mini_response.py |
38 |
38 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/mixins/__init__.py |
9 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/mixins/archivable.py |
13 |
2 |
0 |
85% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/mixins/configurable.py |
6 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/mixins/enqueueable.py |
18 |
1 |
0 |
94% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/mixins/has_well_known_files.py |
6 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/mixins/nameable.py |
8 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/mixins/runnable.py |
155 |
10 |
0 |
94% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/mixins/stateful.py |
7 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/mixins/tagable.py |
5 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/mixins/timestamped.py |
11 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/models/__init__.py |
14 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/models/configuration.py |
16 |
1 |
0 |
94% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/models/enqueued_proxy.py |
8 |
8 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/models/executable.py |
41 |
7 |
0 |
83% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/models/file_record.py |
15 |
1 |
0 |
93% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/models/job.py |
75 |
15 |
0 |
80% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/models/job_queue.py |
17 |
1 |
0 |
94% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/models/task.py |
121 |
31 |
0 |
74% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/models/well_known_file.py |
66 |
7 |
0 |
89% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/models/workflow.py |
19 |
9 |
0 |
53% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/models/workflow_edge.py |
14 |
1 |
0 |
93% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/models/workflow_node.py |
66 |
27 |
0 |
59% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/pbs_utils.py |
25 |
5 |
0 |
80% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/process/__init__.py |
0 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/process/example.py |
9 |
9 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/process/process_manager.py |
47 |
47 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/process/workers/__init__.py |
0 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/process/workers/circus_test.py |
146 |
146 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/process/workers/ingest_tasks.py |
28 |
7 |
0 |
75% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/process/workers/moab/__init__.py |
0 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/process/workers/moab/moab_api.py |
181 |
114 |
0 |
37% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/process/workers/moab/moab_tasks.py |
58 |
58 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/process/workers/mock_tasks.py |
38 |
10 |
0 |
74% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/process/workers/result_tasks.py |
77 |
33 |
0 |
57% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/process/workers/ui_server.py |
22 |
22 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/process/workers/workflow_tasks.py |
64 |
32 |
0 |
50% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/provenance.py |
41 |
24 |
0 |
41% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/signatures.py |
68 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/simple_router.py |
41 |
4 |
0 |
90% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/strategies/__init__.py |
5 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/strategies/base_strategy.py |
101 |
16 |
0 |
84% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/strategies/execution_strategy.py |
176 |
6 |
0 |
97% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/strategies/ingest_strategy.py |
35 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/strategies/input_config_mixin.py |
8 |
6 |
0 |
25% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/strategies/wait_strategy.py |
28 |
9 |
0 |
68% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/urls.py |
14 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/views/__init__.py |
1 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/views/decorators.py |
87 |
39 |
0 |
55% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/views/enqueueable_job_grid.py |
110 |
84 |
0 |
24% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/views/executable_view.py |
71 |
14 |
0 |
80% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/views/grid_view.py |
33 |
19 |
0 |
42% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/views/home_view.py |
39 |
0 |
0 |
100% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/views/ingest_view.py |
29 |
22 |
0 |
24% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/views/job_queue_view.py |
46 |
6 |
0 |
87% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/views/job_view.py |
79 |
31 |
0 |
61% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/views/log_view.py |
135 |
101 |
0 |
25% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/views/record_view.py |
277 |
224 |
0 |
19% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/views/shared.py |
80 |
10 |
0 |
88% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/views/task_view.py |
150 |
47 |
0 |
69% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/views/workflow_view.py |
253 |
193 |
0 |
24% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/workflow_config.py |
128 |
11 |
0 |
91% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/workflow_controller.py |
154 |
34 |
0 |
78% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/workflow_json_serializer.py |
36 |
36 |
0 |
0% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/workflow_status.py |
82 |
64 |
0 |
22% |
| /local1/git/blue_sky_workflow_engine/workflow_engine/wsgi.py |
3 |
3 |
0 |
0% |


| 800 | (A) | that were many bent one þe banke and at þe burghe thrawen |
| 804 | (C) | were bente at þe banke . & in-to þe cyte drewenn |
| 796 | (D) | were bent at þe bank & to þe borow threwyn |
| 776 | (E) | so angry þey were thanne . for hirt of here kynge . |
| (Ex) | ---- no text ---- | |
| 820 | (L) | were manye bent at þe bonke & to þe burwe þrewen |
| (P) | ---- no text ---- | |
| 783 | (U) | Were ybent atte bank / and to the burgħ throwen |
| (V) | ---- no text ---- |


{%extends "nav_events.html" %} {%block title%}Purchase discount code - {{conference}}{%endblock%} {%block extrahead%} {%endblock%} {%block content%}
On this page you can purchase a discount code for {{conference}}. An invoice for this discount code will be generate once it has been used fully, or once it has expired (based on the availability date). By signing up for a discount code, you undertake to pay the discounted part on this invoice, which will be made due for immediate payment once generated.
Discount codes generated here will not be published by the organizers, and the organizers take no responsibility for limiting the number of uses, other than that specified in the order. It is the responsibility of the organization ordering the discount codes to make sure they only reach the indented recipients.
A discount code can be generated for a fixed amount or a percentage, but not both (without generating separate discount codes). Each code will have a maximum number of uses, to limit the maximum total amount, as well as a final date for usage. Finally, a discount code can be set up to require a specific option to be ordered before it's valid, for example to limit the code only to attendees of a specific training session.
{%if form.errors%}NOTE! Your submitted form contained errors and has not been saved!
{%endif%}| Contact name | {{user_name}} |
|---|---|
| Company name | {{sponsor.name}} |
| Invoice address | {{sponsor.invoiceaddr}} |


Guidance
Funding for professional development programmes for teachers and school leaders.
Register your interest to be kept up to date on developments, information events and application round dates.
If you’re thinking about applying for funding and want to make contact with other prospective bidders, email<EMAIL_ADDRESS>and ask to be added to our online networking space on Slack.com .
The Teaching and Leadership Innovation Fund is a 3-year investment worth £75 million, which will support high-quality professional development for teachers and school leaders in areas of the country that need it most.
The aim of the fund is to improve pupil outcomes in priority areas by:
improving the provision of teachers’ continuing professional development (CPD) and leadership development in challenging areas and challenging schools
stimulating the demand for provision of teachers’ CPD and leadership development in challenging areas and challenging schools
supporting the development of a sustainable market in CPD and leadership development that will be capable of becoming self-funding in the future
The Secretary of State announced this as part of the social mobility package in October 2016 and announced the first bidding round in February 2017.
Resources from our supplier information events are now available on contracts finder . This includes a copy of the presentation and recordings of the 2 WebEx sessions held on 3 March.
We are inviting potential providers to apply for funding , and expect bids to have an overall focus on improving the quality of teaching and leadership in challenging areas and schools.
All bids must have a strong focus on delivering the majority of their provision in opportunity areas or category 5 and 6 areas . Your bid must also clearly demonstrate how you will focus on the most challenging schools.
The opportunity areas are: Blackpool, Bradford, Derby, Doncaster, Fenland and East Cambridgeshire, Hastings, Ipswich, Norwich, Oldham, Scarborough, Stoke-on-Trent and West Somerset.
Published: 16 February 2017
Updated: 16 February 2017


A {@link com.lambdaworks.snap.PushNotificationClient PushNotificationClient} is designed to be long-lived, and if the connection is lost will reconnect until {@link com.lambdaworks.snap.PushNotificationClient#shutdown shutdown} is called. Pending notifications will be (re)sent afer successful reconnection. PushNotificationClient will automatically connect to the APNS Feedback Service at a configurable interval and deliver any feedback notifications to all registered {@link com.lambdaworks.snap.FeedbackListener listeners}.


Feed exports¶
New in version 0.10.
One of the most frequently required features when implementing scrapers is being able to store the scraped data properly and, quite often, that means generating an “export file” with the scraped data (commonly called “export feed”) to be consumed by other systems.
Scrapy provides this functionality out of the box with the Feed Exports, which allows you to generate a feed with the scraped items, using multiple serialization formats and storage backends.
Serialization formats¶
For serializing the scraped data, the feed exports use the Item exporters. These formats are supported out of the box:
But you can also extend the supported format through the
FEED_EXPORTERS
setting.
JSON¶
FEED_FORMAT
:json
- Exporter used:
JsonItemExporter
- See this warning if you’re using JSON with large feeds.
JSON lines¶
FEED_FORMAT
:jsonlines
- Exporter used:
JsonLinesItemExporter
CSV¶
FEED_FORMAT
:csv
- Exporter used:
CsvItemExporter
- To specify columns to export and their order use
FEED_EXPORT_FIELDS
. Other feed exporters can also use this option, but it is important for CSV because unlike many other export formats CSV uses a fixed header.
XML¶
FEED_FORMAT
:xml
- Exporter used:
XmlItemExporter
Pickle¶
FEED_FORMAT
:pickle
- Exporter used:
PickleItemExporter
Marshal¶
FEED_FORMAT
:marshal
- Exporter used:
MarshalItemExporter
Storages¶
When using the feed exports you define where to store the feed using a URI
(through the FEED_URI
setting). The feed exports supports multiple
storage backend types which are defined by the URI scheme.
The storages backends supported out of the box are:
- Local filesystem
- FTP
- S3 (requires botocore or boto)
- Standard output
Some storage backends may be unavailable if the required external libraries are not available. For example, the S3 backend is only available if the botocore or boto library is installed (Scrapy supports boto only on Python 2).
Storage URI parameters¶
The storage URI can also contain parameters that get replaced when the feed is being created. These parameters are:
%(time)s
- gets replaced by a timestamp when the feed is being created%(name)s
- gets replaced by the spider name
Any other named parameter gets replaced by the spider attribute of the same
name. For example, %(site_id)s
would get replaced by the spider.site_id
attribute the moment the feed is being created.
Here are some examples to illustrate:
- Store in FTP using one directory per spider:
ftp://user:password@ftp.example.com/scraping/feeds/%(name)s/%(time)s.json
- Store in S3 using one directory per spider:
s3://mybucket/scraping/feeds/%(name)s/%(time)s.json
Storage backends¶
Local filesystem¶
The feeds are stored in the local filesystem.
- URI scheme:
file
- Example URI:
file:///tmp/export.csv
- Required external libraries: none
Note that for the local filesystem storage (only) you can omit the scheme if
you specify an absolute path like /tmp/export.csv
. This only works on Unix
systems though.
FTP¶
The feeds are stored in a FTP server.
- URI scheme:
ftp
- Example URI:
<EMAIL_ADDRESS>- Required external libraries: none
S3¶
The feeds are stored on Amazon S3.
The AWS credentials can be passed as user/password in the URI, or they can be passed through the following settings:
Standard output¶
The feeds are written to the standard output of the Scrapy process.
- URI scheme:
stdout
- Example URI:
stdout:
- Required external libraries: none
Settings¶
These are the settings used for configuring the feed exports:
FEED_URI¶
Default: None
The URI of the export feed. See Storage backends for supported URI schemes.
This setting is required for enabling the feed exports.
FEED_FORMAT¶
The serialization format to be used for the feed. See Serialization formats for possible values.
FEED_EXPORT_ENCODING¶
Default: None
The encoding to be used for the feed.
If unset or set to None
(default) it uses UTF-8 for everything except JSON output,
which uses safe numeric encoding (\uXXXX
sequences) for historic reasons.
Use utf-8
if you want UTF-8 for JSON too.
FEED_EXPORT_FIELDS¶
Default: None
A list of fields to export, optional.
Example: FEED_EXPORT_FIELDS = ["foo", "bar", "baz"]
.
Use FEED_EXPORT_FIELDS option to define fields to export and their order.
When FEED_EXPORT_FIELDS is empty or None (default), Scrapy uses fields
defined in dicts or Item
subclasses a spider is yielding.
If an exporter requires a fixed set of fields (this is the case for CSV export format) and FEED_EXPORT_FIELDS is empty or None, then Scrapy tries to infer field names from the exported data - currently it uses field names from the first item.
FEED_EXPORT_INDENT¶
Default: 0
Amount of spaces used to indent the output on each level. If FEED_EXPORT_INDENT
is a non-negative integer, then array elements and object members will be pretty-printed
with that indent level. An indent level of 0
(the default), or negative,
will put each item on a new line. None
selects the most compact representation.
Currently implemented only by JsonItemExporter
and XmlItemExporter
, i.e. when you are exporting
to .json
or .xml
.
FEED_STORAGES¶
Default: {}
A dict containing additional feed storage backends supported by your project. The keys are URI schemes and the values are paths to storage classes.
FEED_STORAGES_BASE¶
Default:
{
'': 'scrapy.extensions.feedexport.FileFeedStorage',
'file': 'scrapy.extensions.feedexport.FileFeedStorage',
'stdout': 'scrapy.extensions.feedexport.StdoutFeedStorage',
's3': 'scrapy.extensions.feedexport.S3FeedStorage',
'ftp': 'scrapy.extensions.feedexport.FTPFeedStorage',
}
A dict containing the built-in feed storage backends supported by Scrapy. You
can disable any of these backends by assigning None
to their URI scheme in
FEED_STORAGES
.  The keys are serialization formats and the values are paths to Item exporter classes.
 You can
disable any of these exporters by assigning None
to their serialization
format in FEED_EXPORTERS
. E.g., to disable the built-in CSV exporter
(without replacement), place this in your settings.py
:
FEED_EXPORTERS = {
'csv': None,
}


let Logger = require("../library/logger");
let logger = Logger.logger;
let fs = require("fs");
let path = require("path");
let Sequelize = require("sequelize");
let basename = path.basename(__filename);
let Op = Sequelize.Op;
let db = {};
/**
* Passing logger.silly directly to sequelize results in a TypeError (since
* the logger seems to be uninitialized at some point). This wrapper function
* was suggested as workaround.
* @param {Object} value - Contains the actual value that should be logged to
* the transports.
*/
// Commented out, since this used more heap space than it should
// function logForSequelize(value) {
// dbLogger.db_silly(value);
// }
let sequelize = new Sequelize(
process.env.DB_NAME,
process.env.DB_USER,
process.env.DB_PASSWORD,
{
host: process.env.DB_HOST,
port: process.env.DB_PORT,
dialect: "postgres",
pool: {
max: process.env.DB_MAX_CONNECTIONS,
min: process.env.DB_MIN_CONNECTIONS,
idle: 60000,
acquire: 60000,
},
operatorsAliases: false,
},
);
fs
.readdirSync(__dirname)
.filter((file) => {
return (file.indexOf(".") !== 0) &&
(file !== basename) &&
file.slice(-3) === ".js";
})
.forEach((file) => {
let model = sequelize["import"](path.join(__dirname, file));
db[model.name] = model;
});
Object.keys(db).forEach((modelName) => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
/**
* Insert a new URI into the database. The values will only be inserted if not
* yet existent. However, the return value will always contain the ID's of the
* corresponding entries. No update will be done on the entries if they exist.
* @param {string} baseUrl - The base url to be inserted
* @param {string} path - The path of the uir to be inserted
* @param {number} depth - Indicates the search depth at which the entry is
* to be inserted.
* @param {boolean} secure=false - Indicate whether the uri uses http(s)
* @return {UUIDV4[]} Returns the IDs of the inserted values
* Those are always sorted as follows:
* [baseUrlId, pathId, contentId, linkId]
*/
db.insertUri = async function(
baseUrl,
path,
depth,
secure=false,
) {
logger.info("Insert new entry: " + baseUrl + path);
let [baseUrlEntry] = await db.baseUrl.findOrCreate({
where: {
baseUrl: baseUrl,
},
defaults: {
baseUrl: baseUrl,
},
});
let random = Math.random();
let [pathEntry] = await db.path.findOrCreate({
where: {
baseUrlBaseUrlId: baseUrlEntry.baseUrlId,
path: path,
},
defaults: {
lastStartedTimestamp: 0,
lastFinishedTimestamp: 0,
lastSuccessfulTimestamp: 0,
path: path,
depth: depth,
baseUrlBaseUrlId: baseUrlEntry.baseUrlId,
secure: secure,
random: random,
inProgress: false,
},
});
return [baseUrlEntry.baseUrlId, pathEntry.pathId, null, null];
};
/**
* Update the URI entry with new data. This is typically done after a network
* request finished (successfully or not). This method won't insert any data
* into the database, only update already existing entries. (The updated entry
* is naturally the one just downloaded, so only one at a time will be updated)
* @param {UUIDv4} baseUrlId - The ID of the baseUrl entry to be updated
* @param {UUIDv4} pathId - The ID of the path entry to be updated
* @param {number} lastStartedTimestamp - Contains the timestamp of the start of
* the download
* @param {number} lastFinishedTimestamp - Contains the timestamp when the last
* download finished (independent of if
* it was successful or not)
* @param {boolean} secure=false - Indicate whether a secure or insecure
* connection was used
* @param {boolean} successful=true - Indicate whether the download was finished
* successfully or not. This will accordingly
* set the lastSuccessfulTimestamp to
* lastFinishedTimestamp (if set to true)
* @param {boolean} finished=true - If set to true, this will reset the
* inProgress flag to false. Note that
* successful=true implies that the request is
* finished.
*/
db.updateUri = async function(
baseUrlId,
pathId,
lastStartedTimestamp,
lastFinishedTimestamp,
secure=false,
successful=true,
finished=true,
) {
let inProgress = true;
if (finished) {
inProgress = false;
}
let updateObj = {
lastStartedTimestamp,
lastFinishedTimestamp,
secure,
inProgress,
};
let whereClause = {
baseUrlBaseUrlId: baseUrlId,
pathId: pathId,
};
if (successful) {
updateObj["lastSuccessfulTimestamp"] = lastFinishedTimestamp;
updateObj["inProgress"] = false;
} else if (finished) {
updateObj["inProgress"] = false;
}
await db.path.update(updateObj, {
where: whereClause,
});
};
/**
* Inserts a new link into the DB. This helps us to gain an understanding,
* how the link structure is changing over time and which information is
* linked to each other.
* @param {UUIDv4} sourcePathId - The ID of the originating path of the link
* @param {UUIDv4} destinationPathId - The ID of the destination path of the
* link.
* @param {number} timestamp - Indicator at which time the link was existent
* which does not imply that the destination was
* reachable, but only that the link was placed.
* To find out if the target was reachable,
* look for the content or path successful flags
* @return {object} Return a link object (compare to models.link)
*/
db.insertLink = async function(
sourcePathId,
destinationPathId,
timestamp
) {
let response = await db.link.create({
timestamp: timestamp,
sourcePathId: sourcePathId,
destinationPathId: destinationPathId,
});
return response;
};
/**
* Inserts the body of a message as on content entry into the database.
* This function assumes that the data is already filtered and sanitized.
* @param {UUIDV4} pathId - ID of the corresponding path entry.
* @param {string} body - A JSON or HTML String containing the body.
* @param {string} mimeType - A string containing the indentifier for the
* mime type of the response.
* @param {number} timestamp - A timestamp in ms, indicating when the data
* was fetched.
* @param {number} statusCode=200 - HTTP Status code returned. Indicates whether
* the download was successful or not.
* @return {object} Returns the created content entry.
*/
db.insertBody = async function(
pathId,
body,
mimeType,
timestamp,
statusCode=200
) {
let response = await db.content.create({
scrapeTimestamp: timestamp,
contentType: mimeType,
content: body,
pathPathId: pathId,
statusCode: statusCode,
});
return response;
};
/**
* Resets the inProgress flag. The timeDelta parameter describes how high the
* timedelta of the lastModified flag has to be in order to be a stale entry.
* If set to 0, every entry gets reset (this is especially useful to
* restart the scraper after it was killed or crashed)
* @param {number} timeDelta=0 - Indicate how long an entry has to be in
* onProgress mode to be considered stale.
*/
db.resetStaleEntries = async function(
timeDelta
) {
if (timeDelta != 0 && !timeDelta) {
timeDelta = 0;
}
let latestStaleTime = (new Date).getTime() - timeDelta;
await db.path.update(
{
inProgress: false,
},
{
where: {
inProgress: true,
updatedAt: {
[Op.lte]: latestStaleTime,
},
},
},
);
};
/**
* @typedef Link
* @type {object}
* @property {!UUIDv4} sourcePathId - The ID of the path entry where the
* link originated.
* @property {!UUIDv4} destinationPathId - The ID of the target path entry.
* @property {!number} timestamp - Indicates at which time the link was in
* place. This does not mean, that the
* target was reachable, it only indicates
* the existence of a link at that given
* point in time. To check for reachability
* please refer to the attached content
* entries. The contain a successful flag.
*/
/**
* @typedef DbResult
* @type {object}
* @property {!string} url - The base url
* @property {!UUIDv4} baseUrlId - The ID of the base url entry.
* @property {!string} path - The path of the entry
* @property {!UUIDv4} pathId - The ID of the path entry.
* @property {!number} depth - The search depth at which this entry resides.
* @property {?string} content - If available or requested, it can contain
* the content of the entry
* @property {?UUIDv4} contentId - The ID of the content entry in the db.
* @property {?Link} link - A Link object, indicating a link between
* two paths/sites.
* @property {boolean} secure - Indicate if http or https should be used
*/
/**
* Retrieve entries from the database that are older or as old as the passed
* dateTime param
* @param {number} dateTime=0 - Specify the dateTime from which the newest
* entry should be. The default will only
* retrieve not yet scraped entries.
* @param {number} limit=100 - Specify how many entries the function
* should return. This is seen as an upper bound.
* If no more matching entries are available, only
* the remainder will be returned
* @param {number} offset=0 - Set if you have already received a certain
* amount of data. This way one can gather all
* entries of a certain timestamp or older
* @param {number} cutoffValue=1 - Set which is the deepest entry one should
* resolve. This ensures controlled termination
* of the scraper
* @param {Array.<UUIDv4>} excludedHosts=[] In order to not fill the memory up
* with entries that cannot yet be
* downloaded, one can pass an array
* of baseUrlIds that should be ignored
* @return {Array.<DbResult>|boolean} The DbResult contains the results
* returned by the Database.
* The boolean indicates whether more data is available
* as of now.
* Note: this can change, when the network fetches
* new data. If both, network and DB do not have
* anything pending, we can conclude that we have
* finished and exit.
*/
db.getEntries = async function({
dateTime=0,
limit=100,
cutoffValue=1,
excludedHosts=[],
} = {}) {
if (limit == 0) {
return [[], false];
}
let dbResults = [];
// Note: Since we are using Op.lte dateTime = 0, we do
// not currently need an offset: the already scraped
// data has no 0 timestamp anymore
let paths = await db.path.findAll({
where: {
lastStartedTimestamp: {
[Op.lte]: dateTime,
},
inProgress: {
[Op.eq]: false,
},
depth: {
[Op.lte]: cutoffValue,
},
baseUrlBaseUrlId: {
[Op.notIn]: excludedHosts,
},
},
order: [
["depth", "ASC"],
["random", "ASC"],
],
limit: limit,
});
for (let path of paths) {
let dbResult = {
"path": path.path,
"pathId": path.pathId,
"depth": path.depth,
"secure": path.secure,
"url": null,
"baseUrlId": null,
"content": null,
"link": null,
};
let baseUrl = await path.getBaseUrl();
dbResult["url"] = baseUrl.baseUrl;
dbResult["baseUrlId"] = baseUrl.baseUrlId;
dbResults.push(dbResult);
}
this.offsetForDbRequest += paths.length;
// We do not reset the offset counter yet, even if we did not find any
// new data, since we do not know whether new data will arrive from the
// network moduel. This is left to decide to the controller.
let moreData = dbResults.length != 0;
return [dbResults, moreData];
};
/**
* Sets the inProgress flag of the specified dbResult to the passed flag.
* @param {DbResult} dbResult The dbResult for which the flag should be set
* @param {boolean} inProgress Pass the value to which the flag should be set
*/
db.setInProgressFlag = async function(dbResult, inProgress) {
await db.path.update(
{
inProgress,
},
{
where: {
baseUrlBaseUrlId: dbResult.baseUrlId,
},
}
);
};
module.exports = db;


Time for a retreat
Rent an apartment on CouchBC using blockchain technology
Disclaimer: This application is a demo for privacy-preserving apartment rentals.
Try it out with the Ethereum test network Ropsten. Your rentals and apartments can be deleted at any point in time though.


Lazy day reading, writing and caring for drippy nosed daughter when not napping. Just about a perfect day... except the snot.
10/25/2008, 7:11:53 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
Lazy day reading, writing and caring for drippy nosed daughter when not napping. Just about a perfect day... except the snot.
10/25/2008, 7:11:53 PM
Favs: 0
Retweets: 0
link


CPQ Configurable Products Integration
Note: Spartacus 3.x is no longer maintained. Please upgrade to the latest version.
Note: Spartacus 3.x was tested with SAP Commerce Cloud versions 1905 to 2105. Spartacus 3.x has not been verified to work with (and is not guaranteed to work with) SAP Commerce Cloud 2211 or later releases.
Note: This feature is introduced with version 3.3 of the Spartacus libraries.
The CPQ Configurable Products integration provides a user interface in Spartacus for configuring and selling configurable products that have been modeled using SAP CPQ Integration for Configurable Products and the associated configuration engine. Note that the Spartacus library does not include SAP CPQ itself.
The initial version of the Spartacus library for SAP CPQ Integration for Configurable Products includes the following features:
- Bundling and guided-selling scenarios, where the bundle in SAP Commerce contains simple (non-configurable) products. The dependencies within this bundle are controlled by the underlying CPQ configurable product.
- Single-level configurable products in your Spartacus storefront where the product model resides in SAP CPQ.
- A configuration page with the most commonly used attribute types, especially attributes that are linked to a (non-configurable) product. For more information, see Supported Attribute Types and Display Types.
- A price summary at the bottom of the configuration page that includes the base price, the price of the selected options, and the overall total price of the configured product.
- An overview page with all user selections accessible at any time during configuration.
- CPQ messages that are displayed in the Spartacus storefront in case of conflicts.
With this integration, configurable bundles become a part of the storefront’s standard processes, such as catalog browsing, viewing product details pages, adding items to the cart, checking out, and viewing order history pages.
For more information about the underlying functionality, and for information about features that are currently not supported, see SAP CPQ Integration for Configurable Products on the SAP Help Portal.
Table of Contents
- Requirements
- Adding the CPQ Configurable Products Integration to Spartacus
- Early Login
- Supported Attribute Types and Display Types
- Handling of Quantity on Attribute and Value Level
- Price on Attribute Value Level
- Text Labels for Attributes
- Translations for Product Texts in the UI
- Product ID (Article Number) in SAP Commerce
- Group Status Handling
- Resolving Issues
- Error and Warning Messages
- Bundle Item Product Not Available in Commerce
- Cart Summary
- Cart Validation
- Commerce Business Rules in Combination with CPQ Configurable Products
Requirements
The CPQ Configurable Products integration requires the cpqproductconfigocc
extension. For more information, see Configurator for Complex Products Module on the SAP Help Portal.
The CPQ Configurable Products integration also requires the following releases of SAP Commerce Cloud:
- SAP Commerce Cloud 2005 (minimum) or 2011 (recommended)
- SAP Commerce Cloud, Integration Extension Pack 2005.2 (minimum) or 2102 (recommended)
If you want to use the minimum required releases, make sure that you have read Cart and Checkout Validation on the SAP Help Portal.
Adding the CPQ Configurable Products Integration to Spartacus
To add the CPQ Configurable Products integration to Spartacus, you install the @spartacus/product-configurator
library.
You can either install the product configurator library during initial setup of your Spartacus project, or you can add the product configurator library to an existing Spartacus project.
Installing the Product Configurator Library During the Initial Setup of Spartacus
- Follow the steps for setting up your Spartacus project, as described in Building the Spartacus Storefront Using 3.2 Libraries.
- While setting up your project using schematics, when you are asked which Spartacus features you would like to set up, choose
Product Configurator
. -
Later in the setup, you are asked which product configurator features you would like to set up, other than the variant configurator, which is installed by default.
Select
CPQ configurator
only if you have set up the CPQ integration for configurable products. For more information, see SAP CPQ Integration for Configurable Products on the SAP Help Portal.Select
Textfield configurator
if you have products that can be configured using text-field-based configuration forms. For more information, see Text Field Configurator Template in the Spartacus documentation, and Text Field Configurator Template Module on the SAP Help Portal.
Note: At runtime, most of the configurator library is lazy loaded when the configurator is first loaded. This is done for performance reasons.
Adding the Product Configurator Library to an Existing Spartacus Project
If you already have a Spartacus project up and running, you can add the product configurator library to your project by running the following command from the root directory of your storefront app:
ng add @spartacus/product-configurator
This command uses schematics to modify your application and add the modules needed to launch the library.
After running this command, you are asked which product configurator features you would like to set up, other than the variant configurator, which is installed by default.
Select CPQ configurator
only if you have set up the CPQ integration for configurable products. For more information, see SAP CPQ Integration for Configurable Products on the SAP Help Portal.
Select Textfield configurator
if you have products that can be configured using text-field-based configuration forms. For more information, see Text Field Configurator Template in the Spartacus documentation, and Text Field Configurator Template Module on the SAP Help Portal.
Note: At runtime, most of the configurator library is lazy loaded when the configurator is first loaded. This is done for performance reasons.
Early Login
Early login is mandatory. For more information, see Early Login.
Supported Attribute Types and Display Types
The following CPQ attributes types are supported in the storefront:
- User input or computed (string)
- User input or computed (number)
- User selection
- User selection with quantity for each attribute value
- User selection with attribute quantity input
The following CPQ display types are supported in the storefront:
- Checkbox
- Dropdown
- Radio button
- Free input, no matching (string or number)
Handling of Quantity on Attribute and Value Level
Multiselect Attributes
For multiselect attributes (checkbox list) that are line items, quantities are supported both on attribute level and on value level. Multiselect attributes that are non-line items cannot have quantities on the value level. They can only have quantities on the attribute level.
Single-Select Attributes
For single-select attributes (radio button group, DDLB), only quantities on the attribute level are supported. Any quantities that have been defined on the value level for the attribute in CPQ product administration are ignored in the UI.
Price on Attribute Value Level
The display of prices for individual options or attribute values is initially only supported for bundle items (attributes linked to products).
Note that a simple attribute value (non-bundle item) can still have a price attached to it that is considered correctly in the price calculation on the bottom of the page. However, the price will initially not be displayed together with the attribute.
Text Labels for Attributes
The attribute label on the configuration screen displays the content of the attribute’s Custom Label in CPQ. You can find this field for the attribute in CPQ product administration, as follows:
- Choose Product Catalog > Products.
- On the Attributes tab, choose the attribute that you want to edit.
If the Custom Label field is blank, the standard label will be Choose or Select, followed by the attribute name. If you want to display only the attribute name without the word “Choose” in front of it, enter the attribute name in the Custom Label field.
Translations for Product Texts in the UI
Product texts coming from the CPQ product model are translated in the Spartacus storefront if the translations are maintained in CPQ. However, there are a few exceptions.
The following translations are currently not displayed in the Spartacus storefront, but are instead shown in English:
- Standard labels Choose and Select, as well as standard label No option selected
- Error and validation messages coming from CPQ
- Product names in the cart summary
Product ID (Article Number) in SAP Commerce
In SAP Commerce, product IDs (article numbers) cannot contain slashes, backslashes, encoded slashes (%2F
), or encoded backslashes (%5C
). If necessary, adjust the product IDs in CPQ.
Group Status Handling
Group status handling in the CPQ Spartacus UI is different from the Spartacus UI for SAP Variant Configuration and Pricing. The CPQ Spartacus group menu only shows whether orders are “complete” in the sense that no mandatory fields are missing. The group menu does not provide any information about conflicts at the group level. Currently, CPQ Spartacus does not know whether a group is consistent (no conflicts) for the current group. This information also is not known for the attribute itself.
Note: The group status is reset once the product has been added to the cart. If the user edits the configuration coming from the cart, the display for the group status is initially empty again, even if some of the mandatory attributes were not filled when the product was added to the cart.
Resolving Issues
Resolve Issues only leads to the first incomplete group for which mandatory fields are missing.
In CPQ, conflicts are rendered as messages. Consequently, there is no conflict solving with generated conflict groups, nor navigation to conflicting attributes through Resolve Issues.
Error and Warning Messages
CPQ can generate different kinds of messages, which cause the following responses in Spartacus.
| CPQ Message Type | Counted Towards Total Number of Issues | Message Shown in Global Message Area | UI Message Type |
|---|---|---|---|
| Incomplete attributes | Yes | No | N/A |
| Incomplete messages | Yes | Yes | ERROR |
| Error messages | Yes | Yes | ERROR |
| Conflict messages | Yes | Yes | ERROR |
| Invalid messages | Yes | Yes | Error |
| Failed validations | Yes | Yes | WARNING |
Bundle Item Product Not Available in Commerce
If a bundle item cannot be found in SAP Commerce, only the product ID is displayed. Information about the bundle item (such as a picture or description) is not shown. This may occur if there are issues with master data replication.
Cart Summary
When added to the cart, the CPQ bundle product results in a single cart item entry. There are no subitems representing the products contained in the bundle. However, to give customers an overview of their selections and to confirm what exactly they are buying, the information in the cart has been extended to show the list of products that have been selected inside the bundle. The list contains the product description, the quantity, and the item price if these are maintained in CPQ.
The following prerequisites apply for a product to appear in the cart summary:
- In CPQ, the attribute value has been linked to a product
- In CPQ, the attribute has been marked as line item
Note: Currently in the cart summary, the product names for line items come from CPQ, not from SAP Commerce. In contrast, product names for bundle items on the configuration page come from SAP Commerce. To avoid differing product names for bundle items between the configuration and overview page on the one hand, and the cart summary on the other hand, it is recommended that you use identical product names in both CPQ and SAP Commerce.
Cart Validation
Cart validation is currently not supported, although you can implement your own workaround by making the adjustments described in the following sections.
Configuring Spartacus for Cart Validation
-
Introduce your own version of
cart-totals.component.ts
and ensure that it is assigned to theCartTotalsComponent
CMS component instead of the original one. -
Inject
ConfiguratorCartService
from@spartacus/product-configurator/common
into the custom version ofcart-totals.component
. -
Introduce a component member.
The following is an example:
hasNoConfigurationIssues$: Observable< boolean > = this.configuratorCartService .activeCartHasIssues() .pipe(map((hasIssues) => !hasIssues));
-
Make use of this member in the component template.
The following is an example:
<ng-container *ngIf="cart$ | async as cart"> <ng-container *ngIf="entries$ | async as entries"> <cx-order-summary [cart]="cart"></cx-order-summary> <ng-container *ngIf="hasNoConfigurationIssues$ | async as hasNoConfigurationIssues" > <button [routerLink]="{ cxRoute: 'checkout' } | cxUrl" *ngIf="entries.length" class="btn btn-primary btn-block" type="button" > {{ 'cartDetails.proceedToCheckout' | cxTranslate }} </button> </ng-container> </ng-container> </ng-container>
Configuring SAP Commerce 2005 and 2011 for Cart Validation
The steps that can be done on the Spartacus side ensure that for a standard UI flow, a configuration cannot be ordered if it has issues. However, you still need to block the creation of orders that could be done through OCC. Otherwise, an order containing such configurations can be created using, for example, the developer tools in the end user’s browser. It is therefore necessary to make the adjustments described in this section if you are using SAP Commerce 2011, and to make the adjustments described in this section and the following section if you are using SAP Commerce 2005.
Note that these adjustments will guarantee that orders are validated for product configuration issues before they are submitted, but it will not ensure that any error message that is returned reflects the actual issue. The error message will state that the issue is because of low stock.
Enhance B2BOrdersController
The validateCart
method in B2BOrdersController
needs to be enhanced or replaced with a custom version. Cart validation is rudimentary and does not call the standard cart validation that is used in regular B2C scenarios. The new method should look like the following example:
protected void validateCart(final CartData cartData) throws InvalidCartException
{
final Errors errors = new BeanPropertyBindingResult(cartData, "sessionCart");
placeOrderCartValidator.validate(cartData, errors);
if (errors.hasErrors())
{
throw new WebserviceValidationException(errors);
}
try
{
final List<CartModificationData> modificationList = cartFacade.validateCurrentCartData();
if(CollectionUtils.isNotEmpty(modificationList))
{
final CartModificationDataList cartModificationDataList = new CartModificationDataList();
cartModificationDataList.setCartModificationList(modificationList);
throw new WebserviceValidationException(cartModificationDataList);
}
}
catch (final CommerceCartModificationException e)
{
throw new InvalidCartException(e);
}
}
Configuring SAP Commerce 2005 for Cart Validation
In your spring configuration, ensure that the commerceWebServicesCartService
bean refers to cartValidationStrategy
instead of cartValidationWithoutCartAlteringStrategy
. This can be achieved, for example, in the spring.xml
of a custom extension, as follows:
<alias name="customWebServicesCartService" alias="commerceWebServicesCartService"/>
<bean id="customWebServicesCartService" parent="defaultCommerceCartService">
<property name="cartValidationStrategy" ref="cartValidationStrategy"/>
<property name="productConfigurationStrategy" ref="productConfigurationStrategy"/>
</bean>
Commerce Business Rules in Combination with CPQ Configurable Products
Commerce business rules that are specific to product configuration (for example, hiding a certain value if another value is selected) are not supported for CPQ configurable products.
Other Commerce business rules (such as those for promotions) still work and apply (such as, 2% off if the cart value exceeds $4,000 USD, for example).


There are many articles on things like roth vs. traditional IRAs. Very few actually walk through an example with numbers, which I find illustrative.
Let’s take an example where I make 8k and can put my in money in a regular investment account, a roth ira, or a traditional ira. Assume that my tax rate is 25% (which is the same now, in the future, on capital gains etc.). Also assume that I have a stock that I can invest in which will double my money. Let’s compare the outcome across these three options:
Regular investment account. I pay taxes now so I invest 8k * 0.75 = 6k. That money doubles to 12k. When I sell the stock I pay 6k * 0.25 = 1.5k in capital gains tax. I end up with 10.5k.
Roth IRA. I pay taxes now so I invest 8k * 0.75 = 6k. That money doubles to 12k. Because I paid taxes ahead of time, I end up with 12k.
Traditional IRA. I don’t pay taxes now but the IRA investment limit is 6k so I put 6k in a traditional IRA. I have an extra 2k which becomes 1.5k after tax which I put in a regular investment account. The 6k in the traditional IRA grows to 12k. I still have to pay taxes on it so I get 12k * 0.75 = 9k. The 1.5k in the regular investment account grows to 3k. I have to pay capital gains on the 1.5k in gains of 1.5k * 0.25 = 0.375k so I get 3k - 0.375k = 2.625k. In total, I end up with 9k + 2.625k = 11.625k.
The regular investment account is the worst because you have to pay taxes on capital gains in addition to income. The real beauty of either a roth IRA, traditional IRA, or even a 401k for that matter is that you don’t have to pay capital gains taxes. The roth IRA is better than the traditional IRA because you can effectively contribute more money to it (the contribution limit is the same but after-tax dollars are worth more than before-tax dollars). Another advantage of the roth IRA not illustrated in this example is that you can take out the principle without a penalty (e.g. to buy a house).
The difference between an IRA and 401k is also often a point of confusion. A 401k has the same tax benefits of an IRA. The difference is that it has higher contributing limits but typically has worse investment options. With an IRA, you can choose whatever index fund you like. With a 401k, you’re often limited to mutual funds with high expense ratios which compounds over time. One hack is to contribute to a 401k and then roll it over to a roth IRA.
In general, the right option for most people is using their money in the following order:
401k matching to get free money from your employer
Pay off any debt you have (unless it’s at a very low-interest rate)
Max out your roth IRA
Contribute to a mix of your 401k (which has tax advantages) and a regular investment account (which you can take out without fees at any time)
Keep an eye on opportunities to rollover your 401k to your IRA (e.g. switching jobs)
I’ve shared this with a variety of friends. Here are a few of the valuable points they’ve made:
Nate: If tax rates increase over time, then the roth IRA would be even a larger winner. One good thing about the traditional IRA is that it is taxed at the effective tax rate (the weighted average from your income bracket) as opposed to the roth IRA which is taxed at the marginal tax rate (which will be higher).
Seth: You can’t rollover a 401k directly to a roth IRA. You have to go 401k -> traditional IRA -> roth IRA which is known as a backdoor roth IRA conversion. Also, what’s best depends on a prediction of future tax rates — in general, tax rates usually go up making the roth IRA even better. Also, some people talk about having both some money in roth IRA and traditional IRA as tax diversification not wanting to bet fully on tax rates being lower or higher in the future.
Ray: You could better highlight how important low fees are. Also, differences between tax rates now and later matters a lot. If you’re like 45 at your peak earnings potential (and therefore peak tax bracket), an traditional IRA will be better. It’s just about whether your taxes are higher when you’re putting money in or when you’re pulling money out.


{% block extrahead %}
Your shortened URLs:
{{ url.url }} is shortened with {{ url.full_shorturl }} and has been visited {{ url.counter }} times. Delete - QR


The World and Hibrido de Timor Attributes
Area
1.145677
Perimeter
7.884798
Country
Timor-Leste (East-Timor)
Culture and Coffee


This is in Alpha version and support for it won’t be provided yet.
This light version of fullpage.js won’t provide some options available in the jQuery version such as:
scrollOverflow
verticalCentered
continuousVertical
loopBottom
loopTop
normalScrollElements
normalScrollElementTouchThreshold
controlArrowColor
sectionsColor
paddingTop
paddingBottom
fixedElements
fullPage.js is fully functional on all modern browsers, as well as some old ones such as Internet Explorer 8, 9, Opera 12, etc.
It works with browsers with CSS3 support and with the ones which don’t have it, making it ideal for old browsers compatibility.
It also provides touch support for mobile phones, tablets and touch screen computers.
As you can see in the demo file/demo.html), you will need to include:
Example of initialization:
fullpage.initialize('#fullpage', {
anchors: ['firstPage', 'secondPage', '3rdPage', '4thpage', 'lastPage'],
menu: '#menu',
css3:false
});
A more complex initialization with all options set could look like this:
fullpage.initialize('#fullpage', {
//navigation
'menu': false,
'anchors':[],
'navigation': false,
'navigationPosition': 'right',
'navigationColor': '#000',
'navigationTooltips': [],
'slidesNavigation': false,
'slidesNavPosition': 'bottom',
'scrollBar': false,
//scrolling
'css3': true,
'scrollingSpeed': 700,
'autoScrolling': true,
'easingcss3': 'ease',
'loopHorizontal': true,
'touchSensitivity': 5,
//Accessibility
'keyboardScrolling': true,
'recordHistory': true,
//design
'controlArrows': true,
//Custom selectors
'sectionSelector': '.section',
'slideSelector': '.slide',
//events
'afterLoad': null,
'onLeave': null,
'afterRender': null,
'afterResize': null,
'afterReBuild': null,
'afterSlideLoad': null,
'onSlideLeave': null
});
Functions has the same syntax and functionality than in the jQuery version, but they should be called like so:
//calling a function from the pure Javascript version of fullPage.js
fullpage.moveSectionDown();
In contrast with the calls from the the jQuery version of fullPage.js:
//calling a function from the jQuery version of fullPage.js
$.fn.fullpage.moveSectionDown();


Psalms 38:4
For mine iniquities are gone over mine head: as an heavy burden they are too heavy for me.


WITNESS LIST
Intergovernmental Relations
April 16, 2019 8:30 AM
FOR:
Jakovich, Jared Managing Member (J&P Lockhart I, LP), Austin, TX
Registering, but not testifying:
FOR:
Corbett, Tony (J&P Lockhart I, LP), Austin, TX
Registering, but not testifying:
FOR:
Finley, Marisa VP Health Policy (Baylor Scott & White Health), Austin, TX
Geeslin, Mike President and CEO (Central Health), Austin, TX
Gonzalez, Sara V.P. Advocacy & Public Policy (Texas Hospital Association), Austin, TX
Hoppe, Christina Director of Public Policy (Children's Hospital Association of Texas),
Austin, TX
Rodriguez, Geronimo Chief Advocacy Officer (Dell Children's Medical Center and
Ascension Seton), Austin, TX
Schleifer, Jessica Director of Advocacy (Teaching Hospitals of Texas), Austin, TX
Tatum, Alexis Legislative Associate (Travis County Commissioners Court), Austin, TX
FOR:
Ivicic, Justin General Manager (Maxwell WSC), Kyle, TX
Registering, but not testifying:
FOR:
Steubing, Doris Vice President (Maxwell Water Supply Corporation), Maxwell, TX
ON:
Johnson, Morgan Attorney (Maxwell Water Supply Corporation), Austin, TX
FOR:
Redford, Rodney Executive Director (also providing written testimony) (North Channel
Assist Min), Houston, TX
Registering, but not testifying:
FOR:
Morrison, Richard Lawyer (Smith, Murdaugh, Little & Bonham), Houston, TX
Rodriguez, Jennifer Attorney (Harris County Commissioner Adrian Garcia, Pct. 2), Austin,
TX
FOR:
Jones, Franklin Chairman (Gulf Coast Authority), Houston, TX
Registering, but not testifying:
FOR:
Kim, Michael A. (MAK Development Group), Katy, TX
WITNESS LIST
Intergovernmental Relations
April 16, 2019 8:30 AM
Registering, but not testifying:
FOR:
Lary, Trey Attorney (Parkside Capital, LLC), Austin, TX
Walker, Brett (Parkside Capital, LLC), Houston, TX
Registering, but not testifying:
FOR:
Cyprow, Jarrod (Mayer Double D Ranch, LP), Houston, TX
Lary, Trey Attorney (Mayer Double D Ranch, LP), Austin, TX
Registering, but not testifying:
FOR:
Cohen, Howard Attorney; Schwartz, Page, & Harding, LLP (Terra Investments, LP; Prima
Terra, LLC; Primewood Investments, LP), Houston, TX
Patel, Kirti (Terra Investments, LP; Prima Terra LLC; Primewood Investments, LP),
Houston, TX
Registering, but not testifying:
FOR:
Cohen, Howard Attorney; Schwartz, Page, & Harding LLP (Terra Investments, LP; Prima
Terra, LLC; Primewood Investments, LP), Houston, TX
Patel, Kirti (Terra Investments, LP; Prima Terra, LLC; Primewood Investments, LP),
Houston, TX
Registering, but not testifying:
FOR:
Cohen, Howard Attorney; Schwartz, Page, & Harding LLP (Terra Investments, LP; Prima
Terra, LLC; Primewood Investments, LP), Houston, TX
Patel, Kirti (Terra Investments, LP; Prima Terra, LLC; Primewood Investments, LP),
Houston, TX
Registering, but not testifying:
FOR:
Cohen, Howard Attorney; Schwartz, Page, & Harding, LLP (Audubon Magnolia
Development, LLC), Houston, TX
Yager, III, Sam (Audubon Magnolia Development, LLC), Houston, TX
Registering, but not testifying:
FOR:
Lary, Trey Attorney (Denbury Onshore, LLC), Austin, TX
Stone, Nathan (Denbury Onshore, LLC), Plano, TX
WITNESS LIST
Intergovernmental Relations
April 16, 2019 8:30 AM
Registering, but not testifying:
FOR:
Lary, Trey Attorney (Denbury Onshore, LLC), Austin, TX
Stone, Nathan (Denbury Onshore, LLC), Plano, TX
Registering, but not testifying:
FOR:
Lary, Trey Attorney (Denbury Onshore, LLC), Austin, TX
Stone, Nathan (Denbury Onshore, LLC), Plano, TX
Registering, but not testifying:
FOR:
Gilbert, Chris (Forestar (USA) Real Estate Group, Inc.), Katy, TX
Lary, Trey Attorney (Forestar (USA) Real Estate Group, Inc.), Austin, TX
Registering, but not testifying:
FOR:
Grisham, Jim Land Acquisition Mgr (Magnolia Escondido, LLC), Houston, TX
Lary, Trey Attorney (Magnolia Escondido, LLC), Austin, TX
Registering, but not testifying:
FOR:
Perkins, Val Attorney (Elan Development Co.), Houston, TX
Registering, but not testifying:
FOR:
Arnow, David N. Owner's Representative (Land Owner), Austin, TX
Perkins, Val Attorney (Castle Rock Partners), Houston, TX
Registering, but not testifying:
FOR:
Dewese, Jeff (The Signorelli Company), The Woodlands, TX
Lary, Trey Attorney (The Signorelli Company), Austin, TX
Registering, but not testifying:
FOR:
Lary, Trey Attorney (BAM Houston Real Estate Investment, L.P.), Austin, TX
Stone, Travis (BAM Houston Real Estate Investment, L.P.), Houston, TX
WITNESS LIST
Intergovernmental Relations
April 16, 2019 8:30 AM
Registering, but not testifying:
FOR:
Grisham, Jim Land Acquisition Mgr (The Reserve on Waterway, LLC), Houston, TX
Lary, Trey Attorney (The Reserve on Wateway, LLC), Austin, TX
Registering, but not testifying:
FOR:
Gilbert, Chris (Cunningham Interests II, Ltd.), Katy, TX
Lary, Trey Attorney (Cunningham Interests II, Ltd.), Austin, TX
Registering, but not testifying:
FOR:
Lary, Trey Attorney (Parkside/Tristar Grand Parkway, LLC), Austin, TX
Walker, Brett (Parkside/Tristar Grand Parkway, LLC), Houston, TX
Registering, but not testifying:
FOR:
Gubbels, Matt (AA Sharp Investments, Ltd.), Rosenberg, TX
Lary, Trey Attorney (AA Sharp Investments, Ltd.), Austin, TX


This bookmarklet allows you to apply Bootstrap Accessibility Plugin features to any page that runs Bootstrap widgets.
To Install, follow these steps:
- Simply copy or drag this link to your browser bookmarks.
- Go to a Bootstrapped webpage
- Click this bookmarklet.


Threeguru develop cost effective, well thought out strategic marketing plans to maximise resources and deliver the best return on investment for our local, national and multinational clients.
Find out moreLooking for a different approach? Let us work together to fully understand your objectives, develop a strategy and originate creative that delivers a competitive advantage.
Find out moreOur digital gurus work closely with our team of creatives to deliver engaging brand experiences that seamlessly integrate the use of responsive websites, social and digital media.
Find out more


Functionality related to multi-threading
Classes
| Class | Description | |
|---|---|---|
| Gate |
A thread Gate is a background thread which is initially closed. When a Gate is opened, the Action runs until completion. The Gate can be opened (Run) any number of times.
| |
| GateTParameterType |
A thread Gate which supports passing in a typed parameter
| |
| GateMethods |
Extension methods on Action to Create a Gate
| |
| Thread |
A thread class
| |
| ThreadTParameterType |
A thread class which can pass a typed parameter into the thread action
| |
| ThreadExtensions |
Contains a generic extension method to quickly start a new thread
|
Enumerations
| Enumeration | Description | |
|---|---|---|
| CPUProfileEnum |
The preferred level of CPU usage
|


A TypeScript, Node.js and Browser(JavaScript) compatible client for Mixer.com's interactive 2 Protocol.
For an introduction to interactive2 checkout the reference docs on the developers site.
You can use npm(recommended) or download a zip from the releases page.
<script src="dist/interactive.js"></script>
npm i --save beam-interactive-node2
OAuth 2.0 is used for authentication. Valid bearer tokens can be passed in the Client.open method.
For more information about Mixer's OAuth visit the OAuth reference page on our developer site.
<doctype html>
<html>
<head>
<title>Interactive 2</title>
</head>
<body>
<script src="js/interactive.js"></script>
<script src="js/app.js"></script>
</body>
</html>
const client = new interactive.GameClient();
client.open({
authToken: '<OAuth Token>',
versionId: 1234,
});
const interactive = require('beam-interactive-node2');
const ws = require('ws');
interactive.setWebSocket(ws);
const client = new interactive.GameClient();
client.open({
authToken: '<OAuth Token>',
versionId: 1234,
});
import { GameClient, setWebSocket } from 'beam-interactive-node2';
import * as ws from 'ws';
setWebSocket(ws);
const client = new GameClient();
client.open({
authToken: '<OAuth Token>',
versionId: 1234,
});
Checkout our examples to get up to speed quickly!
Using Node.js? Clone this repository and run npm run build
and the examples will be converted to JavaScript for you!
Checkout our reference docs here.
To get a development environment setup:
npm install
npm run build
Thanks for your interested in contributing, checkout TODO.md for a list of tasks!
Open a Pull Request we'd love to see your contributions.
Generated using TypeDoc


The statistics feature is under the General - Statistics menu. You could see the global statistics of the CMI database.


Please choose a preferred method of payment below
Plese cross check your information before submitting this order


The following document contains the results of PMD's CPD 6.53.0.
| File | Line |
|---|---|
| org/apache/shiro/web/filter/authc/BasicHttpAuthenticationFilter.java | 75 |
| org/apache/shiro/web/filter/authc/HttpAuthenticationFilter.java | 320 |
} /** * Creates an AuthenticationToken for use during login attempt with the provided credentials in the http header. *
 * This implementation: *

acquires the username and password based on the request's * {@link #getAuthzHeader(javax.servlet.ServletRequest) authorization header} via the * {@link #getPrincipalsAndCredentials(String, javax.servlet.ServletRequest) getPrincipalsAndCredentials} method
 *
The return value of that method is converted to an AuthenticationToken via the * {@link #createToken(String, String, javax.servlet.ServletRequest, javax.servlet.ServletResponse) createToken} method
 *
The created AuthenticationToken is returned.
 *
 * * @param request incoming ServletRequest * @param response outgoing ServletResponse * @return the AuthenticationToken used to execute the login attempt */ protected AuthenticationToken createToken(ServletRequest request, ServletResponse response) { String authorizationHeader = getAuthzHeader(request); if (authorizationHeader == null || authorizationHeader.length() == 0) { // Create an empty authentication token since there is no // Authorization header. return createToken("", "", request, response); } log.debug("Attempting to execute login with auth header"); String[] prinCred = getPrincipalsAndCredentials(authorizationHeader, request); if (prinCred == null || prinCred.length < 2) { // Create an authentication token with an empty password, // since one hasn't been provided in the request. String username = prinCred == null || prinCred.length == 0 ? "" : prinCred[0]; return createToken(username, "", request, response); } String username = prinCred[0]; String password = prinCred[1]; return createToken(username, password, request, response); } /** * Returns the username and password pair based on the specified encoded String obtained from * the request's authorization header. *
 * Per RFC 2617, the default implementation first Base64 decodes the string and then splits the resulting decoded * string into two based on the ":" character. That is: *
 * String decoded = Base64.decodeToString(encoded);
 * return decoded.split(":"); * * @param scheme the {@link #getAuthcScheme() authcScheme} found in the request * {@link #getAuthzHeader(javax.servlet.ServletRequest) authzHeader}. It is ignored by this implementation, * but available to overriding implementations should they find it useful. * @param encoded the Base64-encoded username:password value found after the scheme in the header * @return the username (index 0)/password (index 1) pair obtained from the encoded header data. */ protected String[] getPrincipalsAndCredentials(String scheme, String encoded) { |


Build directions
Perquisites
Install the Go DevKit, this install the roadctl CLI and tool network
Go DevKit
Download
Use the download link in the upper right hand conner to download your definitions file.
# clone your new service
$ git clone git@github.com:pavedroad-io/test.git
# Create your service
$ roadctl create template datamgr -f test.yaml
# Build, execute test, create documentation, dep management, and manifests
$ make
# Deploy to Kubernetes cluster using one of the following methods
# CLI, not very pretty
$ make deploy
# UX
$ tilt up


A full-time student spends somewhere between 16 - 20 hours a week in a lecture hall. That is a big chunk of someone’s life spent in a learning environment and our team of seven, figured that it should be optimized in such a way to improve the learning experience.
We decided to conduct an error analysis and redesign of the lecture hall desks of Peterson Hall since it holds a vast majority of UCSD lectures and plays a vital role in the education of students, ourselves included. Without a doubt, the desks in lecture halls could be largely improved in various ways. Our design focused on improving the two most vital problems:
This project was personal. As students, we've faced these problems ourselves. We use the lecture hall desks everyday, yet we still make mistakes. "How do I take it out?", "how do I strategically place my materials?", are all questions that make the user feel inadequate for not knowing this first hand. However, these are just a few of the many inconveniences that we have grown to tolerate.
By observing students during a lecture, we could naturally observe students from afar without any risk of altering their behavior. We observed students at different times of the day, allowing us to compare and contrast students of different majors. For example, a computer science major would almost always use his/her laptop during lecture, while any other major would likely be split between laptops and notebooks. Some of the things we noticed were:
We then interviewed 20 students. Asking them a range of questions from, "What was your first experience like with these types of lecture hall desks?" to, "Could you show me how you organize your things on the desk?" Some of their answers surprised us:
We identified four main problems with the desks:
Our team focused on using the double diamond method for redesigning the desk. Our three designs focused on the design spaces of mobility, desk size, and personal space. We considered a variety of different redesigns. Our first design was focused on what we collectively thought would be the biggest problem: how to open the desk without good signifiers.
Design 1 focused on the design space of mobility and the system used to open the desk. We believe that, although the desk affords retractability, the signifiers are unclear. We wanted to build a desk that would create a better conceptual model for users to understand how to take out the desk. We initially considered airplane style desks that come down from the back of the chair in front, but that would block people trying to walk through the aisle. These thoughts led us to think about why the desk was so small.
Instead of swinging out to reach the “desk mode,” we designed a rectangular “up-and-over” desk that would be pulled up from the side and placed over the lap area (as seen in the figure above).
In Design 2, our team wanted to focus on the design space of personal space. To accommodate people of both handedness and of every size, we decided to design the desk to be a crescent shape like the one pictured above. The constraints of the original swinging design are designed well and result in only one viable option to operate the desk to achieve the “desk mode” and the “retracted mode.” In the opened mode, it can only be moved to the retracted mode through one particular set of actions. Similarly, from retracted mode to the desk mode, there is only one course of possible action to take, so it is difficult to break the desk.
Our final redesign takes inspiration from our interviews, speculations, and previous design ideas. We wanted to compile all the main points into one complete lecture desk, minimizing tradeoffs and maximizing efficiency.
We begn with the crescent-shaped desk that swings out (like how they do now) via a hinge. To open up the desk, the user will grab it from the right side and rotate it counterclockwise. Rotating the desk clockwise means pulling the desk at an awkward angle. Thus, we wanted to make sure that our desk opens in a natural, ergonomic fashion. Minimizing the gap between armrests would constrain the student into only being able to rotate the desk in one direction.