Determining Query Structure
Understanding how to craft a malicious SQL segment
One of the main tasks of a penetration tester is to figure out what is the original query structure. This precious piece of information will allow him to take control over the main query with a specially crafted SQL segment. This section presents different ways to overcome difficulties one could meet in real cases of SQL injection testing.
Desired Information
As a tester, you need to know if the application filters any character from the input. Ideally, you would also know what the main query looks like. This includes tables used, column names and data types. Generating application errors may help you to recover this information. Otherwise you need to detect SQL injection by analysing the application response to different testing strings. When a tester has a good idea of the query structure, he will habitually be able to inject a SQL segment without generating an invalid SQL syntax.
Special Cases
Below are listed some cues to help you achieve a successful SQL injection the most common "complex scenarios".
Complex WHERE Clause
Most of the time, user inputs are integrated in WHERE clause. To simplify theory, the majority of the examples presented on this website featured pretty simple queries. In reality it is often quite different. Detecting vulnerabilities can become quite a challenge when the vulnerable parameter is integrated in a WHERE clause containing a massive number of conditions. Here is an example where a correctly crafted parameter has no impact on the main query. We suppose that admin is a valid but inactive user who do not want to be contacted by email.
Input submitted (the attacker does not know the query's structure but he knows that “admin” is a user).
admin' OR 'a'='a
Query generated (Note: admin user is not active and does not want to be contacted by email).
SELECT email FROM members WHERE allow_contact=1 AND username='admin' OR 'a'='a' AND is_active=1
The query above returns no result. Neither would any injection of a single AND/OR condition. However, by injecting a parameter containing a double OR condition, the attacker could get the email list of all members.
Input submitted with improved condition.
admin' OR 'a'='a' OR 'a'='a
Query generated (Note: admin user is not active and does not want to be contacted by email).
SELECT email FROM members WHERE allow_contact=1 AND username='admin' OR 'a'='a' OR 'a'='a' AND is_active=1
For this case and for many others, using line commenting can be a time-saving technique. Otherwise, make sure you use multiple conditions in your tests.
SQL Injection in Subqueries
Vulnerable parameters integrated in subqueries can also become quite hard to test and attack. Altering the subquery with a crafted parameter does not even garantee that the main query will be impacted. For this reason, in most cases the attacker will need to end the subquery and take over the main query to achieve a successful SQL injection attack. Below is an example demonstrating this technique.
Classic query example - Display posts in a category (parameter is not sanitized).
SELECT title FROM posts WHERE topic in (SELECT id FROM topics WHERE category=1)
Crafted parameter to escape the subquery.
1) UNION SELECT password FROM members WHERE (1=1
Resulting query.
SELECT title FROM posts WHERE topic in (SELECT id FROM topics WHERE category=1) UNION SELECT password FROM members WHERE (1=1)
The subquery is escaped and the attacker added a UNION statement to the original query. Members' passwords are now returned in the page.
UPDATE, DELETE, INSERT, etc.
Make sure you test all modules of the application; including those used to modify data. More attention is often paid to functionality than security. Sanitizing parameters is something that could get out of the developer’s mind, especially if he has to create an important SQL statement. However, be extremely careful when testing parameters subject to be integrated in a data definition functions. You don’t want to lose all your data because an always true condition was mistakenly inserted into a vulnerable DELETE statement!
Uncommon Input Integration
The user input does not always end as a value for a column. In some cases it might be used to specify a column name or a table name. This is not a common technique but it should not be neglected in your tests!
Some Cases are Dead Ends
There are some cases where an existing SQL injection vulnerability cannot be exploited. A classic situation is when the user input is partially validated before being integrated in a subquery. Even if the validation by itself is insufficient, the integration into a sub-query makes it impossible (or nearly impossible) for the attacker to exploit it. This should not discourage you to test all parameters thoroughly, but keep in mind that some cases are dead ends.


devops - accelerate
Accelerate - Nicole Forsgren, Jez Humble and Gene Kim - 20180327
Scientific study giving results and methodology about the puppet.com states of Devops from 2014 to 2017 (the books authors contributed to theses studies)
Book content
Forewords by Martin Fowler then Courtney Kissler.
Book split in 3 parts unequally weighted :
- Part I : What we found
Describe the 24 keys capabilities described after.
This is the result part of the study
- Part II : The Research
This part explain how the research have been built and processed.
- Part III : Transformation
This part focus on the leadership needed to change the behavior of organizations to align with devops practices.
24 keys capabilities driving improvements in software delivery performances
### Continuous Delivery
#### Version control
#### Deployment automation
#### Continuous integration
#### Trunk-based dev
#### Test automation
#### Test data management
#### Shift left on security
#### Continuous delivery
### Architecture
#### Loosely coupled architecture
#### Empowered teams
### Product and process
#### Customer feedback
#### Value stream
#### Working in small batches
#### Team experimentation
### Lean management and monitoring
#### Change approval processes
#### Monitoring
#### Proactive notification
#### WIP limits
#### Visualizing work
### Cultural
#### Westrum organizational culture
#### Supporting learning
#### Collaboration among teams
#### Job satisfaction
#### Transformational leadership


Strain//Domain is for medical and research purposes. Not for illicit or illegal activity. Please check your state or country's marijuana laws.
Consult Your Health Care Professional before starting a medical marijuana treatment plan.
Medical marijuana uses the marijuana plant or chemicals in it to treat diseases or conditions. It's basically the same product as recreational marijuana, but it's taken for medical purposes.
The marijuana plant contains more than 100 different chemicals called cannabinoids. Each one has a different effect on the body. Delta-9-tetrahydrocannabinol (THC) and cannabidiol (CBD) are the main chemicals used in medicine. THC also produces the "high" people feel when they smoke marijuana or eat foods containing it.
Medical marijuana is used to treat a number of different conditions.
Cannabinoids -- the active chemicals in medical marijuana -- are similar to chemicals the body makes that are involved in appetite, memory, movement, and pain.
To get medical marijuana, you need a written recommendation from a licensed doctor in states where that is legal. (Not every doctor is willing to recommend medical marijuana for their patients.) You must have a condition that qualifies for medical marijuana use. Each state has its own list of qualifying conditions. Your state may also require you to get a medical marijuana ID card. Once you have that card, you can buy medical marijuana at a store called a dispensary.
To take medical marijuana, you can...Smoke it, Inhale it(vaporization), Eat it(edibles), Apply it to your skin in a lotion, spray, oil, or cream.
How you take it is up to you. Each method works differently in your body.


Terms and Conditions
These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity (“you”) and Abstract Creative LLC ("Company", “we”, “us”, or “our”), concerning your access to and use of the https://www.abstract-creative.com website as well as any other media form, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the “Site”). You agree that by accessing the Site, you have read, understood, and agreed to be bound by all of these Terms of Use.
Supplemental terms and conditions or documents that may be posted on the Site from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms of Use at any time and for any reason. We will alert you about any changes by updating the “Last updated” date of these Terms of Use, and you waive any right to receive specific notice of each such change. It is your responsibility to periodically review these Terms of Use to stay informed of updates. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the Site after the date such revised Terms of Use are posted.
The information provided on the Site is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Site from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable.
The Site is not tailored to comply with industry-specific regulations (Health Insurance Portability and Accountability Act (HIPAA), Federal Information Security Management Act (FISMA), etc.), so if your interactions would be subjected to such laws, you may not use this Site. You may not use the Site in a way that would violate the Gramm-Leach-Bliley Act (GLBA).
All users who are minors in the jurisdiction in which they reside (generally under the age of 18) must have the permission of, and be directly supervised by, their parent or guardian to use the Site. If you are a minor, you must have your parent or guardian read and agree to these Terms of Use prior to you using the Site.
Unless otherwise indicated, the Site is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Site (collectively, the “Content”) and the trademarks, service marks, and logos contained therein (the “Marks”) are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other intellectual property rights and unfair competition laws of the United States, international copyright laws, and international conventions. The Content and the Marks are provided on the Site “AS IS” for your information and personal use only. Except as expressly provided in these Terms of Use, no part of the Site and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.
Provided that you are eligible to use the Site, you are granted a limited license to access and use the Site and to download or print a copy of any portion of the Content to which you have properly gained access solely for your personal, non-commercial use. We reserve all rights not expressly granted to you in and to the Site, the Content and the Marks.
By using the Site, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Terms of Use; (2) you are not a minor in the jurisdiction in which you reside, or if a minor, you have received parental permission to use the Site; (3) you will not access the Site through automated or non-human means, whether through a bot, script, or otherwise; (4) you will not use the Site for any illegal or unauthorized purpose; and (5) your use of the Site will not violate any applicable law or regulation.
If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Site (or any portion thereof).
You may not access or use the Site for any purpose other than that for which we make the Site available. The Site may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us.
As a user of the Site, you agree not to:
1. Engage in unauthorized framing of or linking to the Site.
2. Upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses, or other material,
including excessive use of capital letters and spamming (continuous posting of repetitive text), that
interferes with any party’s uninterrupted use and enjoyment of the Site or modifies, impairs,
disrupts, alters, or interferes with the use, features, functions, operation, or maintenance of the
Site.
3. Engage in any automated use of the system, such as using scripts to send comments or messages, or
using any data mining, robots, or similar data gathering and extraction tools.
4. Delete the copyright or other proprietary rights notice from any Content.
5. Attempt to impersonate another user or person or use the username of another user.
6. Sell or otherwise transfer your profile.
7. Upload or transmit (or attempt to upload or to transmit) any material that acts as a passive or
active information collection or transmission mechanism, including without limitation, clear graphics
interchange formats (“gifs”), 1×1 pixels, web bugs, cookies, or other similar devices (sometimes
referred to as “spyware” or “passive collection mechanisms” or “pcms”).
8. Interfere with, disrupt, or create an undue burden on the Site or the networks or services
connected to the Site.
9. Harass, annoy, intimidate, or threaten any of our employees or agents engaged in providing any
portion of the Site to you.
10. Attempt to bypass any measures of the Site designed to prevent or restrict access to the Site, or
any portion of the Site.
11. Copy or adapt the Site’s software, including but not limited to Flash, PHP, HTML, JavaScript, or
other code.
12. Use a buying agent or purchasing agent to make purchases on the Site.
13. Make any unauthorized use of the Site, including collecting usernames and/or email addresses of
users by electronic or other means for the purpose of sending unsolicited email, or creating user
accounts by automated means or under false pretenses.
14. Use the Site as part of any effort to compete with us or otherwise use the Site and/or the Content
for any revenue-generating endeavor or commercial enterprise.
The Site does not offer users to submit or post content. We may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Site, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, "Contributions"). Contributions may be viewable by other users of the Site and through third-party websites. As such, any Contributions you transmit may be treated in accordance with the Site Privacy Policy. When you create or make available any Contributions, you thereby represent and warrant that:
1. The creation, distribution, transmission, public display, or performance, and the accessing,
downloading, or copying of your Contributions do not and will not infringe the proprietary rights,
including but not limited to the copyright, patent, trademark, trade secret, or moral rights of any
third party.
2. You are the creator and owner of or have the necessary licenses, rights, consents, releases, and
permissions to use and to authorize us, the Site, and other users of the Site to use your
Contributions in any manner contemplated by the Site and these Terms of Use.
3. You have the written consent, release, and/or permission of each and every identifiable
individual
person in your Contributions to use the name or likeness of each and every such identifiable
individual person to enable inclusion and use of your Contributions in any manner contemplated by
the
Site and these Terms of Use.
4. Your Contributions are not false, inaccurate, or misleading.
5. Your Contributions are not unsolicited or unauthorized advertising, promotional materials,
pyramid
schemes, chain letters, spam, mass mailings, or other forms of solicitation.
6. Your Contributions are not obscene, lewd, lascivious, filthy, violent, harassing, libelous,
slanderous, or otherwise objectionable (as determined by us).
7. Your Contributions do not ridicule, mock, disparage, intimidate, or abuse anyone.
8. Your Contributions do not advocate the violent overthrow of any government or incite, encourage,
or
threaten physical harm against another.
9. Your Contributions do not violate any applicable law, regulation, or rule.
10. Your Contributions do not violate the privacy or publicity rights of any third party.
11. Your Contributions do not contain any material that solicits personal information from anyone
under the age of 18 or exploits people under the age of 18 in a sexual or violent manner.
12. Your Contributions do not violate any applicable law concerning child pornography, or otherwise
intended to protect the health or well-being of minors;
13. Your Contributions do not include any offensive comments that are connected to race, national
origin, gender, sexual preference, or physical handicap.
14. Your Contributions do not otherwise violate, or link to material that violates, any provision of
these Terms of Use, or any applicable law or regulation.
Any use of the Site in violation of the foregoing violates these Terms of Use and may result in, among other things, termination or suspension of your rights to use the Site.
You and the Site agree that we may access, store, process, and use any information and personal data that you provide following the terms of the Privacy Policy and your choices (including settings).
By submitting suggestions or other feedback regarding the Site, you agree that we can use and share such feedback for any purpose without compensation to you.
We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Site. You are solely responsible for your Contributions to the Site and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.
You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Site ("Submissions") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you. You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions.
The Site may contain (or you may be sent via the Site) links to other websites ("Third-Party Websites") as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties ("Third-Party Content"). Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Site or any Third-Party Content posted on, available through, or installed from the Site, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Site and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms of Use no longer govern. You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Site or relating to any applications you use or install from the Site. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party. You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites.
We reserve the right, but not the obligation, to: (1) monitor the Site for violations of these Terms of Use; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Terms of Use, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Site or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Site in a manner designed to protect our rights and property and to facilitate the proper functioning of the Site.
We care about data privacy and security. By using the Site, you agree to be bound by our Privacy Policy posted on the Site, which is incorporated into these Terms of Use. Please be advised the Site is hosted in the United States. If you access the Site from any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in the United States, then through your continued use of the Site, you are transferring your data to the United States, and you agree to have your data transferred to and processed in the United States.
These Terms of Use shall remain in full force and effect while you use the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.
If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.
We reserve the right to change, modify, or remove the contents of the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We also reserve the right to modify or discontinue all or part of the Site without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site.
We cannot guarantee the Site will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Site, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Site at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Site during any downtime or discontinuance of the Site. Nothing in these Terms of Use will be construed to obligate us to maintain and support the Site or to supply any corrections, updates, or releases in connection therewith.
These Terms of Use and your use of the Site are governed by and construed in accordance with the laws of the State of Texas applicable to agreements made and to be entirely performed within the State of Texas, without regard to its conflict of law principles
Binding Arbitration
If the Parties are unable to resolve a Dispute through informal negotiations, the Dispute (except those Disputes expressly excluded below) will be finally and exclusively resolved by binding arbitration.  The arbitration shall be commenced and conducted under the Commercial Arbitration Rules of the American Arbitration Association ("AAA") and, where appropriate, the AAA’s Supplementary Procedures for Consumer Related Disputes ("AAA Consumer Rules"), both of which are available at the AAA website: www.adr.org. Your arbitration fees and your share of arbitrator compensation shall be governed by the AAA Consumer Rules and, where appropriate, limited by the AAA Consumer Rules. If such costs are determined to by the arbitrator to be excessive, we will pay all arbitration fees and expenses. The arbitration may be conducted in person, through the submission of documents, by phone, or online. The arbitrator will make a decision in writing, but need not provide a statement of reasons unless requested by either Party. The arbitrator must follow applicable law, and any award may be challenged if the arbitrator fails to do so. Except where otherwise required by the applicable AAA rules or applicable law, the arbitration will take place in Harris County, Texas. Except as otherwise provided herein, the Parties may litigate in court to compel arbitration, stay proceedings pending arbitration, or to confirm, modify, vacate, or enter judgment on the award entered by the arbitrator.
If for any reason, a Dispute proceeds in court rather than arbitration, the Dispute shall be commenced or prosecuted in the state and federal courts located in Harris County, Texas, and the Parties hereby consent to, and waive all defenses of lack of personal jurisdiction, and forum non conveniens with respect to venue and jurisdiction in such state and federal courts. Application of the United Nations Convention on Contracts for the International Sale of Goods and the the Uniform Computer Information Transaction Act (UCITA) are excluded from these Terms of Use.
If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.
Binding Arbitration
The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any Dispute to be arbitrated on a class-action basis or to utilize class action procedures; and (c) there is no right or authority for any Dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.
Exceptions to Arbitration
The Parties agree that the following Disputes are not subject to the above provisions concerning binding arbitration: (a) any Disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any Dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorized use; and (c) any claim for injunctive relief. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.
There may be information on the Site that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Site at any time, without prior notice.
THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS.    WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES.
 NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE AMOUNT PAID, IF ANY, BY YOU TO US DURING THE SIX (6) MONTH PERIOD PRIOR TO ANY CAUSE OF ACTION ARISING. CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.
