text:
FMC Newsletter #89 | May 13, 2010
Happy spring! FMC is rolling right along with our first big event of 2010 — DC Policy Day takes place at New America Foundation right here in Washington on May 25. Can't make it to DC? We'll also be hosting an interactive live webcast of the entire event. Read on for details on Policy Day 2010 and more.
Programming announced for DC Policy Day 2010
OK Go in Washington, DC
What's up with the internet?
Musicplus musician education event: live webcast!
And the next day...SF MusicTech Summit
The SoundExchange "New Artist Checklist"
HINT benefit/Alex Chilton tribute in North Carolina
In the last newsletter we told you about our upcoming DC Policy Day, but all we had at that point was the date and venue — Tuesday, May 25 at New America Foundation in Washington, DC. Well, we're happy to announce that we've got most of the programming together, which is always very exciting.
Policy Day 2010 will bring a host of issues into focus through informed presentations and panel discussions. A live webcast will bring the conversation to a global audience of artists, academics, industry professionals, journalists, music fans and more. Did we mention it was free?
Policy Day 2010 event site
Panel discussions and presentations include:
ACTA: Treaties, Trade and Transparency
This discussion centers on the controversial Anti-Counterfeiting Trade Agreement (ACTA) — a proposed multilateral trade agreement for establishing international standards on intellectual property rights enforcement among participating countries. Supporters argue that this treaty is a crucial step in protecting intellectual property from counterfeiting and unauthorized distribution in an increasingly globalized, networked world. Critics contend that ACTA threatens to impose harsh restrictions on consumers, and that it could override sovereign nations' copyright laws. Until recently, open debate was constricted by the confidential nature of negotiations, thus fomenting many rumors about the proposed terms of the agreement.
Health Care Reform and its Impact on Musicians
A 2010 Future of Music Coalition survey found that 34 percent of the 1,400 musicians surveyed didn't have health insurance — twice the national average. Congress has succeeded in passing a health care reform bill, but what does it mean for "real musicians" — namely, those artists and songwriters trying to make a living in a time of unprecedented economic challenge? What will the bill do to expand coverage for the creative class, and what do musicians and their advocates need to know to take advantage of new opportunities? Advocates for musicians and health insurance will join with health policy experts to discuss key elements of this landmark legislation and how they will affect musicians and songwriters.
The Open Internet, Music and Innovation
The advent of broadband changed everything we thought we knew about music — especially how recordings are distributed, promoted and accessed. While some traditional business models have been upended by the internet, the technology has been a boon to independent musicians who rely on the web to do everything from connecting with fans to booking shows to selling merchandise to collaborating with other artists. Yet some would prefer innovation on the web to be left solely to market forces, with little to no regulation to establish rules of the road for Internet Service Providers. FMC staff will provide an overview of where we've been and where we may be heading, followed by an interactive discussion featuring internet policy experts.
Creative Capitol: Music, Culture and Policy Under Obama
The 2009 inauguration of Obama — plus Democratic majorities in Congress — meant a shift in the power dynamic in Washington, DC. How are creative industries faring so far in this administration? Rumor has it that music is enjoyed and revered in the White House, but these are also trying times for policymakers. Can a pro-arts agenda be balanced with pressing economic and infrastructure concerns? Does the cultural community have a role to play in recovery? What legislation will make it out of committee and onto the floor? Top staffers from the House and Senate will discuss the key music-technology-policy issues playing out on Capitol Hill, and how musicians are engaging.
Speaker and presenter roster to be announced shortly. Head here for details or to register for this free event.
We hope to see you there — in person or virtually!
On May 5, OK Go were in town to play a show at the 9:30 Club here in Washington. But, being OK Go, that's not all they had on the agenda. In case you weren't aware, the band has an abiding interest in issues at the intersection of music, technology policy and law. In fact, frontman Damian Kulash has become something of an expert on subjects like the open internet, which he sees as key to his band's continued success.
Before their show (which kicked ass, by the way), Damian and the boys popped over to the White House to talk about music issues. After that, it was off to the FCC where they met with Chairman Julius Genachowski and some of his staff. Several Star Wars jokes were exchanged and the band talked about how important it is to preserve the open internet for everyone.
At the show, Damian gave a shoutout to Chairman Genachowski and net neutrality — the principle that protects the internet — to a sold out crowd. Who says you can't mix rock with wonk?
We've heard that OK Go will be blogging about their DC adventures soon — when they do, we'll be sure to give you the link.
In the last newsletter, we explained how an April 2010 court decision threw the FCC's ability to protect the open internet into serious doubt. We're not gonna get into the whole legal to-do right here, but suffice it to say, there were some questions about how the Commission might move forward.
FMC started the Rock the Net campaign back in 2007 to demonstrate that the music community cares about net neutrality — the principle that protects the open internet. In 2009, we welcomed the news that the FCC was working on rules that would make sure Internet Service Providers didn't do nutty stuff like censor Pearl Jam performances or block content that competes with their own. We believe that musicians — and everyone else, really — should have access to the digital marketplace and a basic guarantee that their freedom of expression won't be quashed online.
Last week, FCC Chairman Julius Genachowski made a decision that should help the FCC issue clear net neutrality rules and move forward with its National Broadband Plan. Genachowski's move to "reclassify" broadband under a different section of the Telecom Act should give the FCC more solid legal footing to protect the open internet and get high-speed service to more Americans. But it's likely to be fought by the telecommunications and cable companies, which are fighting against new oversight.
FMC will be keeping a close eye on developments, and you can be sure that if there's an opportunity for musicians, labels and fans to get involved, we'll let you know.
Artist comments in FCC Open Internet Proceeding
Blog post explaining the Comcast decision
What are you doing on Sunday, May 16?
Perhaps you're heading to Musicplus — a free seminar to sharpen your skills and network with other musicians and composers. This event takes place in Oakland, CA, and is being presented by East Bay Community Foundation, Grants for the Arts/San Francisco Hotel Tax Fund, The San Francisco Foundation, and FMC.
The event is sold out, but you can still tune into the live webcast from 3 PM – 9 PM ET (12 PM – 6 PM PT).
Sessions will cover:
emerging technologies to promote and distribute your work
hybrid business models and the new economy
arts policy under Obama
audience development 2.0: effective social networking and data management
new licensing and revenue generation opportunities
how to present your work to venues, audiences and funders
regional funding and arts resources
the basics of home recording
touring, visas, and immigration
Panelists and presenters include:
FMC's Kristin Thomson and Jean Cook
Ethan Diamond from Bandcamp
Jazz composer Marcus Shelby
Classical composer Paul Dresher
Randall Kline from SF Jazz
Benji Rogers from Pledge Music
Bryan Calhoun from SoundExchange
Artist attorney Michael Ashburne
Brooke Wentz from The Rights Workshop
…and many more! Check out all the programming right here.
Tune into the live webcast at http://webillishus.com/watch/ from 3 PM – 9 PM ET (12 PM – 6 PM PT), where you can watch main room programming and participate in an online chat.
The sixth installment of Brian's SF MusicTech Summit takes place on Monday, May 17 at the Hotel Kabuki. SFMT convenes the most forward-looking minds in the music technology space to talk about the ever-evolving landscape for digital music and the challenges and opportunities it presents. FMC's Lissa Rosenthal, Kristin Thomson and Jean Cook will join the hundreds of folks sure to be in attendance for another super-fine event. Includes keynotes by Pandora's Tim Westergren, SF Symphony conductor Michael Tilson Thomas, musician Ben Folds and many more!
SanFran MusicTech Summit
Hotel Kabuki, San Francisco, CA
9am – 6pm + cocktail party
http://www.sanfranmusictech.com
Here at FMC, we're all about helping artists get a leg up on their careers. But with so many aspects of the music biz in flux, it's tough to know where to start. Our friends at SoundExchange — the nonprofit that collects and distributes digital performance royalties to artists and labels — have come up with a handy checklist will help you on your way.
Back in March 2010, music lost one of its greats when Alex Chilton passed away. Chilton's legacy lives on through his influence on acts like R.E.M., Cheap Trick and Wilco. His music has also made an impact on a number of North Carolina artists, many of whom will come together on Friday, May 28 at Cat's Cradle in Carrboro, NC to celebrate Chilton's life and music.
The show also benefits FMC's Health Insurance Navigation Tool — a free program that helps musicians figure out their health insurance options. Performing on the bill are Greg Humphreys (Hobex, Dillon Fence), Lynn Blakey (Tres Chicas), Stu McLamb and Missy Thangs (the Love Language), John Howie Jr., Tom Maxwell, Jeff Carroll, Jeff Hart, Matt McMichaels and Adam Price (ex-Mayflies USA), the Magic Babies, Mitch Easter (with members of Gladhands), the Stars Explode, Jane Francis and Jay Manley (Velvet), Kurt Heasley (Lilys) Ann Humphreys, Jen Richelson and FMC's own Alex Maiolo.
Like so many musicians, Alex Chilton did not have health insurance at the time of his death. By raising awareness of and money for HINT, this all-star concert will help address the issue of musicians and health insurance and hopefully lead to more musicians obtaining coverage.
If you're a musician who's curious about your health insurance options, check out our HINT website, which has a lot of relevant information. You can also fill out a simple online form to schedule a FREE consultation with one of our health insurance experts (who are also musicians).
As we mentioned above, we'll be looking at the issue of musicians and health insurance in more depth at our Policy Day on May 25. Remember, you can RSVP here for that free event, which will also be live webcast.
You can always contact us at suggestions [at] futureofmusic [dot] org if you have any questions.
Lissa Rosenthal
Jean Cook
Michael Bracy
Walter McDonough
Brian Zisk
Kristin Thomson
Casey Rae-Hunter
Chhaya Kapadia
Nicole Duffey
Alex Maiolo
FMC Newsletter | March 10, 2016
Future Music Newsletter: August 2015
FMC Newsletter #129 | April 27 2015
FMC Newsletter #125 | October 24, 2014
FMC Newsletter #124 | Sept 17, 2014


