text:
These Terms of Use ("Terms") are between you ("You," "you" or "Customer") and Lopeca Bilisim Teknolojileri A.S. ("Replybutton"). By placing an order, clicking to accept these Terms, or accessing or using the Replybutton service ("Service") or website ("Site"), You agree to all the terms and conditions of these Terms. If you are entering this Agreement on behalf of a company or an entity, then "You" or "Customer" means that company or entity and You represent and warrant to Replybutton that You have all necessary legal authority to bind that entity or company to these Terms.
These Terms do not apply to any site owned and/or operated by or on behalf of any third party even if we provide a link to such site on one of our Sites. Please refer to the terms of use of any such third-party sites for information regarding the terms and conditions of your use of such sites.
In order to access certain restricted portions of this Site or to sign-up for the Service, You must be 18 years old and You are required to register on this Site by completing a Registration Form. Replybutton may accept or reject any Registration Form in its sole discretion. You represent and warrant that the information provided when registering is accurate, complete and current as of the date submitted and that You will update such information from time to time as necessary. These Terms shall be incorporated into, and form an integral part of, each Registration Form.
As part of the registration process, You will select a user name based on your e-mail ("User Name"), and a password ("Password") to access the User Name. Your User Name and Password are your credentials ("Credentials") to access the restricted portions of this Site. You may not have a User Name that is vulgar, attempts to impersonate another person, or violates the rights of others. Replybutton may also reject any User Name that Replybutton determines in its discretion is unacceptable for use on this Site.
You are solely responsible for all use of this Site under your User Name and Password and for maintaining the confidentiality of your User Names and Passwords and will (i) promptly notify Replybutton of any actual or suspected unauthorized use of this Site or Service, and (ii) ensure that you exit from your account at the end of each session. If you disclose or otherwise allow discovery of your User Name and/or Passwords to or by any person(s) or entity, you assume all risks and losses associated with such disclosure. Please note that Replybutton will store a Password retrieval question and answer, which allows you the ability to retrieve your Password. If You do not answer the retrieval question correctly within the stated number of attempts, your User Name will be permanently deactivated, and you will need to re-register on the Site with a new User Name and Password.
You agree not to engage in any of the following prohibited activities: (i) copying, modifying, creating derivatives, distributing, disclosing, selling or offering to sell any part of the Site or Service in any medium, including without limitation by any automated or non-automated scraping; (ii) using any automated system, including without limitation robots, spiders, offline readers, etc., to access the Site or Service in a manner that sends more request messages to the Replybutton servers than a human can reasonably produce in the same period of time by using a conventional on-line web browser except that Replybutton grants the operators of public search engines revocable permission to use spiders to copy materials from replybutton.com for the sole purpose of and solely to the extent necessary for creating publicly available searchable indices of the materials, but not caches or archives of such materials); (iii) transmitting spam, chain letters, or other unsolicited email through the Site or Service; (iv) attempting to interfere with, compromise the system integrity or security or decipher any transmissions to or from the servers running the Service; (v) taking any action that imposes, or may impose at our sole discretion an unreasonable or disproportionately large load on our infrastructure; (vi) uploading invalid data, viruses, worms, or other software agents through the Site or Service; (vii) collecting or harvesting any personally identifiable information, including account names, from the Site or Service; (viii) impersonating another person or otherwise misrepresenting your affiliation with a person or entity, conducting fraud, hiding or attempting to hide your identity; (ix) interfering with the proper working of the Site or Service; (x) accessing any content on the Site or Service through any technology or means other than those provided or authorized by the Site or Service; or (xi) bypassing the measures we may use to prevent or restrict access to the Site Service, including without limitation features that prevent or restrict use or copying of any content or enforce limitations on use of the Site or Service or the content therein.
We may, without prior notice, change the Site or Service; stop providing the Site or Service or features of the Site or Service, to you or to users generally; or create usage limits for the Service. We may permanently or temporarily terminate or suspend your access to the Site or Service without notice and liability for any reason, including if in our sole determination you violate any provision of these Terms, or for no reason. Upon termination for any reason or no reason, you continue to be bound by these Terms.
Replybutton has the right to modify, suspend or discontinue, temporarily or permanently, the Site or Service, any products or services provided by Replybutton through the Site or Service, or your right to access or use any portion of the Site or Service, in Replybutton 's sole discretion, at any time and without prior notice, for any reason, including without limitation: (1) attempts by you (or another party) to gain unauthorized access to the Site, Service or assist others in attempting to do so, (2) your (or another party's) disabling of any security features on the Site or Service, (3) your violation of these Terms, (4) suspected or actual infringement of a third party's intellectual property rights or (5) pursuant to requests by law enforcement or other government agencies. The obligations and liabilities you incurred prior to the termination date shall survive the termination of these Terms for all purposes. In the event of any such termination, the restrictions on your use of the material on the
Site or Service shall survive such termination, and you agree to be bound by those terms. You acknowledge and agree that Replybutton shall not be liable to you or to any third party for any modification, suspension or discontinuance of any site or any service or information provided on this site or accessed by you through this site or service.
Replybutton Site, Service and Content. The Service, Site and all materials therein or transferred thereby, including, without limitation, software, images, text, graphics, illustrations, logos, patents, trademarks, service marks, copyrights, photographs, audio, videos, music, and all Intellectual Property Rights related there to, are the exclusive property of Replybutton and, to the extent applicable, its licensors. Except as explicitly provided herein, nothing in these Terms shall be deemed to create a license in or under any such Intellectual Property Rights, and you agree not to sell, license, rent, modify, distribute, copy, reproduce, transmit, publicly display, publicly perform, publish, adapt, edit or create derivative works from any Replybutton content. Use of the Replybutton content for any purpose not expressly permitted by these Terms is strictly prohibited.
You may choose to or we may invite you to submit comments or ideas about the Site, Service or the Replybutton content, including without limitation about how to improve the Site, Service, our products, services and the Replybutton content. By submitting any idea, you agree that your disclosure is gratuitous, unsolicited and without restriction and will not place Replybutton under any fiduciary or other obligation, and that we are free to use the idea without any additional compensation to you, and/or to disclose the idea on a non-confidential basis or otherwise to anyone. You further acknowledge that, by acceptance of your submission, Replybutton does not waive any rights to use similar or related ideas previously known to Replybutton, or developed by its employees, or obtained from sources other than you.
Subject to the terms and conditions of these Terms, you are hereby granted a non-exclusive, limited, non-transferable, freely revocable license to use the Site, Service and Replybutton content for your personal or internal business purpose use only and as permitted by the features of the Site or Service. Replybutton reserves all rights not expressly granted herein in the Site, Service and the Replybutton content. Replybutton may terminate this license at any time for any reason or no reason.
The Site provides general information about Replybutton and its products and services. Use of this Site is limited to legitimate purposes. Replybutton may, from time to time, introduce new features to the Site or Service, or modify or delete existing features, in its sole discretion. Replybutton shall notify you of any of these changes to features to the extent Replybutton is required by law to do so. By using any new or modified features to the Site or Service when they become available, you agree to be bound by these Terms concerning such new features.
Replybutton has no obligation to update any information or content on any Site. Accordingly, Replybutton, its subsidiaries, affiliated companies and joint partners assume no responsibility regarding the accuracy of the information or content provided on the Site. Any use of the information or content provided on this Site is done so at your own risk.
The Site may contain links to websites controlled or offered by third parties. Replybutton hereby disclaims liability for any other company's website content, products, services, privacy policies, or security. In the event you choose to use the services or products available at a linked site, you agree to read and adhere to the policies and terms of use applicable to that site. In addition, any advice, opinions or recommendations provided by the linked site providers are those of the providers and not of Replybutton. Your participation in any linked site, including payment for and the delivery of goods or services, is based solely on the agreement, if any, between you and the linked site provider.
Certain aspects of the Service may be provided for a fee or other charge. If you elect to use paid aspects of the Service, you agree to the pricing and payment terms listed on the Site, as Replybutton may update them from time to time. Replybutton may add new services for additional fees and charges, or amend fees and charges for existing services, at any time in its sole discretion. Any change to our pricing or payment terms shall become effective in the billing cycle following notice of such change to you as provided in these Terms. Replybutton may lock your account for non-payment at any time. In addition to the amount due, delinquent accounts and/or chargebacks will be charged with fees and/or charges that are incidental to the collection of delinquent accounts and/or chargebacks including, but not limited to, collection fees and/or convenience fees and/or other third parties' charges. You hereby explicitly agree that all communication in relation to delinquent accounts will be made by electronic mail or by phone. Such communication may be made by Replybutton or by anyone on our behalf, including but not limited to a third party collection agent. You may cancel the Service at any time by sending an email to Replybutton at email@example.com . If you cancel the Service during the middle of a month, Replybutton will not provide you with a pro-rata refund of any prepaid fees. All fees paid for the Service are nonrefundable.
All information that you provide in connection with a purchase or transaction or other monetary transaction interaction with the Service must be accurate, complete, and current. You agree to pay all charges incurred by users of your credit card, debit card, or other payment method used in connection with a purchase or transaction or other monetary transaction interaction with the Service at the prices in effect when such charges are incurred. You will pay any applicable taxes, if any, relating to any such purchases, transactions or other monetary transaction interactions.
Replybutton is under no obligation to offer a free trial of any products or services. However, Replybutton may, at its sole discretion, offer free trials. Replybutton makes no warranties about the delivery time of such a free trial, and all free trials are subject to discontinuation by Replybutton at any time for any reason, without notice. Upon the cancellation of a free subscription of the Service, any discount obtained via a coupon code will be null and void and any future subscription for the Service will be charged pursuant to Replybutton 's normal pricing structure at that time.
Some of Replybutton's products and services exist and rely on sites owned and operated by third-parties. Certain functional aspects of Replybutton's products and services may be out of our control. Accordingly, Replybutton cannot guarantee the continued reliability or functionality of products or services hosted on third-party sites. Replybutton will make commercially reasonable efforts to assist you in accessing and trouble-shooting affected products.
You understand that some websites may require permission to scan their URL or website content. According, You agree that You have obtained the necessary permission to access and scan any URLs or website content that you submit through the Site or Service. Replybutton hereby disclaims, and You release Replybutton from any and all liability associated with unauthorized scanning of any website URL or website content.
Replybutton makes no representation that materials on the Site or the Service are appropriate or available for use in locations outside the Turkey, and accessing them from territories where their contents are illegal is prohibited. Those who choose to access the Site or Service from other locations do so on their own initiative and are responsible for compliance with local laws.
EU General Data Protection Regulation (GDPR), which takes effect on May 25, 2018. Replybutton does not and cannot offer you any legal advice on what actions you may need to take to comply with the GDPR. However, Replybutton has been and continues to implement various policies and safeguards to ensure that we are complying with the regulation and providing our customers with tools that may help them comply.
There may be opportunities for you to contribute information, data or materials to the Site, which may include, among others, uploading information, participating in chats, using our bulletin boards, etc., which information, data or materials we collectively call "User Content." Replybutton is not liable or responsible for any User Content provided by its users or other third parties to the Site, including Suppliers. The contributions of third parties do not necessarily represent the view or opinions of Replybutton. Replybutton cannot preview User Content before it appears on the Site. You can be held liable for any illegal or prohibited User Content you provide to any Site, including among other things, infringing, defamatory or offensive materials. If you discover this kind of material on any Site, please notify us at email@example.com. We will investigate your claim promptly and may then take the actions deemed appropriate.
You acknowledge and agree that any information, comments, documents, images or general content you enter in or post on this Site may be viewed by any other users with access to this Site, and therefore will not be considered confidential by you. By providing any such information, comments, documents, images or general content to Replybutton, you grant to Replybutton an unrestricted, irrevocable, worldwide, royalty-free license to use, reproduce, display, publicly perform, transmit and distribute such information, comments, documents, images or general content on this Site. You further agree that Replybutton is free to use any ideas, concepts or know-how that you, or individuals acting on your behalf, provide to Replybutton.
For the avoidance of doubt, the Site or Service may automatically produce search results that reference or link to third-party sites throughout the World Wide Web. Replybutton has no control over those sites or the content within them. Replybutton cannot guarantee, represent or warrant that the content contained in those third-party sites is accurate, legal and/or inoffensive. Replybutton does not endorse the content of any third-party site, nor do we warrant that they will not contain viruses or otherwise impact your computer. By using the Site or Service to search for or link to another site, you agree and understand that you may not make any claim against Replybutton for any damages or losses whatsoever resulting from your use of the Site or Service to obtain search results or to link to another site. If you have a problem with a link from the Site or Service, please notify us at email@example.com and we will investigate your claim promptly and take any actions we deem appropriate in our sole discretion.
This Site may use hyperlinks as a convenience to you so that certain reference material, Replybutton related subjects and other pertinent material is easily accessible. Linked and referenced sites may not be operated, controlled or maintained by Replybutton. Hyperlinks and references to other sites, including any Replybutton -affiliated entity, do not constitute sponsorship, endorsement or approval by Replybutton of the information, content, policies or practices of such linked or referenced sites. Replybutton, its subsidiaries, affiliated companies and joint partners do not accept any responsibilities for any information or content, availability, policies, practices or any use of such sites. You access, browse and use such sites at your own risk.
For the avoidance of doubt, the Site may not be used by our visitors for any commercial purposes other than to inquire about the products or services of Replybutton, and use such products or services, without the express consent of Replybutton. You must obtain our prior written consent to make commercial offers of any kind on the Site, whether by advertising, solicitations, links, or any other form of communication. Without limiting the foregoing, you may not resell or link to other sites for the purpose of selling Replybutton products or services of any kind. We will investigate and take appropriate legal action against anyone who violates this provision, including, without limitation, removing the offending communication from the Site and barring such violators from use of the Site. We reserve the right to block access to or cancel any order for any user known or reasonably believed to be in violation of this provision.
You understand and agree that in Replybutton's sole discretion, and without prior notice, we may terminate your access to the Site or Service, cancel any transactions or exercise any other remedy available and remove any unauthorized User Content if we believe that the User Content you provided, or your use of the Site or Service, has violated or is inconsistent with these Terms or violated the rights of Replybutton, another user, or the law or constitutes a breach of these Terms. You agree that monetary damages may not provide a sufficient remedy to Replybutton for violations of these Terms and you consent to injunctive or other equitable relief for such violations. Replybutton may release user information about you if required by law or subpoena, or if release of the information is necessary or appropriate to address an unlawful or harmful activity. Replybutton is not required to provide any refund to you if your account is terminated because you have violated these Terms.
Replybutton is not responsible for the products, services, actions or failures to act of any third party referenced on the Site. Without limiting the foregoing, you may report the misconduct of users and/or third-party advertisers, service and/or product providers referenced on or included in the Site to us at firstname.lastname@example.com. We may investigate the claim and take appropriate action, in our sole discretion.
You use the site, the service and the products and other services offered on the site at your own risk. All information and content and all products and services offered or accessed through the site or service, including content provided by third-party providers, advertisers and sponsors on any site, is provided "as is" without any express or implied warranty or representation of any kind, including, without limitation, any implied warranties of merchantability, fitness for a particular purchase, title or non-infringement. All information, content, products and services offered or accessed through any hyperlinked site is provided "as is" without any express or implied warranty or representation of any kind, and is used at your own risk.
Without limiting the above disclaimers, Replybutton and its subsidiaries, affiliated companies, agents, and joint partners: (1) make no warranties or representations whatsoever concerning this site, the service or any other internet site, the access to, or the availability or use of, this site, the service or any other internet site, the information and content from whatever source posted on or referred to on the site, the service or any other internet site or the accuracy, completeness or timeliness of such information or content; (2) do not warrant or represent that your access to, or use of, this site, the service or any other internet site will be uninterrupted or free of errors or omissions, that defects will be corrected, or that this site, the service or any other internet site is, or the information or content from whatever source available for use or downloading are, free of computer viruses, worms, trojan horses or other harmful components; (3) do not represent or warrant that the service or any other services or products listed on, or accessed through, this site will be available for purchase or not withdrawn at any time and makes no representation or warranty of any kind whatsoever concerning such products or services; and (4) do not represent or warrant the accuracy, functionality or specifications or any other aspect of items from whatever source posted or accessed through this site. Please note that some jurisdictions may not allow the exclusion of implied warranties, so some of the above exclusions may not apply to you.
In no event will Replybutton, its subsidiaries, affiliated companies, agents, or suppliers be liable to you or any party for any direct, indirect, special or other consequential damages arising out of or related to your use of this site, the service or any of the products or services offered or accessed through this site, or any other hyperlinked site, including, without limitation, any lost revenues, lost profits, loss of prospective economic advantage, business interruption, loss of programs or other data on your system or otherwise arising out of the use or misuse of or inability to use any site or the information, content, documents or software thereof, even if Replybutton, its subsidiaries, affiliated companies, agents, or suppliers are advised of the possibility of such damages or for any claim by a third party. Your sole and exclusive remedy against Replybutton, its subsidiaries, affiliated companies, agents, and suppliers is to discontinue use of this site and any hyperlinked sites and to discontinue the use of products and services offered or accessed on this site and any hyperlinked sites.
You agree to defend, indemnify, save and hold harmless Replybutton and its subsidiaries, affiliated companies, joint partners and licensees and their respective directors, members, shareholders, officers, employees and agents from and against all liabilities, claims, damages and expenses, including reasonable attorneys' fees as incurred, arising out of your use of the Site and the Service, including any violation or alleged violation of these Terms.
Although information and User Content may be available through the Site or Service, You should not construe such information and content as expressing the opinions of or endorsement by Replybutton. You alone bear the responsibility of evaluating any information or content available on the Site or Service. In exchange for using such information or content, You hereby agree to release Replybutton from any claim and to not hold Replybutton liable for any possible claim for damages arising from any decision You may make based on information or content available on the Site or the Service.
You warrant to Replybutton that you will not attempt to gain unauthorized access to any services offered by Replybutton or computer systems or networks connected to any Replybutton server through hacking, password mining or any other means. You may not obtain or attempt to obtain any materials or information through any means not intentionally made available by Replybutton. When using the Site You agree not to pretend to be someone else or spoof their identity.
Replybutton controls the Site and the Service (excluding linked sites) from its offices in Carmel, Indiana and makes no representation that any content contained in this Site is appropriate or available for use in other locations. Accessing this Site in locations where the use of such content is illegal is prohibited. By accessing this Site You agree that the statutes and laws of the State of Illinois, notwithstanding any principles of conflicts of law, will apply to all matters relating to use of the Site and the Service and that if You use this Site from any other location you are responsible for compliance with applicable local laws. Any claim relating to the Site or Service shall be litigated in the state and federal courts having jurisdiction in the State of Indiana and You hereby consent to the jurisdiction and venue of those courts. If any part of these Terms is deemed unlawful, void or unenforceable, that part will be deemed severable and will not affect the validity and enforceability of any remaining provisions. Regardless of any statute or law to the contrary, any claim or cause of action arising out of or related to use of the Site, the Service or these Terms must be filed within one (1) year after such claim or cause of action arose or be forever barred. The section titles herein are for convenience only and have no legal or contractual effect. When applicable, You further agree, as a condition of using this Site, to ensure that all of your agents, employees and independent contractors adhere to these Terms.