You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) use of the Site; (2) breach of these Terms of Use; (3) any breach of your representations and warranties set forth in these Terms of Use; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; or (5) any overt harmful act toward any other user of the Site with whom you connected via the Site. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.
We will maintain certain data that you transmit to the Site for the purpose of managing the performance of the Site, as well as data relating to your use of the Site. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Site. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.
Visiting the Site, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.
If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at<PHONE_NUMBER> or<PHONE_NUMBER>.
These Terms of Use and any policies or operating rules posted by us on the Site or in respect to the Site constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Site. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use.
In order to resolve a complaint regarding the Site or to receive further information regarding use
of the Site, please contact us at:
Abstract Creative LLC
14714 Oakheath River Ct
Cypress, TX 77429
United States
Phone:<PHONE_NUMBER>
efren@abstract-creative.com


Houston¶
Houston
is a high-level interface to MissionControl.
An Analogy¶
Think of a car. A car is a system of many components. There’s an engine, brakes, gears, wheels, and many other parts. But when you drive a car, you don’t think about each little part; it would be too overwhelming! Instead, you just use the steering wheel and the pedals. These are your interface to the car.
MissionControl is also a system of many components. There are jobs, flows, databases, utility classes, and many other parts. When we use MissionControl, we don’t want to have to know about all of the little parts. We want something that hides the details. Houston is a set of functions and utilities that lets us use MissionControl without having to know about all the little parts. Houston is like a steering wheel for MissionControl.
Why use Houston?¶
We use Houston for several reasons:
- It makes it easier for us to write programs that interact with MissionControl.
- It gives us a way to consolidate configuration in one place.
- It gives us a framework to extend MissionControl with new commands.
Configuring Houston¶
Houston takes a ‘cfg’ object as a parameter. This cfg object can be a dict that maps config keys to values. Or it can be a python object that has config keys as attributes.
This allows you to use both normal dicts and python modules as config sources.
Config as Dict¶
from mc.houston import Houston
my_config = {
'SOME_CFG_KEY': 'SOME_CFG_VALUE'
}
houston = Houston(cfg=my_config)
print(houston.cfg['SOME_CFG_KEY'])
Expected output:
SOME_CFG_VALUE
Config as Object¶
import types
my_config = types.SimpleNamespace()
my_config.SOME_CFG_KEY = 'SOME_CFG_VALUE'
houston = Houston(cfg=my_config)
print(houston.cfg['SOME_CFG_KEY'])
Expected output:
SOME_CFG_VALUE
Common Config Keys¶
These are some of the common config keys used by Houston.
- MC_DB_URI
- The database connection url for the MissionControl database. See http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls for valid url formats.
- FLOW_QUEUE
Flow queue config. Only needed if you use Houston.utils.flow_runner.
Example:
{ 'key': 'my_flow_queue', 'queue_kwargs': { 'queue_spec': { 'item_type': 'Flow' } } }
- JOB_QUEUE
Job queue config. Only needed if you use Houston.utils.job_runner.
Example:
{ 'key': 'my_job_queue', 'queue_kwargs': { 'queue_spec': { 'item_type': 'Job' } } }
- USE_LOCKS
- Set to True to enable the use of locks when claiming flows. Default: True.
- ARTIFACT_HANDLER
- An instance of an artifact handler to use for converting dirs to artifacts.
- JOB_DIRS_ROOT
- The root path to use for job dirs.
- JOBMAN_CFG
- A jobman cfg specification.
Running Commands with Houston¶
Normally you use Houston to call MissionControl commands.
The typical way to run a command is to use Houston’s ‘run_command’ function.
- Example:
result = houston.run_command( 'some_command', some_kwarg=..., some_other_kwarg=... )
Note: there is also a ‘call_command’ function. That function is intended for use with command-line calls.
Houston Utilities¶
If you want to interact directly with MissionControl components you can
usually access them through Houston’s ‘utils’ attribute. The ‘utils’ attribute
is an instance of mc.houston.houston.utils.HoustonUtils
. You can view
the source of that module to see what things are provided by utils.