text:
Home / 2018 / February / 01 / Award-winning journalist tackles the issue of fake news
Award-winning journalist tackles the issue of fake news
By Patty Wellborn on February 1, 2018
Award-winning Canadian Journalist Chantal Hébert is UBC Okanagan's next Distinguished Speaker.
Chantal Hébert discusses the concept of how fake news impacts politics
What: Politics and Democracy in the Fake News era
Who: National Affairs reporter Chantal Hébert with UBC Okanagan's Distinguished Speaker Series
When: Tuesday, February 13 at 7 p.m.
Where: Kelowna Community Theatre, 1375 Water Street, Kelowna
Fake news. It was just a year ago, after Donald Trump's inauguration, the term was introduced to the media. Now, it's used almost daily—to dismiss ideas that may not agree with a government policy, or even dismiss proven facts.
Award-winning Canadian journalist Chantal Hébert will host a public talk about this new fake news era at a special event on February 13 at the Kelowna Community Theatre. Hébert, a political columnist with the Toronto Star, will discuss how fake news affects today's politics and even the entire democratic system. The event is presented by the Irving K. Barber School of Arts and Sciences' Distinguished Speaker Series.
Hébert, who received an honorary degree from UBC's Vancouver campus last spring, is an officer of the Order of Canada. She began covering politics in Ottawa for Radio-Canada, has served as parliamentary bureau chief for several news organizations, and is a weekly participant on the political panel At Issue on CBC's The National as well as several other political commentary broadcasts.
The Montreal-based journalist is a York University graduate and in 2006 she received the Hy Solomon award for excellence in journalism and public policy, as well as York University's Pinnacle Achievement Bryden Alumni award. Hébert's second book, The Morning After, was published in September 2014. She won a gold National Magazine Award for her political column in L'actualité.
The Distinguished Speaker Series is presented by the Irving K. Barber School of Arts and Sciences and takes place Tuesday, February 13 at the Kelowna Community Theatre, 1375 Water Street at 7 p.m.
This event is free and open to the public, but online pre-registration is required. A select number of tickets will be available February 6 at 9 a.m. To register visit: speakers.ok.ubc.ca
About UBC's Okanagan campus
UBC's Okanagan campus is an innovative hub for research and learning in the heart of British Columbia's stunning Okanagan Valley. Ranked among the top 20 public universities in the world, UBC is home to bold thinking and discoveries that make a difference. Established in 2005, the Okanagan campus combines a globally recognized UBC education with a tight-knit and entrepreneurial community that welcomes students and faculty from around the world. For more visit ok.ubc.ca.
Posted in Media Advisory | Tagged Business, Faculty of Management, Irving K. Barber School of Arts and Sciences

redpajama_set_name: RedPajamaCommonCrawl


There has never been a better time to offer apprenticeships, with one in five employers hiring more apprentices to help them through the current economic climate.
You will be getting a keen, motivated member of staff that wants to learn and help your business to grow. In fact, 80% of employers say apprentices have made their workplace more productive.
Our Construction Work Experience Programme can help you to see how an apprentice could be good for your business.
All CITB's apprenticeship training is developed in consultation with the industry, meaning an apprentice will learn the right skills for the job.
CITB are the largest provider of apprentices for the construction industry, with over 45 years' experience of developing skilled workers.
We aim to make taking on an apprentice as easy as possible by funding their training with a grant of up to £10,250 (available to eligible employers registered with CITB).
The Apprenticeship Grant for Employers is available in addition to any grants from us to help pay your apprentice's wages.
You can apply for grants for individuals on approved apprenticeships at Levels 2 and 3, and higher apprenticeships in England, Wales and Scotland.
Find out more about the Apprenticeships grants.
This must be read in conjunction with the Commitment Statement, all terms and conditions apply under the Apprenticeship Commitment Statement.


We encourage children to think outside the box.
OUR PROJECT-BASED PROGRAMS ARE BASED ON 21ST-CENTURY LEARNING, LIFE AND CAREER SKILLS.
We believe that is is imperative students are prepared for success in the global economy and challenges of life in the 21st century.
STEM education is essential to prepare children to be the innovative knowledge workers of the future. Our STEM programs, are based on key elements of 21st century life and career skills: critical thinking, creativity & communication.
We believe that the entrepreneurial nature of children emerges when they express interest in setting up their first lemonade stand. Empowered by the ability to earn their own money, and motivated by ambition and creativity, they are positioned to turn their ideas, dreams and passions into real businesses.
Whether your child is an avid writer or you hope they will become one, Amore Learning promises a fun, imaginative, and confidence-building time in Creative Writing! Designed to reach elementary school writers of all enthusiasm and ability levels, this program will allow each writer to create a portfolio of unique pieces. We focus on having fun while boosting writing skills in a warm, nurturing, and exciting environment, all for the love of learning!
Scratch is a programming language and online community where you can create your own interactive stories, games, and animations -- and share your creations with others around the world. In the process of designing and programming Scratch projects, young people learn to think creatively, reason systematically, and work collaboratively.
Financial literacy, though critical for life and career success, is rarely taught in middle and high school. Many parents fail to teach their children important money skills essential for personal and professional stability and success in the 21st century.
Our supplemental school support tutoring services are aligned with Common Core State Standards and are designed to motivate children and to acquire and strengthen the skills they need to succeed in school and beyond. We also offer one-on-one coaching in entrepreneurship development.
U.S. schools are more likely to offer classes in how to start and run a business to older students, signifying a missed opportunity to foster economic energy among younger students.
© 2019 KV Educational Concepts, LLC.


As business owners we know we must make changes in our business – but when, why, and how do you make yours?
Joining us today to share the latest changes he's implemented is one of my best friends, Mr. Pat Flynn of Smart Passive Income.
During our friendship I've watched Pat grow and evolve his business. Today he's here to talk about what he's changing and how those changes are catapulting his business to an entirely new level.
On this show Pat shares the specific steps he's taking right now, plus why and how he's creating segmented lists within his audience. He also gives the first few steps you can take to have a bigger and more powerful impact on your own audience.
This is an episode you'll want to listen to again and again because there's that much information – tune in and enjoy!
What was the biggest shift Pat made in 2015?
How he now generates 65-70% open rates and 15-20% click-through rates!
What is the yes ladder and why does it matter?
What's the most important part of any sales process?
The one question to email your list right now.


text:
Posts Tagged 'Omega-3 research sheds light on inflammation trigger'
Omega-3 research sheds light on inflammation trigger
BBSRC-funded scientists at the University of Birmingham have discovered a previously unknown step in early inflammation which is controlled by omega –3 and omega –6 fatty acids, potentially leading to clarification around conflicting health and diet advice on these two essential nutrients.
Dr Ed Rainger, from the Centre for Cardiovascular Sciences at the University, has discovered that a key product in the metabolism of omega –6 fatty acids is an essential signal for neutrophils (white blood cells that form an essential part of the immune system) to cross the endothelium, the thin layer of cells that line the interior surface of blood vessels, to work on inflammation.
Dr Rainger says the findings of the study, funded by BBSRC and the British Heart Foundation, will open up new possibilities: "The identification of these novel mechanisms by which inflammation is regulated may allow us to develop new therapies to intervene when the process of inflammation becomes pathological rather than physiological."
These latest discoveries bolster the evidence that fish oils have anti-inflammatory effects in addition to other health benefits. Dr Rainger and his team have revealed new steps in the body's response to tackling inflammation which researchers hope will lead to designing potential new drugs to tackle severe and chronic disease such as rheumatoid arthritis.
The team also found that the migration of neutrophils could be blocked by the increased levels of omega -3 generated after the endothelial cells had been supplemented with this omega –3 fatty acid.
Dr Rainger and his team conducted the study using a realistic, flow based system that models the process of inflammation at the interface of the circulating blood and inflamed tissue. They were then able to observe the effects of physiological levels of omega –3 and omega –6 fatty acids on the process of recruiting inflammatory blood cells such as neutrophils into the tissue. This process is regulated by endothelial cells lining the blood vessels.
Dr Ed Rainger, said: "Our findings are very significant. They support the idea that omega–6 fatty acids are pro-inflammatory – that they are required to sustain a normal inflammatory response without which we would be prone to serious infection and tissue damage."
Conversely, Dr Rainger has uncovered mechanistic evidence that supports the anti-inflammatory role of omega -3 fatty acids: "We've all heard about the health benefits of eating oily fish, and its beneficial effects on cardiovascular health, possibly due to their anti inflammatory properties, yet little is known about the normal cellular mechanisms by which omega –3 fatty acids produce their protective effects."
Nutritionists believe that imbalances in omega –3 and –6 – may explain the rise of diseases such as asthma, coronary heart disease, cancers, autoimmunity and neurodegenerative diseases, all of which are believed to stem from inflammation in the body.
Paper: Fatty acids and Inflammation: novel interactions reveal a new step in neutrophil recruitment is published in PLoS Biology on 25 August.
Tags: 3 fish oil and inflammation, anti inflammatory diet, anti inflammatory foods, arthritis treatment, fish oils and rheumatoid arthritis, inflammation, natural anti inflammatory treatment, natural remedies for rheumatoid arthritis, omega 3 for Arthritis, Omega-3 research sheds light on inflammation trigger, osteoarthritis, osteoarthritis natural alternatives, rheumatoid arthritis, strongest natural anti inflammatory, treatment for osteoarthritis


Are you or someone you love hearing-impaired? Phones, TV amplifiers, vibrating alarm clocks, and a variety of products for the hearing impaired are available at Hear 4 You Today. We offer assistive devices intended to make talking on the phone, listening to the radio, watching TV and waking up with the alarm clock much easier. Whether you're looking for amplified phones, a vibrating alarm clock to get you up and moving in the morning or a TV amplifier for evenings at home, we have everything you need to maximize your quality of life. Start shopping today and feel free to contact our helpful staff, via live chat, with any questions!


