text:
Start/Sit, Week 5: Is Brady still an every week starter for fantasy football?
We take a look at the top start/sit decisions for your fantasy football team in Week 5, but with a unique twist - using consistency scores.
By Phillip Caldwell
Quarterbacks to start/sit in fantasy football Week 5
Which running backs should you start/sit in Week 5?
What wide receivers should you start/sit in fantasy football for Week 5?
Taking a look at tight ends in Week 5
Want more fantasy football analysis and news?
One more week in the books, and already fantasy football managers have to deal with bye week woes. Pile those on top of the onslaught of injuries that 2020 has given us so far, and options for this column are getting weirder and weirder. So let's review our Fantasy Football Consistency Score (CS) and Defensive Points Allowed Consistency Score (DPACS) after what we have learned and highlight the top Week 5 matchups and players to start or sit for your fantasy lineups.
Featured | Buy Low, Sell High: Fantasy trade targets for Week 5
If you would like more detailed information on how the CS and DPACS works, please refer to the Introduction to the Fantasy Football Consistency Score. But the basic premise is, the higher the CS, the more consistent a player is scoring high-level fantasy points. In the case of DPACS, the consistency in which that team allows high-level fantasy points to the position.
PSA: I don't feel the need to tell you, the savvy fantasy G.M., to start a player like Patrick Mahomes every week. I abide by the golden rule: start your studs. However, if there is glaring evidence to sit a bonafide starter, we will discuss that as needed.
[sv slug="fantasy"]
Start Teddy Bridgewater
I love a "feel good" story. And there isn't a bigger feel-good comeback story in the NFL than Teddy Bridgewater shedding arm tackles and scrambling for 18 yards and a touchdown this past Sunday. Now the 2014 first-round pick gets the favorable matchup against the buttercup Atlanta Falcons in Week 5.
Bridgewater's 6.08 screams mediocrity, and his QB24 ranking in FPD isn't terribly juicy either. But he is in the top half of the league in xFP, and we finally saw a strong passing performance from Bridgewater in Week 4. Bridgewater looks like a quarterback that is shaking off the rust, but he is improving each game, it seems.
But that's not the real headline here. The matchup against the Atlanta Falcons secondary is why fantasy managers everywhere should feel confident firing up Bridgewater in Week 5. The Falcons have lost six members of their secondary.
This year, they are allowing an average of 354 passing yards and have literally given up four passing touchdowns in every single game this season. That includes the Trubisky/Foles Week 3 meltdown against Chicago. With the second-highest DPACS against QBs, 25.63, and a whopping 32.48 average points allowed, Bridgewater might have his best fantasy football performance of the year in Week 5.
Sit Tom Brady
Welcome to 2020. I am officially suggesting that fantasy football managers sit Tom Brady in Week 5. The end is near…
But seriously, Brady hasn't been a statistical stud this season. He had his best statistical game of the season in Week 4 against the Los Angeles Chargers, but before that game, he was averaging 250 yards passing, two touchdowns, one interception a game, and his 7.04 CS is 20th among all signal-callers. All of his pass-catchers are banged up, and it is likely he has to lean even more heavily on a rough-looking post-retirement Gronk. It's not the prettiest situation Brady has been in.
Featured | Which Buccaneers wide receivers can you trust for fantasy on Thursday night?
On top of his own team's woes, they play the Chicago Bears in Week 5, who are 26th in DPACS and 31st in average points allowed to quarterbacks. Not a matchup to target for fantasy. On top of the defense being stout against the position, the offense is struggling mightily. They are tied with the Washington Football team for the 12th fewest offensive touchdowns on the season. So this isn't apt to blow up into a thirty-something-thirty-something shootout the way the Chargers game did. Ignore the name fame, and sit Brady.
Start James Robinson
This kid is fun. More than that, he is good too. His 5.96 CS is 11th among all running backs, he is averaging 17.4 fantasy points per game in 0.5-PPR formats, 71 rushing yards, 4 targets, and 1.5 touchdowns per game. James Robinson came out of nowhere and is making himself a household name.
In Week 5, the Jacksonville Jaguars lineup opposite the 0-4 Houston Texans that just fired their head coach/GM/Czar and currently have the second-highest DPACS, 21.7, and are averaging right around 30 points per game to the position, regardless of format. Is that not enough for you? You need more, you say? How about the fact that the Texans have allowed more rushing yards than any other team in the NFL in 2020 and are tied for fourth in rushing touchdowns allowed (6)? Yeah, James Robinson is an "all systems go" start this week.
Sit the Los Angeles Rams running backs.
The Los Angeles Rams are traveling to the nation's capital to face off against the Washington Football Team, who have the third-lowest DPACS, 6.61, and average points allowed to the position.
Along with a bad defensive matchup, it's a complete coin flip as to which running back is even "the guy" on this team. On the season, Malcolm Brown has 45 carries to Darrell Henderson's 43. Brown also eeks ahead in targets, 12 to 7, and both backs have two touchdowns each. But Henderson leads the two in rushing and receiving yards. The situation is simply too murky going into a bad matchup on the road. Steer away from either back in Week 5.
Start Robby Anderson
If I am going to tout Teddy Bridgewater at quarterback, then it stands to reason that the Carolina Panthers number one receiver will have a good day too. And sadly, no, I don't mean D.J. Moore. I whiffed hard on that one this offseason.
But Robby Anderson has been all that we've hoped for and then some. It just took getting away from a particular head coach up in the "Big Apple" for him to show a consistent level of production. Anderson is currently sporting a Consistency Score of 5.43, 12th highest among receivers, a +22% Fantasy Point Differential, and is averaging 14.43 fantasy points per game. Going up against the C-Team for the Falcons defense will be a walk in the park for Anderson.
Sit Hunter Renfrow
Despite all the injuries essentially making Hunter Renfrow the number one target for Derek Carr, this is not the week to plug him into your starting lineups. The Las Vegas Raiders are traveling to the heartland to take on the Kansas City Chiefs in their building. The Cheifs are shutting down receivers this season and going to make it a very bad afternoon for Renfrow.
The Chiefs 8.21 is the second-lowest DPACS vs. receivers, and they are allowing the fewest average points to the position. In the real NFL world, it is just as bad. They have allowed the fourth-fewest receptions and receiving yards and the third-fewest receiving touchdowns on the season. Even with all of the injuries plaguing fantasy seasons this week, Renfrow should be avoided in this matchup.
Start Hunter Henry
Let's just keep going back to the well that keeps on giving. Tight ends versus the New Orleans Saints. Last week it was T.J. Hockenson finding the endzone. This week Hunter Henry is up next to take on one of the most giving defenses when it comes to the position. The Saints are giving up 24.2 PPR points per game to tight ends, second-highest, and has an 8.4 DPACS to the position. Also, the second-highest.
Related | Which Buccaneers wide receivers can you trust for fantasy on Thursday night?
The kicker, Hunter Henry, is good again! He's healthy, which, let's face it, was the only real thing holding him back. In 2020 Henry has the fifth-highest CS, eighth highest in both xFP and targets, and is 13th among tight ends on the season in fantasy points for PPR formats. Plenty of opportunities, consistently performing, and a "My Pillow" soft matchup. Yes, please!
Sit Dalton Schultz
When I see that Dalton Schultz is the eighth-highest scoring tight end at this point on the season, I can't help but think of what Blake Jarwin could have been. But we have to play with the cards dealt, and we have Dalton Schultz instead, and this week he plays the New York Giants.
The Giants have been surprisingly good against tight ends this season, ranking 24th in average points allowed and 26th in DPACS. Meanwhile, they are a top-10 matchup against receivers. This profiles to be a game where Dak Prescott has no problem hitting his first read when they need to throw, and leaning on Ezekiel Elliott for the vast majority of the time. With a high likelihood of a defensive score to boot, I just don't see how the Cowboys are going to need anything other than run blocking out of Schultz this week.
Be sure to follow us on Twitter @PFN365 to stay up to date with all things around the NFL and the 2020 fantasy football season. Also, continue to visit Pro Football Network for NFL news and in-depth analysis while also visiting our fantasy football section for more coverage and up-to-date rankings.
Did you like this piece? Disagree? Drop me a line and let me know @DumpsterDiveFF and go ahead and follow for more fantasy football nuggets & all things Consistency Score related.


Sarco is pleased to offer a fine selection of the accounts of WWI and WWII, as seen through the eyes of the German soldier! These books are written in the German language and represent objective & subjective viewpoints, many of which will probably never be translated into English. A wealth of information and loads of stories and pictures rarely revealed in English speaking print and visual media! These books offer great insights into the German perspective, victories, suffering, psyche, and perseverance in a time of great uncertainty and upheaval. These books are a must for the true historian of WWI & WWI.Most of these books are original first print versions, but some are subsequent reprints. We only have a single copy of each book so it is best to act quickly in order to secure the book of your choice. When ordering, please have a 2nd and 3rd choice in mind as we do not know how long we will be able to offer these titles. Most of these books have both German text and photos/illustrations.
Books offered here are in good or better condition, except for #58 which has sustained separation of the outer binding. All books are sold as-is and are not returnable. For further information or questions on these books, please contact Mark at phone ext 224.