Welcome to the home page of PathEnq, an XPath 2.0 editor, tester, debugger that also serves as a generic online XML analysis tool.
This open source web application runs as JavaScript in any popular browser. It uses the Saxon-CE XSLT 2.0 processor to host and run XPath expressions.
PathEnq loads, with a sample XML file and XPath expression pre-loaded by default. To see PathEnq in action, simply press the Run
button. You will see the expression colorized, a trace output in the console and a list of results in the results panel.
With an expression evaluated, you can try out the diagnostics features of this editor: click the Trace
button and then click on any parts of the expression within the editor. You will see the results list change as you select parts of the expression.
If you wish to copy or resuse all or part of this software, PathEnq itself is open source under the Apache 2.0 license but there is a third-party dependency on the Saxon-CE processor - you will need a commercial license for this if you want to run PathEnq on your own server.
fn:trace()
output from the XPath processor in the consolePlease contact<EMAIL_ADDRESS>with any issues, queries or feature requests, I will do my best to give a timely reply but please bear in mind that this is a 'spare-time' project so there may be other priorities.
PathEnq is predominantly coded in XSLT 2.0, it also uses JavaScript functions where side-effects are an issue, or HTML 5 features are being used.
The JavaScript API for Saxon-CE was used to keep separation of concerns by running 3 different XSLT 2.0 processor instances. This also helps spread the 'compile-time' factor.
Whilst core functionality is in place, this product is still in development - so I'm keen to learn of any suggestions for future enhancements.


Iran reconnects internet in one province after days of nationwide shut down - ISNA
by ReutersDUBAI — The internet has been restored in Iran’s southern Hormozgan province, the semi-official ISNA news agency said on Thursday, days after the authorities ordered a blackout as violent protests swept the country.
“The internet connection has been restored in Hormozgan province and all social media applications are active again,” said ISNA.
Over the weekend, Iran’s clerical rulers shut down the internet, in an apparent move to curb protesters over gasoline price hikes and prevent protesters from posting footage of unrest on social media. (Writing by Parisa Hafezi; Editing by Jon Boyle)


Kylie Jenner Reveals How Long Her Real Hair Is!
Kylie Jenner is showing off her real hair!
The 22-year-old makeup mogul and reality star took to her Instagram Story on Tuesday night (November 22) to share a video right out of the shower to reveal her natural hair’s length.
PHOTOS: Check out the latest pics of Kylie Jenner
“Haven’t had my real hair this long since I was 15,” Kylie captioned the video while running her fingers through her hair, which stops around her shoulders.
READ MORE: Kylie Jenner Jokes About $600 Million Deal at Friendsgiving


Broadcasting rule:
- All input arrays with ndim smaller than the input array of largest
ndim, have 1’s prepended to their shapes.
- The size in each dimension of the output shape is the maximum of
all the input sizes in that dimension.
- An input can be used in the calculation if its size in a
particular dimension either matches the output size in that
dimension, or has value exactly 1.
- If an input has a dimension size of 1 in its shape, the first data
entry in that dimension will be used for all calculations along that
dimension. In other words, the stepping machinery of the ufunc will
simply not step along that dimension (the stride will be 0 for that
dimension).
Therefore:
import numpy as np
a=np.arange(20).reshape([5,-1])
b=np.array([1,1])
In [2]:a
Out[2]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19]])
b
Out[3]: array([1, 1])
a[:,2:]=b
This is OK:
a
Out[6]:
array([[ 0, 1, 1, 1],
[ 4, 5, 1, 1],
[ 8, 9, 1, 1],
[12, 13, 1, 1],
[16, 17, 1, 1]])
But if
In [7]:a[3:,:]=b
Traceback (most recent call last):
File "<ipython-input-7-b93b1fced1ff>", line 1, in <module>
a[3:,:]=b
ValueError: could not broadcast input array from shape (2) into shape (2,4)
So in this case, I have to reshape b, or expand it in axis=1 dimension. Otherwise will it cannot broadcast.
a[3:,:]=b.reshape([2,1])
a
Out[10]:
array([[0, 1, 1, 1],
[4, 5, 1, 1],
[8, 9, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]])
#Another way is:
a[3:,:]=np.expand_dims(b,axis=1)
back


http://www.speakers-podium.com/susangranger.
Susan Granger's review of "BOILER ROOM" (New Line Cinema)
If you've ever responded to a telephone solicitation, be prepared for an eye-opener! This disturbing, cautionary story about a stock scam takes you into the infamous "boiler room" where twentysomething millionaires are made overnight. They're Gen-Xers who want the adrenaline rush of easy money. So when Seth, a 19 year-old college dropout played by Giovanni Ribisi (Saving Private Ryan), realizes that his father, a judge (Ron Rivkin), has caught onto the illegal casino he's been running out of his Queens apartment, he's recruited into the inner sanctum of a fly-by-night Long Island brokerage firm named J.T. Marlin (a name chosen because it sounds like J.P. Morgan) by Ben Affleck (Dogma). After a glimpse of his boss's 355 canary-yellow Ferrari and an eye-popping indoctrination, he becomes a stockjock-in-training, learning how to hustle unsuspecting investors over the phone. "Never pitch the bitch," he's instructed, meaning that women ask too many questions. Seth's a money-hungry natural - glib and greedy. And he enjoys hanging out with his foul-mouthed cohorts - "They could sell bubble-gum in the lock-jaw ward in Bellevue" - not to mention the firm's enigmatic receptionist, Nia Long, his "chocolate love." But soon his insatiable curiosity gets him into trouble with the law, as he discovers exactly how his colleagues are getting richer as their customers are getting poorer. First-time writer/director Ben Younger was intrigued by the remarkable statistic that one out of every 36 working Americans is a millionaire, so he created this timely, high-wire drama about today's mega-fortune-hunters. On the Granger Movie Gauge of 1 to 10, Boiler Room heats up to a searing, shocking 7. Just remember: when a stranger calls, trying to sell you stock, hang up!
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