text:
Liolaemus lemniscatus (wreath tree iguana or elegant tree iguana) is a species of lizard in the family Iguanidae.
It is found in Argentina and Chile.

References

The Reptile Database: Liolaemus chiliensis

lemniscatus
Lizards of South America
Reptiles of Argentina
Reptiles of Chile
Taxa named by Johann Ludwig Christian Gravenhorst
Reptiles described in 1837
Taxonomy articles created by Polbot

redpajama_set_name: RedPajamaWikipedia


text:
Categories: AudioMasteringMusicNewsPost Production
Big Wave Champion Makua Rothman Masters at Bernie's
Fellow Surfer Paul Grundman Engineers "Cry Me An Ocean"
Champion surfer and accomplished musician Makua Rothman has mastered his new single, "Cry Me An Ocean", at Bernie Grundman Mastering for his upcoming album on Island Empire Records. Mastering engineer Paul Grundman, himself a lifetime surfer, commented, "I've been a big fan of his surfing for years, of course, but when I heard his powerful and soulful music I was just knocked out."
"Cry Me An Ocean", co-written with Bo Napoleon and Nick Bailey, is a poignant song about breakup and betrayal. Rothman explains the title; "I wanted to write a song about break ups and when you are strong enough to let go." The record was produced by Makua Rothman along with Nick Bailey and Jimmy Beats, and was recorded at Kona Town Recording, co-owned by Bret Bollinger, vocalist and bassist for Pepper, in Redondo Beach, CA. "Cry Me An Ocean" features an enchanting acoustic chord progression with heartfelt vocals and uplifting lyrics.
"Cry Me An Ocean" lyric video: https://youtu.be/aXpfnx2SwyU
Makua Rothman was born on the North Shore of Oahu, Hawaii and started surfing at the age of two years old. At the age of 18, Rothman rode a 66-foot wave, the largest wave known to be surfed at the time. Later, Rothman went on to win the 2002 Billabong XXL Big Wave Challenge Award in a historic big-wave session, became the 2007 World Cup Surfing champion, and the 2015 World Surf League Big Wave champion. An accomplished musician, Rothman is finishing up his sophomore album, the follow up to his critically acclaimed debut, "Sound Wave". His music has been described as Hawaiian Reggae.
Paul Grundman added, "Makua's music is very straightforward and his mixes were done very professionally, allowing us to work together closely in the studio to bring out some enhanced definition and dynamics."
The second single, "Tan Lines," is scheduled for April release. The complete album will be released this summer on Island Empire Records.
Learn more: https://www.facebook.com/MakuaRothmanSurf/
ABOUT BERNIE GRUNDMAN MASTERING
The name Bernie Grundman is synonymous with Mastering. His world-renowned facilities, responsible for a consistently large percentage of chart recordings, were launched in 1984. In 1997, Grundman opened his Tokyo mastering studios and in 1998 relocated to expanded facilities in Hollywood. Bernie Grundman Mastering in Hollywood is a complex of six studios, including dedicated 5.1 Surround and Lacquer Cutting rooms. Virtually any analog or digital format can be played back thanks to a deep inventory of modern and legacy equipment. The facility provides high quality vinyl masters, pre-masters for CD, and file masters for standard and high-resolution digital distribution and streaming. https://www.berniegrundmanmastering.com/
Next Kool & The Gang Celebrates Good Times with DPA Microphones »
Previous « New IP Workflows Take Centre Stage In Eight Different Countries as Axon's PRE-NABSHOW TOUR 2020 Hits The Road
Tags: Bernie Grundman MasteringMakua Rothman


text:
Q: dateformat validation in javascript? function isValidDate(sText) {
    var reDate = /(?:0[1-9]|[12][0-9]|3[01])\/(?:0[1-9]|1[0-2])\/(?:19|20\d{2})/;
    return reDate.test(sText);
}
function validate1() {
    var oInput1 = document.getElementById("txtdate");
    if (isValidDate(oInput1.value)) {
        alert("Valid");
    } else {
        alert("Invalid!");
    }

}

I had written code for dateformat validations in javascript
and I called this function in textbox as onkeypress="return validate1(event);" but it is not firing. It is taking date as well as any data including date.

A:  function isValidDate(sText) {
       var reDate = /(?:0[1-9]|[12][0-9]|3[01])\/(?:0[1-9]|1[0-2])\/(?:19|20\d{2})/;
       return reDate.test(sText);
   }
   function validate1() {
       var oInput1 = document.getElementById("txtdate");
       if (isValidDate(oInput1.value)) {
           alert("Valid");
       } else {
           alert("Invalid!");
       }

   }

A: Code is firing fine, suggestion use jquery datepicker...
<script type="text/javascript">
    function isValidDate(sText) {
           var reDate = /(?:0[1-9]|[12][0-9]|3[01])\/(?:0[1-9]|1[0-2])\/(?:19|20\d{2})/;
           return reDate.test(sText);
       }
       function validate1() {
           var oInput1 = document.getElementById("txtdate");
           if (isValidDate(oInput1.value)) {
               alert("Valid");
           } else {
               alert("Invalid!");
           }

       }
</script>

    <input type="text" id="txtdate" name="txtdate" onkeypress="return validate1(event)">

redpajama_set_name: RedPajamaStackExchange


text:
Powell Farm is a historic home located in East Fallowfield Township, Chester County, Pennsylvania. The house was built in 1794, and is a two-story, five bay, fieldstone vernacular Federal style farmhouse.  It has a gable roof and a full width front porch.

It was added to the National Register of Historic Places in 1985.

References

Houses on the National Register of Historic Places in Pennsylvania
Federal architecture in Pennsylvania
Houses completed in 1794
Houses in Chester County, Pennsylvania
National Register of Historic Places in Chester County, Pennsylvania
1794 establishments in Pennsylvania


text:
package org.optaplanner.benchmark.config;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.ThreadFactory;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;

import org.optaplanner.benchmark.api.PlannerBenchmarkFactory;
import org.optaplanner.benchmark.config.blueprint.SolverBenchmarkBluePrintConfig;
import org.optaplanner.benchmark.config.report.BenchmarkReportConfig;
import org.optaplanner.benchmark.impl.io.PlannerBenchmarkConfigIO;
import org.optaplanner.core.config.solver.SolverConfig;
import org.optaplanner.core.impl.io.OptaPlannerXmlSerializationException;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