text:
National Institute of Environmental Health Sciences; Notice of Meeting, 41761 [07-3726]Download as PDF
[Federal Register Volume 72, Number 146 (Tuesday, July 31, 2007)] [Notices] [Page 41761] From the Federal Register Online via the Government Printing Office [www.gpo.gov] [FR Doc No: 07-3726] ----------------------------------------------------------------------- DEPARTMENT OF HEALTH AND HUMAN SERVICES National Institutes of Health National Institute of Environmental Health Sciences; Notice of Meeting Pursuant to section 10(d) of the Federal Advisory Committee Act, as amended (5 U.S.C. Appendix 2), notice is hereby given of a meeting of the National Advisory Environmental Health Sciences Council. The meeting will be open to the public as indicated below, with attendance limited to space available. Individuals who plan to attend and need special assistance, such as sign language interpretation or other reasonable accommodations, should notify the Contact Person listed below in advance of the meeting. The meeting will be closed to the public in accordance with the provisions set forth in sections 552b(c)(4) and 552b(c)(6), Title 5 U.S.C., as amended. The grant applications and the discussions could disclose confidential trade secrets or commercial property such as patentable material, and personal information concerning individuals associated with the grant applications, the disclosure of which would constitute a clearly unwarranted invasion of personal privacy. Name of Committee: National Advisory Environmental Health Sciences Council. Date: September 17-18, 2007. Open: September 17, 2007, 8:30 a.m. to 12:30 p.m. Agenda: Discussion of program policies and issues. Place: Nat. Inst. of Environmental Health Sciences, Building 101, Rodbell Auditorium, 111 T. W. Alexander Drive, Research Triangle Park, NC 27709. Closed: September 17, 2007, 1:30 p.m. to 5 p.m. Agenda: To review and evaluate grant applications. Place: Nat. Inst. of Environmental Health Sciences, Building 101, Rodbell Auditorium, 111 T. W. Alexander Drive, Research Triangle Park, NC 27709. Open: September 18, 2007, 8:30 a.m. to 12 p.m. Agenda: Discussion of program policies and issues. Place: Nat. Inst. of Environmental Health Sciences, Building 101, Rodbell Auditorium, 111 T. W. Alexander Drive, Research Triangle Park, NC 27709. Contact Person: Dennis R. Lang, PhD, Acting Director, Division of Extramural Research and Training, Nat. Inst. of Environmental Health Sciences, National Institutes of Health, P.O. Box 12233/EC- 3431, 79 Alexander Drive, Research Triangle Park, NC 27709, (919) 541-7729, email@example.com. Any interested person may file written comments with the committee by forwarding the statement to the Contact Person listed on this notice. The statement should include the name, address, telephone number and when applicable, the business or professional affiliation of the interested person. In the interest of security, NIH has instituted stringent procedures for entrance onto the NIH campus. All visitor vehicles, including taxicabs, hotel, and airport shuttles will be inspected before being allowed on campus. Visitors will be asked to show one form of identification (for example, a government-issued photo ID, driver's license, or passport) and to state the purpose of their visit. Information is also available on the Institute's/Center's home page: http://www.niehs.nih.gov/dert/c-agenda.htm, where an agenda and any additional information for the meeting will be posted when available. (Catalogue of Federal Domestic Assistance Program Nos. 93.115, Biometry and Risk Estimation--Health Risks from Environmental Exposures; 93.142, NIEHS Hazardous Waste Worker Health and Safety Training; 93.143, NIEHS Superfund Hazardous Substances--Basic Research and Education; 93.894, Resources and Manpower Development in the Environmental Health Sciences; 93.113, Biological Response to Environmental Health Hazards; 93.114, Applied Toxicological Research and Testing, National Institutes of Health, HHS). Dated: July 24, 2007. Jennifer Spaeth, Director, Office of Federal Advisory Committee Policy. [FR Doc. 07-3726 Filed 7-30-07; 8:45 am] BILLING CODE 4140-01-M

subset: commoncrawl


text:
Hello friends. I hope life is good out in internet land. I have been busy taking care of my "other sites." That's right, I have been cheating on The Smithocracy. Never fear dear reader, The Smithocracy is safe. However you may or may not be aware that when I am quiet over here, I am being loud elsewhere. tanniesmith.com has gotten a makeover lately. I've reorganized the portfolio and updated (read completely changed) the store. But the biggest news, is that I added a blog! Now there is a place for me to talk about what is coming out of the art studio these days. I would love it if you would check it out and send any feed back my way. I am hoping to get a little more personal in the process of each piece and give people a behind the scenes kind of look on some of the art I create. Whether it be a simple sketch or a major piece.
Also you can now follow me on instagram, not just as The Smithocracy, but as @createdby_tanniesmith. This is my artagram, I guess you would say. An easy way to see what I am currently up to day to day.
But the title of this post is Store Chore. That is because setting up the store has been a HUGE chore! Also it rhymes in a clever and convenient way.
Up till now I have been selling prints of my work directly from…well…me. However that has been somewhat of a pain. To keep track of orders, make sure things are packaged rightl and sent to the right place. To print and print and print, till the right color, layout etc. finally come out…I'm over it. I have officially turned all that over to a few online art sites.
The main site is Fine Art America. They will be my main supplier and are handling the store that is actually built into my personal website. They offer way better prints than I can, as well as canvas and acrylic prints. They even sell my work at the original sizes I created it for. So if you have been one of the many trying to steal my World Map piece, well stop it. You can have one of your own now. Nearly full size too. Or teeny tiny, if you'd rather.
Or if you wanted the "Establish a House" poster as giant as I have it, you can do that too!
They even sell it in the full size on stretched canvas. oooooo ahhhhhhh. That's nicer than I have it! Imma gonna have to get that.
My point is that they give you choices, and I don't have to do all the heavy lifting. Just keep creating.
I'm also using some other sites for items such as pillows, mugs, t-shirts, stickers, you get the idea. Some of the stuff is super cute on other products. Like I totally want this "A is for…" pillow for Austin's room.
I made that and didn't even know it could be so Awesome. A is also for awesome ;-)
And I can't even decide which "Robot" item to get for Logan.
So can you see why I decided to outsource? They can do a way better job than I.
So please check it all out. (links below) Let me know what you think. If you see something that you like comment below! Perhaps if there is one popular item, I can do a giveaway…just saying…
Also if you could tell me about what your user experience was like on each store. I am sort of testing a couple of these out, not sure if I will stick with them. Fine Art America is here to stay. I love what they have to offer. The others, I am still not so sure of.
Feedback makes me feel like the Store is less Chore and more…um…Adore? What rhymes with chore that means fun? *shrugs*
My Store Links
Fine Art America – Prints, canvas, originals
Society 6 – prints, iPhone cases, pillows, mugs, totes, clocks, t-shirts
Red Bubble – stickers, prints, t-shirts pillows
P.S. Wow you guys have been keeping my stats bar busy lately. Thanks so much!! Do me a solid and show me who you are by liking the Created By site on Facebook. Or keep showing The Smithocracy the love. Either way, we feel special.


text:
When I wrote Any.DO's sync system, about 18 months ago, I wanted to use the built in AccountManager API to authenticate and store the users' credentials. When I used it to access Google accounts it seems a pretty simple experience, so I thought I should do that for Any.DO as well. It also goes very well with a sync mechanism (using a SyncAdapter), making it the perfect solution. The problem - no good documentation was out there. The developers community didn't have much experience with that back then, and since we didn't have much time to figure out issues that could arise from this "No man's land", a decision was made to use other methods.
But times have changed..
I recently studied that feature again for a project I'm working on, and saw there's a huge improvement with the knowledge about it. Besides the better documentation on the Android.com site, more and more tutorials went out to the wild, feeding us with knowledge about the mysteries of the notorious Account Manager. Some tales were told about the road to create your own account. I read pretty much all of them.
But..they all still miss something.
I didn't feel that I actually know everything I wanted to know about the process, and some parts weren't clear enough. So I did what I usually do when I want to know everything about something - investigate it "Jack Bauer style"! This post is the in-depth conclusion of my journey, with all the quirks and features that this service provides and I thought was important enough to find out. There will be a followup post about Sync Adapters as well, so I recommend RSS/Twitter subscribing to be notified…if you're into this kind of stuff. I've been pretty thorough learning all those features, not just the basic stuff as all other tutorials did, but if I forgot something - please let me know by commenting this post.
Why Account Manager?
Why really?
Why not just write a simple sign-in form, implement a submit button that post the info to the server and return an auth token? The reason for that is the extra features you get and in the small details that you don't always cover. All those "corners" that developers often miss when they need their users to sign-in, or dismiss by saying "This will happen to 1 out of 100000 users! It's nothing!". What happens if the user changes the password on another client? Has an expired auth-token? Runs a background service that doesn't have a UI the user can interact with? Wants the convenience of logging-in once and get automatically authenticated on all account-related app (like all Google's apps do)?
Reading this article will probably make you think it's complicated stuff, but it's not! Using the Account Manager actually simplifies the authentication process for most cases, and since I'm already giving you a working code sample - why not use it :)
So, to recap the benefits:
Pros: Standard way to authenticate users. Simplifies the process for the developer. Handles access-denied scenarios for you. Can handle multiple token types for a single account (e.g. Read-only vs. Full-access). Easily shares auth-tokens between apps. Great support for background processes such as SyncAdapters. Plus, you get a cool entry for your account type on the phone's settings:
Look mom, my name is on the settings screen!
Cons: Requires learning it. But hey, that's what you're here for, isn't it?
The steps we'll performs to get this done:
Creating our Authenticator - the brain behind this operation
Creating the Activities - in those the user will enter his credentials
Creating the Service - through it we can communicate with the authenticator
But first, some definitions.
Lets start with the basics - these are the main parts here:
Authentication Token (auth-token) - A temporary access token (or security-token) given by the server. The user needs to identify to get such token and attach it to every request he sends to the server. On this post I'll use OAuth2 as the authentication standard, since it's the most popular method there is.
Your authenticating server - The server that will manage all the users that use your product. It will generate an auth-token for any user that logs in and verify it for every request the user makes on your server. The auth-token can be time limited and expire after a period of time.
AccountManager - Managing all the accounts on the device and pretty much running the show. Apps can request auth-tokens from it and that's its job to get it done. Whether it means it needs to open a new "Sign-in"/"Create account" activity, or retrieving a stored auth-token that was previously requested, the AccountManager knows who to call and what to do on each scenario to get the job done.
AccountAuthenticator - A module to handle a specific account type. The AccountManager find the appropriate AccountAuthenticator talks with it to perform all the actions on the account type. The AccountAuthenticator knows which activity to show the user for entering his credentials and where to find any stored auth-token that the server has returned previously. This can be common to many different services under a single account type. For instance, Google's authenticator on Android is authenticating Google Mail service (Gmail) along with other Google services such as Google Calendar and Google Drive.
AccountAuthenticatorActivity - Base class for the "sign-in/create account" activity to be called by the authenticator when the user needs to identify himself. The activity is in charge of the sign-in or account creation process against the server and return an auth-token back to the calling authenticator.
Whenever your app needs an auth-token, it only talks with one method, the AccountManager#getAuthToken(). The AccountManager will take it from there and jump through hoops to get you that token. Here's a nice diagram of the process from Google's documentation:
It may look a little cumbersome, but it's fairly simple. I'll explain the common case where we log-in to an account for the first time on the device.
First time logging-in
The app asks the AccountManager for an auth-token.
The AccountManager asks the relevant AccountAuthenticator if it has a token for us.
Since it has none (there's no logged-in user), it show us a AccountAuthenticatorActivity that will allow the user to log-in.
The user logs-in and auth-token is returned from the server.
The auth-token is stored for future use in the AccountManager.
The app gets the auth-token it requested
Everyone's happy!
In case the user has already logged-in, we would get the auth-token back already on the second step. You can read more about authenticating using OAuth2 here.
Now that we know the basics, let's see how to create our own account type authenticator.
Creating our Authenticator
As written earlier, the Account Authenticator is the one that gets addressed by the AccountManager to fulfill all account relevant tasks: Getting stored auth-token, presenting the account log-in screen and handling the user authentication against the server.
Creating our own Authenticator requires extending AbstractAccountAuthenticator and implementing some methods. Let's focus for now on the 2 main methods:
Called when the user wants to log-in and add a new account to the device.
We need to return a Bundle with the Intent to start our _AccountAuthenticatorActivity _(explained later). This method can be called by the app itself by calling AccountManager#addAccount() (requires a special permission for that) or from the phone's settings screen, as seen here:
Add an account from the device's Settings
public Bundle addAccount(AccountAuthenticatorResponse response, String accountType, String authTokenType, String[] requiredFeatures, Bundle options) throws NetworkErrorException {
final Intent intent = new Intent(mContext, AuthenticatorActivity.class);
intent.putExtra(AuthenticatorActivity.ARG_ACCOUNT_TYPE, accountType);
intent.putExtra(AuthenticatorActivity.ARG_AUTH_TYPE, authTokenType);
intent.putExtra(AuthenticatorActivity.ARG_IS_ADDING_NEW_ACCOUNT, true);
intent.putExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE, response);
final Bundle bundle = new Bundle();
bundle.putParcelable(AccountManager.KEY_INTENT, intent);
return bundle;
Explained by the diagram above. Gets a stored auth-token for the account type from a previous successful log-in on this device. If there's no such thing - the user will be prompted to log-in. After a successful sign-in, the requesting app will get the long-awaited auth-token. To do all that, we need to check the AccountManager if there's an available auth-token by using AccountManager#peekAuthToken(). If there isn't we return the same result as for addAccount().
public Bundle getAuthToken(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options) throws NetworkErrorException {
// Extract the username and password from the Account Manager, and ask
// the server for an appropriate AuthToken.
final AccountManager am = AccountManager.get(mContext);
String authToken = am.peekAuthToken(account, authTokenType);
// Lets give another try to authenticate the user
if (TextUtils.isEmpty(authToken)) {
final String password = am.getPassword(account);
if (password != null) {
authToken = sServerAuthenticate.userSignIn(account.name, password, authTokenType);
// If we get an authToken - we return it
if (!TextUtils.isEmpty(authToken)) {
final Bundle result = new Bundle();
result.putString(AccountManager.KEY_ACCOUNT_NAME, account.name);
result.putString(AccountManager.KEY_ACCOUNT_TYPE, account.type);
result.putString(AccountManager.KEY_AUTHTOKEN, authToken);
return result;
// If we get here, then we couldn't access the user's password - so we
// need to re-prompt them for their credentials. We do that by creating
// an intent to display our AuthenticatorActivity.
final Intent intent = new Intent(mContext, AuthenticatorActivity.class);
intent.putExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE, response);
intent.putExtra(AuthenticatorActivity.ARG_ACCOUNT_TYPE, account.type);
intent.putExtra(AuthenticatorActivity.ARG_AUTH_TYPE, authTokenType);
final Bundle bundle = new Bundle();
bundle.putParcelable(AccountManager.KEY_INTENT, intent);
return bundle;
If the auth-token we got from this method is not valid anymore, because of time expiration or changed password from a different client, you need to invalidate the current auth-token on the AccountManager and ask for a token once again. Invalidating the current token is done by calling AccountManager#invalidateAuthToken(). The next call to getAuthToken() will try to log-in with the stored password and if it fails - the user will have to enter his credentials again.
So..where will the user enter his credentials? That'll be in our derivation for AccountAuthenticatorActivity
Creating the Activity
Our AccountAuthenticatorActivity is the only direct interaction that we have with the user.
This activity will show the user a log-in form, authenticate him with our server, and return the result to the calling authenticator. The reason we extend from AccountAuthenticatorActivity, and not just from the regular Activity, is the setAccountAuthenticatorResult() method. This method is in charge of taking back the result from the authentication process on the activity and return it to the Authenticator, who called this activity in the first place. It saves us the need to keep a response interface to communicate with the Authenticator ourselves.
I built a simple username/password form on my Activity. You can use the Login Activity Template suggested on the Android site. When submitting I call this method:
public void submit() {
final String userName = ((TextView) findViewById(R.id.accountName)).getText().toString();
final String userPass = ((TextView) findViewById(R.id.accountPassword)).getText().toString();
new AsyncTask<Void, Void, Intent>() {
protected Intent doInBackground(Void... params) {
String authtoken = sServerAuthenticate.userSignIn(userName, userPass, mAuthTokenType);
final Intent res = new Intent();
res.putExtra(AccountManager.KEY_ACCOUNT_NAME, userName);
res.putExtra(AccountManager.KEY_ACCOUNT_TYPE, ACCOUNT_TYPE);
res.putExtra(AccountManager.KEY_AUTHTOKEN, authtoken);
res.putExtra(PARAM_USER_PASS, userPass);
return res;
protected void onPostExecute(Intent intent) {
sServerAuthenticate is the interface to our authenticating server. I implemented methods such as userSignIn and userSignUp that return the auth-token from the server, upon a successful log-in.
mAuthTokenType is the type of token that I request from the server. I can have the server give me different tokens for read-only or full access to an account, or even for different services within the same account. A good example is the Google account, which provides several auth-token types: "_Manage your calendars", "Manage your _tasks", "View your calendars" and more.. On this particular example I don't do anything different for the various auth-token types.
When I finish, I call finishLogin():
private void finishLogin(Intent intent) {
String accountName = intent.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
String accountPassword = intent.getStringExtra(PARAM_USER_PASS);
final Account account = new Account(accountName, intent.getStringExtra(AccountManager.KEY_ACCOUNT_TYPE));
if (getIntent().getBooleanExtra(ARG_IS_ADDING_NEW_ACCOUNT, false)) {
String authtoken = intent.getStringExtra(AccountManager.KEY_AUTHTOKEN);
String authtokenType = mAuthTokenType;
// Creating the account on the device and setting the auth token we got
// (Not setting the auth token will cause another call to the server to authenticate the user)
mAccountManager.addAccountExplicitly(account, accountPassword, null);
mAccountManager.setAuthToken(account, authtokenType, authtoken);
} else {
mAccountManager.setPassword(account, accountPassword);
setResult(RESULT_OK, intent);
This method gets a fresh auth-token and do the following:
Existing account with an invalidated auth-token - in this case, we already have a record on the AccountManager. The new auth-token will replace the old one without any action by you, but if the user had changed his password for that, you need to update the AccountManager with the new password too. This can be seen in the code above.
You add a new account to the device - that's a tricky part. When creating an account, the auth-token is NOT saved immediately to the AccountManager, it needs to be saved explicitly. That's why I'm setting the auth-token explicitly after adding the new account to the AccountManager. Failing to do so, makes the AccountManager do another trip to the server, when the getAuthToken method is called, and authenticating the user again.
Note: The third argument to addAccountExplicitly() is a "user data" Bundle, which can be used to store custom data, such as API key to your service, right with the other authentication related data on the AccountManager. This can also be set by using setUserData().
After the log-in process done by this Activity, we have the AccountManager all set up with our account. The call to setAccountAuthenticatorResult() returns the information back to the Authenticator.
Now we have the process ready to go, but who will start it? How will it gain access to it? We need to make our Authenticator available for all the apps that want to use it, including the Android settings screen. Since we also want it to run in the background (The log-in screen is optional), using a Service is the obvious choice.
Creating the Service
Our service will be very simple.
All we want to do, is letting other processes bind with our service and communicate with our Authenticator. Luckily for us, the AbstractAccountAuthenticator, which our Authenticator extends, has a getIBinder() method that returns an implementation to IBinder. Our service needs to call it on its onBind() method and that it! The basic implementation takes care of calling the appropriate methods on the Authenticator by the request of an outside process. To see how it's actually done, you can take a look on Transport, an inner class of AbstractAccountAuthenticator and read about AIDL for inter-process communication.
Here's how our service will look like:
public class UdinicAuthenticatorService extends Service {
public IBinder onBind(Intent intent) {
UdinicAuthenticator authenticator = new UdinicAuthenticator(this);
return authenticator.getIBinder();
..and on the manifest we need to add our service with the
<service android:name=".authentication.UdinicAuthenticatorService">
<action android:name="android.accounts.AccountAuthenticator" />
<meta-data android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticator" />
Simple, huh?
The authenticator.xml, that we link as a resource, is used to define some attributes for our Authenticator. That's how it looks:
<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
Let's explain some of them:
accountType is a unique name to identify our account type. Whenever some app wants to authenticate with us, it needs to use this name when approaching the AccountManager.
icon and smallIcon are icons for the account to be seen on the device's Settings page and on the account approve page (more on that later).
label is the string that represent our account when listed on the device's Setting's page.
accountPreferences is a reference to a Preferences XML. This will be shown when accessing the account's preferences from the device Settings screen, allowing the user more control over the account. You can check the stuff Google and Dropbox are letting you change about their account for some examples. Here's an example of my own:
Random stuff you may want to know
During my investigation I ran into some interesting scenarios that I thought I'd share, keeping your hair intact while working with this API.
- Check existing account validity - If you want to get an auth-token for an account name that you stored yourself, check that this account still exist first by using the AccountManager#getAccounts*() methods. I'll quote the AccountManager's documentation:
"Requesting an auth token for an account no longer on the device results in an undefined failure."
For me, the "undefined failure" was to bring the sign-in page and then do nothing after I submitted my credentials, so there you have it.
First in, first served - Let's say you copied your authenticator's code to 2 of your apps, thus sharing its logic, and altering the sign-in pages design on each app to fit the app it belongs to. In that case, the first installed app's authenticator will be called for both apps when an auth-token will be requested. If you uninstall the first app, the second app's authenticator will be called from now on (since it's the only one now). A trick to overcome this will be to put both sign-in pages on the same authenticator, then use the addAccountOptions argument on the addAccount() method to pass your design requirment.
Sharing is caring..for security - If you try to get an auth-token from an authenticator that was created by a different app, which was signed using a different signing key, the user will have to explicitly approve this action. This is what the user will see:
The "Full access to.." string is retrieved from the our Authenticator's _getAuthTokenLabel(). _You can specify different labels for each auth-token type, being more user friendly on cases like this.
- Storing the password - The AccountManager is not secured by any encryption method. The passwords there are stored in plain text. You can't peekAuthToken() to other Authenticators (You'll get a "caller uid X is different than the authenticator's uid"), but a root access and some adb commands will do the trick. In the sample code I'm storing the password for the convenience of auto-login the user in case of token expiration. It's the ultimate trade-off between security and convenience. In most cases I would take the secure road, but for some it's not worth the inconvenience caused to the user. If someone has a root access and can run adb commands on your device - he can do much more damage than accessing your user's "high scores" table..
Now what?
Now that you got familiar with this great service, you can download from Google Play the sample authenticator that I wrote. It will allow you to create an "Udinic account" on your device. The authentication will be against a Parse.com account that I created for this cause. These are the options you get on the sample app:
The getAuthToken button will query first all the Accounts from the type "Udinic" on the device. If there's one, it'll return its token by calling AccountManager#getAuthToken(). If there's more than one, it'll populate them on a dialog and let you choose which one you want.
The getAuthTokenByFeatures calls a cool convenient method on the AccountManager by the same name, that do all the work for you. It'll query the AccountManager for accounts with the requested type, "Udinic", and its behavior is as follows:
There are no accounts: Starts_ addAccount()_ to allow the user to add a new account. After that, it will automatically call getAuthToken() on the created account to get the token for it.
There's one account: Get its auth token.
There are 2 accounts or more: Create an account picker dialog and return the token of the account the user picked.
If you want to invalidate the token, you can use the invalidateAuthToken button. Note: The Udinic authenticator knows how to recover from invalidated tokens, as seen previously on the sample code for getAuthToken(). Meaning, after invalidating the token the getAuthToken button will still return a token, but it'll be only after he asks for it again from the server. You can confirm that by looking at the LogCat and see network communication to the server in that case. Removing the account is possible only through the device's settings screen.
You can download the source code from GitHub: https://github.com/Udinic/AccountAuthenticator. There are 2 sample apps in there, allowing to play around with them since they both share the same Authenticator. For example: Use different signing keys for them and see the different flow for the user when one is asking for auth-token created by the other sample app. You can also try to create an apklib for the authenticator and reuse it across different apps. If you have a fix or a suggestion - don't hesitate posting it here or as a Pull Request on GitHub.
- AbstractAccountAuthenticator ,
- Account ,
- Account Manager ,
- AccountAuthenticator ,
- AccountAuthenticatorActivity ,
- AccountManager ,
- addAccountExplicitly ,
- Android ,
- auth-token ,
- authentication ,
- authenticator ,
- authenticator.xml ,
- getAuthToken ,
- getAuthTokenByFeatures ,
- invalidateAuthToken ,
- OAuth2 ,
- peekAuthToken ,
- security ,
- setAccountAuthenticatorResult


text:
Our Services
Brown, Goldstein & Levy helps clients navigate the legal waters in divorce cases, alimony, child custody and support disputes, and child and spousal abuse matters. As a 20-plus year veteran who leads the firm's family law practice, Dana McKee understands that these matters are stressful and emotional. And she recognizes that her clients need sound legal advice from someone who cares about them and their families.
Dana McKee was interviewed for Baltimore Bride magazine's article "Love Meets the Law," which appears in the publication's 2012 issue.
For an experienced attorney who will take the time to understand your needs,
Contact Us »


text:
The "187" series of folders, named for the 3/16ths inch stock used throughout, is MKT's lower price-point offering for those absolute knife Pigs who want more than 1 MKT folder. If you are saving for the penultimate custom MKT blade or holding out for the Praetorian Ti, then we have something to tide you over. For the rest of us (who want to remain married) this series gets a man a hand-made American knife with rugged uniqueness that is truly American...every blade is absolutely unique. To maintain this amazing price-point we offer the 4 folders in this line as pictured only. There are no customizable options.
The 187DP is a drop point juggernaut in the 187 series. The size of this knife is just perfect for guys with big hands and nearly any job that could benefit from a knife. If you like full-sized folders with very little weight the 187 series delivers. This blade design is awesome for general utility cutting tasks and the tip and forward belly are ideal for skinning or finite cutting tasks.
| Specifications


text:
Evelyn Fox Keller, professor emerita in MIT's Program in Science, Technology, and Society, is a leading historian of biology whose new book, The Mirage of a Space between Nature and Nurture, published this fall by Duke University Press, makes a concise critique of nature-nurture debates. Among other things, Keller asserts, it is mistaken to think that heredity and the environment can be separated when "the entanglement" of these two factors in humans "is not only immensely intricate, but is there from the start." Keller sat down with MIT News to discuss the topic.
Q. How does looking at the history of the nature-nurture debate shed new light on it?
A. For one thing, it's commonly said or implied that the nature-nurture debate is as old as the hills. But if what we mean by the nature-nurture debate is the question of how you weigh the causes of development that are due to nature against those due to nurture, well, that debate is not as old as the hills. That form of the debate and the concept of putting nature and nurture in counterpoint is a very Anglo-Saxon idea, and it's very recent. It really comes with Francis Galton, who introduced the notions of nature and nurture as alternative causes that could be separately weighed. [Galton, a controversial British statistician and researcher with Eugenicist views, introduced the nature-nurture phrase in 1874.] To be sure, people talked about nature and nurture before, but they didn't juxtapose them in that way; rather they tended to regard nature as seed, nurture as the cultivation of that seed. And that was the predominant view everywhere in the world.
Q. This is, as you state in the book, in part a highly political issue. But you claim it is also a matter of conceptual and linguistic confusion even among those apparently without a political or social axe to grind. What do you mean?
A. I argue that part of the reason for the puzzling persistence of the "nature-nurture debate" is that the language of the debates is so hopelessly muddled. For one thing, there is a widespread habit of conflating genetic differences (mutations) with genes, and trait differences with traits — a habit that goes back to the early days of classical genetics when scientists viewed the chromosome as a string of genes. They thought there was nothing but these beads on the chromosome. So when they identified a change in phenotype (an organism's visible traits), they attributed that to a change in the gene, to a mutation. There was nowhere else a mutation could occur. And it became common to talk about genes and mutations interchangeably.
Well, that clearly doesn't work any more — DNA is clearly much more than a string of genes. Yet our ways of talking haven't caught up. We still tend to slip back and forth between genes and gene differences. Just as we do when talking about traits and trait differences. A disease, for example, is not a trait, but trait difference — a departure from the normal. Similarly, there is also a widespread tendency to conflate statistical measures of heritability in a population with the likelihood of a trait being passed on in individual lineages that muddies the waters just as much. But these distinctions are not so easy to hold on to. If you read the literature — the technical as well as the popular — you will see a chronic flipping back and forth. Are we talking about traits, or are we talking about trait differences? Individuals or population? Indeed, many arguments depend on making such slides.
Q. Instead of posing questions about the relative significance of nature and nurture, then, what should we be asking?
A. One of the main things we want to know — the concern that's hidden in that question — is: How plastic are people? To what extent are we stuck with what we are endowed with genetically? We're stuck with our DNA, but lots of things affect the way DNA is deployed. It's not enough to know what your DNA sequence is to understand about disease, behavior, and physiology. We need to know what the patterns of gene expression are. And that's not written into the genes. Variable gene expression is not exactly a new insight, but its importance has only recently become apparent. So too, the whole issue of the plasticity. For example, We used to think there was no new nerve growth after adulthood. Well, there is new nerve growth. When people are severely injured, it is possible to develop new neural networks to compensate for that injury. But it's hard. And the relevant questions are, how difficult is it to change behavior or physiology? What are the ranges of variation? Under what circumstances can behavior or physiology be changed? Those are issues that are extremely central in modern biology, and they address a critical part of what people want to know about the role of "nature."
Christopher Noble
November 30, 2010
I read in the Boston Globe yesterday that a Scandinavian study observed that 12 month-old toddlers of both sexes like to play with dolls, but by the age of 2 the boys have lost interest. They then concluded that liking dolls had to be caused by nurture (i.e. social conditioning) rather than nature. But we also know that our brains evolve as we age -- the teenage brain for example is almost alien compared to the child or the adult. It seems to me that an alternate explanation of the Scandinavian results is that mental gender characteristics continue developing quite a long time after birth (not surprising really -- like puberty). Maybe part of the reason for the nature/nurture confusion is the assumption that we are genetically fully developed at birth, and that all subsequent changes can only be due to nurture.
Mary Saunders
December 2, 2010
What a breath of nurturing air is this article! It is the rigid denial of plasticity that has stifled much of what might have been great research by more reticent persons in the world, made timid by a tired orthodoxy. I am so glad to have lived long enough for much of the science world to reach this place. The work of Janine Benyus is another great stride in this exciting new direction. Few people have been invited to TED as much as she has been. I look forward to a new era where heat-beat-treat will accept other ways as well.
Anne V Williams
December 22, 2010
Whenever I hear people argue about nature vs. nurture it sounds to me like they are arguing about which leg is more important to walking.


text:
1940s NASCAR season recaps include highlights and statistics of NASCAR races during the 1940s. Learn more on the 1940s NASCAR Season Recaps Channel.
The first strictly stock NASCAR race at Charlotte Speedway was so popular that 7 more races were planned for the remainder of the season. The races were filled with new, postwar automobiles. See the results for the first NASCAR strictly stock season.
Who were the big winners for NASCAR's first season? See the results of the 52 races that make up the first official year of NASCAR. The first modifiedseason of NASCAR contained the same drama and excitement that we see in NASCAR today.
Visionary Bill France saw the potential of a unified, organized racing series and created the NCSCC in 1947. This eventually transformed into NASCAR as we know it today. Here is a quick 1947 recap of events in NASCAR history.
Bill France's idea of a circuit for late-model American cars led to the creation of the Strictly Stock NASCAR season. Here is a quick recap of the biggest highlights of the 1949 season.
The first official NASCAR-sanctioned stock car racing event took place in 1948. The season was full of wrecks, drama, and flair. Find out about all the great moments of the first year of Nascar in this quick recap of the 1948 modified season.


text:
Volvo's new test drive programme gives fleets and drivers freedom to drive
Volvo Car UK has begun taking bookings for its new test drive programme, Freedom. In line with Volvo's 'Designed Around You' brand strategy, it has been created not only to give as much flexibility to the driver in terms of location, timing and car choice, but also to provide test routes planned around the individual's regular driving needs.
Potential customers, both retail and fleet, can log onto a specifically designed website (www.volvocars.co.uk/freedom) to book up to two, 45 minute test drives, at a time to suit and a choice of 13 locations around the UK*. A number of cars will be available at each event, including the all-new V40, S60, V60, XC60 and XC90. Also available for test drive will be the newly launched V40 Cross Country, V40 R-Design and Volvo's most technological advanced car, the V60 plug-in hybrid.
Having previously had the first UK viewing of the world's first diesel plug-in hybrid, the Volvo V60 D6 AWD, at the Goodwood Festival of Speed, the first right-hand drive UK cars will also be available, allowing this highly sought after car to be driven by potential buyers and fleet user/choosers.
Volvo has designed three different driving routes at each event, taking into account all different types of driving. When the driver books the test drive, he/she is requested to enter the type of journey they usually travel, thus allowing Volvo to recommend a specific route that encompasses their normal daily drive.
Each test drive is completely unaccompanied and takes place on public roads. Volvo Car UK actively encourage drivers to bring along what would normally be in his/her car, such as child seats, golf clubs and even the kids, to show which car is best for each individual's needs and wants.
Freedom dates:
Greenwoods Hotel, Essex - 2nd March
Stapleford Park, Leicestershire - 9th March
Seaham Hall, County Durham - 16th March
Celtic Manor, Newport - 23rd March
Perth Concert Hall, Perthshire - 6th April
Felbridge Spa, West Sussex - 13th April
Chewton Glen, Hampshire - 27th April
Riverside Museum, Glasgow - 4th May
The Aviator Hotel, Hampshire - 11th May
Rudding Park, Yorkshire - 18th May
IWM Duxford - East Anglia - 8th June
Woodbury Park, Devon - 15th June
The Lowry Hotel, Greater Manchester - 22nd June
*Customers in Northern Ireland are able to apply for extended test drives through their local dealership (Greer's of Antrim and SMW Belfast).


text:
Archive for the 'Network' Category
IPv6 ConnectivityMay 7, 2013
One of the features of our new internet connection is native IPv6 connectivity. As the IPv4 address space is exhausted and will soon be very expensive to get addresses, IPv6 needs to be on everyone's radar. Our ten year old layer-3 core switch doesn't support IPv6 but I was able to bring up a virtual Linux server to do the routing. Obviously this isn't an ideal situation, but until we can get a more up-to-date router, this should work for giving all our servers v6 addresses.
Fibertech gave us a /48 block of addresses. That's 2^(128-48) or 1,208,925,819,614,629,174,706,176 addresses! I'm hoping that's enough. If you were to scan 1 million of our addresses every second it would take you 3 times the age of the universe to scan them all.
New Internet ConnectionMay 7, 2013
For a few years now I've been trying to get a metro-ethernet connection at school for our internet access. This year we finally managed it. We were using Time Warner's highest bandwidth package, 50/5Mbps Wideband, but it just wasn't enough. Their DOCSIS connections are still best-effort with no service-level agreements and that wasn't quite good enough either.
We ended up signing a contract with Fibertech Networks for a 30/30Mbps metro-ethernet connection over fiber. They gave us a /27 block of IPv4 addresses and a /48 block of IPv6 addresses. I've been very happy with the whole process so far. The fiber was pulled on time (and I got to watch them do it) and the service was turned up right on schedule. There were no IP address SNAFUs like the last time with TWC and so far it's working just as it should.


text:
Liberal Democrat Blog of the Year 2014
"Well written, funny and wistful" - Paul Linford; "He is indeed the Lib Dem blogfather" - Stephen Tall
"Jonathan Calder holds his end up well in the competitive world of the blogosphere" - New Statesman
"A prominent Liberal Democrat blogger" - BBC Radio 4 Today; "One of my favourite blogs" - Stumbling
and Mumbling; "Charming and younger than I expected" - Wartime Housewife
Sunday, July 08, 2018
A Southampton blue plaque for John Arlott
Yesterday Mark Pack posted a 1950 film celebrating cricket with narration from Ralph Richardson and John Arlott.
Attentive reader's voice: Didn't you post that film yourself a few years ago?
Liberal England replies: It was seven years ago, but who's counting?
Watching the film again on Mark's blog, I was struck by how quickly Arlott established himself as the voice of cricket. Only five years before it was made he was a police sergeant in Southampton.
Arlott made the leap to cricket broadcasting via the BBC Overseas Service, where he produced poetry programmes for Indian listeners. (He was an accomplished poet himself and had cultivated the friendship of John Betjeman and others.)
The post Arlott was given at the BBC in 1945 sounds very like the one George Orwell vacated in 1943.
Yesterday a blue plaque was unveiled on the house in Lodge Road, Southampton, where Arlott and his wife lived when he was still a policeman.
Read more on the Bevois Mount History Facebook page, from which I have borrowed this photograph.
No comments:
Subscribe to: Post Comments (Atom)


text:
Getting rid of that pesky MalformedObjectNameException BlogPosted by emcmanus-JavaNet in emcmanus on Nov 17, 2008 2:21:00 AM
You can't construct a JMX ObjectName without handling MalformedObjectNameException, which is a checked exception. Here's why that is a pain, how to relieve that pain, and what we're doing to make it less painful in the next version.
If you've done any programming at all with the JMX API, you'll have noticed that all of the ObjectName constructors, and all of the getInstance methods, are declared as throwing MalformedObjectNameException.
MalformedObjectNameException is a checked exception, which means that you have to either declare it in the
throwsclause of your method, or catch it within the method. Having this exception be a checked one was a mistake, in the light of modern practice. For example, Effective Java 2 says: Use checked exceptions for recoverable conditions and runtime exceptions for programming errors. Clearly a malformed ObjectName is a programming error.
When the ancestor of the JMX API was being designed about ten years ago this was all much less clear, and there were plenty of misleading precedents like MalformedURLException. If the API were being designed over again, MalformedObjectNameException would surely be a subclass of IllegalArgumentException, or perhaps the constructors would just throw IllegalArgumentException itself.
As it stands, this is painful, especially when you want to initialize a static final field to be an ObjectName. For example, you might want to write something like this:
public interface EventClientDelegateMBean { public static final ObjectName OBJECT_NAME = new ObjectName("javax.management.event:type=EventClientDelegate"); ... }
Alas, that doesn't compile, because field initializers can't throw checked exceptions. You might try to write this:
public interface EventClientDelegateMBean { public static final ObjectName OBJECT_NAME; static { try { OBJECT_NAME = new ObjectName("javax.management.event:type=EventClientDelegate"); } catch (MalformedObjectNameException e) { throw new IllegalArgumentException(e); } } ... }
But that doesn't compile either, because interfaces can't have static initializers. Don't ask me why not.
So the solution today is to write a simple static
newObjectName method that wraps the MalformedObjectNameException as an IllegalArgumentException, park it in some class, say
Util, and call that every time you need to construct an ObjectName:
public class Util { ... public static ObjectName newObjectName(String s) { try { return ObjectName.getInstance(s); } catch (MalformedObjectNameException e) { throw new IllegalArgumentException(e); } } ... }
Thus our troublesome interface becomes:
public interface EventClientDelegateMBean { public static final ObjectName OBJECT_NAME = Util.newObjectName("javax.management.event:type=EventClientDelegate"); ... }
That does compile, and it does work. (Although if the string really is incorrect you will get bashed with an ExceptionInInitializerError when you first reference the interface.)
My favourite tiny change in the JMX 2.0 API is that we do now provide standard methods to do this, so you no longer need to define them. The hardest part was to decide what to call them! As of JDK 7, you can write:
public interface EventClientDelegateMBean { public static final ObjectName OBJECT_NAME = ObjectName.valueOf("javax.management.event:type=EventClientDelegate"); ... }


text:
A haunted nation
On December 16, Tehreek-i-Taliban Pakistan (TTP) terrorists attacked the Army Public School in Peshawar. At least 141 people lost their lives, 132 of them children. Many others are injured
On December 16, Tehreek-i-Taliban Pakistan (TTP) terrorists attacked the Army Public School in Peshawar. At least 141 people lost their lives, 132 of them children. Many others are injured.
Writing about the worst terrorist attack in Pakistan's history - and we have seen countless terrorist attacks in the last decade - is extremely difficult. How does one pen down words when all you can feel is numbness? As my friend Umair Javed tweeted: "Don't know how people are finding the time or mental space to analyse this tragedy's cause and effect. Just lots of incoherent grief here."
The buck stops here: Pakistani cricketer-turned-politician Imran Khan, leader of the Pakistan Tehreek-e-Insaf party, prays for the victims killed in the attack on a military-run school in Peshawar, during a sit-in protest in Islamabad, on Wednesday. Khan has decided to end his party's sit-in protests following Tuesday's attack. Pic/AP/PTI
But it is not just incoherent grief one feels. There is more. Anger. Helplessness. Frustration. Shame. Horror. Disgust. And then grief hits you, once again. Three days have passed since the attack but there is no end to our grief. How can one remain calm when you see the images of the bloodied floors and walls of the school, when you see photographs of the children who have died, when you hear the accounts of the young survivors, when you see funerals all over the city of Peshawar? How?
The horror of this attack has jolted every Pakistani and millions around the world. Many of my journalist friends who visited Peshawar to report said they did not have the strength to do it because there was so much pain all around. Imagine: 132 school-going children, not older than 16 or maybe 17 at most, are no more. They were our future. Our future is no more.
One cannot even begin to imagine the pain of the families of the dead - parents whose children went to the school in the morning and returned in coffins. 'The smallest coffins are the heaviest' - these hauntingly heartbreaking words, shared on Twitter and Facebook, are terribly true. Killing children to 'pay back' the Pakistani state for carrying out military operations against them is not just barbaric or cruel, it is evil personified. The Taliban are that and more.
Dr Mohammad Taqi, a columnist, says that after the Pakistan Tehreek-e-Insaf (PTI) - Imran Khan's party - came to power in Khyber Pakhtunkhwa, it has given the TTP a virtual walkover in the outskirts of the provincial capital Peshawar. "The massacre at the Army Public School was not possible without the terrorist having a local support network and sanctuary," says Taqi. He is of the view that while the law enforcement agencies, military and intelligence services all have the responsibility to pre-empt the tragic attacks like the one at the Army Public School, the buck stops with the political leadership of the province. Sadly, the PTI has been an absentee ruler, leaving the people of Peshawar and Khyber Pakhtunkhwa at the mercy of the TTP. Khyber Pakhtunkhwa has practically been without a chief minister since the PTI started its sit-in protests (which have now been called off in the wake of the tragedy) on August 14. Sherry Rehman rightly said that whoever is a friend of the terrorists is a traitor and Taliban apologists will be regarded as terrorists.
Prime Minister Nawaz Sharif said there will be no distinction between good and bad Taliban; a distinction that has been part of our official policy. Our military and civilian leadership are guilty of supporting, aiding, abetting and appeasing terrorists of all hues and colour. There is certainly blood on their hands even if they did not pull the trigger themselves.
Peshawar massacre has no doubt shaken us but we need to make sure such attacks do not take place again. Military action against the TTP can only do so much. Our state needs to go after each and every jihadi on our soil, stop Saudi and local funding of madrassas and take action against hate speech, be it in mosques or anywhere else. Rising intolerance in our society can only be dealt with if these actions are taken. It is a do-or-die situation.
The writer is a Pakistani journalist. Reach her at firstname.lastname@example.com
Sign up for all the latest news, top galleries and trending videos from Mid-day.comSubscribe


text:
When my sisters chose their own lifestyles
my parents hurt.
When the educators looked up their skirts
To ensure they were the right length and wearing the proper tights
My sisters hurt.
When, like Eisau and Yaakov
One more earthly
And one more spiritual
My brothers struggled to connect,
They hurt.
When my best friend revealed her childhood trauma,
And about the ACS visiting her home.
When another friend got engaged to a non-jew
And his parents disowned him as per Halacha.
When numerous other friends
Had their Judaism challenged due to their darker skin color,
Their varied non-Eastern European features,
We all hurt.
But roll that train and wonder,
Do you kill one or many?
When my family could not live up to the religious standards
Despite trying,
Wanting so hard.
When I could not understand my Judaic studies,
When my tzniut button was not closed enough
And my elbow too revealed.
When my HS principal told my classmate
"The apple does not fall far from the tree."
When seminary was just another year
Of who's who.
And that was not I.
When my roommate slapped my face
And our directing shluchim stood by her anyways.
When a highly recommended CGI request I work with them
And then lied about it when I showed up after cutting short my vacation,
I knew I was not worthy of rising.
That I had one last string too many.
But roll that train and wonder,
Do you kill one or many?
How many?
When I was finally titled with a learning disability,
Challenging the failure of my educators yet again.
When I began to don shorter skirts and then pants,
Challenging the status quo to be "a good maidela."
When I dropped shabbat and chagim
Challenging the tension and ire of the day,
No void was filled.
Rather, I was ridiculed more.
To find my way through.
Be the change.
And when I made friends with my non-jewish classmates
I was reminded of our history
How neighbors always gave up their friends.
More than we bargained for?
Roll that train.
Do you kill one more or many?
How many?
When I read stories
And watch films
Of identities denied.
Children taken away.
Creativity outside the religious community discouraged.
When women still cannot vote
For a leader.
When girls are still taught they're responsible for a man's ill thoughts.
And men are still taught they're not responsible.
When boy's boyhoods are still silently taken away.
When the dead are idolized
And spoken more highly of than
The children who are shamed,
And ridiculed for their inability to meet societal demands.
Than the women who are hidden,
And beaten for their choice to speak up.
Than the men who are encouraged to remain buried in seforim
And then scorned for their inability to attend to their families.
Than caring for those opting out of their agony,
When the leaders proclaim they've tried,
That some burdens are too much to carry,
That they've done all they could…
And yet tears still flow.
How can I remain?
Roll that train.
I've had enough.


text:
Apply at https://ngcareers.com/job/2017-09/technical-and-market-lead-country-coordinator-at-john-snow-incorporated-jsi-801/
Technical and Market Lead Country Coordinator at John Snow Incorporated (JSI)
Description Subcutaneous DMPA (DMPA-SC) Technical and Market Lead (TML) is a three-year project led by PATH. John Snow Research & Training Institute, Inc. (JSI) is a sub-grantee to PATH. DMPA-SC is an innovative subcutaneous injectable contraceptive that currently being introduced in many countries, with a focus on increasing women's access to safe, effective contraception within a context of contraceptive method mix and informed choice. The DMPA-SC TML project will work with country stakeholders and facilitate coordination of DMPA-SC introduction and scale up planning in 8 – 12 priority countries in sub-Saharan Africa and South Asia. Nigeria is a proposed priority country and JSI will provide lead support for the project in Nigeria.Each priority country will have a TML coordinator. In Nigeria, the TML coordinator will be responsible for working with key stakeholders to facilitate and coordinate efforts to ensure successful DMPA-SC introduction and scale-up. The coordinator will provide support that is complementary to existing and potential DMPA-SC introduction and scale up efforts; this complementary support will help avoid duplication, address existing gaps and ensure added value. He/she will support routine coordination with the MOH and country partners, assisting partners to monitor DMPA-SC introduction and scale up progress. RESPONSIBILITIES Work with existing MOH-led Family Planning Program Technical Working Group (FPTWG) to ensure project adds value in support of the development and implementation of the DMPA-SC introduction/scale up planSupport the MOH/FPTWG and relevant family planning partners to develop a comprehensive, total-market, country-level introduction/integration plan for DMPA-SC. IncludesGathering key information required for the introduction plan, including information on potential introduction channels and the costs of implementing the plan.Supporting development and use of a monitoring plan and supporting indicators to monitor progress and identify bottlenecksSupport MOH to regularly convene country stakeholders to report on plan implementation progress and monitor indicatorsidentify technical assistance needs and funding gaps and mobilize incountry solutions (where possible). For those issues not addressed incountry, elevate to the TML global team for assistance. Support capacity building and systems strengthening efforts to ensure DMPA-SC introduction and scale up can be sustained. IncludesSharing tools, resources, and methodologies among all stakeholders to build capacity and ownership; foster learning and best practices.Facilitating participation in the TML Learning and Action Networks (LANs). Monitor and report to the TML global team on routine indicators and overall progress so that information feeds into the global monitoring and learning system.For day to day operations, the TML Country Coordinator will report to the Country Program Leader (JSI field office leader).The Country Coordinator will receive regular technical backstopping and support from the TML's Regional Technical Advisors.


text:
People can comment on items in a plan and subscribe to comments for individual items, any item in the plan, or any item in the entire service type. When others make comments, subscribers receive an email.
You can restrict which users can make item comments from the permissions in the Service Type.
Make a Comment
In a plan, hover over an item and select the comment bubble icon.
Enter your message and select Comment to send it.
If you need to delete a comment, hover over the comment and select the minus.
You will only be able to delete the comment if you created it or or if you are an Administrator for that Service Type.
Subscribe to Comments
Subscribe to the item, plan, or Service Type to receive comments in your email.
You'll be emailed depending on which you subscribe to:
- When This Item is commented on, you will be notified.
- When any item in This Plan is commented on, you will be notified.
- When any item in This Service Type is commented on, you will be notified.
If you need to unsubscribe or change your subscription, go to the item and unsubscribe.
Receive Emails
If someone makes a comment on an item, plan, or Service Type you subscribed to, you'll receive an email and can select the link to be taken to the comment.
Select reply to this comment then type your reply in the box.
The person who made the comment will receive your reply in an email.


text:
As everyone always say, the bottomline to picking the mattress perfect for you would have to rely on your own preference and needs from a bed.
Setting aside that consideration, however, what are the things you need to rundown and take into account when choosing a mattress?
First of all, you have to check the mattress' construction. These days, there are plenty of mattresses that put emphasis on natural body alignment. Foams are engineered so that the mattress won't hurt your shoulders and back and you can feel your stress points really relaxing. There are plenty of mattresses that offer zones and layers of comfort. Construction matter to comfort, thus it's the first thing you'd have to check.
Secondly, consider the base of the mattress. Does it allow for even distribution of your weight? Does it deliver equal support? Are there slats that keep it durable and sturdier for years and years?
Third, check for warranty and manufacturer coverage? This is where you can get your money's worth. How good is the after service that the mattress maker provides? What's their history and track record for such?
Even with your own preferences and choices, these are the most important things you have to take into equation when buying a new mattress.


text:
Tenebrae has already recorded another substantial work by Russian composer Alexander Levine (b.1955), Prayers for Mankind. They understand his soundworld and this makes for a polished and convincing rendering. Those listeners who, like me, have spent hours absorbing Orthodox divine liturgy settings by Tchaikovsky, Rachmaninoff and Tavener will find much to savour here. The language is tonal, often gentle and sustained, but always contrasted, deeply expressive of the sacred texts, and consistently rewarding, interpreted through the vibrato-free yet appropriately sonorous timbre of Tenebrae.
Matthew Power, July 2013


text:
Following previews since Feb. 9, Romance opens March 1 under the direction of Neil Pepe, the troupe's artistic director. The oddly topical play is set in a courtroom in New York during a week when there are Middle East peace talks being brokered in town. The court case at hand it unrelated, but the defendant and counsel come up with a plan to solve conflict in the region.
A pill-popping judge, a defendant and lawyer (on the same side) who hate each other, a prosecutor with a troubled personal life are part of the picture.
"It's certainly the first out-and-out farce he's ever written," Pepe told Playbill.com. "He calls it a farce, and I think structurally and story-wise, it is a farce. I appreciate it because I think Mamet's an extremely underrated comic writer. You see so many wonderful shades of comedy in many of his other plays, and certainly in screenplays like 'State and Main,' 'Wag the Dog' and 'Things Change.' It's such a pleasure to be working on a straight comedy from him, because I think he's got such a wonderful and outrageous sense of humor."
In Romance, "there are elements that have echoed throughout many of his works that are pure Mamet — his wonderful, poetic, irreverent use of words," Pepe said. "But as a whole, structurally, I think it's very different, which I kind of love about it. I like that he constantly keeps you guessing, too. I never like to use the word 'style,' but you're never quite sure what's going on and it kind of keeps turning these odd corners which are always interesting and somewhat hilarious."
Is the play a critique of our justice system? Pepe said, "It is kind of a wonderful thing that the play is saying: Those places — a courtroom, or the justice system — that we're supposed to look to to make sense of many things in society in some ways can be the root of more absurdity than any other place. He's looking at so many things that we hold to be black and white…the laws of society, whether it's being PC, whether it's dealing with the judicial system, whether it's dealing with the idea of fidelity, or how we view each other as different races and different religions. I kind of love that he says let's put it all on the table, let's tell the truth. That can either be painful or not very funny. In the case of this play, sometimes it's very funny and sometimes it's highly uncomfortable. I always love that about great comedies; I used to feel that way about Joe Orton's comedies as well.
Interest in the new comedy has been so high that two weeks were added to the run before its first performance began. ATC artistic director Neil Pepe directs the play, running at ATC's Chelsea neighborhood space to April 17.
Mamet founded the Manhattan company with actor William H. Macy more than 20 years ago (its roots are in classes the pair taught in the early '80s at NYU.) According to the company, "Pulitzer Prize-winning playwright David Mamet returns to Atlantic with his new farce set in a modern day courtroom that explores issues ranging from our current judicial system to the Middle East conflict, fidelity and World peace."
The ensemble features Atlantic Theater Company members Larry Bryggman (Twelve Angry Men, two-time Tony Award nominee for Proof and Picnic), Steven Goldstein (Broadway's Our Town), Steven Hawley (Atlantic's Richard Cory) and guest artists Bob Balaban (produced and appeared in the Academy and Golden Globe Award winning film "Gosford Park"), Jim Frangione (Broadway's The Old Neighborhood), Keith Nobbs (Broadway's The Lion in Winter) and Christopher Evan Welch (Broadway's The Crucible).
Mamet's plays include Glengarry Glen Ross (Pulitzer Prize for Drama), The Cryptogram, The Water Engine, A Life in the Theatre, American Buffalo, Edmond, Lakeboat, Boston Marriage, Dr. Faustus, Sexual Perversity in Chicago, Speed-the-Plow, The Old Neighborhood, Oleanna and more.
As a filmmaker, "Spartan" marked Mamet's ninth film as writer-director. His critically acclaimed debut feature "House of Games," was selected to close the New York Film Festival in 1987. He followed this with "Things Change," co-written with Shel Silverstein; "Homicide"; "Oleanna" (the sole film he has adapted and directed from one of his plays); "The Spanish Prisoner"; "The Winslow Boy," an adaptation of the famed Terrence Rattigan play; and "State and Main," starring William H. Macy, Alec Baldwin, Sarah Jessica Parker, Philip Seymour Hoffman and Rebecca Pidgeon.
Designers are Robert Brill (scenic), James S. Ingalls (lighting), Sarah Edwards (costume) and Obadiah Eaves (sound).
Atlantic Theater Company is based at 336 W. 20th Street, between Eighth and Ninth Avenues). Romance plays Tuesday through Friday at 8 PM, Saturday at 2 & 8 PM and Sundays at 3 & 7:30 PM.
Tickets are $55 and available by calling Tele-Charge at (212) 239-6200 or visiting Atlantic's website at www.atlantictheater.org.
Atlantic Theater Company (Neil Pepe, artistic director; Andrew D. Hamingson, managing director) is the award winning Off-Broadway theater dedicated to producing great plays simply and truthfully utilizing an artistic ensemble. Atlantic believes that the story of the play and the intent of the playwright are at the core of the creative process. Since its inception in 1985, Atlantic has produced more than 90 plays including the Tony Award winning production of The Beauty Queen Of Leenane, the world premieres of Woody Allen's A Second Hand Memory and Writer's Block, the American premieres of Blue/Orange, Dublin Carol and The Night Heron, the New York premiere of The Cider House Rules, the revivals of American Buffalo and Edmond, Mojo, Minutes From The Blue Route and Hobson's Choice. Atlantic maintains an ensemble of acclaimed actors, writers and directors including co-founders David Mamet (playwright and director) and William H. Macy (Academy Award nominee for "Fargo") among others.


text:
Age: About 1,000 years ago
Origin: Eurasia
Parent Branch: N-BY28952
Descendant branch(s): N-BY22042
FTDNA Tree Link: Link
YFull Info
Name: N-BY22047
Age: 950 ybp ± 350 CI 95%
Expansion: 800 ybp ± 650 CI 95%
Parent: N-BY2204
Note: This information does not imply an endorcement of YFull or their methods. It is provided at the request of readers.
N-BY22047 is a branch on the paternal tree of human kind. It and branches help trace human history from our origin in Africa.
FamilyTreeDNA Y-Haplotree
Pod not found
N-BY22047 Technical Details
This branch is defined by the Y-Haplotree at FamilyTreeDNA as N-BY22047. There, it is the child of the N-BY28952 branch.
Defining Variant(s)
This branch is defined by YFull as N-BY22047. There, it is the child of the N-BY2204 branch.
Defining Variant(s)
Sources & Resources
Related Resources
Coming soon…
Academic Sources
Peer reviewed sources have not been added for this branch yet. If you know of one I have missed, please link to it in the comments.


text:
Last night, Justin Bieber offered a message of hope to the One Love Manchester benefit concert attendees and really, to the world,
"God is good in the midst of the darkness. God is good in the midst of the evil," Bieber told the massive crowd.
"God is in the midst no matter what's happening in the world, God is in the midst, and He loves you and He's here for you," he said.
"I just want to take this moment to honor the people that were lost, that were taken. We love you so much. To the families, we love you so much," he said. "Put both hands up to honor those people right now. Everybody say, 'We honor you. We love you.'"
The crowd thundered back, "We honor you, we love you!"
The British nation is still reeling after a series of attacks. On May 22nd, 22 people were killed at an Ariana Grande concert in Manchester in what is being called a "suicide bombing". On Saturday, a van plowed into pedestrians on London Bridge, then its occupants jumped out and began stabbing people. In total, 7 people were killed and 48 injured.
Grande returned to the stage in Manchester last night to offer comfort to the grieving city. The concert, which had been planned and scheduled before the London attack, featured other artists such as Katy Perry and Justin Bieber.
Bieber has become increasingly more bold in his faith and recently posted the following declaration on his Instagram:
Kudos to Justin for using his platform to shine light on and bring glory to God. We pray that his faith continues to grow.


text:
Trump's Chances – Redesign of The New York Times's Infografic
In the recent update of The New York Times's article Who Will Be President? the authors used an interesting and a slightly controversial infografic, consisting of 16 sparklines. The graphic depicts the trends of Donald Trump's winning probabilities in the states, where his chances have increased most over the last two weeks.
Unfortunately, the visualization fails to convey a proper picture of the trends due to inconsistent scaling of charts, proving once more, that the correct scaling is still one of the hardest problems in data visualization. We'll present 3 alternative solutions that allow the readers to properly assess and compare changes across the states.