--- layout: newsstory title: ROAD TO NOWHERE match: FAT Yeltz 1 Bilston 3 ---
In a completely depressing performance, the mighty Yeltz failed to take any steps along the road to wherever the final's going to be this year.
We were outplayed and outclassed by a Bilston team who are currently top of the Midland and West Division. I can't remember their keeper making a single save, with our only threat coming from Jason 'Bobby Charlton' Owen who scored a screamer from 20-odd yards and hit the bar with a lob from about 40.
They took the lead from a misplaced cross that looped into the far corner, before Jason's equaliser. They retook the lead in the second half after an otherwise excellent Andy Quy picked up a backpass and they fired home from close range following the freekick. We never looked like getting back into it after that, and they clinched a well-deserved victory with a late third. It were the worst . There's some photos of the game courtesy of Mark Bowen and James Pearson in the match reports.
Redditch won their Trophy game, so the B'ham Senior Cup tie against them will take place at The Grove on Tuesday .
In a hopeful mood I took a camera to the Bilston game expecting to take a few pictures of our strikeforce in action - I'd have been better off trying to catch a train in York at the moment. Jason's two strikes of brilliance (OK so one clipped the bar but at least one went in were too quick for me - unlike the multitude of Bilston attempts).
I can't remember when there was such an absence of hope on both the pitch and amongst the crowd - I've seen more lively wakes! To criticise specific players is just taking easy pot shots - anyone who was there could write a book on the subject. With the exception of a brilliant display in goal (if you overlook positioning for their first goal) and Jason's performance there was a dirth of skill and effort. Collins at least tried but after his first half booking for a clumsy challenge looked restained, but in all fairness he was at the mercy of an unpredictable and whistle happy referee.
I agree that we should always aim to get behind the players, but that is so hard when there is so little feedback from the performance on the pitch. While we all recognise that there are playing shortfalls in the current side they can be forgiven to an extent if those of us who pay over our money at the turnstiles can at least see the players trying. Effort is no substitute for skill and ability but, recognising the financial restrictions of the club, those of us who are realistic fans realise that the side cannot be shoffled like at deck of cards at the whim of the crowd or the manager. Given that, do not leave the dwindling few who are enduring this ongoing heartache whithout the crumb of comfort that effort would give us.
To a degree I feel sorry for Scot Darroch. He appears like a fish out of water and stands out and the weakest link in a poor side. Having said that he is a youngster who needs compaetitive football to improve his skills. In a committed, enthusiastic team his odd errors could be compensated for and his abilities could develop. I am not saying he is the saviour of the side but he is just an example of the malaise within the side.
The people who come to watch the side do not want to be critical. OK I am excluding the moaning few who have always been there and complained that the Joinsons were too slow and Sean Flynn should go back to bricklaying. We want to get behind the side but it is a two way thing. When the side give us a moment to cheer the volume increases, that rubs off on the players and the cycle begins. We are crying out to be inspired but at the moment there is more life in a Balti Chicken Pie than on the pitch. We want to enjoy going to the Grove, we want to cheer the players, we want to look forward to a Saturday afternoon - but at the moment is anyone, honestly, looking forward to next Saturday, without a feeling of dread in the pit of their stomach?
Next Saturday I will drive to the game with a sense of optomism, the sickening feeling of yeasterday afternoon will have become a distant memory. Don't allow those memories to come back - try and you will be supported. In all of this I have not mentioned the management of the club. It was a difficult time to take charge of the club and funds must be limited, however if you give us passion and spirit those watching can forgive and look to future. Is is really too much to expect?


This website redesign focused on branding and a mobile-first experience.
The original Outback Climbing Center website was just a page on the main UCSD Recreation website. It had no branding of its own and was not mobile-friendly. For our redesign, we wanted to give the OCC an image of its own, as well as draw attention to the things that make this climbing center unique. We wanted to draw new users in with the website, and let them know that their first time is free!
Project Details
- I was the lead developer on this project.
- I set up the website infrastructure and version control.
- I delegated coding tasks to my team.
- I implemented the more complex features, such as the lightboxes and the scrolling wall.
- I helped my team with user interviews, wireframing, and prototyping.
Prototype
kimberlyly.github.io/tenkq-occ


Notice: Undefined offset: 0 in /home/aonetclv/public_html/extend/wp-content/plugins/sf-booking/lib/downloads.php on line 15
Notice: Undefined offset: 0 in /home/aonetclv/public_html/extend/wp-content/plugins/sf-booking/lib/downloads.php on line 15
Notice: Undefined offset: 0 in /home/aonetclv/public_html/extend/wp-content/plugins/sf-booking/lib/downloads.php on line 15
Unauthorised access


| deleteAllVisibleCookies |
|
|
| setTimeout |
100000 |
|
| open |
/vivo/ |
|
| assertTitle |
VIVO |
|
| clickAndWait |
link=Log in |
|
| assertTitle |
Log in to VIVO |
|
| type |
loginName |
<EMAIL_ADDRESS>|
| type |
loginPassword |
Password |
| clickAndWait |
loginForm |
|
| assertTitle |
VIVO |
|
| clickAndWait |
link=Index |
|
| verifyText |
css=h2 |
people |
| verifyElementPresent |
link=Person |
|
| verifyText |
//div[@id='isotope-container']/div[2]/h2 |
organizations |
| verifyElementPresent |
link=Department |
|
| verifyElementPresent |
link=Organization |
|
| verifyText |
//div[@id='isotope-container']/div[3]/h2 |
research |
| verifyElementPresent |
link=Academic Article |
|
| verifyElementPresent |
link=Article |
|
| verifyText |
//div[@id='isotope-container']/div[4]/h2 |
locations |
| verifyElementPresent |
link=Continent |
|
| verifyText |
//div[@id='isotope-container']/div[4]/ul/li |
Continent (8) |
| clickAndWait |
link=Person |
|
| assertTitle |
Person |
|
| clickAndWait |
link=Baker, Able |
|
| assertTitle |
Baker, Able |
|
| clickAndWait |
link=Edit this individual |
|
| assertTitle |
Individual Control Panel |
|
| clickAndWait |
//input[@value='Edit This Individual'] |
|
| assertTitle |
Individual Editing Form |
|
| click |
name=_delete |
|
| assertConfirmation |
Are you SURE you want to delete this individual? If in doubt, CANCEL. |
|
| waitForPageToLoad |
5000 |
|
| assertTitle |
VIVO Site Administration |
|
| clickAndWait |
link=Index |
|
| assertTitle |
Index of Contents |
|
| clickAndWait |
link=Department |
|
| assertTitle |
Department |
|
| clickAndWait |
link=Advanced Puttering |
|
| assertTitle |
Advanced Puttering |
|
| clickAndWait |
link=Edit this individual |
|
| assertTitle |
Individual Control Panel |
|
| clickAndWait |
//input[@value='Edit This Individual'] |
|
| assertTitle |
Individual Editing Form |
|
| click |
name=_delete |
|
| assertConfirmation |
Are you SURE you want to delete this individual? If in doubt, CANCEL. |
|
| waitForPageToLoad |
5000 |
|
| assertTitle |
VIVO Site Administration |
|
| clickAndWait |
link=Index |
|
| assertTitle |
Index of Contents |
|
| clickAndWait |
link=Academic Article |
|
| assertTitle |
Academic Article |
|
| clickAndWait |
link=Musings |
|
| assertTitle |
Musings |
|
| clickAndWait |
link=Edit this individual |
|
| assertTitle |
Individual Control Panel |
|
| clickAndWait |
//input[@value='Edit This Individual'] |
|
| assertTitle |
Individual Editing Form |
|
| click |
name=_delete |
|
| assertConfirmation |
Are you SURE you want to delete this individual? If in doubt, CANCEL. |
|
| waitForPageToLoad |
5000 |
|
| assertTitle |
VIVO Site Administration |
|
| clickAndWait |
link=Index |
|
| assertTitle |
Index of Contents |
|
| clickAndWait |
link=Continent |
|
| assertTitle |
Continent |
|
| clickAndWait |
link=Lemuria |
|
| assertTitle |
Lemuria |
|
| clickAndWait |
link=Edit this individual |
|
| assertTitle |
Individual Control Panel |
|
| clickAndWait |
//input[@value='Edit This Individual'] |
|
| assertTitle |
Individual Editing Form |
|
| click |
name=_delete |
|
| assertConfirmation |
Are you SURE you want to delete this individual? If in doubt, CANCEL. |
|
| waitForPageToLoad |
5000 |
|
| assertTitle |
VIVO Site Administration |
|
| clickAndWait |
link=Index |
|
| assertTitle |
Index of Contents |
|
| refreshAndWait |
5000 |
|
| refreshAndWait |
5000 |
|
| refreshAndWait |
5000 |
|
| refreshAndWait |
5000 |
|
| verifyElementNotPresent |
link=Person |
|
| verifyElementNotPresent |
link=Department |
|
| verifyElementNotPresent |
link=Organization |
|
| verifyElementNotPresent |
link=Academic Article |
|
| verifyElementNotPresent |
link=Article |
|
| verifyElementPresent |
link=Continent |
|
| verifyText |
css=div.class-group.isotope-item > ul > li |
Continent (7) |
| clickAndWait |
link=Home |
|
| clickAndWait |
link=Log out |
|
| assertTitle |
VIVO |
|


Samoa measles death toll hits 20
The death toll from Samoa's measles epidemic has risen to 20, with 202 cases recorded in the past day.
The government said 147 people were currently in hospital because of the measles, including 11 children who were in a critical condition.
The majority of them are at the main hospital in the capital, Apia.
It said there had been 1644 cases of measles recorded in the country since the outbreak started last month.
The country is in a state of emergency, with schools closed, a mass vaccination campaign under way, and public gatherings restricted.
Nearly 89 percent of the cases are on the main island, Upolu, and restrictions are in place on travel between the two islands, including a ban on children under the age of 19.
All but one of the recorded deaths have been children; nine under the age of one, and 10 between the ages of one and four.