/**
 * To read it from XML, use {@link #createFromXmlResource(String)}.
 * To build a {@link PlannerBenchmarkFactory} with it, use {@link PlannerBenchmarkFactory#create(PlannerBenchmarkConfig)}.
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = PlannerBenchmarkConfig.XML_ELEMENT_NAME)
@XmlType(propOrder = {
        "name",
        "benchmarkDirectory",
        "threadFactoryClass",
        "parallelBenchmarkCount",
        "warmUpMillisecondsSpentLimit",
        "warmUpSecondsSpentLimit",
        "warmUpMinutesSpentLimit",
        "warmUpHoursSpentLimit",
        "warmUpDaysSpentLimit",
        "benchmarkReportConfig",
        "inheritedSolverBenchmarkConfig",
        "solverBenchmarkBluePrintConfigList",
        "solverBenchmarkConfigList"
})
public class PlannerBenchmarkConfig {
    public static final String SOLVER_NAMESPACE_PREFIX = "solver";
    public static final String XML_ELEMENT_NAME = "plannerBenchmark";
    public static final String XML_NAMESPACE = "https://www.optaplanner.org/xsd/benchmark";

    // ************************************************************************
    // Static creation methods: SolverConfig
    // ************************************************************************

    /**
     * @param solverConfig never null
     */
    public static PlannerBenchmarkConfig createFromSolverConfig(SolverConfig solverConfig) {
        return createFromSolverConfig(solverConfig, new File("local/benchmarkReport"));
    }

    /**
     * @param solverConfig never null
     * @param benchmarkDirectory never null
     */
    public static PlannerBenchmarkConfig createFromSolverConfig(SolverConfig solverConfig,
            File benchmarkDirectory) {
        PlannerBenchmarkConfig plannerBenchmarkConfig = new PlannerBenchmarkConfig();
        plannerBenchmarkConfig.setBenchmarkDirectory(benchmarkDirectory);
        SolverBenchmarkConfig solverBenchmarkConfig = new SolverBenchmarkConfig();
        // Defensive copy of solverConfig
        solverBenchmarkConfig.setSolverConfig(new SolverConfig(solverConfig));
        plannerBenchmarkConfig.setInheritedSolverBenchmarkConfig(solverBenchmarkConfig);
        plannerBenchmarkConfig.setSolverBenchmarkConfigList(Collections.singletonList(new SolverBenchmarkConfig()));
        return plannerBenchmarkConfig;
    }

    // ************************************************************************
    // Static creation methods: XML
    // ************************************************************************

    /**
     * Reads an XML benchmark configuration from the classpath.
     *
     * @param benchmarkConfigResource never null, a classpath resource
     *        as defined by {@link ClassLoader#getResource(String)}
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromXmlResource(String benchmarkConfigResource) {
        return createFromXmlResource(benchmarkConfigResource, null);
    }

    /**
     * As defined by {@link #createFromXmlResource(String)}.
     *
     * @param benchmarkConfigResource never null, a classpath resource
     *        as defined by {@link ClassLoader#getResource(String)}
     * @param classLoader sometimes null, the {@link ClassLoader} to use for loading all resources and {@link Class}es,
     *        null to use the default {@link ClassLoader}
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromXmlResource(String benchmarkConfigResource, ClassLoader classLoader) {
        ClassLoader actualClassLoader = classLoader != null ? classLoader : Thread.currentThread().getContextClassLoader();
        try (InputStream in = actualClassLoader.getResourceAsStream(benchmarkConfigResource)) {
            if (in == null) {
                String errorMessage = "The benchmarkConfigResource (" + benchmarkConfigResource
                        + ") does not exist as a classpath resource in the classLoader (" + actualClassLoader + ").";
                if (benchmarkConfigResource.startsWith("/")) {
                    errorMessage += "\nA classpath resource should not start with a slash (/)."
                            + " A benchmarkConfigResource adheres to ClassLoader.getResource(String)."
                            + " Maybe remove the leading slash from the benchmarkConfigResource.";
                }
                throw new IllegalArgumentException(errorMessage);
            }
            return createFromXmlInputStream(in, classLoader);
        } catch (OptaPlannerXmlSerializationException e) {
            throw new IllegalArgumentException("Unmarshalling of benchmarkConfigResource (" + benchmarkConfigResource
                    + ") fails.", e);
        } catch (IOException e) {
            throw new IllegalArgumentException("Reading the benchmarkConfigResource (" + benchmarkConfigResource + ") fails.",
                    e);
        }
    }

    /**
     * Reads an XML benchmark configuration from the file system.
     *

     * Warning: this leads to platform dependent code,
     * it's recommend to use {@link #createFromXmlResource(String)} instead.
     *
     * @param benchmarkConfigFile never null
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromXmlFile(File benchmarkConfigFile) {
        return createFromXmlFile(benchmarkConfigFile, null);
    }

    /**
     * As defined by {@link #createFromXmlFile(File)}.
     *
     * @param benchmarkConfigFile never null
     * @param classLoader sometimes null, the {@link ClassLoader} to use for loading all resources and {@link Class}es,
     *        null to use the default {@link ClassLoader}
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromXmlFile(File benchmarkConfigFile, ClassLoader classLoader) {
        try (InputStream in = new FileInputStream(benchmarkConfigFile)) {
            return createFromXmlInputStream(in, classLoader);
        } catch (OptaPlannerXmlSerializationException e) {
            throw new IllegalArgumentException("Unmarshalling the benchmarkConfigFile (" + benchmarkConfigFile + ") fails.", e);
        } catch (FileNotFoundException e) {
            throw new IllegalArgumentException("The benchmarkConfigFile (" + benchmarkConfigFile + ") was not found.", e);
        } catch (IOException e) {
            throw new IllegalArgumentException("Reading the benchmarkConfigFile (" + benchmarkConfigFile + ") fails.", e);
        }
    }

    /**
     * @param in never null, gets closed
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromXmlInputStream(InputStream in) {
        return createFromXmlInputStream(in, null);
    }

    /**
     * @param in never null, gets closed
     * @param classLoader sometimes null, the {@link ClassLoader} to use for loading all resources and {@link Class}es,
     *        null to use the default {@link ClassLoader}
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromXmlInputStream(InputStream in, ClassLoader classLoader) {
        try (Reader reader = new InputStreamReader(in, StandardCharsets.UTF_8)) {
            return createFromXmlReader(reader, classLoader);
        } catch (UnsupportedEncodingException e) {
            throw new IllegalStateException("This vm does not support the charset (" + StandardCharsets.UTF_8 + ").", e);
        } catch (IOException e) {
            throw new IllegalArgumentException("Reading fails.", e);
        }
    }

    /**
     * @param reader never null, gets closed
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromXmlReader(Reader reader) {
        return createFromXmlReader(reader, null);
    }

    /**
     * @param reader never null, gets closed
     * @param classLoader sometimes null, the {@link ClassLoader} to use for loading all resources and {@link Class}es,
     *        null to use the default {@link ClassLoader}
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromXmlReader(Reader reader, ClassLoader classLoader) {
        PlannerBenchmarkConfigIO xmlIO = new PlannerBenchmarkConfigIO();
        Object benchmarkConfigObject = xmlIO.read(reader);
        if (!(benchmarkConfigObject instanceof PlannerBenchmarkConfig)) {
            throw new IllegalArgumentException("The " + PlannerBenchmarkConfig.class.getSimpleName()
                    + "'s XML root element resolves to a different type ("
                    + (benchmarkConfigObject == null ? null : benchmarkConfigObject.getClass().getSimpleName()) + ")."
                    + (benchmarkConfigObject instanceof SolverConfig
                            ? "\nMaybe use " + PlannerBenchmarkFactory.class.getSimpleName()
                                    + ".createFromSolverConfigXmlResource() instead."
                            : ""));
        }
        PlannerBenchmarkConfig benchmarkConfig = (PlannerBenchmarkConfig) benchmarkConfigObject;
        benchmarkConfig.setClassLoader(classLoader);
        return benchmarkConfig;
    }

    // ************************************************************************
    // Static creation methods: Freemarker XML
    // ************************************************************************

    /**
     * Reads a Freemarker XML benchmark configuration from the classpath.
     *
     * @param templateResource never null, a classpath resource as defined by {@link ClassLoader#getResource(String)}
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlResource(String templateResource) {
        return createFromFreemarkerXmlResource(templateResource, null);
    }

    /**
     * As defined by {@link #createFromFreemarkerXmlResource(String)}.
     *
     * @param templateResource never null, a classpath resource as defined by {@link ClassLoader#getResource(String)}
     * @param classLoader sometimes null, the {@link ClassLoader} to use for loading all resources and {@link Class}es,
     *        null to use the default {@link ClassLoader}
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlResource(String templateResource, ClassLoader classLoader) {
        return createFromFreemarkerXmlResource(templateResource, null, classLoader);
    }

    /**
     * As defined by {@link #createFromFreemarkerXmlResource(String)}.
     *
     * @param templateResource never null, a classpath resource as defined by {@link ClassLoader#getResource(String)}
     * @param model sometimes null
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlResource(String templateResource, Object model) {
        return createFromFreemarkerXmlResource(templateResource, model, null);
    }

    /**
     * As defined by {@link #createFromFreemarkerXmlResource(String)}.
     *
     * @param templateResource never null, a classpath resource as defined by {@link ClassLoader#getResource(String)}
     * @param model sometimes null
     * @param classLoader sometimes null, the {@link ClassLoader} to use for loading all resources and {@link Class}es,
     *        null to use the default {@link ClassLoader}
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlResource(String templateResource, Object model,
            ClassLoader classLoader) {
        ClassLoader actualClassLoader = classLoader != null ? classLoader : Thread.currentThread().getContextClassLoader();
        try (InputStream templateIn = actualClassLoader.getResourceAsStream(templateResource)) {
            if (templateIn == null) {
                String errorMessage = "The templateResource (" + templateResource
                        + ") does not exist as a classpath resource in the classLoader (" + actualClassLoader + ").";
                if (templateResource.startsWith("/")) {
                    errorMessage += "\nA classpath resource should not start with a slash (/)."
                            + " A templateResource adheres to ClassLoader.getResource(String)."
                            + " Maybe remove the leading slash from the templateResource.";
                }
                throw new IllegalArgumentException(errorMessage);
            }
            return createFromFreemarkerXmlInputStream(templateIn, model, classLoader);
        } catch (IOException e) {
            throw new IllegalArgumentException("Reading the templateResource (" + templateResource + ") fails.", e);
        }
    }

    /**
     * Reads a Freemarker XML benchmark configuration from the file system.
     *

     * Warning: this leads to platform dependent code,
     * it's recommend to use {@link #createFromFreemarkerXmlResource(String)} instead.
     *
     * @param templateFile never null
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlFile(File templateFile) {
        return createFromFreemarkerXmlFile(templateFile, null);
    }

    /**
     * As defined by {@link #createFromFreemarkerXmlFile(File)}.
     *
     * @param templateFile never null
     * @param classLoader sometimes null, the {@link ClassLoader} to use for loading all resources and {@link Class}es,
     *        null to use the default {@link ClassLoader}
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlFile(File templateFile, ClassLoader classLoader) {
        return createFromFreemarkerXmlFile(templateFile, null, classLoader);
    }

    /**
     * As defined by {@link #createFromFreemarkerXmlFile(File)}.
     *
     * @param templateFile never null
     * @param model sometimes null
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlFile(File templateFile, Object model) {
        return createFromFreemarkerXmlFile(templateFile, model, null);
    }

    /**
     * As defined by {@link #createFromFreemarkerXmlFile(File)}.
     *
     * @param templateFile never null
     * @param model sometimes null
     * @param classLoader sometimes null, the {@link ClassLoader} to use for loading all resources and {@link Class}es,
     *        null to use the default {@link ClassLoader}
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlFile(File templateFile, Object model, ClassLoader classLoader) {
        try (FileInputStream templateIn = new FileInputStream(templateFile)) {
            return createFromFreemarkerXmlInputStream(templateIn, model, classLoader);
        } catch (FileNotFoundException e) {
            throw new IllegalArgumentException("The templateFile (" + templateFile + ") was not found.", e);
        } catch (IOException e) {
            throw new IllegalArgumentException("Reading the templateFile (" + templateFile + ") fails.", e);
        }
    }

    /**
     * @param templateIn never null, gets closed
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlInputStream(InputStream templateIn) {
        return createFromFreemarkerXmlInputStream(templateIn, null);
    }

    /**
     * As defined by {@link #createFromFreemarkerXmlInputStream(InputStream)}.
     *
     * @param templateIn never null, gets closed
     * @param classLoader sometimes null, the {@link ClassLoader} to use for loading all resources and {@link Class}es,
     *        null to use the default {@link ClassLoader}
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlInputStream(InputStream templateIn, ClassLoader classLoader) {
        return createFromFreemarkerXmlInputStream(templateIn, null, classLoader);
    }

    /**
     * As defined by {@link #createFromFreemarkerXmlInputStream(InputStream)}.
     *
     * @param templateIn never null, gets closed
     * @param model sometimes null
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlInputStream(InputStream templateIn, Object model) {
        return createFromFreemarkerXmlInputStream(templateIn, model, null);
    }

    /**
     * As defined by {@link #createFromFreemarkerXmlInputStream(InputStream)}.
     *
     * @param templateIn never null, gets closed
     * @param model sometimes null
     * @param classLoader sometimes null, the {@link ClassLoader} to use for loading all resources and {@link Class}es,
     *        null to use the default {@link ClassLoader}
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlInputStream(InputStream templateIn, Object model,
            ClassLoader classLoader) {
        try (Reader reader = new InputStreamReader(templateIn, StandardCharsets.UTF_8)) {
            return createFromFreemarkerXmlReader(reader, model, classLoader);
        } catch (UnsupportedEncodingException e) {
            throw new IllegalStateException("This vm does not support the charset (" + StandardCharsets.UTF_8 + ").", e);
        } catch (IOException e) {
            throw new IllegalArgumentException("Reading fails.", e);
        }
    }

    /**
     * @param templateReader never null, gets closed
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlReader(Reader templateReader) {
        return createFromFreemarkerXmlReader(templateReader, null);
    }

    /**
     * As defined by {@link #createFromFreemarkerXmlReader(Reader)}.
     *
     * @param templateReader never null, gets closed
     * @param classLoader sometimes null, the {@link ClassLoader} to use for loading all resources and {@link Class}es,
     *        null to use the default {@link ClassLoader}
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlReader(Reader templateReader, ClassLoader classLoader) {
        return createFromFreemarkerXmlReader(templateReader, null, classLoader);
    }

    /**
     * As defined by {@link #createFromFreemarkerXmlReader(Reader)}.
     *
     * @param templateReader never null, gets closed
     * @param model sometimes null
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlReader(Reader templateReader, Object model) {
        return createFromFreemarkerXmlReader(templateReader, model, null);
    }

    /**
     * As defined by {@link #createFromFreemarkerXmlReader(Reader)}.
     *
     * @param templateReader never null, gets closed
     * @param model sometimes null
     * @param classLoader sometimes null, the {@link ClassLoader} to use for loading all resources and {@link Class}es,
     *        null to use the default {@link ClassLoader}
     * @return never null
     */
    public static PlannerBenchmarkConfig createFromFreemarkerXmlReader(Reader templateReader, Object model,
            ClassLoader classLoader) {
        Configuration freemarkerConfiguration = new Configuration(Configuration.VERSION_2_3_31);
        freemarkerConfiguration.setDefaultEncoding("UTF-8");
        // Write each number according to Java language spec (as expected by XStream), so not formatted by locale
        freemarkerConfiguration.setNumberFormat("computer");
        // Write each date according to OSI standard (as expected by XStream)
        freemarkerConfiguration.setDateFormat("yyyy-mm-dd");
        // Write each datetime in format expected by XStream
        freemarkerConfiguration.setDateTimeFormat("yyyy-mm-dd HH:mm:ss.SSS z");
        // Write each time in format expected by XStream
        freemarkerConfiguration.setTimeFormat("HH:mm:ss.SSS");
        Template template;
        try {
            template = new Template("benchmarkTemplate.ftl", templateReader, freemarkerConfiguration, "UTF-8");
        } catch (IOException e) {
            throw new IllegalStateException("Can not read the Freemarker template from templateReader.", e);
        }
        String xmlContent;
        try (StringWriter xmlContentWriter = new StringWriter()) {
            template.process(model, xmlContentWriter);
            xmlContent = xmlContentWriter.toString();
        } catch (TemplateException | IOException e) {
            throw new IllegalArgumentException("Can not process the Freemarker template into xmlContentWriter.", e);
        }
        try (StringReader configReader = new StringReader(xmlContent)) {
            return createFromXmlReader(configReader, classLoader);
        }
    }

    // ************************************************************************
    // Fields
    // ************************************************************************

    public static final String PARALLEL_BENCHMARK_COUNT_AUTO = "AUTO";

    @XmlTransient
    private ClassLoader classLoader = null;

    private String name = null;
    private File benchmarkDirectory = null;

    private Class<? extends ThreadFactory> threadFactoryClass = null;
    private String parallelBenchmarkCount = null;
    private Long warmUpMillisecondsSpentLimit = null;
    private Long warmUpSecondsSpentLimit = null;
    private Long warmUpMinutesSpentLimit = null;
    private Long warmUpHoursSpentLimit = null;
    private Long warmUpDaysSpentLimit = null;

    @XmlElement(name = "benchmarkReport")
    private BenchmarkReportConfig benchmarkReportConfig = null;

    @XmlElement(name = "inheritedSolverBenchmark")
    private SolverBenchmarkConfig inheritedSolverBenchmarkConfig = null;

    @XmlElement(name = "solverBenchmarkBluePrint")
    private List<SolverBenchmarkBluePrintConfig> solverBenchmarkBluePrintConfigList = null;

    @XmlElement(name = "solverBenchmark")
    private List<SolverBenchmarkConfig> solverBenchmarkConfigList = null;

    // ************************************************************************
    // Constructors and simple getters/setters
    // ************************************************************************

    /**
     * Create an empty benchmark config.
     */
    public PlannerBenchmarkConfig() {
    }

    /**
     * @param classLoader sometimes null
     */
    public PlannerBenchmarkConfig(ClassLoader classLoader) {
        this.classLoader = classLoader;
    }

    public ClassLoader getClassLoader() {
        return classLoader;
    }

    public void setClassLoader(ClassLoader classLoader) {
        this.classLoader = classLoader;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public File getBenchmarkDirectory() {
        return benchmarkDirectory;
    }

    public void setBenchmarkDirectory(File benchmarkDirectory) {
        this.benchmarkDirectory = benchmarkDirectory;
    }

    public Class<? extends ThreadFactory> getThreadFactoryClass() {
        return threadFactoryClass;
    }

    public void setThreadFactoryClass(Class<? extends ThreadFactory> threadFactoryClass) {
        this.threadFactoryClass = threadFactoryClass;
    }

    /**
     * Using multiple parallel benchmarks can decrease the reliability of the results.
     *

     * If there aren't enough processors available, it will be decreased.
     *
     * @return null, a number or {@value #PARALLEL_BENCHMARK_COUNT_AUTO}.
     */
    public String getParallelBenchmarkCount() {
        return parallelBenchmarkCount;
    }

    public void setParallelBenchmarkCount(String parallelBenchmarkCount) {
        this.parallelBenchmarkCount = parallelBenchmarkCount;
    }

    public Long getWarmUpMillisecondsSpentLimit() {
        return warmUpMillisecondsSpentLimit;
    }

    public void setWarmUpMillisecondsSpentLimit(Long warmUpMillisecondsSpentLimit) {
        this.warmUpMillisecondsSpentLimit = warmUpMillisecondsSpentLimit;
    }

    public Long getWarmUpSecondsSpentLimit() {
        return warmUpSecondsSpentLimit;
    }

    public void setWarmUpSecondsSpentLimit(Long warmUpSecondsSpentLimit) {
        this.warmUpSecondsSpentLimit = warmUpSecondsSpentLimit;
    }

    public Long getWarmUpMinutesSpentLimit() {
        return warmUpMinutesSpentLimit;
    }

    public void setWarmUpMinutesSpentLimit(Long warmUpMinutesSpentLimit) {
        this.warmUpMinutesSpentLimit = warmUpMinutesSpentLimit;
    }

    public Long getWarmUpHoursSpentLimit() {
        return warmUpHoursSpentLimit;
    }

    public void setWarmUpHoursSpentLimit(Long warmUpHoursSpentLimit) {
        this.warmUpHoursSpentLimit = warmUpHoursSpentLimit;
    }

    public Long getWarmUpDaysSpentLimit() {
        return warmUpDaysSpentLimit;
    }

    public void setWarmUpDaysSpentLimit(Long warmUpDaysSpentLimit) {
        this.warmUpDaysSpentLimit = warmUpDaysSpentLimit;
    }

    public BenchmarkReportConfig getBenchmarkReportConfig() {
        return benchmarkReportConfig;
    }

    public void setBenchmarkReportConfig(BenchmarkReportConfig benchmarkReportConfig) {
        this.benchmarkReportConfig = benchmarkReportConfig;
    }

    public SolverBenchmarkConfig getInheritedSolverBenchmarkConfig() {
        return inheritedSolverBenchmarkConfig;
    }

    public void setInheritedSolverBenchmarkConfig(SolverBenchmarkConfig inheritedSolverBenchmarkConfig) {
        this.inheritedSolverBenchmarkConfig = inheritedSolverBenchmarkConfig;
    }

    public List<SolverBenchmarkBluePrintConfig> getSolverBenchmarkBluePrintConfigList() {
        return solverBenchmarkBluePrintConfigList;
    }

    public void setSolverBenchmarkBluePrintConfigList(List<SolverBenchmarkBluePrintConfig> solverBenchmarkBluePrintConfigList) {
        this.solverBenchmarkBluePrintConfigList = solverBenchmarkBluePrintConfigList;
    }

    public List<SolverBenchmarkConfig> getSolverBenchmarkConfigList() {
        return solverBenchmarkConfigList;
    }

    public void setSolverBenchmarkConfigList(List<SolverBenchmarkConfig> solverBenchmarkConfigList) {
        this.solverBenchmarkConfigList = solverBenchmarkConfigList;
    }
}