text:
Share this Story: Next Edmonton mayor hopes for positive results with Alberta premier, UCP government
PMN News
PMN Canada
Next Edmonton mayor hopes for positive results with Alberta premier, UCP government
Dean Bennett
Oct 19, 2021 • October 19, 2021 • 4 minute read • Join the conversation
Edmonton's next mayor says his goal with Premier Jason Kenney will be to keep it respectful and get things done.
"We haven't always agreed on some policy proposals, but I have always been very respectful," Amarjeet Sohi said Tuesday following his win in the municipal election a day earlier.
Next Edmonton mayor hopes for positive results with Alberta premier, UCP government Back to video
"I have never engaged in personal attacks and that's what I am absolutely going to continue to practise."
Sohi said the premier called him after his win.
"We talked about how we can work together to tackle COVID and the aftermath of COVID, how we recover from COVID and what kind of economic opportunities exist, and how we can work together to tackle the issues of houselessness, mental health (and) addiction."
Sohi is a former federal Liberal MP who served in the cabinet of Prime Minister Justin Trudeau before losing in the 2019 election.
He joins Jyoti Gondek, who was elected the first female mayor of Calgary.
The incumbents — Don Iveson in Edmonton and Naheed Nenshi in Calgary — did not run again after each served multiple terms.
Gondek echoed Sohi's approach.
"You can't be in an elected position and hold a grudge or have hard feelings. I know I don't," she said in an interview with The Canadian Press.
"I'm hoping to build a healthy relationship with the provincial government. It's actually, probably, the most critical thing to make sure we move toward economic, social and environmental resilience.
"We all have mutual outcomes that we wish to see so I remain optimistic that we'll be able to build those relationships."
Kenney told reporters he wishes all elected members well and hopes to work constructively with them.
"I think it's important for us to avoid turning municipal politics into a partisan exercise," he said.
"Our government will work with all of the mayors and councillors elected to try to move in the same direction."
Sohi and Gondek are left-centre progressives and defeated rivals deemed more in keeping with Kenney's conservatism.
A number of incumbents were shown the door as voters opted for widespread change in Alberta's two largest cities. Eight of Edmonton's 12 councillors are women and four are people of colour.
Sohi and Gondek ran campaigns focusing on economic recovery and addressing social inequities. Both face some fence-mending with Kenney's United Conservative government.
Nenshi and Iveson often crossed swords with the premier. They criticized his government for drastically cutting funding to their cities and, more recently, decried lack of consistent focus and leadership during the COVID-19 crisis.
Nenshi urged voters on Twitter on the weekend to vote against Kenney's "ridiculous referendums." Questions on the federal equalization program and daylight time were on the ballot.
On CBC's West of Centre podcast days earlier, Nenshi said it wasn't so much the political stripe of Kenney's UCP government but its inability to manage.
"I can deal with any ideology. The challenge is sheer incompetence," he said.
Iveson, on the same podcast, said the Kenney government's combative approach hinders progress. "The style of leadership that is to pick fights rather than work with others works well to win elections … but it doesn't actually solve problems," he said.
Kenney ran and won the Alberta election in 2019 on a "fight back" strategy to challenge anyone, including Trudeau's government, who he saw as frustrating Alberta's best interests. His government has since publicly fought with teachers, nurses and doctors over policies and wages.
He once publicly dismissed Trudeau as "an empty trust-fund millionaire who has the political depth of a finger bowl" and labelled Michigan Gov. Gretchen Whitmer "brain-dead" for her state's environmentally focused opposition to Enbridge's Line 5 pipeline under the Great Lakes.
Political scientist Chaldeans Mensah said Gondek and Sohi have the chance at a reset with Kenney.
"If they approach him diplomatically and are willing to avoid overt attacks on the premier, there's a possibility of a positive relationship," said Mensah of MacEwan University in Edmonton.
One of the province's referendum questions was whether Alberta would like to see equalization removed from the Constitution. Kenney has said he doesn't want that — Alberta can't do it unilaterally anyway — but he wanted a majority "yes" vote to open discussion with the federal government on equalization and other issues he deems unfair to the province.
Final results will not be available for a week, but early reports from municipalities suggest it will pass.
Kenney estimated about 60 per cent voted in favour, which he said would be more than enough.
"We're looking for a majority to say yes to a fair deal," he said.
Political scientist Duane Bratt said if Kenney was hoping for a decisive mandate along the lines of Quebec secession referendums, he didn't get it.
"How do you say, 'I've got a mandate to negotiate,' when you've got (potentially) less than 60 per cent and less than 50 per cent turnout?" said Bratt of Mount Royal University in Calgary.
The province also asked if Albertans wanted to ditch changing their clocks twice a year and adopt daylight time year-round. Final results on that are not in yet.
This report by The Canadian Press was first published Oct. 19, 2021.
— With files from Alanna Smith in Calgary

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Regexp::Grammars handling \n I'm running the example from slide 15:
qr{
  <data>
  <rule: data>    <[text]>+
  <rule: text>    .+
}xm;

When running against a multi-line text:
line_1
line_2