Each color corresponds to one vanishing point. Hover over the points on the right to see the full lines.
No vanishing points are available.


Hi there! My name is Lucas Quatorze and I'm an international student seeking to become a full-stack web developer. Thanks for checking out my website!
I was born in Switzerland to Brazilian parents but raised in Brazil and Mexico. I then moved to Austin, Texas after graduating high school in Mexico City to further my studies.
I moved to the United States in 2014 in pursuit of my Bachelor's Degree at the University of Texas at Austin. I took many classes in countless different fields such as Advertising, Entrepreneurship, and even Architecture. I eventually settled in the Liberal Arts school with Sociology as my major after completing a certificate in Business Administration. I was struggling a lot to find my direction in life, that's when I decided to pursue a career in Web Development by enrolling in the UT Austin Coding Bootcamp!
I have moderate experience in the fields of Retail, Marketing, Advertising and Product Management. My first professional experience was working as a Creative intern for Ogilvy & Mather Mexico. I have also worked as a Marketing intern for Gemalto (now called Thales Group), as a Retail Associate at UT Austin's University Co-op, and as a Product Management intern at FonYou Mexico. Hopefully I'll soon be working as a Junior Web Developer!
I am interested in learning about new opportunities and can be reached through my LinkedIn profile or by e-mail: lucas.14.96@gmail.com


题目：
Problem C: Arctic Network
The Department of National Defence (DND) wishes to connect several
northern outposts by a wireless network. Two different
communication technologies are to be used in establishing the
network: every outpost will have a radio transceiver and some
outposts will in addition have a satellite channel.
Any two outposts with a satellite channel can communicate via
the satellite, regardless of their location. Otherwise, two
outposts can communicate by radio only if the distance between them
does not exceed D, which depends of the power of the transceivers.
Higher power yields higher D but costs more. Due to purchasing and
maintenance considerations, the transceivers at the outposts must
be identical; that is, the value of D is the same for every pair of
outposts.
Your job is to determine the minimum D required for the
transceivers. There must be at least one communication path (direct
or indirect) between every pair of outposts.
The first line of input contains N, the number of test cases.
The first line of each test case contains 1 <= S
<= 100, the number of satellite channels, and S
< P <= 500, the number of outposts. P
lines follow, giving the (x,y) coordinates of each outpost in km
(coordinates are integers between 0 and 10,000). For each case,
output should consist of a single line giving the minimum D
required to connect the network. Output should be specified to 2
decimal points.
Sample Input
1
2 4
0 100
0 300
0 600
150 750
Sample Output
212.13
代码：
#include<iostream>
#include<cstring>
#include<algorithm>
#include<fstream>
#include<cstdio>
#include<cmath>
#define INF 99999999
#define maxn 505
using namespace std;
typedef struct node{
int x;
int y;
}node;
int S,P;
node N[maxn];
double dist[maxn][maxn];
double D[maxn];
int vis[maxn];
double dis(node a,node b){
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
bool mycmp(double a,double b){
return a<b;
}
int main()
{
// freopen("test.txt","r",stdin);
int ncase;
cin>>ncase;
while(ncase--){
cin>>S>>P;
for(int i=0;i<P;i++){
cin>>N[i].x>>N[i].y;
}
memset(dist,0,sizeof(dist));
memset(vis,0,sizeof(vis));
for(int i=0;i<P;i++){
for(int j=i+1;j<P;j++){
dist[i][j]=dist[j][i]=dis(N[i],N[j]);
}
}
for(int i=0;i<P;i++){
D[i]=dist[0][i];
}
vis[0]=1;
for(int i=1;i<P;i++){
double tmp=INF;
int mark;
for(int j=0;j<P;j++){
if(vis[j]==0&&tmp>D[j]){
tmp=D[j];
mark=j;
}
}
vis[mark]=1;
for(int j=0;j<P;j++){
if(vis[j]==0&&D[j]>dist[mark][j]){
D[j]=dist[mark][j];
}
}
}
sort(D,D+P,mycmp);
printf("%.2lfn",D[P-S]);
}
return 0;
}


Hizencode
Project
(current)
Courses
(current)
Contacts
(current)
Name
Sign in
(current)
Sign up
(current)
Content title
Course content
Test title
No content
Required score to pass test:
6
Test was changed, please submit again to get certificate
Your score:
6/10
Submit test


Your order for units of the book, has been processed. The books will be delivered to you within seven working days at the following address:


Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Praxis, A Social Planning Company (1984) Inc.
Legal Name:
Praxis, A Social Planning Company (1984) Inc.
Operating Name:
The Praxis Group(TM)
Mailing Address:
2215 19 St SWCALGARY, Alberta
T2T 4X1
Location Address:
2215 19 St SWCALGARY, Alberta
T2T 4X1
Tel.:<PHONE_NUMBER>
Fax:
Logo
Company Profile
The Praxis Group specializes in public and stakeholder consultation, survey and market research, socio-economic impact assessment, and strategic advisory consulting. Our clients draw from the public, private and not-for-profit sectors. Over the course of nearly thirty years, our projects have ranged from one-day workshops to multi-year, regional, national, and international assignments.
We believe it is essential to involve people and organizations in the decisions that affect them. We also understand that each clients needs are unique and require individualized solutions that will be practical, effective and sustainable. Thus, Praxis custom designs decision-making processes, draws together experienced project teams, and uses innovative tools and techniques for obtaining, recording and analyzing data. Through this approach we are able to generate accurate actionable information for each client.
Praxis Headquarters - Our professionals focus on public consultation and stakeholder engagement
programs, policy related processes, and strategic level advisory projects.
Praxis Research - The team specializes in quantitative and qualitative research methods. These methods include state-of-the art telephone surveying, web-based surveys, self-completed mail/fax back surveys, intercept surveys, observation surveys, expert interviews, focus groups, workshops, forums and deliberative dialogue.
Praxis Affiliates Praxis has established on-going working relationships with like-minded individuals, organizations and consulting firms across Canada.
Full profile
Full profile
Contact information
Company description
Product / Service / Licensing
- designing client-specific consultation and engagement processes for small to large-scale projects;
- identifying relevant publics, interest groups, and stakeholders to be consulted;
- conducting public meetings, workshops, focus groups, interviews, surveys and needs assessments;
- managing and analyzing large volumes of both quantitative and qualitative information generated through various research methods;
- preparing project reports, background papers, and public involvement manuals in plain accessible language;
- developing strategy and action plans for implementing public processes; and
- providing comprehensive support and logistics to public hearings and review panels.
The studies assess parameters such as demography, economic and employment impacts,
community services, infrastructure and the quality of life of communities. The purpose is to forecast the nature and extent of direct, indirect and induced workforce impacts resulting from a proposed development and its on-going operations.
In the area of quantitative research, Praxis offers a full range of services, from designing the survey instrument through to the distribution, collection, and statistical analysis of the data using SPSS, as well as report production. We have experience in structuring surveys to ensure reliable and valid responses in data sets ready for analysis, providing clients with rapid and accurate results from large volumes of surveys.
Praxis has in-depth knowledge in state-of-the art telephone surveying, web-based surveys, self-completed mail/fax back surveys, intercept surveys, and observation surveys. We are experts in telephone surveys, which have a broad application from polling the public on policy issues, to market research designed to gather competitive intelligence, to assessing customer satisfaction. Praxis conducts telephone surveys with great efficiency using a fully automated call centre that integrates screen set technology, databases and Predictive Auto Dialing, which ensures randomness.
We also have extensive experience in qualitative research and methods, including focus groups, workshops, deliberative dialogue, expert interviews and Delphi panels. We have the capacity to analyze the data and prepare the report in a coherent and timely manner.
We assist clients with issue scoping; identifying key challenges and opportunities; coordinating research and analyzing data; identifying and assessing key stakeholders; developing strategies and approaches to mitigate anticipated challenges; and drafting key performance indicators. Much of our work in this area focuses on social, economic, community and environmental scoping for oil sands and energy related projects that are in the initial planning stages.
Offering accessibility, flexibility and scalability STS provides a solution for managing large volumes of data while maintaining data accuracy, integrity and security. Its modular structure provides ultimate flexibility allowing Praxis to tailor STS to the immediate needs of the client and to adapt the system to the client's changing needs. STS is also easily customized to support projects of any size. Capable of processing advanced searches, handling multiple project databases, and generating custom reports, STS is one of the most comprehensive consultation systems available.
Since its release in 1997 a diverse range of clients, small and large, have adopted STS for their consultation and information gathering needs. Our clients include Nexen, Enbridge, Cenovus, Encana, Shell, Altalink, Epcor, Weyerhaeuser, Sherritt, Domtar, Government of Alberta, and Ember Resources, to name a few.
Market profile
Geographic markets:
Export experience:
- Mexico
- United States
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
Products, services and licensing
Product / Service / Licensing
- designing client-specific consultation and engagement processes for small to large-scale projects;
- identifying relevant publics, interest groups, and stakeholders to be consulted;
- conducting public meetings, workshops, focus groups, interviews, surveys and needs assessments;
- managing and analyzing large volumes of both quantitative and qualitative information generated through various research methods;
- preparing project reports, background papers, and public involvement manuals in plain accessible language;
- developing strategy and action plans for implementing public processes; and
- providing comprehensive support and logistics to public hearings and review panels.
The studies assess parameters such as demography, economic and employment impacts,
community services, infrastructure and the quality of life of communities. The purpose is to forecast the nature and extent of direct, indirect and induced workforce impacts resulting from a proposed development and its on-going operations.
In the area of quantitative research, Praxis offers a full range of services, from designing the survey instrument through to the distribution, collection, and statistical analysis of the data using SPSS, as well as report production. We have experience in structuring surveys to ensure reliable and valid responses in data sets ready for analysis, providing clients with rapid and accurate results from large volumes of surveys.
Praxis has in-depth knowledge in state-of-the art telephone surveying, web-based surveys, self-completed mail/fax back surveys, intercept surveys, and observation surveys. We are experts in telephone surveys, which have a broad application from polling the public on policy issues, to market research designed to gather competitive intelligence, to assessing customer satisfaction. Praxis conducts telephone surveys with great efficiency using a fully automated call centre that integrates screen set technology, databases and Predictive Auto Dialing, which ensures randomness.
We also have extensive experience in qualitative research and methods, including focus groups, workshops, deliberative dialogue, expert interviews and Delphi panels. We have the capacity to analyze the data and prepare the report in a coherent and timely manner.
We assist clients with issue scoping; identifying key challenges and opportunities; coordinating research and analyzing data; identifying and assessing key stakeholders; developing strategies and approaches to mitigate anticipated challenges; and drafting key performance indicators. Much of our work in this area focuses on social, economic, community and environmental scoping for oil sands and energy related projects that are in the initial planning stages.
Offering accessibility, flexibility and scalability STS provides a solution for managing large volumes of data while maintaining data accuracy, integrity and security. Its modular structure provides ultimate flexibility allowing Praxis to tailor STS to the immediate needs of the client and to adapt the system to the client's changing needs. STS is also easily customized to support projects of any size. Capable of processing advanced searches, handling multiple project databases, and generating custom reports, STS is one of the most comprehensive consultation systems available.
Since its release in 1997 a diverse range of clients, small and large, have adopted STS for their consultation and information gathering needs. Our clients include Nexen, Enbridge, Cenovus, Encana, Shell, Altalink, Epcor, Weyerhaeuser, Sherritt, Domtar, Government of Alberta, and Ember Resources, to name a few.
Market
Market profile
Geographic markets:
Export experience:
- Mexico
- United States


The Klocwork tool used to generate the build specification, by default this is set to kwinject.
| Tools Available: |
| kwinject |
monitors your C/C++ build to create a build specification |
| kwmaven |
creates a Java build specification based on the information in your maven build file |
| kwmavenw |
creates a Java build specification based on the information in your maven wrapper file |
| kwjsspec |
creates a Javascript build specification file |
| kwpyspec |
creates a Python build specification file |
| kwktspec |
creates a Kotlin build specification file |
| kwant |
creates a Java build specification based on the information in your ant build file |
| create tracefile |
uses kwinject to create a trace file, mainly used for debugging |
| kwgradle |
creates a Java build specification based on the information in your Gradle build file |
| kwgradlew |
creates a Java build specification based on the information in your Gradle wrapper file |


In this project, you'll use generative adversarial networks to generate new images of faces.
You'll be using two datasets in this project:
Since the celebA dataset is complex and you're doing GANs in a project for the first time, we want you to test your neural network on MNIST before CelebA. Running the GANs on MNIST will allow you to see how well your model trains sooner.
If you're using FloydHub, set data_dir
to "/input" and use the FloydHub data ID "R5KrjnANiKVhLWAkpXhNBe".
data_dir = './data'
# FloydHub - Use with data ID "R5KrjnANiKVhLWAkpXhNBe"
#data_dir = '/input'
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import helper
helper.download_extract('mnist', data_dir)
helper.download_extract('celeba', data_dir)
show_n_images = 25
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
%matplotlib inline
import os
from glob import glob
from matplotlib import pyplot
mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'mnist/*.jpg'))[:show_n_images], 28, 28, 'L')
pyplot.imshow(helper.images_square_grid(mnist_images, 'L'), cmap='gray')
The CelebFaces Attributes Dataset (CelebA) dataset contains over 200,000 celebrity images with annotations. Since you're going to be generating faces, you won't need the annotations. You can view the first number of examples by changing show_n_images
.
show_n_images = 25
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'img_align_celeba/*.jpg'))[:show_n_images], 28, 28, 'RGB')
pyplot.imshow(helper.images_square_grid(mnist_images, 'RGB'))
Since the project's main focus is on building the GANs, we'll preprocess the data for you. The values of the MNIST and CelebA dataset will be in the range of -0.5 to 0.5 of 28x28 dimensional images. The CelebA images will be cropped to remove parts of the image that don't include a face, then resized down to 28x28.