redpajama_set_name: RedPajamaGithub


> > > is necessary though - perhaps we have a bug in the frontend driver?
> > "min_delay" parameter needs increasing for this FE?
> > [jburgess at t41 dvb]$ grep -r "\.min_delay_ms" .
> >    kernel: DVB: registering new adapter (TT-Budget/WinTV-NOVA-CI PCI).
> issue... will let you know if it helps.
that bit of dvb_frontend, it was throughly tested).


This large-aperture, single-focus standard lens is the newest model in the acclaimed PENTAX Star (★) series — the lineup boasting the best imaging performance of all PENTAX lenses for use with K-mount digital SLR cameras. The lens delivers the superb imaging power demanded of a new-generation, high-performance Star-series lens, assuring exceptional resolving power from the center to the edges of the image field, even when set to open aperture. Thanks to PENTAX-original lens coating technologies — including the latest Aero Bright Coating II assuring exceptionally low reflectance, and the high-grade HD Coating — it produces extra-sharp, high-contrast images free of flare and ghost images. Its dustproof, weather-resistant body also makes it extremely dependable and durable for shooting in demanding outdoor conditions.
This lens features a KAF4 lens mount compatible with an electromagnetic diaphragm control system. Cameras compatible with this system are K-1 Mark II, K-1, K-3 II, KP, K-70, K-3, K-S2, K-S1 and K-50. For K-1, K-3 II, K-3, K-S2, K-S1 and K-50, the camera's firmware must be upgraded to the latest version.
If this lens is mounted on a camera without proper firmware upgrade, its diaphragm control mechanism becomes inactive, making it impossible to obtain correct exposure.
This lens has been developed as a new-generation member of the high-performance Star series — a lineup designed to deliver extra-clear, high-contrast images with edge-to-edge sharpness by compensating various aberrations to a minimum. After conducting an extensive review of the Star-series standards, PENTAX has designed this lens to assure greatly improved resolving power, looking ahead to its use with more advanced, next-generation camera bodies. It provides exceptionally high imaging performance even at open aperture, in addition to a beautiful bokeh (defocus) effect and an outstanding image rendition at close ranges. Developed as the first model of the new-generation Star-series lenses, this large-aperture: standard lens boasts an extra-large F1.4 maximum aperture, useful with many different subjects in a range of applications, including portraiture with an effectively defocused background, and handheld shooting of indoor scenes.
The lens is treated with PENTAX-developed Aero Bright Coating II* — a lens-coating nanotechnology employing a super-low refractive film fabrication process. By coupling this advanced lens coating with the high-grade, multi-layer HD Coating** — which reduces average reflectance in the visible ray spectrum to less than 50% of conventional multi-layer coatings — this lens effectively reduces flare and ghost images to a minimum even in demanding lighting conditions such as backlighting. By incorporating three super-low dispersion glass elements and one aspherical element in its optics, it effectively compensates chromatic and spherical aberrations, and produces brilliant, high-contrast images with edge-to-edge sharpness. Since it minimizes distortion even at a focusing distance of approximately one meter, it produces crisp, distortion-free images over the entire focusing range, from the minimum focusing distance to infinity.
*A state-of-the-art, PENTAX-original lens coating technology developed from nanotechnology. It applies a silica aerogel layer with a uniform porous structure over a regular multi-coating layer to reduce surface reflections across a wide wavelength range and produce crisp, high-quality images.
**HD stands for High Definition.
Developed as an AW (All Weather) model, this lens features a dependable dustproof, weather-resistant structure with eight special seals to prevent the intrusion of water and dust into the lens interior. When paired with a PENTAX weather-resistant digital SLR camera body, it forms a durable, reliable digital imaging system that performs superbly in demanding shooting settings — even in rain or mist, or at locations prone to water splashes or spray.
This lens features a newly developed ring-type SDM (Supersonic Direct-drive Motor), which generates as much as 7.5 times the torque of the conventional SDM installed in existing lenses. Thanks to this enormous driving power, the lens assures a smooth, high-speed shift of the heavy, multi-element rear lens group during focusing operation.
* This mechanism is available when the lens is mounted on a K-1 Mark II, K-1, K-3 II, KP, K-70, K-3, K-S2 or K-S1, K-50 camera body.
Since it is impossible to avoid light diffraction phenomenon on the actual lens, wave optical MTF is more realistic.
However, geometric MTF is appropriate if you want to compare only the effects of geometric aberration correction on MTF.