I get:
'text' => [ 'line-1',
            '
            line-2' ]

and so far I've not succeeded getting rid of the '\n' in front of the second line captured.
Running Regexp::Grammers 1.048 on top of Strawberry perl 5.26.1.
update / clarification
Having (pre-maturely - sorry!) raised a bug against the module, Damian clarified as follows (reply slightly adapted to match above example):
A rule with whitespace within it matches any whitespace (including newlines) in the input at that point. So a rule like:
<rule: text>    .+

is really equivalent to:
<rule: text><.ws>.+

meaning: match-but-don't-capture any leading whitespace, then match any-characters-except-newline.
If you want whitespace inside the rule to be ignored (as you seem to want here), then you need to declare the rule as a token instead. Tokens don't have the magical "whitespace-matches-whitespace" behaviour of rules. Hence you would write:
<token: line> .+

in which case you will also need to explicitly consume the newlines separating each line, with something like:
<rule: data> <[line]>+ % \n

A: This works:
qr{
  <data>
  <rule: data>  <[text]>+ % [\r\n]+
  <rule: text>  .+
}xm;

The lines of data are meant to be separated by EOL character(s) which the
[\r\n]+

specifies. Note: some Windows files end each line with both a new line \n and a line feed \r character hence the [\r\n]+ pattern. You can read more about this by doing a perldoc Regexp::Grammars and searching for separator

redpajama_set_name: RedPajamaStackExchange


text:
Andrew Scott Cast in His Dark Materials
HBO and BBC's His Dark Materials has found its latest star. According to a new report from Deadline, Sherlock alum Andrew Scott has signed on to appear in the second season of the upcoming drama series, ahead of Season 1 airing later this year. Scott most recently played the "hot priest" on Season 2 of Fleabag, and previously played Moriarty on BBC's Sherlock.
Scott will be playing Colonel John Parry, the father of Will Parry (Amir Wilson). Parry, who is also known as Doctor Stanislaus Grumman or Jopari, accidentally travelled to Lyra's world where he became a renowned scholar and shaman. His dæmon was called Sayan Kötör and had the form of an osprey.
His Dark Materials is set in a pretty unique alternate reality, in which humans go through life alongside a daemon, a physical manifestation of the human soul. The series follows a young orphan named Lyra, who discovers a dangerous secret that leads her down a mysterious rabbit hole.
His Dark Materials stars Dafne Keen (Logan) as Lyra Belacqua, Ruth Wilson (Mission: Impossible – Fallout) as Marisa Coulter, James McAvoy (Split, X-Men: Dark Phoenix) as Lord Asriel, Clarke Peters (The Wire) as Dr. Carne, and Lin-Manuel Miranda (Hamilton) as Lee Scoresby.
"We're not twisting it, but we are modernizing it a little bit, making it feel a little bit more accessible." director Otto Bathurst told Metro UK last year. "The books are quite Victoriana in their fantasy, but it's pretty on the nose – there are a lot of fans of that book and it's a great book so why mess with it?"
The description of the series can be found below:
"Adapting Philip Pullman's award-winning trilogy of the same name, which is considered a modern masterpiece of imaginative fiction, the first season follows Lyra, a seemingly ordinary but brave young woman from another world. Her search for a kidnapped friend uncovers a sinister plot involving stolen children, and becomes a quest to understand a mysterious phenomenon called Dust. As she journeys through the worlds, including our own, Lyra meets Will, a determined and courageous boy. Together, they encounter extraordinary beings and dangerous secrets, with the fate of both the living — and the dead — in their hands."
What do you think of Scott joining His Dark Materials? Share your thoughts with us in the comments below!
His Dark Materials is set to be released on HBO later this year.
Have you subscribed to ComicBook Nation, the official Podcast of ComicBook.com yet? Check it out by clicking here or listen below.
The crew is breaking it down for Episode 57 and we've got news headed into the weekend. We're talking the new G.I. Joe Snake Eyes movie, a potential major Powers of X twist, and Robocop reboot updates. We've got all that and we're bringing back the Rant & Rave section – all in today's episode of #ComicBookNation! Make sure to subscribe now to never miss an episode!
Filed Under: General Tagged With: Andrew Scott, his dark materials


Published 04/22/2019 11:15:52 am at 04/22/2019 11:15:52 am in Antique Wicker Porch Furniture.
antique wicker porch furniture old cane chairs antique cane chair a vintage wicker chair isolated on white antique wicker porch furniture.
old fashioned wicker garden furniture,antique wicker garden furniture,antique wicker porch furniture,vintage wicker garden furniture, black wicker furniture , alluring vintage wicker furniture cushions park old outdoor chair full size of old wicker garden furniture vintage doll high chair antique rattan download by beautiful , that wicker guy antique wicker and great camp furniture buy sell antique american wicker, big deal on international caravan valencia resin wicker porch swing international caravan valencia resin wicker porch swing antique brown iron , have wicker furniture questions ask the wicker expert victorian wicker heartshape settee, antique wicker rocking chair porch rocker chairish late th century antique wicker rocking chair porch rocker for sale image of , antique wicker chair at stdibs american antique wicker chair for sale.


text:
namespace fibio {
namespace http {
namespace detail {

typedef fibio::http::server_request request;
typedef fibio::http::server_response response;
typedef boost::asio::basic_waitable_timer<std::chrono::steady_clock> watchdog_timer_t;

template <typename Stream>
struct stream_traits
{
};

template <>
struct stream_traits<tcp_stream>
{
    typedef tcp_stream stream_type;
    typedef tcp_stream_acceptor acceptor_type;
    // HACK:
    typedef int* arg_type;
    static constexpr uint16_t default_port = 80;

    static stream_type* construct(arg_type) { return new stream_type; }
};

template <>
struct stream_traits<ssl::tcp_stream>
{
    typedef ssl::tcp_stream stream_type;
    typedef ssl::tcp_stream_acceptor acceptor_type;
    // HACK:
    typedef ssl::context* arg_type;
    static constexpr uint16_t default_port = 443;

    static stream_type* construct(arg_type arg) { return new stream_type(*arg); }
};

template <typename Stream>
struct connection
{
    typedef stream_traits<Stream> traits_type;
    typedef typename traits_type::stream_type stream_type;
    typedef typename traits_type::arg_type arg_type;

    connection(const std::string& host,
               timeout_type read_timeout,
               timeout_type write_timeout,
               arg_type arg)
    : host_(host)
    , read_timeout_(read_timeout)
    , write_timeout_(write_timeout)
    , stream_(traits_type::construct(arg))
    {
    }

    connection(connection&& other) = default;

    connection(const connection&) = delete;

    ~connection() { close(); }

    void start_watchdog()
    {
        watchdog_timer_.reset(new watchdog_timer_t(asio::get_io_service()));
        watchdog_fiber_.reset(new fiber(fiber::attributes(fiber::attributes::stick_with_parent),
                                        &connection::watchdog_fiber,
                                        this));
    }

    void watchdog_fiber()
    {
        boost::system::error_code ignore_ec;
        while (is_open()) {
            watchdog_timer_->async_wait(asio::yield[ignore_ec]);
            // close the stream if timeout
            auto dur = watchdog_timer_->expires_from_now();
            std::chrono::seconds s = std::chrono::duration_cast<std::chrono::seconds>(dur);
            if (s <= std::chrono::seconds(0)) {
                stream().close();
            }
        }
    }

    bool recv(request& req)
    {
        bool ret = false;
        if (bad()) return false;
        if (read_timeout_ > NO_TIMEOUT) {
            // Set read timeout
            watchdog_timer_->expires_from_now(read_timeout_);
        }
        ret = req.read(stream());
        return ret;
    }

    bool send(response& resp)
    {
        bool ret = false;
        if (bad()) return false;
        if (write_timeout_ > NO_TIMEOUT) {
            // Set write timeout
            watchdog_timer_->expires_from_now(write_timeout_);
        }
        resp.raw_stream_ = stream_.get();
        ret = resp.write();
        if (!resp.keep_alive()) {
            stream().close();
            return false;
        }
        return ret;
    }

    bool is_open() const { return stream_ && stream().is_open(); }

    void close()
    {
        if (stream_) {
            stream_->close();
            stream_.reset();
        }
        if (watchdog_timer_) {
            watchdog_timer_->cancel();
        }
        if (watchdog_fiber_) {
            watchdog_fiber_->join();
            watchdog_fiber_.reset();
        }
        watchdog_timer_.reset();
    }

    stream_type& stream() { return *stream_; };

    const stream_type& stream() const { return *stream_; };

    bool bad() const
    {
        if (!stream_) return true;
        return !stream().is_open() || stream().eof() || stream().fail() || stream().bad();
    }

    bool good() const { return !bad(); }

    const std::string& host_;
    timeout_type read_timeout_;
    timeout_type write_timeout_;

    std::unique_ptr<stream_type> stream_;
    std::unique_ptr<watchdog_timer_t> watchdog_timer_;
    std::unique_ptr<fiber> watchdog_fiber_;
};

template <typename Stream>
struct server_engine
{
    typedef stream_traits<Stream> traits_type;
    typedef typename traits_type::stream_type stream_type;
    typedef typename traits_type::acceptor_type acceptor_type;
    typedef typename traits_type::arg_type arg_type;
    typedef connection<Stream> connection_type;

    server_engine(arg_type arg,
                  const std::string& addr,
                  unsigned short port,
                  const std::string& host,
                  server::request_handler default_request_handler)
    : host_(host)
    , acceptor_(addr.c_str(), port)
    , default_request_handler_(std::move(default_request_handler))
    , arg_(arg)
    , active_connection_(0)
    {
    }

    server_engine(unsigned short port, const std::string& host) : host_(host), acceptor_(port) {}

    void start()
    {
        watchdog_.reset(new fiber(fiber::attributes(fiber::attributes::stick_with_parent),
                                  &server_engine::watchdog,
                                  this));
        boost::system::error_code ec;
        // Loop until accept closed
        while (true) {
            connection_type sc(host_, read_timeout_, write_timeout_, arg_);
            ec = accept(sc);
            if (ec) break;
            sc.read_timeout_ = read_timeout_;
            sc.write_timeout_ = write_timeout_;
            fiber(&server_engine::servant, this, std::move(sc)).detach();
        }
        watchdog_->join();
    }

    void close()
    {
        exit_signal_.set_value();
        if (watchdog_) watchdog_->join();
        // Wait until all connections are closed
        std::unique_lock<mutex> l(connection_counter_mtx_);
        while (active_connection_) {
            connection_close_.wait(l);
        }
    }

    boost::system::error_code accept(connection_type& sc)
    {
        boost::system::error_code ec;
        acceptor_(sc.stream(), ec);
        if (!ec) {
            active_connection_++;
        }
        return ec;
    }

    void watchdog()
    {
        exit_signal_.get_future().wait();
        acceptor_.close();
    }

    void servant(connection_type c)
    {
        if (read_timeout_ > NO_TIMEOUT || write_timeout_ > NO_TIMEOUT) {
            c.start_watchdog();
        }
        request req;
        int count = 0;
        while (c.recv(req)) {
            response resp;
            req.raw_stream_ = &(c.stream());
            resp.raw_stream_ = &(c.stream());
            // Set default attributes for response
            resp.status_code(http_status_code::OK);
            resp.version(req.version);
            resp.keep_alive(req.keep_alive);
            if (count >= max_keep_alive_) resp.keep_alive(false);
            try {
                if (!default_request_handler_(req, resp)) break;
                // Make sure we consumed all parts of the request
                req.drop_body();
            } catch (boost::bad_lexical_cast& e) {
                resp.clear();
                resp.version(req.version);
                resp.status_code(http_status_code::BAD_REQUEST);
            } catch (server_error& e) {
                resp.clear();
                resp.version(req.version);
                resp.keep_alive(req.keep_alive);
                resp.status_code(e.code);
                resp.body(e.what());
                if (!e.additional_headers.empty()) {
                    resp.headers.insert(e.additional_headers.begin(), e.additional_headers.end());
                }
            } catch (std::invalid_argument&) {
                resp.clear();
                resp.version(req.version);
                resp.status_code(http_status_code::BAD_REQUEST);
                resp.keep_alive(false);
            } catch (std::exception& e) {
                resp.clear();
                resp.version(req.version);
                resp.status_code(http_status_code::INTERNAL_SERVER_ERROR);
                resp.keep_alive(false);
            }
            // Chunked response is written by handler
            if (!resp.chunked) {
                resp.body_stream().flush();
                c.send(resp);
            }
            // Make sure all data are received and sent
            c.stream().flush();
            // Keepalive counter
            count++;
            if (!resp.keep_alive()) break;
        }
        c.close();

        active_connection_--;
        connection_close_.notify_one();
    }

    std::string host_;
    acceptor_type acceptor_;
    server::request_handler default_request_handler_;
    promise<void> exit_signal_;
    timeout_type read_timeout_ = DEFAULT_TIMEOUT;
    timeout_type write_timeout_ = DEFAULT_TIMEOUT;
    unsigned max_keep_alive_ = DEFAULT_MAX_KEEP_ALIVE;
    arg_type arg_;

    std::unique_ptr<fiber> watchdog_;

    // connection uses vhost info in server
    // make sure server exists if there is living connection
    std::atomic<uint32_t> active_connection_;
    mutex connection_counter_mtx_;
    condition_variable connection_close_;
};

} // End of namespace detail

//////////////////////////////////////////////////////////////////////////////////////////
// server_request
//////////////////////////////////////////////////////////////////////////////////////////

void server_request::clear()
{
    // Make sure there is no pending data in the last request
    drop_body();
    params.clear();
    common::request::clear();
}

bool server_request::accept_compressed() const
{
    // TODO: Kinda buggy
    return !(boost::algorithm::ifind_first(request::header("Accept-Encoding"), "gzip").empty());
}

bool server_request::read(std::istream& is)
{
    clear();
    if (!common::request::read_header(is)) return false;
    if (content_length > 0) {
        // Setup body stream
        namespace bio = boost::iostreams;
        restriction_.reset(new bio::restriction<std::istream>(is, 0, content_length));
        bio::filtering_istream* in = new bio::filtering_istream;
        in->push(*restriction_);
        body_stream_.reset(in);
    } else if (chunked) {
        common::chunked_istream* in = new common::chunked_istream(&is);
        body_stream_.reset(in);
    }
    return true;
}

const common::cookie_map& server_request::cookies()
{
    if (!cookies_) {
        cookies_.reset(new common::cookie_map);
        common::parse_cookie(headers, *cookies_, false);
    }
    return *cookies_;
}

void server_request::drop_body()
{
    // Discard body content iff body stream exists
    if (body_stream_) {
        while (!body_stream().eof()) {
            char buf[1024];
            body_stream().read(buf, sizeof(buf));
        }
        body_stream_.reset();
        restriction_.reset();
    }
}

//////////////////////////////////////////////////////////////////////////////////////////
// server_response
//////////////////////////////////////////////////////////////////////////////////////////

void server_response::clear()
{
    common::response::clear();
    std::string e;
    if (!raw_body_stream_.vector().empty()) raw_body_stream_.swap_vector(e);
}

const std::string& server_response::body() const
{
    return raw_body_stream_.vector();
}

std::ostream& server_response::body_stream()
{
    return raw_body_stream_;
}

server_response& server_response::header(const std::string& key, const std::string& value)
{
    headers.insert({key, value});
    return *this;
}

server_response& server_response::cookie(const common::cookie& c)
{
    headers.insert({"Set-Cookie", c.to_string()});
    return *this;
}

size_t server_response::content_length() const
{
    return raw_body_stream_.vector().size();
}

server_response& server_response::content_type(const std::string& ct)
{
    if (ct.empty()) {
        headers.erase("Content-Type");
    } else {
        set_header("Content-Type", ct);
    }
    return *this;
}

bool server_response::write_header(std::ostream& os)
{
    if (common::response::header("Connection").empty()) {
        common::response::set_header("Connection", keep_alive() ? "keep-alive" : "close");
    }
    if (chunked) {
        set_header("Transfer-Encoding", "chunked");
    } else {
        common::response::set_header("Content-Length",
                                     boost::lexical_cast<std::string>(content_length()));
    }
    if (!common::response::write_header(os)) return false;
    return !os.eof() && !os.fail() && !os.bad();
}

bool server_response::write()
{
    // Write headers
    if (!write_header(raw_stream())) return false;
    // Write body
    raw_stream_->write(&(raw_body_stream_.vector()[0]), raw_body_stream_.vector().size());
    raw_stream_->flush();
    return !raw_stream_->eof() && !raw_stream_->fail() && !raw_stream_->bad();
}

bool server_response::write_chunked(std::function<bool(std::ostream&)> body_writer)
{
    if (!body_writer) throw server_error(http_status_code::INTERNAL_SERVER_ERROR);
    chunked = true;
    if (!write_header(raw_stream())) {
        return false;
    }
    common::chunked_ostream cos(raw_stream_);
    return body_writer(cos);
}
//////////////////////////////////////////////////////////////////////////////////////////
// server
//////////////////////////////////////////////////////////////////////////////////////////

typedef detail::server_engine<tcp_stream> server_engine;
typedef detail::server_engine<ssl::tcp_stream> ssl_server_engine;

static inline server_engine* get_engine(server::impl* impl)
{
    return reinterpret_cast<server_engine*>(impl);
}

static inline ssl_server_engine* get_ssl_engine(server::impl* impl)
{
    return reinterpret_cast<ssl_server_engine*>(impl);
}

template <typename Stream>
static std::string get_default_host_name(uint16_t port)
{
    std::string ret = "127.0.0.1";
    if (detail::stream_traits<Stream>::default_port != port) {
        ret += ':';
        ret += boost::lexical_cast<std::string>(port);
    }
    return ret;
}

server::~server()
{
    stop();
    if (ssl()) {
        delete get_ssl_engine(engine_);
    } else {
        delete get_engine(engine_);
    }
}

void server::init_engine()
{
    if (ssl()) {
        engine_ = reinterpret_cast<impl*>(
            new ssl_server_engine(s_.ctx_,
                                  s_.address_,
                                  s_.port_,
                                  get_default_host_name<ssl::tcp_stream>(s_.port_),
                                  std::move(s_.default_request_handler_)));
        get_ssl_engine(engine_)->read_timeout_ = s_.read_timeout_;
        get_ssl_engine(engine_)->write_timeout_ = s_.write_timeout_;
        get_ssl_engine(engine_)->max_keep_alive_ = s_.max_keep_alive_;
    } else {
        engine_
            = reinterpret_cast<impl*>(new server_engine(0,
                                                        s_.address_,
                                                        s_.port_,
                                                        get_default_host_name<tcp_stream>(s_.port_),
                                                        std::move(s_.default_request_handler_)));
        get_engine(engine_)->read_timeout_ = s_.read_timeout_;
        get_engine(engine_)->write_timeout_ = s_.write_timeout_;
        get_engine(engine_)->max_keep_alive_ = s_.max_keep_alive_;
    }
}

server& server::start()
{
    init_engine();
    if (ssl()) {
        servant_.reset(new fiber(&ssl_server_engine::start, get_ssl_engine(engine_)));
    } else {
        servant_.reset(new fiber(&server_engine::start, get_engine(engine_)));
    }
    return *this;
}

void server::stop()
{
    if (servant_) {
        if (ssl()) {
            get_ssl_engine(engine_)->close();
        } else {
            get_engine(engine_)->close();
        }
    }
}

boost::system::error_code server::join()
{
    try {
        if (servant_) {
            servant_->join(true);
            servant_.reset();
        }
    } catch (boost::system::system_error& e) {
        return e.code();
    }
    return boost::system::error_code();
}

std::function<bool(server::request&)> path_(const std::string& tmpl)
{
    typedef std::list<std::string> components_type;
    typedef components_type::const_iterator component_iterator;
    struct matcher
    {
        bool operator()(server::request& req)
        {
            std::map<std::string, std::string> m;
            parse_url(req.url, req.parsed_url);
            component_iterator p = pattern.cbegin();
            for (auto& i : req.parsed_url.path_components) {
                // Skip empty component
                if (i.empty()) continue;
                if (p == pattern.cend()) {
                    // End of pattern
                    return false;
                } else if ((*p)[0] == ':') {
                    // This pattern component is a parameter
                    m.insert({std::string(p->begin() + 1, p->end()), i});
                } else if ((*p)[0] == '*') {
                    // Ignore anything remains if the wildcard doesn't have a name
                    if (p->length() == 1) return true;
                    std::string param_name(p->begin() + 1, p->end());
                    // auto mi=m.find(param_name);
                    auto mi = std::find_if(m.begin(),
                                           m.end(),
                                           [&](const std::pair<std::string, std::string>& e) {
                                               return e.first == param_name;
                                           });
                    if (mi == m.end()) {
                        // Not found
                        m.insert({param_name, i});
                    } else {
                        // Concat this component to existing parameter
                        mi->second.push_back('/');
                        mi->second.append(i);
                    }
                    // NOTE: Do not increment p
                    continue;
                } else if (*p != i) {
                    // Not match
                    return false;
                }
                ++p;
            }
            // Either pattern consumed or ended with a wildcard
            bool ret = (p == pattern.end() || (*p)[0] == '*');
            if (ret) std::move(m.begin(), m.end(), std::inserter(req.params, req.params.end()));
            return ret;
        }

        std::list<std::string> pattern;
    };
    matcher m;
    std::vector<std::string> c;
    common::parse_path_components(tmpl, m.pattern);
    return std::move(m);
}

//////////////////////////////////////////////////////////////////////////////////////////
// WebSocket
//////////////////////////////////////////////////////////////////////////////////////////

namespace websocket {

const std::string magic_key("258EAFA5-E914-47DA-95CA-C5AB0DC85B11");

bool find_subprotocol(const std::string& src, const std::string& prot)
{
    typedef std::vector<boost::iterator_range<std::string::const_iterator>> split_vector_type;
    split_vector_type splits;
    boost::split(splits, src, boost::is_any_of(", "), boost::token_compress_on);
    for (auto& s : splits) {
        if (boost::iequals(s, prot)) {
            return true;
        }
    }
    return false;
}

handler::handler(connection_handler handler) : handler_(handler)
{
}

handler::handler(const std::string protocol, connection_handler handler)
: protocol_(protocol), handler_(handler)
{
}

bool handler::operator()(server::request& req, server::response& resp)
{
    if (boost::iequals(req.header("Connection"), "Upgrade")
        && boost::iequals(req.header("Upgrade"), "websocket")
        // Support version 13 and newer only
        && (boost::lexical_cast<int>(req.header("Sec-WebSocket-Version")) >= 13)) {
        std::string key = req.header("Sec-WebSocket-Key");
        if (key.empty()) {
            resp.status_code(http_status_code::BAD_REQUEST);
            return true;
        }

        boost::uuids::detail::sha1 sha1;
        sha1.process_bytes(key.c_str(), key.size());
        sha1.process_bytes(magic_key.c_str(), magic_key.size());
        unsigned int digest[5];
        sha1.get_digest(digest);
        for (int i = 0; i < 5; i++) {
            digest[i] = htonl(digest[i]);
        }

        std::string accept = common::base64_encode((char*)digest, 20);

        resp.status_code(http_status_code::SWITCHING_PROTOCOLS);
        resp.set_header("Upgrade", "websocket");
        resp.set_header("Connection", "Upgrade");
        resp.set_header("Sec-WebSocket-Accept", accept);
        if (!protocol_.empty()) {
            // Subprotocol negotiation
            for (auto& h : req.headers) {
                if (boost::iequals(h.first, "Sec-WebSocket-Protocol")) {
                    if (find_subprotocol(h.second, protocol_)) {
                        resp.set_header("Sec-WebSocket-Protocol", protocol_);
                        break;
                    }
                }
            }
        }
        resp.raw_stream() << resp;
        resp.raw_stream().flush();

        if (handler_) {
            websocket::connection conn(req.raw_stream(), resp.raw_stream());
            handler_(conn);
        }

        // Don't keep connection
        return false;
    }
    // Not a websocket request, we can still reuse the connection for normal HTTP
    resp.status_code(http_status_code::BAD_REQUEST);
    return true;
}

} // End of namespace websocket
} // End of namespace http
} // End of namespace fibio

redpajama_set_name: RedPajamaGithub


The rumour mill was in full effect at Griffin Park on Friday as it seemed Brentford have signed another midfielder. This, after a picture appeared on Twitter via Sam Boyd (@Boydy1994) showing a mystery man holding 'the signing scarf' aloft, pitch side, with Chris Wickham in attendance.
Thanks for reading and all your comments over the course of the season. For now, it's the annual clean up to make more space on the site for the inevitable follow up. However, 'close season' will continue in full, further along.
We did. And we still are !
Who is the scarf waving enigma? And where did this picture come from?


If you are an internet marketer then you should be milking Pinterest dry!
With nearly 200 million monthly active users, a high presence of female users, and a big percentage of buyers (93% of Pinterest visitors complete a purchase) you can't be giving Pinterest a miss!
Till now Pinterest lay untapped for automation because there was no effective automation software that unlocked every feature of Pinterest.
– A pin is 100 times more spreadable than your average tweet.
– Each pin can drive up to 2 page visits and 6 pageviews.
– The life of a pin is one week! Compare that to 24 minutes for Twitter and 90 minutes for Facebook.
Pinflux is the first such software that makes Pinterest work hard to drive traffic to your blog.
– Pinflux is the most powerful desktop based, traffic automation tool that is going to run fast and easy to yield you best Pinterets marketing results.
– Works with multiple boards across multiple IDs.
– Automates pinning of fresh content.
– Search and automatically finds powerful content from Pinterest.
– Finds pins in any niche and repins them toyour boards.
– Automatically follows niche targeted profiles.
Unfollow automation for profiles that did not follow you back.
– Like & activity automation.
Pinflux sets your Pinterest marketing on fast track, gives you tons of more benefits and it's all too easy to set and run.
2.Set up your keywords & board settings.
3.Watch your Pinterest traffic & stats grow.
=> Do all work from a single interface for all accounts.
=> Do tasks faster and better with automation. Why do any grind work?
=> Schedule pins actions across multiple boards for higher visibility and more chances of people following you back, and buying from you too.
=> 100% Manual Control At Every Level so you can customize just the way you want!
=> Powerful keyword research features lets you find pins in any niche blazing fast and easy.


In presenting this second set of Hymn Tune Preludes the composer has followed the principles adopted in previous volumes, in that the pieces, based on well known tunes, are intended to help fill the need for simple and appropriate music to be played before the service.
As before, they have been kept well within the range of the average performer and can be played with or without pedals and, if necessary, on one manual.
Keys have been chosen to balance with the corresponding tunes as given in 'Hymns Ancient and Modern', 'The English Hynmnal', 'Songs of Praise', 'The Church Hymnary' and 'The Methodist Hymn Book'.
Registration is suggested in outline only, the details being left to the player's discretion.


Before moving into brand new Shea Stadium in 1964, the Mets played their first two seasons in the Polo Grounds, the former home of the New York Giants. The Polo Grounds were located in Upper Manhattan and one of the reasons the Giants wanted to move is that the neighborhood was not exactly five-star quality.
Additionally, the Giants put little money into stadium upkeep the last decade they played in the Polo Grounds. The baseball Giants last played in the Polo Grounds in 1957 and the stadium stood vacant until the Mets began play in 1962.
So, we have an old, decrepit stadium. And to make matters worse, the dimensions were hardly favorable for a baseball field. The layout was compared to a bathroom tub, with short distances down the foul lines and a huge center field, rumored to be near 500 feet. The exact dimensions are not known, they were not listed on the walls as is common today. But most estimates have it around 280 feet to left field, 257 to right field and 505 feet to center.
But the actual distances were also uncertain due to second deck overhangs. In left field, the overhang made it about 250 feet. There was even a center field overhang but it's unlikely that affected too many home runs.
But those funky dimensions certainly produced odd home run totals. The Mets hit 93 HR at home in 1962 and only 46 on the road. The following year those respective numbers were 61 and 35.
Most people know that Frank Thomas holds the record for most home runs hit for the Mets in the Polo Grounds. Thomas hit 26 HR in his home park in 1962 and 1963 combined. But hardly anyone knows who hit the most home runs against the Mets in the Polo Grounds.
Actually, two players tied for the most, which was 7 HR. Few will be surprised that Hank Aaron was one of the players. Aaron hit 5 HR in 1962, when he had a .500/.550/1.059 line against the Mets in 40 PA. A year later, the Mets figured out a way to pitch the future Hall of Famer, holding him to a .333/.395/.538 line with 2 HR in 43 PA.
I could give you 25 guesses and I don't think you would get it. So, to put you out of your misery, I'll simply tell you that it was Don Demeter.
DeMeter made his major league debut in 1956, when he played in three games for the Brooklyn Dodgers. His career lasted until 1967 and in parts of 11 seasons in the majors he played with five teams and hit 163 HR.
He hit 20 or more HR in four consecutive seasons from 1961-1964. He finished eighth in the National League with 29 HR in 1962. Like Aaron, DeMeter hit most of his Polo Grounds homers against the Mets in 1962. He had a 6 HR and a .450/.500/.1.025 line in 46 PA in the Polo Grounds in 1962. A year later he managed just a .417 OPS and 1 HR in 30 PA there.
DeMeter would punish the Mets in another fashion. Following the 1963 season, the Phillies traded him along with future Met Jack Hamilton to the Detroit Tigers for Jim Bunning. Of course, Bunning went on to win 18 games against the Mets. He was 12-2 against them his first three seasons in the National League, including a perfect game in 1964.
← Where does Duda fit in Mets' 2011 plans?
I remember going to the Polo Grounds to see the Mets play, either in 1962 or 1963, and that a pitcher hit two home runs in a game against them, and I'd like to know who. I don't know if they were grand slams or not, so perhaps you might also know what opposing pitchers hit grand slams against the Mets in the Polo grounds. Hope you can help. This question has been bugging me for years!


Thank you for your suggestions, MIXXEDFIT crew! Starting July 10, we will be adding hours on Friday nights in Kids' Club so you can get your MIXXEDFIT on!!
If you don't already have a Kids' Club membership, NOW IS THE TIME TO GET ONE! We have a special going on!


VP Nick Alexopoulos: We will fund research and participate in it, subject to the agreements we reach.
Semiconductor giant Broadcom Corporation (Nasdaq: BRCM) is not satisfied with acquiring Israeli start-ups; it wants to increase its exposure to Israeli technology through collaborations with the Technion Israel Institute of Technology in Haifa and Tel Aviv University.
Broadcom VP Prof. Nicholas Alexopoulos visited Israel last month and met representatives of the two universities to review cooperation. In an interview with "Globes", he said that Broadcom was seeking important future technologies outside the company.


text:
$(document).ready(function() {
	//tutaj wstawiamy kod JQuery, który zostanie uruchomiony
	//jak tylko dokument będzie gotowy do manipulowania jego elementami
	/**
		Własne metody do walidacji
	**/
	$.validator.addMethod('kategorianazwa', function (value, element) {
		return /^[A-Za-z]+$/.test(value);
		}, 'Nazwa kategorii musi zawierać tylko litery!');

    $('#addKS').validate({
		//reguły dla pola formularza
        rules: {
			//atrybut name: {reguły}
			imie: {
				//reguły - kolejność ma znaczenia
                required: true,
				kategorianazwa: true,
				minlength: 2,
				maxlength: 50
            }	,
    nazwisko: {
		//reguły - kolejność ma znaczenia
        required: true,
		kategorianazwa: true,
		minlength: 2,
		maxlength: 50
    },
            miasto: {
				//reguły - kolejność ma znaczenia
                required: true,
				kategorianazwa: true,
				minlength: 2,
				maxlength: 50
            }
        },
		//komunikaty dla pola formularza
		messages: {
			imie: {
				required: 'Pole wymagane',
				minlength: jQuery.validator.format("Pole musi zawierać minimum {0} znaki!"),
				maxlength: jQuery.validator.format("Pole musi zawierać maksimum {0} znaki!")
			},
			nazwisko: {
				required: 'Pole wymagane',
				minlength: jQuery.validator.format("Pole musi zawierać minimum {0} znaki!"),
				maxlength: jQuery.validator.format("Pole musi zawierać maksimum {0} znaki!")
			},
			miasto: {
				required: 'Pole wymagane',
				minlength: jQuery.validator.format("Pole musi zawierać minimum {0} znaki!"),
				maxlength: jQuery.validator.format("Pole musi zawierać maksimum {0} znaki!")
			}
		},
        highlight: function(element, errorClass, validClass) {
            $(element).closest('.form-group').addClass(errorClass).removeClass(validClass);
        },
        unhighlight: function(element, errorClass, validClass) {
            $(element).closest('.form-group').removeClass(errorClass).addClass(validClass);
        },
        errorClass: 'has-error',
		validClass: 'has-success',
		//umiejscowienie elementu z błędem
        errorPlacement: function(error, element) {
            if(element.parent('.input-group').length) {
                error.insertAfter(element.parent());
            } else {
                error.insertAfter(element);
            }
        },
		/**
			niestadardowa rekacja na kliknięcie submit,
			gdy są błędy,
			blokuje standradową akcję
		**/
		invalidHandler: function(event, validator) {
			// 'this' to referencja do form
			var errors = validator.numberOfInvalids();
			if (errors) {
			  var message = errors == 1
				? 'Nie wypełniono poprawnie 1 pola. Zostało podświetlone'
				: 'Nie wypełniono poprawnie ' + errors + ' pół. Zostały podświetlone';
			  $("div.alert-danger").html(message);
			  $("div.alert-danger").show();
			} else {
			  $("div.alert-danger").hide();
			}
		},
	});
});


A new pentadentate quinoline–pyridine ligand and its iron (1), cobalt (2) and nickel (3) complexes have been synthesized and characterized. The iron complex exhibits excellent photocatalytic activity towards CO2-to-CO conversion with a TON(CO) of 544 and a selectivity of 99.3% using the commercially available organic dye purpurin as the photosensitiser and BIH as the electron donor. In contrast, the cobalt and nickel complexes result in very low activity for CO production with a TON of only 8 and 15, respectively. On the other hand, all the three complexes show good electrocatalytic activity for CO2 reduction when using 2,2,2-trifluoroethanol as the proton source with the active intermediate of M0 species. The lack of activity in photocatalytic CO2 reduction by 2 and 3 can be attributed to the redox potential of MI/M0 which is significantly more negative than that of PP−/PP2− while in the case of 1 the FeI/Fe0 redox potential becomes more positive than that of the PP−/PP2− couple.


text:
2 Adobe Flash Tutors Found Near Phoenix, AZ
Stephen G.
Adobe Flash Tutor
View Stephen G.
Computer Technology Professor (37 years experience) wants to help you.
I have deployed 88 flash games since 2002. I have written several books on game design. Stephen has 37 years of telecommunication field experience and retired from US Army Signal Corp. For the past 14 years taught as a College Professor (Emeritus) Stephen is a native Phoenician and graduated from West Phoenix High School. He entered military service as an Electronic Warfare Linguist (Russian) after finishing his degree at Grand Canyon College. He was nominated to attend Officer Candidate School based on his significant efforts in many classified missions. He earned his commi... [more]
Contact Stephen G.
Jay C.
View Jay C.
Web Media, Animation and Arts Teacher for STEM (Adobe Suite / Blender)
I have been using Flash for 23 years and have been teaching 2D animation and game design using Flash for more than 10 years. I have taught Flash online with single students and also in collaborative groups to complete a full animation project. My animation studio is a maker space open to the public and has facilitated many animation and game design projects over the past decade and more. I enjoy sharing a vast knowledge of arts and technology and inspiring others to work above their ability. I have been teaching and designing curricula in STEM related subjects for over 10 years at my Animat [more]
Contact Jay C.


text:
namespace chrono {

ChBodyEasySphere::ChBodyEasySphere(double radius,
                                   double mdensity,
                                   bool visualize,
                                   bool collide,
                                   std::shared_ptr<ChMaterialSurface> material,
                                   std::shared_ptr<collision::ChCollisionModel> collision_model)
    : ChBody(collision_model) {
    double mmass = mdensity * ((4.0 / 3.0) * CH_C_PI * pow(radius, 3));
    double inertia = (2.0 / 5.0) * mmass * pow(radius, 2);

    this->SetDensity((float)mdensity);
    this->SetMass(mmass);
    this->SetInertiaXX(ChVector<>(inertia, inertia, inertia));

    if (collide) {
        assert(material);
        GetCollisionModel()->ClearModel();
        GetCollisionModel()->AddSphere(material, radius);
        GetCollisionModel()->BuildModel();
        SetCollide(true);
    }
    if (visualize) {
        std::shared_ptr<ChSphereShape> vshape(new ChSphereShape());
        vshape->GetSphereGeometry().rad = radius;
        this->AddAsset(vshape);
    }
}

ChBodyEasyEllipsoid::ChBodyEasyEllipsoid(ChVector<> radius,
                                         double mdensity,
                                         bool visualize,
                                         bool collide,
                                         std::shared_ptr<ChMaterialSurface> material,
                                         std::shared_ptr<collision::ChCollisionModel> collision_model)
    : ChBody(collision_model) {
    double mmass = mdensity * ((4.0 / 3.0) * CH_C_PI * radius.x() * radius.y() * radius.z());
    double inertiax = (1.0 / 5.0) * mmass * (pow(radius.y(), 2) + pow(radius.z(), 2));
    double inertiay = (1.0 / 5.0) * mmass * (pow(radius.x(), 2) + pow(radius.z(), 2));
    double inertiaz = (1.0 / 5.0) * mmass * (pow(radius.x(), 2) + pow(radius.y(), 2));

    this->SetDensity((float)mdensity);
    this->SetMass(mmass);
    this->SetInertiaXX(ChVector<>(inertiax, inertiay, inertiaz));

    if (collide) {
        assert(material);
        GetCollisionModel()->ClearModel();
        GetCollisionModel()->AddEllipsoid(material, radius.x(), radius.y(), radius.z());
        GetCollisionModel()->BuildModel();
        SetCollide(true);
    }
    if (visualize) {
        std::shared_ptr<ChEllipsoidShape> vshape(new ChEllipsoidShape());
        vshape->GetEllipsoidGeometry().rad = radius;
        this->AddAsset(vshape);
    }
}

ChBodyEasyCylinder::ChBodyEasyCylinder(double radius,
                                       double height,
                                       double mdensity,
                                       bool visualize,
                                       bool collide,
                                       std::shared_ptr<ChMaterialSurface> material,
                                       std::shared_ptr<collision::ChCollisionModel> collision_model)
    : ChBody(collision_model) {
    double mmass = mdensity * (CH_C_PI * pow(radius, 2) * height);

    this->SetDensity((float)mdensity);
    this->SetMass(mmass);
    this->SetInertiaXX(ChVector<>((1.0 / 12.0) * mmass * (3 * pow(radius, 2) + pow(height, 2)),
                                  0.5 * mmass * pow(radius, 2),
                                  (1.0 / 12.0) * mmass * (3 * pow(radius, 2) + pow(height, 2))));
    if (collide) {
        assert(material);
        GetCollisionModel()->ClearModel();
        GetCollisionModel()->AddCylinder(material, radius, radius, height * 0.5);
        GetCollisionModel()->BuildModel();
        SetCollide(true);
    }
    if (visualize) {
        auto vshape = chrono_types::make_shared<ChCylinderShape>();
        vshape->GetCylinderGeometry().p1 = ChVector<>(0, -height * 0.5, 0);
        vshape->GetCylinderGeometry().p2 = ChVector<>(0, height * 0.5, 0);
        vshape->GetCylinderGeometry().rad = radius;
        this->AddAsset(vshape);
    }
}

ChBodyEasyBox::ChBodyEasyBox(double Xsize,
                             double Ysize,
                             double Zsize,
                             double mdensity,
                             bool visualize,
                             bool collide,
                             std::shared_ptr<ChMaterialSurface> material,
                             std::shared_ptr<collision::ChCollisionModel> collision_model)
    : ChBody(collision_model) {
    double mmass = mdensity * (Xsize * Ysize * Zsize);

    this->SetDensity((float)mdensity);
    this->SetMass(mmass);
    this->SetInertiaXX(ChVector<>((1.0 / 12.0) * mmass * (pow(Ysize, 2) + pow(Zsize, 2)),
                                  (1.0 / 12.0) * mmass * (pow(Xsize, 2) + pow(Zsize, 2)),
                                  (1.0 / 12.0) * mmass * (pow(Xsize, 2) + pow(Ysize, 2))));
    if (collide) {
        assert(material);
        GetCollisionModel()->ClearModel();
        GetCollisionModel()->AddBox(material, Xsize * 0.5, Ysize * 0.5, Zsize * 0.5);
        GetCollisionModel()->BuildModel();
        SetCollide(true);
    }
    if (visualize) {
        auto vshape = chrono_types::make_shared<ChBoxShape>();
        vshape->GetBoxGeometry().SetLengths(ChVector<>(Xsize, Ysize, Zsize));
        this->AddAsset(vshape);
    }
}

ChBodyEasyConvexHull::ChBodyEasyConvexHull(std::vector<ChVector<>>& points,
                                           double mdensity,
                                           bool visualize,
                                           bool collide,
                                           std::shared_ptr<ChMaterialSurface> material,
                                           std::shared_ptr<collision::ChCollisionModel> collision_model)
    : ChBody(collision_model) {
    auto vshape = chrono_types::make_shared<ChTriangleMeshShape>();
    collision::utils::ChConvexHullLibraryWrapper lh;
    lh.ComputeHull(points, *vshape->GetMesh());
    if (visualize) {
        vshape->SetName("chull_mesh_" + std::to_string(GetIdentifier()));
        this->AddAsset(vshape);
    }

    double mass;
    ChVector<> baricenter;
    ChMatrix33<> inertia;
    vshape->GetMesh()->ComputeMassProperties(true, mass, baricenter, inertia);

    // Translate the convex hull baricenter so that body origin is also baricenter
    for (unsigned int i = 0; i < vshape->GetMesh()->getCoordsVertices().size(); ++i)
        vshape->GetMesh()->getCoordsVertices()[i] -= baricenter;

    this->SetDensity((float)mdensity);
    this->SetMass(mass * mdensity);
    this->SetInertia(inertia * mdensity);

    if (collide) {
        assert(material);
        // avoid passing to collision the inner points discarded by convex hull
        // processor, so use mesh vertexes instead of all argument points
        std::vector<ChVector<>> points_reduced;
        points_reduced.resize(vshape->GetMesh()->getCoordsVertices().size());
        for (unsigned int i = 0; i < vshape->GetMesh()->getCoordsVertices().size(); ++i)
            points_reduced[i] = vshape->GetMesh()->getCoordsVertices()[i];

        GetCollisionModel()->ClearModel();
        GetCollisionModel()->AddConvexHull(material, points_reduced);
        GetCollisionModel()->BuildModel();
        SetCollide(true);
    }

    m_mesh = vshape->GetMesh();
}

ChBodyEasyConvexHullAuxRef::ChBodyEasyConvexHullAuxRef(std::vector<ChVector<>>& points,
                                                       double mdensity,
                                                       bool visualize,
                                                       bool collide,
                                                       std::shared_ptr<ChMaterialSurface> material,
                                                       std::shared_ptr<collision::ChCollisionModel> collision_model)
    : ChBodyAuxRef(collision_model) {
    auto vshape = chrono_types::make_shared<ChTriangleMeshShape>();
    collision::utils::ChConvexHullLibraryWrapper lh;
    lh.ComputeHull(points, *vshape->GetMesh());
    if (visualize) {
        vshape->SetName("chull_mesh_" + std::to_string(GetIdentifier()));
        this->AddAsset(vshape);  // assets are respect to REF c.sys
    }

    double mass;
    ChVector<> baricenter;
    ChMatrix33<> inertia;
    vshape->GetMesh()->ComputeMassProperties(true, mass, baricenter, inertia);

    ChMatrix33<> principal_inertia_csys;
    ChVectorN<double, 3> principal_I;
    inertia.SelfAdjointEigenSolve(principal_inertia_csys, principal_I);
    if (principal_inertia_csys.determinant() < 0)
        principal_inertia_csys.col(0) *= -1;

    SetDensity((float)mdensity);
    SetMass(mass * mdensity);
    // this->SetInertia(inertia * mdensity);
    SetInertiaXX(ChVector<>(principal_I) * mdensity);

    // Set the COG coordinates to barycenter, without displacing the REF reference
    SetFrame_COG_to_REF(ChFrame<>(baricenter, principal_inertia_csys));

    if (collide) {
        assert(material);
        // avoid passing to collision the inner points discarded by convex hull
        // processor, so use mesh vertexes instead of all argument points
        std::vector<ChVector<>> points_reduced;
        points_reduced.resize(vshape->GetMesh()->getCoordsVertices().size());
        for (unsigned int i = 0; i < vshape->GetMesh()->getCoordsVertices().size(); ++i)
            points_reduced[i] = vshape->GetMesh()->getCoordsVertices()[i];

        GetCollisionModel()->ClearModel();
        GetCollisionModel()->AddConvexHull(material, points_reduced);
        GetCollisionModel()->BuildModel();
        SetCollide(true);
    }

    m_mesh = vshape->GetMesh();
}

ChBodyEasyMesh::ChBodyEasyMesh(const std::string filename,
                               double mdensity,
                               bool compute_mass,
                               bool visualize,
                               bool collide,
                               std::shared_ptr<ChMaterialSurface> material,
                               double sphere_swept,
                               std::shared_ptr<collision::ChCollisionModel> collision_model)
    : ChBodyAuxRef(collision_model) {
    auto trimesh = chrono_types::make_shared<geometry::ChTriangleMeshConnected>();
    trimesh->LoadWavefrontMesh(filename, true, true);
    SetupBody(trimesh, filename, mdensity, compute_mass, visualize, collide, material, sphere_swept, collision_model);
}

ChBodyEasyMesh::ChBodyEasyMesh(std::shared_ptr<geometry::ChTriangleMeshConnected> mesh,
                               double mdensity,
                               bool compute_mass,
                               bool visualize,
                               bool collide,
                               std::shared_ptr<ChMaterialSurface> material,
                               double sphere_swept,
                               std::shared_ptr<collision::ChCollisionModel> collision_model)
    : ChBodyAuxRef(collision_model) {
    SetupBody(mesh, "EasyMesh", mdensity, compute_mass, visualize, collide, material, sphere_swept, collision_model);
}

void ChBodyEasyMesh::SetupBody(std::shared_ptr<geometry::ChTriangleMeshConnected> trimesh,
                               const std::string& name,
                               double mdensity,
                               bool compute_mass,
                               bool visualize,
                               bool collide,
                               std::shared_ptr<ChMaterialSurface> material,
                               double sphere_swept,
                               std::shared_ptr<collision::ChCollisionModel> collision_model) {

    if (visualize) {
        auto vshape = chrono_types::make_shared<ChTriangleMeshShape>();
        vshape->SetMesh(trimesh);
        vshape->SetName(name);
        AddAsset(vshape);  // assets are respect to REF c.sys
    }

    this->SetDensity((float)mdensity);
    if (compute_mass) {
        double mass;
        ChVector<> baricenter;
        ChMatrix33<> inertia;
        trimesh->ComputeMassProperties(true, mass, baricenter, inertia);

        ChMatrix33<> principal_inertia_csys;
        ChVectorN<double, 3> principal_I;
        inertia.SelfAdjointEigenSolve(principal_inertia_csys, principal_I);
        if (principal_inertia_csys.determinant() < 0)
            principal_inertia_csys.col(0) *= -1;

        SetMass(mass * mdensity);
        SetInertiaXX(ChVector<>(principal_I) * mdensity);

        // Set the COG coordinates to barycenter, without displacing the REF reference
        SetFrame_COG_to_REF(ChFrame<>(baricenter, principal_inertia_csys));
    }

    if (collide) {
        assert(material);
        // coll.model is respect to REF c.sys
        GetCollisionModel()->ClearModel();
        GetCollisionModel()->AddTriangleMesh(material, trimesh, false, false, VNULL, ChMatrix33<>(1), sphere_swept);
        GetCollisionModel()->BuildModel();
        SetCollide(true);
    }
}

ChBodyEasyClusterOfSpheres::ChBodyEasyClusterOfSpheres(std::vector<ChVector<>>& positions,
                                                       std::vector<double>& radii,
                                                       double mdensity,
                                                       bool visualize,
                                                       bool collide,
                                                       std::shared_ptr<ChMaterialSurface> material,
                                                       std::shared_ptr<collision::ChCollisionModel> collision_model)
    : ChBody(collision_model) {
    assert(positions.size() == radii.size());

    double totmass = 0;
    ChMatrix33<> totinertia;
    ChVector<> baricenter = VNULL;
    totinertia.setZero();
    for (unsigned int i = 0; i < positions.size(); ++i) {
        double sphmass = mdensity * ((4.0 / 3.0) * CH_C_PI * pow(radii[i], 3));
        baricenter = (baricenter * totmass + positions[i] * sphmass) / (totmass + sphmass);
        totmass += sphmass;
    }
    for (unsigned int i = 0; i < positions.size(); ++i) {
        double sphmass = mdensity * ((4.0 / 3.0) * CH_C_PI * pow(radii[i], 3));
        double sphinertia = (2.0 / 5.0) * sphmass * pow(radii[i], 2);

        // Huygens-Steiner parallel axis theorem:
        ChVector<> dist = positions[i] - baricenter;
        totinertia(0, 0) += sphinertia + sphmass * (dist.Length2() - dist.x() * dist.x());
        totinertia(1, 1) += sphinertia + sphmass * (dist.Length2() - dist.y() * dist.y());
        totinertia(2, 2) += sphinertia + sphmass * (dist.Length2() - dist.z() * dist.z());
        totinertia(0, 1) += sphmass * (-dist.x() * dist.y());
        totinertia(0, 2) += sphmass * (-dist.x() * dist.z());
        totinertia(1, 2) += sphmass * (-dist.y() * dist.z());
        totinertia(1, 0) = totinertia(0, 1);
        totinertia(2, 0) = totinertia(0, 2);
        totinertia(2, 1) = totinertia(1, 2);
    }

    this->SetDensity((float)mdensity);
    this->SetMass(totmass);
    this->SetInertia(totinertia);

    // Translate the cluster baricenter so that body origin is also baricenter
    std::vector<ChVector<>> offset_positions = positions;
    for (unsigned int i = 0; i < positions.size(); ++i)
        offset_positions[i] -= baricenter;

    if (collide) {
        assert(material);
        GetCollisionModel()->ClearModel();
        for (unsigned int i = 0; i < positions.size(); ++i) {
            GetCollisionModel()->AddSphere(material, radii[i], offset_positions[i]);  // radius, radius, height on y
        }
        GetCollisionModel()->BuildModel();
        SetCollide(true);
    }
    if (visualize) {
        for (unsigned int i = 0; i < positions.size(); ++i) {
            auto vshape = chrono_types::make_shared<ChSphereShape>();
            vshape->GetSphereGeometry().rad = radii[i];
            vshape->GetSphereGeometry().center = offset_positions[i];
            this->AddAsset(vshape);
        }
    }
}

}  // end namespace chrono


text:
Now Reading: Izzy and All That Razzmatazz
6A Decade of Texas Health Care By The Numbers
Izzy and All That Razzmatazz
Robert Sherrill Sep 8, 2006, 12:00 am CST
All Governments Lie!The Life and Times ofRebel Journalist I.F. Stone
This remarkable biography/history sweeps across most of the 20th Century, a period of insane ideological and armed conflict. Any good history of the period could hardly be other than entertaining. This one is especially so since it was written by Myra MacPherson, the highly respected veteran of the Washington Post and a bevy of magazines and books.
Anyone who is even obliquely interested in the interplay of journalism and politics will be fascinated by her account of I.F. Stone's imprint on those tainted professions. Among Washington reporters he became well known for digging through masses of government documents and finding crucial evidence of government wrong-doing that other reporters had overlooked—or hadn't had time to look for. One can be sure that if he were still around, we would have got a much more devastatingly critical review of the bureaucratic and congressional "studies" of CIA and FBI blunders before 9/11; and of the Bush/press claims of WMD that lured us into Iraq; and of the secret surveillance of citizens in the last few years.
That being acknowledged, let me hasten to add that as a keeper of the flame at the Stone Temple, MacPherson has a charming but somewhat inflated view of her idol. Referring to a poll taken by unidentified "institutions" for her evidence, she tells us that "his tiny one-man weekly" was ranked "number 16 of the top 100 Greatest Hits of twentieth-century journalism." I don't know what she means by "hits" and she doesn't name the fifteen who beat him out, but she does mention that he was "ahead of Harrison Salisbury, Dorothy Thompson, Neil Sheehan, William Shirer, James Baldwin, Joan Didion, Murray Kempton, and other worthies." That might be impressive if she hadn't gone on to tell us that "the acerbic H.L. Mencken did not make the cut"—which should give you a handy measure for this poll's questionable accuracy.
What accounts for the success that turned Stone into a minor legend? Partly, and in no small part, it was his appearance, which belied the strength of the spirit within. He was a squat little fellow who stared blandly out at the world through spectacles with Coke-bottle lenses. Since there seemed nothing about this little man to be afraid of, the shock caused by his surprising performances as an inquisitor created a kind of notoriety for him.
In a press conference or at any other encounter with government officials, he could be a terrorist with well-honed questions and comment—made all the more infuriating because they were tossed so politely, and always backed by his fabulous memory for details. On one such occasion, Undersecretary of State Sumner Welles became confused and so furious that his face turned purple and he countered Stone's question with one of his own: "What is your name?" And when he got "Stone" for an answer, hoping to dislodge Stone's birth name, Feinstein, Welles pushed on: "Don't you have another name?" It was such an obviously anti-Semitic trick that several newspapers editorially scolded him.
In the late 1940s, Stone was an occasional guest commentator on the radio and TV round-table Meet the Press. The Great Communist Witchhunt was already underway and because he was a well-known radical suspected of being a Communist, the show used him as a carnival might use a Borneo savage. On one occasion Stone asked Maj. Gen. Patrick Hurley, a good friend of China's corrupt Chiang Kai-Shek, why the U.S. should go on wasting billions to prop up that fascist dictator. Hurley screamed into the microphone, "Quit following the Red line with me!" And then, just to make sure the national audience knew he was dealing with a lousy kike, Hurley shouted, "Go back to Jerusalem!"
From such encounters grew Stone's reputation as a skilled troublemaker.
Probably MacPherson is right in calling Stone "The twentieth century's premier independent journalist, known to everyone from the corner grocer to Einstein as Izzy." Actually, there was little competition for that title, if by "independent" you mean a journalist who owns his own paper–be it no more than the four-page Weekly that Stone printed in Washington over two decades. As a publisher, Stone's lucky break was the Vietnam War. The Washington Post and the New York Times both supported it editorially, but opposition to the war was so widespread and so intense, especially along the New York–Washington corridor and in West Coast liberal enclaves, that Stone's opposition weekly, always insolently anti-war and often scholarly (he raided European papers for tough critiques), became must-reading for many, including many around the White House and Congress. It also included many on campuses across the country, where the threat of the draft hung heavy. A subscription cost only $5 a year, but the Weekly became so popular that it finally turned Stone into a millionaire.
Eugene Debs being the model, I prefer rebels who have been hard up at some time in their lives. Stone never was. At the bottom of the Great Depression, he was earning $125 a week as an editorial writer when good reporters were lucky to be paid $15 and every big city was full of unemployed men trying to sell apples on street corners.
His good luck started early. He was the pampered son (born Isador, December 24, 1907) of Bernard and Katy Feinstein. His father was a prosperous Philadelphia businessman. Pampering continued when, at the age of 15, Stone became the protégé of J. David Stern, a Philadelphia newspaper owner, and his wife. MacPherson generously acknowledges Stern's fundamental influence on Stone's life: "For the next fifteen years—throughout the twenties, the New Deal, the Popular Front, and Spanish Civil War, the beginning rumblings of World War II—the dynamic Stern was Izzy's patron. He helped shape Izzy's writing and gave him a powerful platform. Izzy became America's chief editorial writer on a major newspaper, first with Stern's Philadelphia Record and then with his New York Evening Post.
"The team of Stern and Feinstein, as Izzy was known through most of his tenure with the publisher [he changed Feinstein to Stone in 1938], was as stormy as it was serendipitous. In that era of Coolidge conservatism, it was a miracle that Izzy found the one major publisher compatible with his beliefs, a man dedicated to liberal, fair reporting. But that did not stop Izzy. Their parting was so bitter that Stern excised Izzy from his autobiography, Memoirs of a Maverick Publisher."
It would be interesting to know exactly what MacPherson meant by "that did not stop Izzy." And what she meant by Stone's "tumultuous departure" from the Post, at that time New York's leading liberal paper. Even to some of his admirers, Izzy was not known for being a team player, even when it was a first rate team. "Though capable of collecting friends of long standing, Stone's pattern of ignoring colleagues angered many who felt he was a snob." Other colleagues had other adjectives, such as "bully," "tactless," (which he admitted), "humorless sexist," and "incredibly arrogant." MacPherson says that while they continued to admire his work, "some talented and hardworking journalists and authors felt Stone, in his David-versus-Goliath mode, took cheap shots at their expense in his quest to prove his independence and their lack of it." For the sake of full disclosure, I admit I am correctly identified by MacPherson as being among that group and am quoted as describing him as "a little shit," while conceding that "it was hard to stay mad at Izzy" because he was "virtually always on the side of decency and fair play."
(Shortly after moving to Washington, D.C., I worked for Stone—for three weeks, quitting after he rejected my piece that suggested Lyndon Johnson was mentally unbalanced. Stone's reason: "Ah, we're all a little crazy." If I was wrong, I was in good company. In his 1988 book Remembering America, LBJ aide Richard Goodwin tells how he and Bill Moyers became so concerned in the summer of 1965 that they met every few days to discuss the "clearly visible signs of Johnson's instability" and his "increasingly vehement and less rational outbursts." Goodwin says they independently took their notes to two different psychiatrists" who confirmed "we were describing a textbook case of paranoid disintegration."
Jack Raymond, a veteran New York Times reporter who considered Stone a close friend, told MacPherson, "I was amazed one day to pick up his paper [the Weekly] and find an attack on a piece of mine. For all intents and purposes he asserted that I was handmaiden of the Pentagon. I was stunned that anyone could think that of me." Later, at a dinner party, Raymond confronted Stone, who waved away his complaint: "Ohhhhhh, Jack! Why should you care about what I write in my little paper that few people see?" Raymond says, "On hearing that, my heart sank." MacPherson adds, "Not only had Stone ignored the larger moral question of impugning Raymond's writing, judgment, and integrity, he attempted to get off the hook by pretending that his little rag didn't matter. Raymond knew as well as Stone that in their circle the Weekly was a prized read."
George Wilson, the Washington Post's Pentagon correspondent who broke numerous tough stories in the 1960s, told MacPherson, "Izzy would give me credit [in his Weekly]—and then he would put his own spin on it. He would say, 'Wilson said this … and this is what I think it means.' Which was all right—but just don't call him a reporter. There was only one side of the story for Izzy. He called once and said, 'There's so much I don't understand about the strategic missile race and you understand it and I would appreciate having lunch.' At lunch it became apparent that he really didn't want to learn anything. He just wanted to deliver a diatribe on the badness of the arms race … . I had to take Izzy in small doses."
With the end of the 1930s and his departure from Stern's nest, Stone's soaring career had crashed and his future looked bleak. But in 1940 the radical Nation magazine made him its national Washington correspondent, and that good luck was followed by even better luck: a job on PM, launched by Ralph Ingersoll, "a wealthy, neurotic, flamboyant genius … who couldn't make a move without consulting his psychoanalyst." It was a newspaper made by and for the young at heart. Ingersoll was 39, Stone was 32.
From the first day, writes MacPherson, it became "the most daring newspaper experiment of the twentieth century. PM was a tabloid that refused to pander: there were no racing sheets, no stock market reports, no pictures of stripteasers being hauled off to jail. But his major revolution stunned the publishing world: Ingersoll was going to try to make money or at least break even with no advertising.
"PM often scored in crusades that mainstream, corporate-friendly newspapers largely ignored. It exposed the practice of the American Red Cross to segregate blood, deeming that the blood from black donors could not be used for white soldiers. Remarkable for its time, PM attacked segregation and lynchings like no other newspaper catering to white audiences.
"In the first year and a half, PM exposed the Standard Oil Company, the Aluminum Trust, life insurance scams. It dogged Charles A. Lindbergh's romance with Nazi Germany and isolationist William Randolph Hearst. It took on Father Coughlin and the powerful Catholic Church. Freed from advertisers, it passionately supported unions and workers' rights, including the right to strike during wartime."
PM was, obviously, a perfect place for Stone, and he shone as one of Ingersoll's (and the Nation's, where he was also writing) brightest investigative reporters and columnists. Among other things, on the eve of World War II, his stories forced U.S. oil giants to stop shipping oil to Hitler's Germany by way of Franco's Spain. Some of his later exposes forced the government to radically improve their wartime production lines. And another of his series revealed the Civil Service Commission was victimizing government workers who were suspected of liberal beliefs—"the Red Scare was already in full swing."
The splendor of PM's differences at first set New York agog. "More than ten thousand reporters applied for the two hundred available jobs." Ingersoll, being Ingersoll, at first hired only friends who were famous or on their way to fame—the likes of James Thurber, Dorothy Parker, Ben Hecht and Lillian Hellman—but some had never been inside a news room.
Naturally, there was chaos. And, up to a point, the staff thrived on it. So did the paper, up to a point. As MacPherson tells it, "PM's irreverent nose-thumbing enraged hard-line reactionaries and racists, much to the delight of its staff, especially the paper's treatment of the avowed leading racist and anti-Semite on Capitol Hill, Congressman John Rankin." The paper always spelled his name in lower case.
The paper had an absolutely devoted following. But not among working class readers. They missed the ads. And the missing ads meant suicidal loss of revenue. PM died. A.J. Leibling, the New Yorker's friendly critic, noted, "One of the good things about PM was that it was different from any other New York paper, and the differences were irreconcilable. Also, it was pure of heart. The injustices it whacked away at were genuine enough, but an awful lot of whacks seemed to fall on the same injustices. A girl to whom I gave a subscription to PM in 1946 asked me after a time, 'Doesn't anybody have any trouble except the Jews and the colored people?'"
Anyone fascinated by the history of offbeat—way offbeat—journalism will be exceedingly grateful for MacPherson's all-too-brief tour of PM, a tour that will make Texas Observer readers grateful that at least some of PM's razzmatazz spirit still surfaces in the stuff of, say, Hightower and Ivins. Indeed, if readers believe in transmigration, they might even think that in the impudent judgments of Hightower and Ivins they hear the voice of I.F. Stone. The title of this book comes from one of his written comments, "All governments lie, but disaster lies in wait for countries whose officials smoke the same hashish they give out."
He had been lacing his editorials with such comments for years, and they would become more commonplace in his Weekly. Its survival was something of a miracle, considering that its left-wing audience was split into so m
ny civil-warring
factions. It had been thus since the 1930s, writes MacPherson, when "Only an optimist like Stone could have hoped for a united left … . Communist Party members were venomous to the socialists, old-guard socialists were battling with new-guard socialists, mutant strains of Marxists were battling one another." It was still going on when the Weekly was founded. One guess as to why Stone not only survived but thrived is that it was hard to tell exactly where he fitted in the Left.
He couldn't have been more militant in his defense of civil liberties, but he wrote not a word in protest of the mass incarceration of West Coast Japanese, many of them U.S. citizens, at the start of World War II.
More than anything else, he was a pacifist. He hated President Truman's militarism—the "doctrine" he scared Congress into passing in 1947, leading to global confrontation with Communists, promptly in Korea (a war in which 50,000 U.S. servicemen died)—and Truman's phony "loyalty program," which purged large numbers of federal employees and set the stage for the nihilistic anticommunist crusade of Joe McCarthy. Indeed, Stone hated Truman so much he supported Henry Wallace in 1948, even though he considered Wallace "a cross between a saint and a village idiot."
Stone's pacifism made him too eager to believe the best of Stalin. In 1939 the Nation printed Sidney Hook's "manifesto against totalitarian regimes," lumping Stalin with Hitler and Mussolini. Stone wrote an angry rebuttal, for which he got 400 cosigners, in which he praised the Soviet Union as "a bulwark against war and aggression, and for working unceasingly for a peaceful international order." It said Stalin's Russia "has eliminated racial and national prejudices … and made the expression of anti-Semitism or any racial animosity a criminal offence." (Actually, up to that time, Stalin had probably killed more Jews than Hitler had.) Stone's rebuttal assured Nation readers that "The Soviet Union considers political dictatorships a transitional form …. There exists a sound and permanent basis in mutual idealistic cooperation between the USA and USSR in behalf of world peace."
Stone's manifesto appeared in the Nation on August 10. Thirteen days later Stalin and Hitler signed a non-aggression pact, forging an alliance that made World War II a certainty. A week after the signing, Germany invaded Poland. Britain and France declared war.
Stone was furious at being proved such a sucker, but he credited Russia with saving American lives during World War II and for a time after the war he refused to believe all the stories about Soviet slave camps and mass executions. By 1948 he was saying the Russian government "depended on outlawry, suppression and terror." And after Nikita Khrushchev's 1956 litany of Stalin's horrors, Stone vociferously criticized Russian Communism for the rest of his life.
But what he had to say about Russia after that was not much harsher than what he had to say about the U.S. Chamber of Commerce, which in 1952 he accused of trying to set up "an American police state."
Was Stone a Communist, or had he ever been? Nobody knows. He denied it, while admitting, very late in his life, that he had been a "fellow traveler." He had once openly suggested that the ideal political philosophy would be a blend of Marxism and Jefferson. To J. Edgar Hoover, that sounded subversive enough. By the end of Stone's life, the FBI had amassed 5,000 pages on him.
The only truly irritating and sloppy reporting I found in All Governments Lie was in Stone's handling of his trip into the Deep South during the Little Rock school crisis. Or perhaps MacPherson's re-reporting of Stone's trip is at fault. In any event, they make it sound like all Southerners were segregationists. Lord knows there weren't lots of exceptions, but the story would have been fairer if they had not ignored some evidence of sanity, which Stone surely must have known about.
On his way to Little Rock in 1957 after the U.S. Supreme Court ordered the high school in that city to integrate, Stone stopped off in Nashville. "Reading the Nashville Banner," we are told, "Stone saw an editorial cartoon that was a far cry from the fiery creations of the Washington Post's Herblock. 'Education Be Hanged!' said the caption, with a grotesque caricature of Chief Justice Warren." Okay, but the Banner was a notoriously right-wing newspaper. Why not tell us the response of the first-rate newspaper next door, the Tennessean, on whose staff were such world-class reporters as David Halberstam, who would later win a Pulitzer for exposing our military stupidities in Vietnam, and John Seigenthaler.
(Seigenthaler later became Attorney General Robert Kennedy's chief of staff. When one of the Freedom Riders buses reached Montgomery in 1961, a mob of white men armed with clubs and bricks attacked the riders. Seigenthaler came to the rescue of an elderly female black, throwing his body over hers, and was promptly knocked unconscious, winding up in the hospital. Some segregationist!)
And we are told that "Since the media were covering the Little Rock story 'almost entirely from the white side,' Stone went to the dingy quarters of Little Rock's Harlem" to get the truth. As a matter of fact, the Arkansas Gazette had opposed Governor Faubus and supported the Supreme Court's integration order from the outset, and didn't back up an inch when Faubus and the powerful Citizens' Council organized a boycott that cost the Gazette millions of dollars. Oh well. You know how those Yankee reporters are.
Robert Sherrill is a longtime Observer contributing writer.


text:
Found 30 articles containing 'contractor'
Job Seekers (306 articles)
Employers (101 articles)
How to Start a Painting Business: 4 Things You Need to Know
A painting business can bring you income on your terms. Here is what you need to know about how to start a painting business.
Lay Pipes for Money: How to Become a Plumbing Contractor
Do you want to work in the plumbing industry? You could become a plumbing contractor! Here's how to get started and succeed.
Show Me the Money! How to Start Flipping Houses as a Career
Want to build an exciting career in real estate? Discover your entrepreneurial side! Learn how to start flipping houses with this complete career guid
7 Fun and Exciting Careers in Retail That Are Hot in 2019
Do you have a background in sales or a passion for retail? You're in luck! Here are 7 fun and exciting careers in retail that are hot in 2019.
The Top 8 Labor Jobs to Get Hired & Earn a Great Salary
Looking for work that will do more than just pay the bills? Check out these top 8 labor jobs that are hiring all over and paying well.
What Does It Take to Become a Fire Alarm Technician?
Curious to know what it takes to become a fire alarm technician? Read more to learn everything you need to know to get started.
Moving Things Around: 10 Amazing Home Office Hacks to Get You Organized Now
Home office clutter affecting your productivity? Move things around and get organized now. Learn the top 10 hacks on how to organize a home office.
Looking for a Job in Construction? Here Are 9 Construction Industry Trends You Should Know About
If you're looking to enter the competitive world of construction, you'll need to know these 9 construction industry trends.
9 High-Paying Cybersecurity Careers for IT Graduates
Finishing up your IT degree? Don't wait to make your next career move. Here are 9 lucrative cybersecurity careers to pursue after graduation.
Construction Careers: How to Break Into the Building Industry
Thinking of becoming a general contractor, designer, or fabricator for a major company? Don't miss this guide to breaking into the building industry.
Top 10 Safety Careers to Pursue After College
Have a passion for industrial and occupational safety? It's time to put that college degree to work! Here are 10 safety careers to pursue.
Career Building: How to Become a General Contractor With No Experience
Love working with your hands? Excelled in wood shop in high school? Don't miss this guide on how to become a general contractor with no experience.
5 Expert Tips For Working as a Contractor
Do you want to start working as a contractor? Follow these tips so you can find the perfect contractor job for your skill set.
How to Build a Career in Contracting: 5 Key Characteristics of Good Contractors
If you're looking to get into the business of contracting, you'll need to know the top 5 key characteristics of all good contractors. Here they are!
4 Essential Tips for How to Become a Carpenter
If you want to learn how to become a carpenter, then you're in the right place. Here's a step by step guide listing what it takes to get started.
How to Become an HVAC Technician Without Going to College
You don't have to go to college to build a flourishing career. With your GED in hand, learn how to become an HVAC technician with this complete guide.
Oceanic Occupations: 9 Awesome Scuba Diving Jobs
If you don't want to spend your days in a boring office, then scuba diving jobs may be your preferred job. Here are 9 awesome options.
4 Skills Needed To Run a Successful Roofing Company (That Aren't Actually Roofing)
As with all businesses, you need a specific set of skills to start a roofing company. Here are four skills to set you up for success.
5 Smart Ways to Get an Oil Industry Job with Little to No Experience
Working in the oil industry is a rewarding career, there's much to learn and a lot of money to be made. Here are 5 ways to get an oil industry job.
Working as a Roofing Contractor: What You Need to Know About Roofing Jobs
Are you interested in pursuing roofing jobs? Here's everything you need to know about a career in roofing.


Dr. Michael Duong is a progressive orthodontist dedicated to providing the highest quality of treatment and personalized care in a modern state of the art office that is conveniently located in the heart of downtown Ridgewood, New Jersey.
Dr. Duong and the Precision Orthodontics family want our patients to have beautiful, healthy smiles, but we also want our patients to feel safe, confident, and special each time they come to our practice. It is our job to make sure our patients get the most out of their orthodontic treatment and leave smiling!
Precision Orthodontics offers treatment for children and adults. We utilize the latest in modern technology to facilitate treatment - to make treatment time shorter and more comfortable. We have different treatment options to fit everyone's needs including Invisalign®, Insignia™, Damon® System, Clear Ceramic braces, and retainers.
Our brand new office is equipped with the most advanced technology to provide the highest quality of care. Our knowledgeable staff is committed to being service oriented in a patient-focused environment. Our office is handicapped accessible with parking in the rear.
Our office is conveniently located in the heart of downtown Ridgewood, New Jersey. Serving Ridgewood, Glen Rock, Midland Park, Ho Ho Kus, Waldwick, Wyckoff, Paramus, Saddle River, Allendale, Upper Saddle River, Ramsey, Mahwah, Franklin Lakes, Fair Lawn, Hawthorne and the surrounding Bergen County area.
Contact our office to schedule your complimentary orthodontic consultation. We look forward to helping you achieve a beautiful smile you can be proud to show off!


Having being engaged by numerous businesses of diverse industries since 2006, we are one of the most trusted and leading logo design companies with clients in Europe and Africa. Our reputation has been built on delivering quality logo designs at affordable prices with exceptional service. We have a talented and experienced team of in-house logo designers who will work with you to create a great logo that works for your business.
With unlimited design revisions based on the type of contract entered with us, we design until you are 100% happy. We pride ourselves with exceptional customer service and all our designers being in house, it means you can know your logo will be in safe hands and reflect the true meaning of your business.
We have an exceptional understanding of business concepts and branding imagery to create an impactful corporate identity. We have a tried and tested reputation for delivering great logos in an efficient and affordable manner.