You'll build the components necessary to build a GANs by implementing the following functions below:
model_inputs
discriminator
generator
model_loss
model_opt
train
This will check to make sure you have the correct version of TensorFlow and access to a GPU
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
from distutils.version import LooseVersion
import warnings
import tensorflow as tf
# Check TensorFlow Version
assert LooseVersion(tf.__version__) >= LooseVersion('1.0'), 'Please use TensorFlow version 1.0 or newer. You are using {}'.format(tf.__version__)
print('TensorFlow Version: {}'.format(tf.__version__))
# Check for a GPU
if not tf.test.gpu_device_name():
warnings.warn('No GPU found. Please use a GPU to train your neural network.')
else:
print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
Implement the model_inputs
function to create TF Placeholders for the Neural Network. It should create the following placeholders:
image_width
, image_height
, and image_channels
.z_dim
.Return the placeholders in the following the tuple (tensor of real input images, tensor of z data)
import problem_unittests as tests
def model_inputs(image_width, image_height, image_channels, z_dim):
"""
Create the model inputs
:param image_width: The input image width
:param image_height: The input image height
:param image_channels: The number of image channels
:param z_dim: The dimension of Z
:return: Tuple of (tensor of real input images, tensor of z data, learning rate)
"""
image = tf.placeholder(tf.float32, shape=[None, image_width, image_height, image_channels])
z_dimension = tf.placeholder(tf.float32, shape=[None, z_dim])
learning_rate = tf.placeholder(tf.float32)
return image, z_dimension, learning_rate
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_inputs(model_inputs)
Implement discriminator
to create a discriminator neural network that discriminates on images
. This function should be able to reuse the variabes in the neural network. Use tf.variable_scope
with a scope name of "discriminator" to allow the variables to be reused. The function should return a tuple of (tensor output of the discriminator, tensor logits of the discriminator).
ALPHA = 0.2
def conv(layer, depth, batch_norm=True):
layer = tf.layers.conv2d(layer, depth, 3, strides=2, padding='same')
if batch_norm: layer = tf.layers.batch_normalization(layer, training=True)
layer = tf.maximum(ALPHA*layer,layer) #Leaky Relu
print('conv layer shape', layer.shape)
return layer
def discriminator(images, reuse=False):
"""
Create the discriminator network
:param image: Tensor of input image(s)
:param reuse: Boolean if the weights should be reused
:return: Tuple of (tensor output of the discriminator, tensor logits of the discriminator)
"""
with tf.variable_scope('discriminator',reuse=reuse):
# conv1
layer = conv(images, 64, batch_norm=False)
# conv2
layer = conv(layer, 128)
# conv3
layer = conv(layer, 256)
# flatten
flat = tf.reshape(layer, (-1, 4 * 4 * 256))
# out
logits = tf.layers.dense(flat,1)
out = tf.sigmoid(logits)
return out, logits
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_discriminator(discriminator, tf)
Implement generator
to generate an image using z
. This function should be able to reuse the variabes in the neural network. Use tf.variable_scope
with a scope name of "generator" to allow the variables to be reused. The function should return the generated 28 x 28 x out_channel_dim
images.
def conv_transpose(layer, depth, is_train, strides=2, batch_norm=True, leaky_relu=True):
if depth: layer = tf.layers.conv2d_transpose(layer, depth, 3, strides=strides, padding='same', activation=None)
if batch_norm: layer = tf.layers.batch_normalization(layer, training=is_train)
if leaky_relu:
layer = tf.nn.relu(layer)
layer = tf.maximum(ALPHA*layer,layer) #Leaky Relu
print('conv_transpose layer shape', layer.shape)
return layer
def generator(z, out_channel_dim, is_train=True):
"""
Create the generator network
:param z: Input z
:param out_channel_dim: The number of channels in the output image
:param is_train: Boolean if generator is being used for training
:return: The tensor output of the generator
"""
with tf.variable_scope('generator', reuse=not is_train):
# fc
layer = tf.layers.dense(z, 7 * 7 * 512)
# reshape
layer = tf.reshape(layer, (-1, 7, 7, 512))
layer = conv_transpose(layer, False, is_train=is_train)
# conv1
layer = conv_transpose(layer, 256, is_train=is_train)
# conv2
layer = conv_transpose(layer, 128, is_train=is_train)
# out
logits = conv_transpose(layer, out_channel_dim, is_train=is_train, strides=1, batch_norm=False, leaky_relu=False)
out = tf.tanh(logits)
return out
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_generator(generator, tf)
Implement model_loss
to build the GANs for training and calculate the loss. The function should return a tuple of (discriminator loss, generator loss). Use the following functions you implemented:
discriminator(images, reuse=False)
generator(z, out_channel_dim, is_train=True)
SMOOTH = 0.1
def model_loss(input_real, input_z, out_channel_dim):
"""
Get the loss for the discriminator and generator
:param input_real: Images from the real dataset
:param input_z: Z input
:param out_channel_dim: The number of channels in the output image
:return: A tuple of (discriminator loss, generator loss)
"""
g_model = generator(input_z, out_channel_dim)
d_model_real, d_logits_real = discriminator(input_real)
d_model_fake, d_logits_fake = discriminator(g_model, reuse=True)
d_loss_real = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_real, labels=tf.ones_like(d_model_real)*(1.0 - SMOOTH)))
d_loss_fake = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.zeros_like(d_model_fake)))
g_loss = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.ones_like(d_model_fake)))
d_loss = d_loss_real + d_loss_fake
return d_loss, g_loss
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_loss(model_loss)
Implement model_opt
to create the optimization operations for the GANs. Use tf.trainable_variables
to get all the trainable variables. Filter the variables with names that are in the discriminator and generator scope names. The function should return a tuple of (discriminator training operation, generator training operation).
def model_opt(d_loss, g_loss, learning_rate, beta1):
"""
Get optimization operations
:param d_loss: Discriminator loss Tensor
:param g_loss: Generator loss Tensor
:param learning_rate: Learning Rate Placeholder
:param beta1: The exponential decay rate for the 1st moment in the optimizer
:return: A tuple of (discriminator training operation, generator training operation)
"""
t_vars = tf.trainable_variables()
d_vars = [var for var in t_vars if var.name.startswith('discriminator')]
g_vars = [var for var in t_vars if var.name.startswith('generator')]
with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)):
d_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(d_loss, var_list=d_vars)
g_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(g_loss, var_list=g_vars)
return d_train_opt, g_train_opt
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_opt(model_opt, tf)
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import numpy as np
def show_generator_output(sess, n_images, input_z, out_channel_dim, image_mode):
"""
Show example output for the generator
:param sess: TensorFlow session
:param n_images: Number of Images to display
:param input_z: Input Z Tensor
:param out_channel_dim: The number of channels in the output image
:param image_mode: The mode to use for images ("RGB" or "L")
"""
cmap = None if image_mode == 'RGB' else 'gray'
z_dim = input_z.get_shape().as_list()[-1]
example_z = np.random.uniform(-1, 1, size=[n_images, z_dim])
samples = sess.run(
generator(input_z, out_channel_dim, False),
feed_dict={input_z: example_z})
images_grid = helper.images_square_grid(samples, image_mode)
pyplot.imshow(images_grid, cmap=cmap)
pyplot.show()
Implement train
to build and train the GANs. Use the following functions you implemented:
model_inputs(image_width, image_height, image_channels, z_dim)
model_loss(input_real, input_z, out_channel_dim)
model_opt(d_loss, g_loss, learning_rate, beta1)
Use the show_generator_output
to show generator
output while you train. Running show_generator_output
for every batch will drastically increase training time and increase the size of the notebook. It's recommended to print the generator
output every 100 batches.
def train(epoch_count, batch_size, z_dim, learning_rate, beta1, get_batches, data_shape, data_image_mode):
"""
Train the GAN
:param epoch_count: Number of epochs
:param batch_size: Batch Size
:param z_dim: Z dimension
:param learning_rate: Learning Rate
:param beta1: The exponential decay rate for the 1st moment in the optimizer
:param get_batches: Function to get batches
:param data_shape: Shape of the data
:param data_image_mode: The image mode to use for images ("RGB" or "L")
"""
out_channel_dim = data_shape[3]
image, z, lr = model_inputs(*data_shape[1:], z_dim)
d_loss, g_loss = model_loss(image, z, out_channel_dim)
d_train_opt, g_train_opt = model_opt(d_loss, g_loss, lr, beta1)
print('Input data shape', data_shape)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
global_step = 0
for epoch_i in range(epoch_count):
for batch_images in get_batches(batch_size):
global_step += 1
batch_images *= 2
batch_z = np.random.uniform(-1, 1, size=(batch_size, z_dim))
_ = sess.run(d_train_opt, feed_dict={image: batch_images, z: batch_z, lr: learning_rate})
_ = sess.run(g_train_opt, feed_dict={image: batch_images, z: batch_z, lr: learning_rate})
if global_step % 10 == 0:
# At the end of each epoch, get the losses and print them out
train_loss_d = d_loss.eval({image: batch_images, z: batch_z})
train_loss_g = g_loss.eval({z: batch_z})
print("Global Step {} Epoch {}/{}..."
.format(global_step ,epoch_i+1, epochs),
"Discriminator Loss: {:.8f}...".format(train_loss_d),
"Generator Loss: {:.8f}".format(train_loss_g))
if global_step % 200 == 0:
show_generator_output(sess, 9, z, out_channel_dim, data_image_mode)
show_generator_output(sess, show_n_images, z, out_channel_dim, data_image_mode)
show_generator_output(sess, show_n_images, z, out_channel_dim, data_image_mode)
Test your GANs architecture on MNIST. After 2 epochs, the GANs should be able to generate images that look like handwritten digits. Make sure the loss of the generator is lower than the loss of the discriminator or close to 0.
batch_size = 32
z_dim = 100
learning_rate = 0.001
beta1 = 0.5
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 2
mnist_dataset = helper.Dataset('mnist', glob(os.path.join(data_dir, 'mnist/*.jpg')))
with tf.Graph().as_default():
train(epochs, batch_size, z_dim, learning_rate, beta1, mnist_dataset.get_batches,
mnist_dataset.shape, mnist_dataset.image_mode)
Run your GANs on CelebA. It will take around 20 minutes on the average GPU to run one epoch. You can run the whole epoch or stop when it starts to generate realistic faces.
# same as mnist
batch_size = 64
z_dim = 100
learning_rate = 0.001
beta1 = 0.5
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 1
celeba_dataset = helper.Dataset('celeba', glob(os.path.join(data_dir, 'img_align_celeba/*.jpg')))
with tf.Graph().as_default():
train(epochs, batch_size, z_dim, learning_rate, beta1, celeba_dataset.get_batches,
celeba_dataset.shape, celeba_dataset.image_mode)
When submitting this project, make sure to run all the cells before saving the notebook. Save the notebook file as "dlnd_face_generation.ipynb" and save it as a HTML file under "File" -> "Download as". Include the "helper.py" and "problem_unittests.py" files in your submission.