text:
Here's the setlist from Bob Seger's final live show
By Fraser Lewry (Classic Rock) 2019-11-02T09:45:17Z
Bob Seger & The Silver Bullet Band have played the final show of their farewell tour. This is what the crowd in Philadelphia saw
(Image credit: Scott Legato / Getty Images)
Bob Seger & The Silver Bullet Band have played the final show of their farewell tour, at the 20,000-capacity Wells Fargo Center in Philadelphia, PA. Support came from local band Ghost Hounds.
Seger announced his final tour in September 2018, after returning to the road after back surgery, and after 63 arena shows this year – performing to more than one million fans – the curtain has finally fallen on the singer's live career.
Songs performed at The Wells Fargo Centre were picked from throughout Seger's 50-year career, from 1969's Ramblin' Gamblin' Man through the hits that made his name in the 70s like Mainstreet, Roll Me Away, Like A Rock, We Got Tonight, Turn The Page and Hollywood Nights.
There was also room for two covers: Rodney Cowell's Shame on the Moon, which Seger originally performed on 1982's The Distance, and Bob Dylan's Forever Young, played in tribute to late Eagles' founder Glenn Frey, a close friend who grew up with Seger in Detroit. Full setlist below.
Seger's future plans are unclear, and while he has hinted that it's only the North American part of the tour that's over, he hasn't played outside the continent for nearly four decades. His last UK show was at Wembley Arena in November 1980.
Bob Seger Philadelphia setlist
The Fire Down Below
Old Time Rock & Roll
Shame on the Moon
Roll Me Away
Come to Poppa
Her Strut
You'll Accomp'ny Me
We've Got Tonight
Sunspot Baby
Ramblin' Gamblin' Man
Hollywood Nights
The Famous Final Scene
See more Classic Rock news
Post Malone: Ozzy is "going to keep kicking ass"
Magnum: On A Storyteller's Night - Album Of The Week Club review
Guns N' Roses announce massive Scottish summer show


text:
The Fantastic Worlds of Edward Willett
Home / Autographed Books / Worldshaper
Worldshaper
Published by DAW Books
The first book in a new portal fantasy series in which one woman's powers open the way to a labyrinth of new dimensions…
For Shawna Keys, the world is almost perfect. She's just opened a pottery studio in a beautiful city. She's in love with a wonderful man. She has good friends.
But one shattering moment of violence changes everything. Mysterious attackers kill her best friend. They're about to kill Shawna. She can't believe it's happening–and just like that, it isn't. It hasn't. No one else remembers the attack, or her friend. To everyone else, Shawna's friend never existed…
Everyone, that is, except the mysterious stranger who shows up in Shawna's shop. He claims her world has been perfect because she Shaped it to be perfect; that it is only one of uncounted Shaped worlds in a great Labyrinth; and that all those worlds are under threat from the Adversary who has now invaded hers. She cannot save her world, he says, but she might be able to save others–if she will follow him from world to world, learning their secrets and carrying them to Ygrair, the mysterious Lady at the Labyrinth's heart.
Frightened and hounded, Shawna sets off on a desperate journey, uncertain whom she can trust, how to use her newfound power, and what awaits her in the myriad worlds beyond her own.
"This rollicking secondary-world contemporary fantasy opens with a bang…(the characters) grapple with the ethics of changing the world, the question of what makes people 'real' when the worldshapers can change everything about them with nothing more than a thought, and the need to save the universe. Willett…meticulously includes small details that make the constantly changing scenery feel solid and real…This novel sets up a fascinating, fluctuating universe with plenty of room for growth for the main characters, and readers will eagerly join their journey." – Publishers Weekly (starred review)
"Willett's series starter is fun, quirky, and highly enjoyable, nicely laying the groundwork for future volumes." – Booklist
"There is so much to love about this book. Like the fact it references Tolkien at least three times, if not more. Or perhaps the fact it referenced Doctor Who. Or maybe the fact that it's got a sarcastic wiseass smartmouthed main female character who actually stops to think 'what-if' every once and a while. Or perhaps there's the fact that there are so many interesting ideas in this book that it'll make your world spin….Edward Willett is fast becoming my favorite author." – Ria P., NetGalley reviewer
$9.99 – $19.95 + Tax
Format Choose an optionTrade PaperbackMass-Market Paperback Clear
Autograph details
Please tell me to whom you want the book autographed. If you'd like to request a special message, add that too (subject to author approval!)
Worldshaper quantity
SKU: N/A Categories: Adult Fiction, Autographed Books, Fantasy, Mass Market Paperback, Science Fiction, Series, Trade Paperback Tags: DAW Books, fantasy, science fiction, series, urban fantasy
Trade Paperback, Mass-Market Paperback
Be the first to review "Worldshaper" Cancel reply
The Worldshapers Series
Sale! $39.90 $34.95 + Tax Add to cart
Master of the World
Masks (The Masks of Aygrima #1)
Sale! $9.99 – $19.99 + Tax Select options
Cave Beneath the Sea (The Shards of Excalibur #4)
$14.95 + Tax Add to cart
The Haunted Horn
Door Into Faerie (The Shards of Excalibur #5)
© The Fantastic Worlds of Edward Willett 2020
You're viewing: Worldshaper $9.99 – $19.95 + Tax


text:
Home >> Exclusionary cities The exodus that wasn't
Exclusionary cities The exodus that wasn't
Yes, the urban population increased more in absolute terms during 2001-11 than rural population. But, no, this is not because distressed agricultural workers are pouring into cities. It's because census activism has tripled the number of urban centres in Census 2011. In fact, exclusionary policies are discouraging the inflow of rural poor into the mega cities
An innocuous fact that urban population during 2001-11 has increased by a larger number than rural population in absolute terms has led to speculation about an alarming pace of urbanisation and distress migration from rural areas to towns and cities in India. The underlying data and emergent concerns need immediate contextualisation and clarification.
It is indeed true that the phenomenon of incremental urban population being higher than that in rural areas has not before been witnessed in the history of India, except during 1911-21. This period was indeed unique as urban population grew at a very low rate of 0.3% per year and yet the increase in population was higher than that in rural areas since both rural as well as total population registered a decline. This has been attributed basically to a virulent influenza epidemic between 1918 and 1920 which killed millions, particularly in rural India, and led to an exodus from there. Besides, World War I killed thousands of Indian soldiers, contributing to the decline in population.
Can one attribute the increment in urban population being larger than rural population during 2001-11 to an equally catastrophic tragedy — the collapse of livelihoods in agriculture and related occupations? The emotional appeal of the thesis of a despair-driven exodus from rural areas is so very strong that it has found immediate acceptability among progressive writers concerned with society (Sainath 2011, Patnaik 2011), without much probing into the empirical issues. It would also be important to determine whether there is indeed a rural exodus, which class of cities is absorbing these migrants, and what the vision for future urbanisation is.
Components of urban growth
The annual exponential growth rate of urban population during 2001-11 works out to 2.76%, which is higher than the figure of 2.73% recorded in the preceding decade, only in the second decimal point. Urban growth remaining constant and even registering a marginal increase, against the projection of a decline in growth by the registrar general and census commissioner, has prompted experts to attribute this to an accelerated pace of rural-urban (RU) migration. Unfortunately, they have neither analysed the evidence on migration available or derivable from sources like the National Sample Survey and population census nor have they probed the contributions of the four components of urban growth: (a) natural increase, (b) migration, (c) emergence of new urban centres, and (d) expansion in municipal limits and urban agglomerations, before advancing the thesis of distress-induced urbanisation.
The marginal increase in urban growth cannot be attributed to a spurt in natural growth in population as the latter has declined more or less uniformly both in urban and rural areas during the last couple of decades. In 2006, Census of India projected a deceleration in urban growth until 2020 based on past trends and indications of a continuous fall in natural growth (birth rate less than death rate) from Sample Registration System data — from 17.4 per 1,000 in 1999 to 15.2 per 1,000 in 2009 — since the decline in birth rate has been sharper than that in the death rate. Understandably, the annual growth rate in population in the present decade is 1.62% only, going down from 1.95% in the preceding decade. The increase in natural growth of population can thus be dismissed as an explanatory factor for the rise in urban growth.
Data from the 45th and 64th rounds of the National Sample Survey suggest that migration due to economic compulsions has reduced among rural-urban migrants. Also, the share of adult male migrants in the corresponding adult male population in urban areas has declined from 32% in 1999-2000 to 31% in 2007-08. These undermine the possibility of migration to existing urban centres being a factor in the growth of urban population.
The 'impetus to urbanisation' has undoubtedly come from the last two components of growth noted above, manifest in an increase in the number of new census towns and urban agglomerations in 2011. It may be observed that the total number of urban centres in India has increased sluggishly, at a rate much slower than the urban population, during the 10 decades of the last century. The number had gone up by only 2,541. However, now, in just one decade, the number has shot up by 2,774. The jump in the number of census towns from 1,362 to 3,894 is unprecedented and is being attributed to census activism, as the office of the registrar general has been under tremendous academic and administrative pressure to review its methodology for collecting data on urban centres (Kundu 2011). The last component of urban growth — emergence of new agglomerations, comprising continuous urban spread over adjoining towns, villages and their outgrowths, too, has contributed to the growth. The number of such outgrowths had not gone up, according to the 2001 census, partly due to the application of a slightly stringent criterion for their identification. In sharp contrast to this, the 2011 census reports 90 new agglomerations that include a large majority of new towns, particularly in the states of West Bengal, Kerala and Tamil Nadu.
Decline in demographic growth in mega cities
The most significant trend emerging from the district- and city-level data released so far from the 2011 population census is that mega cities with a population over 4 million have not grown at a rapid pace. A press release from the Ministry of Urban Development, dated November 30, 2011, suggests that cities with a population between 1 and 4 million have grown at a rate 50% higher than that of 4-million-plus cities. The census, unfortunately, is yet to report the growth rates of different cities and towns during 1901-11, after making adjustments in the base year population for the inclusion of new towns. It is nonetheless possible to draw inferences regarding select large cities based on population figures at the district or regional level. Two predominantly urban regions, the national capital territory of Delhi and the union territory of Chandigarh (with over 90% of their population living in urban areas) have reported their lowest growth rates in history during 2001-11. The decline in demographic growth in districts that fully or partly fall within metro cities or agglomerations further confirms this hypothesis. Mumbai district, comprising the island city, has reported a decline in population in absolute terms by 0.6% per annum during 2001-11, implying substantial out-migration. Mumbai suburb district also records a decline in growth rate from 2.5% to 0.8%. The story is similar in Chennai, Hyderabad, Ahmedabad, Kolkata and other mega cities, as their central districts have recorded the lowest growth since Independence. Lucknow and Kanpur too report a deceleration in growth rates compared to the preceding decade. The only notable exception seems to be Bangalore. The high demographic growth here has been attributed to substantial area expansion and the rapid growth of the high-tech industry.
The drastic reduction in population growth in most mega cities suggests that the process of 'formalisation' has discouraged in-migration of the rural poor. The thrust of demographic and economic growth can be seen as shifting, to an extent, from mega cities to second-tier cities with populations of between 1 and 4 million and even smaller cities with over 1 lakh population, although the growth rates of the latter too have declined in recent years. The growth rate of population in cities with a population of between 0.1 and 1 million has declined from 2.96% during 1981-91 to 2.76% in 1991-2001 to 2.45% during 2001-11, but that is less than the decline in mega cities.
Factors constraining growth in large cities
A process of 'sanitisation and formalisation' seems to be discouraging the inflow of rural poor into many of the million-plus cities, resulting in exclusionary urban growth. This has come in the way of the poor in deprived regions using migration as a window of opportunity to improve their economic wellbeing. In the new system of urban governance, civil society organisations, particularly resident welfare associations, have become active and vocal, with the objective of ensuring the safety of their residents, better delivery of public amenities and more efficient management of development projects. In the process, these organisations, mostly representing the interests of better-off formal colonies, have tried to sanitise their neighbourhoods by removing encroachments, slums, squatter settlements and petty commercial establishments. The courts have taken a serious view of public interest litigations filed by these organisations and other concerned individuals, and have often directed local authorities to remove 'undesirable forms of urban growth'. Such measures have led to an improvement in the quality of life in formal colonies but, in turn, have accentuated disparities in the level of amenities across colonies in cities. This has made life very difficult for the poor and has contributed to a deceleration in rural-urban migration.
Given the resource constraints of urban local bodies (ULBs), financial institutions, international donors and credit-rating agencies have come up with innovative arrangements for resource mobilisation. The system of allowing tradable extra floor area (FSI) has been a convenient method of resource mobilisation. Although the basic idea is to promote greater land-use efficiency, this process has made the absorption of poor migrants much more difficult, promoting spatial segmentation and separation of rich and poor.
A large number of cities have adopted policies of privatisation, partnership arrangements and promotion of community-based projects to lessen the pressure on their budgetary resources. Infrastructural projects sub-contracted to private agencies or launched under public-private partnerships mostly have stipulations of cost recovery, aimed at making the projects financially self-sustaining. However, low-income neighbourhoods find it difficult to meet these stipulations. The same occurs in relation to public sector projects that are becoming increasingly dependent on institutional borrowings and capital markets. These accentuate the gap between rich and poor localities, particularly in the context of water and sanitation facilities, resulting in serious problems of health and hygiene for the entire city. Growing disparities in the quality of the micro-environment have also contributed to problems of law and order, resulting in violence. All these lead to low population absorptive capacity of the poor in cities.
A massive programme for infrastructural investment through additional central assistance coming to state/city governments as grants, was launched in the Eleventh Plan under the Jawaharlal Nehru National Urban Renewal Mission (JNNURM), restricted largely to large cities. The key objective is to get state and local governments to commit themselves to structural reforms. An overview of projects and schemes launched in different cities reveals that most projects have been designed to increase total capacity services such as water supply, sanitation and sewer treatment, as well as roads, with no explicit provision to improve the delivery of such facilities in deficient areas. The Mission attempted to improve the living conditions of the poor through integrated housing projects, implemented through state governments and local bodies and with the engagement of private agencies. It provided subsidised dwelling units to groups of people with administrative or political clout or those occupying prime land needed to improve city infrastructure, thus contributing to the 'sanitisation' and protecting commercial interests. Within the framework of such a policy, the diminished inflow of rural poor into large cities is the expected outcome, as manifest in low population growth in JNNURM cities.
A vision for the future
By conservative estimates, India will have about 400 million additional people in the labour force by the year 2050. Agriculture and related activities that provide subsistence to around 220 million of the current workforce of 500 million cannot absorb this additional labour without further reducing levels of earnings. There has to be, therefore, a massive transfer of people from primary to secondary and tertiary sectors, and from rural to urban areas. One way of operationalising this transfer would be to adopt more inclusive policies in cities, ensuring that they absorb a large part of the rural-urban transfer by creating industrial and service employment on a large scale. Unfortunately, there will be socio-political resistance to this in many of the million-plus cities. Recent studies show (Ghani 2012) that plants in the formal sector are moving away from mega cities into lower-order cities or rural locations, while the informal sector is moving into these cities. In fact, many chemical and manufacturing plants are being expelled from the core to degenerating peripheries and the share of the organised manufacturing base in a large majority of million-plus cities has gone down due to environmental concerns at the micro level (linked to quality of life of the upper and middle class), scarcity of land, and problems of organised labour. Urban-rural cost differentials have risen because of privatisation of many basic amenities, increase in user charges and stricter bylaws and building norms in cities, resulting in a pushing out of the poor or their low in-migration rate.
It is the non-polluting tertiary activities and growth of select informal sector that are driving the limited urbanisation in million-plus cities, their number going up from 35 in 2001 to 52 in 2011. Given that these cities will remain exclusionary, it would make sense to provide more support to potentially successful small and medium-sized Class I cities, so that they can provide employment at a reasonable level of productivity and earnings for the growing labour force. It is important for Indian policymakers to recognise that much of the current population growth will occur in the unorganised sector in the lower-order cities. This will require a different kind of skill-formation and infrastructural support. Besides, there are over 2,500 new census towns where basic services can be strengthened under a scheme such as JNNURM. This will necessitate a change in mindset for planners working under the paradigm of economies of agglomeration and 'reshaping economic geography'. An inclusionary approach would be more successful in promoting development in these cities by focusing on the informal sector and labour-absorptive technology. The more Indian cities recognise this influx, and design policies and investments to support it, the more effective will be policy interventions. Inclusionary policies must ensure that informal livelihoods are integrated into urban plans, land allocation systems and zoning regulations, and that the unorganised workforce gains access to markets and to basic amenities. (Infochange)
Amitabh Kundu
Inflation The Flip Side Story
This winter has been a season of general discontent—every consumable item seems to be on a fast track on the... View Article
JMM-Congress-RJD alliance beats BJP in Jharkhand elections
JMM-Congress-RJD Alliance is set to form a new government in Jharkhand. The alliance has won 47 seats in the 81-member... View Article
A Slice Of The Himalayas
Like me if you had been fascinated by Rajesh Khanna jumping in and out of the toy train in Mere... View Article
Arrest Of Shivakumar Further Exposes Congress' Corruption
The constitution of India is the mother of all laws. It is a comprehensive document that underscores the importance of... View Article
India at 70 How have we done?
The Indian economy is now the fifth largest in the world measured by nominal GDP and the third largest by... View Article
How To Prevent Malaria
With monsoons came another season of dengue and malaria. According to news reports, malaria cases are much higher this year... View Article
Excellence Beyond Words
"Indian doctors are the best." This is not a hollow statement but a cogent fact, which has been substantiated by... View Article
Narendra Modi's Gift To Andhra Pradesh '24-Hour Power Supply'
The energy department has asked the Andhra Pradesh Transmission Company (APTransco) to prepare a report on the day-to-day power usage... View Article
The last year of this decade has been among the most eventful in contemporary history. The year 2009 has seen... View Article
NTPC raises Rs 2,000 crore in country's first Green Masala Bonds
The country's largest power producer, NTPC, raised Rs 2,000 crore through rupee-denominated green masala bonds from offshore markets. The company... View Article


These Natural Peacock Sword Feathers are 25-35 inches long, are sold in a pack of 100.
Peacock Swords are located next to the eye feathers on the Peacock bird. They have a natural curve with shimmery, iridescent green & gold colors and can also be curled with a low heat curling iron. Sword feathers are used for many different things such as; Home decor, vase fillers, dance costumes, wedding decorations, jewelry and so much more!


text:
DISTINGUISHED PROFESSOR OF INTERNATIONAL CRIMINAL LAW PASSES AWAY
December 18, 2019 by Bruce Zagaris Leave a Comment
On December 9, 2019, Distinguished University and Law Professor Emeritus at the Washington College of Law, American University Nicholas Kittrie passed away. Below is a memorandum from Mary L. Clark, Deputy Provost and Dean of Faculty.
For those of us who had the privilege of knowing Professor Kittrie, he was a great scholar, a fantastic teacher, a very kind human being, and had a love of the field of international criminal and comparative criminal law. The community of international and comparative criminal law will miss him dearly.
"TO: American University Faculty and Staff
FROM: Mary L. Clark, Deputy Provost and Dean of Faculty
SUBJECT: WCL Distinguished University and Law Emeritus Nicholas Kittrie
I write with the sad news of the passing of Distinguished University and Law Professor Emeritus Nicholas Kittrie. Professor Kittrie earned an LL.B. and M.A. from the University of Kansas and an LL.M. and S.J.D. from Georgetown University School of Law. Professor Kittrie joined AU's Washington College of Law in 1964 and served on the faculty for over 50 years before his retirement in 2017. While at WCL, Professor Kittrie rose through the academic ranks quickly and ultimately served as WCL's Dean. He also played a major role in the planning and development of the then Criminal Justice Department in the School of Public Affairs. In recognition of his service, WCL's Faculty Lounge – "The Nicholas N. Kittrie Faculty Lounge" – was dedicated in his honor in 2016.
Professor Kittrie was a leading expert in American and international public and criminal law. He authored or edited more than fifteen books, numerous articles, and gave scores of presentations at universities throughout North America, Europe, Asia, and Africa. Professor Kittrie frequently appeared in the media to discuss topics as varied as war crimes, terrorist activities, political offenders, extradition, and criminal sentencing. Professor Kittrie chaired the United Nations Alliance of NGOS on Crime Prevention and Criminal Justice, served as president of the American Society on Criminology, and served as a legal consultant to the United States Vice President's Commission on Terrorism. Most recently, Professor Kittrie was honored with the Albert Nelson Marquis Lifetime Achievement Award in recognition of his work as a legal scholar, educator, and legal practitioner in the U.S. and abroad.
Information regarding a service in honor of Professor Kittrie will follow. Condolences or acknowledgments on his behalf may be made to the American Friends of Yemin Orde Youth Village in Bethesda, M.D."
Filed Under: Counterterrorism & International Human Rights, Crimes against Humanity, extraterritorial jurisdiction, Int'l Criminal Court, International Cooperation, International Criminal Law, international evidence gathering, Money Laundering & Bank Secrecy, national security, ounterterrorism financial enforcement, teaching international criminal law, Transnat'l Organized Crime, Cybercrime, Narcotics, War Crimes
U.S. Appropriations Bill Carries More Sanctions and Asset Recovery on the Maduro Regime
By Bruce Zagaris and Dale Eppler
The House-Senate Appropriations bill, which is expected to pass this week, has several provisions on Venezuela (at around page 1270 in the 1783 page text), including a new requirements on asset recovery and coordination of economic sanctions with other countries. In April, Senator Robert Menendez (D-N.J.) introduced the "Venezuela Emergency Relief, Democracy Assistance, and Development (VERDAD) Act of 2019 with broad bipartisan support. It directs a new strategy for Venezuela in coordination with Congress, and earmarks substantial funds to support it. We understand there also were very high level meetings in the Executive branch during the past week on Venezuela but, thus far, no word from the White House on any change in the direction of U.S. policy.
The language in the bill is as follows:
Subtitle E—Supporting the 8 Reconstruction of Venezuela
SEC. 151. RECOVERING ASSETS STOLEN FROM THE VENEZUELAN PEOPLE.
(a) RECOVERING ASSETS. —The President, acting through the Secretary of State and in consultation with the Secretary of the Treasury, shall advance a coordinated international effort—
(1) to work with foreign governments—
(A) to share financial investigations intelligence, as appropriate;
(B) to block the assets identified pursuant to paragraph (2); and
(C) to provide technical assistance to help governments establish the necessary legal framework to carry out asset forfeitures; and
(2) to carry out special financial investigations to identify and track assets taken from the people and institutions of Venezuela through theft, corruption, money laundering, or other illicit means.
(b) STRATEGY REQUIREMENT.—
(1) IN GENERAL.—Not later than 180 days after the date of the enactment of this Act, the President, acting through the Secretary of State and in consultation with the Secretary of the Treasury, shall submit a strategy for carrying out the activities described in subsection (a) to Congress.
(2) ADDITIONAL ELEMENTS.—The strategy required under paragraph (1) shall—
(A) assess whether the United States or another member of the international community should establish a managed fund to hold the assets identified pursuant to subsection (a)(2) that could be returned to a future democratic government in Venezuela; and
(B) include such recommendations as the President and the Secretary of State consider appropriate for legislative or administrative action in the United States that would be needed to establish and manage the fund described in subparagraph (A).
Subtitle F—Restoring the Rule of Law in Venezuela
SEC. 161. DEVELOPING AND IMPLEMENTING A COORDINATED SANCTIONS STRATEGY WITH PARTNERS IN THE WESTERN HEMISPHERE AND THE EUROPEAN UNION.
(a) STRENGTHENING SANCTIONS CAPACITY IN LATIN AMERICA AND THE CARIBBEAN.—The Secretary of State, in consultation with the Secretary of the Treasury, shall offer to provide technical assistance to partner governments in Latin America and the Caribbean to assist such governments in establishing the legislative and regulatory frameworks needed to impose targeted sanctions on officials of the Maduro regime who—
(1) are responsible for human rights abuses;
(2) have engaged in public corruption; or
(3) are undermining democratic institutions and 18 processes in Venezuela.
(b) COORDINATING INTERNATIONAL SANCTIONS.
— The Secretary of State, in consultation with the Secretary of the Treasury, shall engage in diplomatic efforts with partner governments, including the Government of Canada, governments in the European Union, and governments in Latin America and the Caribbean, to impose targeted sanctions on the Maduro regime officials described in subsection (a).
(c) STRATEGY REQUIREMENT.—Not later than 90 days after the date of the enactment of this Act, the Secretary of State, in consultation with the Secretary of the Treasury, shall submit a strategy for carrying out the activities described in subsection (a) to: (1) the Committee on Foreign Relations of the Senate; (2) the Committee on Appropriations of the Senate; (3) the Committee on Banking, Housing, and Urban Affairs of the Senate; (4) the Committee on Foreign Affairs of the House of Representatives; (5) the Committee on Appropriations of the House of Representatives; and (6) the Committee on Financial Services of the House of Representatives.
It is not clear yet how the executive branch, working with Congress, will implement the proposed sanctions and asset recovery program. We expect Treasury and State will lead the coordination with other governments. Presumably, the U.S. and its partners will furnish technical assistance to smaller jurisdictions in the region that are willing to help them find, freeze, and even forfeit assets that are the proceeds of crime. Until now, one potential challenge is that some small jurisdictions, especially those that have maintained friendly relations with Chavez and Maduro, and that benefited from PetroCaribe, do not want to take steps inimical to the Maduro regime. Another problem is that governments are much better at freezing accounts than they are at identifying and tracking the proceeds of corruption.
The next issue of the IELR will have a more comprehensive discussion of the provisions.
Filed Under: Administrative Penal Law, Corruption, Counterterrorism & International Human Rights, Crimes against Humanity, Diplomatic Affairs, drug trafficking, Economic Sanctions, Election Interference, extraterritorial jurisdiction, Human Trafficking, Migration Smuggling, Int'l Criminal Court, International Arms Trade, International Cooperation, International Criminal Law, international regimes, internationalhumanitarianlaw, internationalhumanrights, Money Laundering & Bank Secrecy, national security, Transnat'l Corruption, Money Laundering & Asset Forfeiture, Transnat'l Organized Crime, Cybercrime, Narcotics, Transparency and governance Tagged With: Venezuela