"""
.. _reverse_dns_lookup:
.. raw:: html
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js"></script>
Getting the host name of a list of IP addresses can be useful in verifying
the authenticity of those IP addresses. You typically want to do this as part
of a :ref:`log file analysis <logs>` pipeline. In this case you have requests
made to your server claiming to be of a certain user agent/bot name. Performing
a :func:`reverse_dns_lookup` on those IP addresses, will get you the actual
host name that they belong to.
What the :func:`reverse_dns_lookup` function does, is simply like running the
`host` command from the command line, but on a massive scale:
.. code-block:: bash
$ host <IP_ADDRESS>
<IP_ADDRESS>.in-addr.arpa domain name pointer google-proxy-66-249-80-0.google.com.
Because you usually have a large number of duplicated IP addresses that you
want to check, this function makes the process practical and efficient, in
comparison to running the command thousands of times from the comand line.
Running the function is very simple, you simply supply a list of the IP
addresses that you have. Make sure to **keep the duplicates**, because the
function handles that for you, as well as provide counts and some statistics on
the frequency of the IPs:
.. container:: thebe
.. thebe-button::
Run this code
.. code-block::
:class: thebe, thebe-init
import advertools as adv
ip_list = ['<IP_ADDRESS>', '<IP_ADDRESS>', '<IP_ADDRESS>',
'<IP_ADDRESS>', '<IP_ADDRESS>', '<IP_ADDRESS>',
'<IP_ADDRESS>', '<IP_ADDRESS>']
host_df = adv.reverse_dns_lookup(ip_list)
host_df
==== ============== ======= =========== ====== ========== ================================= =========================== ============== ======================
.. ip_address count cum_count perc cum_perc hostname aliaslist ipaddrlist errors
==== ============== ======= =========== ====== ========== ================================= =========================== ============== ======================
0 <IP_ADDRESS> 3 3 0.375 0.375 crawl-66-249-66-194.googlebot.com <IP_ADDRESS>.in-addr.arpa <IP_ADDRESS>
1 <IP_ADDRESS> 2 5 0.25 0.625 crawl-66-249-66-91.googlebot.com <IP_ADDRESS>.in-addr.arpa <IP_ADDRESS>
2 <IP_ADDRESS> 1 6 0.125 0.75 mail.garda.ir <IP_ADDRESS>.in-addr.arpa <IP_ADDRESS>
3 <IP_ADDRESS> 1 7 0.125 0.875 31-56-96-51.shatel.ir <IP_ADDRESS>.in-addr.arpa <IP_ADDRESS>
4 <IP_ADDRESS> 1 8 0.125 1 [Errno 1] Unknown host
==== ============== ======= =========== ====== ========== ================================= =========================== ============== ======================
As you can see, in addition to getting hostnames, aliaslist, and ipaddrlist for
the IPs you supplied, you also get counts (absolute and cumulative) as well as
percentages (absolute and cumulative). This can give you a good overview of
the relative importance of each IP, and can help focus attention on them as
needed.
"""
import platform
import socket
from concurrent import futures
import pandas as pd
system = platform.system()
_default_max_workders = 60 if system == 'Darwin' else 600
def _single_request(ip):
try:
hostname, aliaslist, ipaddrlist = socket.gethostbyaddr(ip)
return [ip, hostname, '@@'.join(aliaslist), '@@'.join(ipaddrlist)]
except Exception as e:
return [ip, None, None, None, str(e)]
[docs]def reverse_dns_lookup(ip_list, max_workers=_default_max_workders):
"""Return the hostname, aliaslist, and ipaddrlist for a list of IP
addresses.
This is mainly useful for a long list of typically duplicated IP adresses
and helps in getting the information very fast. It is basically the
equivalent of running the `host` command on the command line many times:
.. code-block:: bash
$ host <IP_ADDRESS>
<IP_ADDRESS>.in-addr.arpa domain name pointer google-proxy-66-249-80-0.google.com.
You also get a simple report about the counts of the IPs to get an overview
of the top ones:
>>> import advertools as adv
>>> ip_list = ['<IP_ADDRESS>', '<IP_ADDRESS>', '<IP_ADDRESS>',
... '<IP_ADDRESS>', '<IP_ADDRESS>', '<IP_ADDRESS>',
... '<IP_ADDRESS>', '<IP_ADDRESS>']
>>> adv.reverse_dns_lookup([ip_list])
==== ============== ======= =========== ====== ========== ================================= =========================== ============== ======================
.. ip_address count cum_count perc cum_perc hostname aliaslist ipaddrlist errors
==== ============== ======= =========== ====== ========== ================================= =========================== ============== ======================
0 <IP_ADDRESS> 3 3 0.375 0.375 crawl-66-249-66-194.googlebot.com <IP_ADDRESS>.in-addr.arpa <IP_ADDRESS>
1 <IP_ADDRESS> 2 5 0.25 0.625 crawl-66-249-66-91.googlebot.com <IP_ADDRESS>.in-addr.arpa <IP_ADDRESS>
2 <IP_ADDRESS> 1 6 0.125 0.75 mail.garda.ir <IP_ADDRESS>.in-addr.arpa <IP_ADDRESS>
3 <IP_ADDRESS> 1 7 0.125 0.875 31-56-96-51.shatel.ir <IP_ADDRESS>.in-addr.arpa <IP_ADDRESS>
4 <IP_ADDRESS> 1 8 0.125 1 [Errno 1] Unknown host
==== ============== ======= =========== ====== ========== ================================= =========================== ============== ======================
:param list ip_list: a list of IP addresses.
:param int max_workers: The maximum number of workers to use for multi
processing.
"""
socket.setdefaulttimeout(8)
count_df = (pd.Series(ip_list)
.value_counts()
.reset_index())
count_df.columns = ['ip_address', 'count']
count_df['cum_count'] = count_df['count'].cumsum()
count_df['perc'] = count_df['count'].div(count_df['count'].sum())
count_df['cum_perc'] = count_df['perc'].cumsum()
hosts = []
if system == 'Darwin':
with futures.ProcessPoolExecutor(max_workers=max_workers) as executor:
for ip, host in zip(ip_list, executor.map(_single_request,
count_df['ip_address'])):
hosts.append(host)
else:
with futures.ThreadPoolExecutor(max_workers=max_workers) as executor:
for host in executor.map(_single_request, count_df['ip_address']):
hosts.append(host)
df = pd.DataFrame(hosts)
columns = ['ip', 'hostname', 'aliaslist', 'ipaddrlist', 'errors']
if df.shape[1] == 4:
columns = columns[:-1]
df.columns = columns
final_df = pd.merge(count_df, df, left_on='ip_address',
right_on='ip', how='left').drop('ip', axis=1)
return final_df


The package has indirect (or also called transitive) dependencies. This means that the child dependencies of the package also have dependencies.
In the following example accepts is flagged 🌲 because mime-types has a mime-db dependency which mean that the package is an indirect dependency of accepts.
Indirect dependencies are dangerous for many reasons and you may found useful informations in these articles / study:


Naberezny, Mary 1
| Married Name | Naberezny, Mary |
| Birth Name | Siuda, Mary |
| Gender | female |
| Age at Death | 76 years, 1 month, 27 days |
Events
| Event | Date | Place | Description | Sources |
|---|---|---|---|---|
| Birth | 1889-02-21 | Austria | Birth | 1 |
|
|
||||
| Marriage (Bride) | 1910-05-09 | Marriage in Lawrence Massachusetts | 1a | |
|
|
||||
| Death | 1965-04-19 | Death | ||
|
Event Note
From Marian Thomas. Cause of death, coronary thrombosis. |
||||
| Immigration | 1904-11-30 | Immigrated to the United States, via New York City. | 2 | |
|
|
Parents
| Relation to main person | Name | Birth date | Death date | Relation within this family (if not by birth) |
|---|---|---|---|---|
| Father | Siuda, Francis | |||
| Mother | Siuda, Frances | |||
| Naberezny, Mary | 1889-02-21 | 1965-04-19 |
Families
Family of Naberezny, John and Naberezny, Mary |
|||||||||||||||||
| Married | Husband | Naberezny, John ( * 1887-10-04 + 1961-02-09 ) | |||||||||||||||
| Children |
| Name | Birth Date | Death Date |
|---|---|---|
| Naberezny, Adam | 1912-04-03 | 1912-04-04 |
| Ross, Helena | 1913-07-25 | |
| Naber, Raymond Edwin | 1917-12-25 | 2015-05-21 |
| Naber, Viktor Daniel | 1922-05-10 |


--- layout: post status: publish published: true title: Need another reason to hate the Reds? author: display_name: Corey Fineran login: Corey email<EMAIL_ADDRESS>url: '' author_login: Corey author_email<EMAIL_ADDRESS>wordpress_id: 4937 wordpress_url: http://ivyenvy.com/?p=4937 date: '2011-04-11 20:39:15 +0000' date_gmt: '2011-04-12 01:39:15 +0000' categories: - General Baseball tags: - Joey Votto - Reds - Cincinnatti comments: - id: 3186 author: Ryan author_email<EMAIL_ADDRESS>author_url: '' date: '2011-04-12 19:13:26 +0000' date_gmt: '2011-04-13 00:13:26 +0000' content: "But really, is there a bad reason to hate Joey Votto?\r\n\r\nMeehan" ---
Check out this shirt, which is available in the Reds MLB.com Shop. If you would like to show your support of Joey Votto, you can purchase this shirt for a great bargain, $39.99.


Default
Default
Color
Color
Color: Themed
Color: Themed
Themed
Themed
Themed w / Color Buttons
Themed w / Color Buttons
Component Level Vars
Component Level Vars
Component Level Vars w/ Color Buttons
Component Level Vars w/ Color Buttons


On the last Wednesday of every month. View details of all our meet-ups on our Meetup page.
Do you use Drupal or Symfony? Do you use Wordpress or Laravel? Whatever your flavour of PHP we'd love to meet you and share our knowledge. We gather once a month for a quiet drink in a local public house, to get to know each other. See you there!
Sponsored by Haybrook IT.
The leading IT recruitment specialists for Oxfordshire and the surrounding counties.
at
The Basement, Oxford.
Postgres for MySQL users
[view Meetup event]
Presented by Liam Wiltshire (@l_wiltshire)
Postgres - a powerful DBMS with a big feature set, good performance, and is built stability. Yet in PHP,
it's commonly overlooked for mySQL (and its forks) or NoSQL options.
If you’re a mySQL user, Postgres might seem strange - from the way you install and configure it to the way
you interact with it and create schemas. Things are different.
Join Liam as he discusses reasons you might use Postgres, and looks at the differences between the two.
--
Liam is a UK based Senior PHP Developer & Business Manager at Tebex, creators of Buycraft.net, the first
e-commerce platform for Minecraft. In his nine years as a dev, he's tackled projects large and small,
from multi-million pound eCommerce sites to the plumber down the road looking for 'mates' rates. These
days Liam focuses on providing gCommerce platforms for multiplayer sandbox games, and in his spare time
is trying to learn the secret to actually having some spare time.
Please sign up on meetup.com
so that we have a good idea of numbers.
Lightning talks
Got an idea you would like to talk about for 5-10
minutes? Let us know.
Social
Afterwards we'll head to a local watering hole for a
beer or two.
Please see our Meetup.com page to see details of past meet-ups.
Please note that all of our meet-ups are subject to our code of conduct. Please read before attending. PHPOxford is committed to ensuring a safe and inclusive environment for all of our members and guests.
We use irc to stay in touch, do join us at #phpoxford on freenode. If you need a hand setting up irc these resources should help: