text:
Georgia Senate Resolution yet another feather in Dr Indran Indrakrishnan's cap
by Veena September 5, 2017 0964
Dr Indrakrishnan addressing the Georgia State Senate. With him are President Pro Tempore David Shafer (L) & Georgia Lieutenant Governor Casey Cagle.
BY JYOTHSNA HEGDE
"I recall a specific example where an uninsured patient contacted the Medical Association of Georgia for an expensive life saving procedure and Dr. Indrakrishnan volunteered to perform this free of charge. This patient has been forever grateful and now has a great quality of life. This is the type of person he is – he renders care regardless of ability to pay and consistent with his oath as a physician. I am proud to be associated with Dr. Indrakrishnan." Don Palmisano, CEO, Medical Association of Georgia (MAG) was happy to share his thoughts with NRI Pulse about the recent Georgia Senate resolution honoring Dr. Indran Indrakrishnan, as were many key people of various organizations.
In late spring this year Dr. Indrakrishnan received communication from the Georgia Senate requesting him to drop in at a convenient time to handover some documents. Between a packed Gastroenterology practice in Lawrenceville, GA, serving on several boards of the government and non- profit organizations in leadership roles and giving back to society, Dr. Indrakrishnan did not tend to it right away assuming it was a document related to one of the many healthcare projects he has been working on for the betterment of Georgians' healthcare. He was wrong.
Eventually when he visited the Senate in July, Dr. Indrakrishnan found out that the Georgia Senate had unanimously passed a resolution in his honor in recognition of his contributions in various fields. The resolution – Resolution 364, authored by Senator David Shafer of the 48th district and supported by Senators Renee Unterman of the 45th, P.K. Martin of the 9th, Fran Millar of the 40th, Jack Hill of the 4th districts and others, bears testimony to the many roles Dr. Indrakrishnan embraces, enhances and enriches along the way. The devout doctor extends his gratitude to all the authoring senators and President/Lieutenant Governor Casey Cagle. The Resolution, a unique recognition, awarded by members of Georgia General Assembly honors constituents, local heroes, and celebrities who have achieved notable deeds in their fields along with serving the community. The resolution stays in the archives of the Georgia Assembly.
Resolution 364 honoring Dr. Indrakrishnan recognizes his exceptional contributions in the treatment and raising of colon cancer awareness and other gastroenterological diseases, wisdom and leadership as a Clinical Professor of Medicine at Emory University, appointment by Governor of Georgia to serve on the Georgia Board for Physician Workforce, service to the state in a variety of ways, including being an active member on the boards of Fight Colorectal Cancer, Fill Ministries and many other distinguished organizations, his active role with Meals By Grace, a charity that provides meals to families in need, his active membership at the Hindu Temple of Atlanta, and honors from local , national and international organizations for his achievements.
Dr Indrakrishnan with Georgia Governor Nathan Deal.
"He is a great leader of the South Asian community and I am proud to see his vast talents being put out to good use and he richly deserve this recognition." Said President Pro-tempo, David Shafer. "Georgia is a better place for having him serving us," said Representative Brooks Coleman, Chair of House Education Committee.
Dr. Claire Sterk, President of Emory University was eager to share her enthusiasm with NRI Pulse. "Dr. Indrakrishnan has an outstanding record of service to patients and families across Georgia. In his roles as physician, healthcare leader, and teacher, he embodies the spirit of Emory University and Emory Healthcare, delivering quality care with integrity and with the kind of compassion that transforms communities," she said.
Raising awareness about colon cancer is one of the many issues Dr. Krishnan is passionate about. This is the fourth year in a row where Governor Deal has declared the proclamation for March as the colorectal cancer awareness month at the request of Dr. Indrakrishnan.
"This cancer is becoming more common in people younger than age 50, although the standard recommendation is to start screening at age 50. Colonoscopy – a painless outpatient procedure done under sedation can detect and remove polyps, a benign growth on the lining of the colon that grows larger and becomes cancerous," explains Dr. Indrakrishnan. As board member for Fight Colorectal Cancer, a national patient advocacy not for profit organization, Dr. Indrakrishnan has served to help patients.
"He is personally committed to our mission to save lives and helps patients impacted by colorectal cancer. Working alongside him, it is clear, he has earned the respect of his colleagues, peers, and friends. We are excited for him to receive this much-deserved honor by the state of Georgia," says Anjee Davis, President Fight Colorectal Cancer.
"I have always been impressed by his dedication to the fight against colorectal cancer. Whether at the state level through his determination to enhance awareness and screening or at an individual patient level through his tireless efforts to ensure the highest standard of care, Dr. Indrakrishnan's contributions to the field of colorectal cancer in Georgia are very evident. This most recent recognition is a clear reflection of this work and its impact," says Professor. Bassel El-Rayes, Vice Chair for Clinical Research, Department of Hematology and Oncology at Emory University. "He has been a leader in the area of colon cancer screening, has served on the Board of the Georgia Gastroenterologic and Endoscopic Society, and despite a very busy practice, still takes time to go and work with our fellows and residents helping underserved patients at Grady." adds Dr. Field F. Willingham, Director of Therapeutic Endoscopy program at Emory University.
On Jan 12, 2017 Dr. Indrakrishnan added another of many firsts to his credentials when he was sworn in by Governor Nathan Deal as the first Asian American to the Georgia Board for Physician Workforce (GBPW).
"Georgia Board for Physician Workforce is excited about the honor Dr. Indrakrishnan has received from the Georgia General Assembly. Dr. Indrakrishnan dedicates his time to support the development of medical education programs and to increase the number of physicians and health care practitioners practicing in underserved rural areas," says LaSharn Hughes, Executive Director of GBPW. The GBPW works to see Georgia communities, especially in medically underserved areas, have improved access to needed physician generalist and specialists, thereby enhancing the health and well-being of Georgia's citizens.
Dr. "I" as Suellen Daniels, President, Meals by Grace fondly refers to Dr. Indrakrishnan, was introduced to the organization through his daughter, Harini, when she volunteered for a week. "Dr. I decided to invite his family and friends to come experience helping our children and families in need as his "birthday present" from them. He came and brought many of his friends/family. That was the first of many visits," she says. "Dr. Indrakrishnan offered rent-free use of a 1800 sf storefront that they occupied for over 2 years. He currently serves on their hi-level advisory board to bring Aquaponic Farm to fruition. "No one understands the need for healthy organic fresh foods in our hungry children/families' diets more than Dr. I. He's been a wonderful ambassador, a powerful proponent and a truly supportive counselor/friend along this journey," she raves.
A trustee of Hindu temple of Atlanta, Dr. Indrakrishnan admits that he rarely attends religious poojas, yagas and homas. He was however a major contributor to the elevator built for the elderly, disabled and otherwise needy people in 2014. "Dr. Indrakrishnan is very generous with supporting the programs like art and culture, health fairs, and spiritual activities. We are so proud of him. On behalf of the board of trustees, I'd like to congratulate him for his achievement," says HTA President Kusuma Kotte.
Adding more feathers to his ever growing, ever-glowing cap of achievements is his graduation from the class of 2017 Leadership Gwinnett program. "As a non-profit mission, Leadership Gwinnett educates, equips and engages leaders through a diversity of people, thoughts and experiences that lead Gwinnett to a better future. A resident of Gwinnett, a well-respected physician and an alumnus of the Leadership Gwinnett Class of 2017, Dr. Indrakrishnan has utilized his community influence to advance several initiatives that are positively impacting Gwinnett and the Region. Leadership defines Gwinnett and it's the leaders like Dr. Indrankrishnan that give back to the community and blaze new trails for civic engagement," quotes Lisa Zaken, Executive Director of Leadership Gwinnett.
Dr. Indrankrishnan was an honoree of 2016 GAT Most Influential Asian Americans in Georgia. "Dr. Indrakrishnan deserves the accolade and recognition by the Georgia Senate. His works in the community has helped so many individuals in the state of Georgia," says Li Wong, Publisher, Georgia Asian Times.
In her 2013 feature titled "The Changing American Family" published in The New York Times, Pulitzer-Prize-winning writer Natalie Angier encapsulates the impact by the likes of Dr. Indrakrishnan imparted on America as a society. "Dr. Indrakrishnan is part of a new tide of immigration that has been sweeping America, upending old voting blocs, reconfiguring neighborhoods, diversifying local restaurant options and casting a fresh perspective on the meaning of traditional family value," she writes.
"A person of magnanimous strengths with an unimpeachable reputation for integrity, intelligence, service, fairness, and kindness and, by the example he has made of his life, he has made this world a better place in which to live," – Dr. Indrakrishnan's description in his honor, Resolution 364, stands testament to his many accomplishments as a physician and as a person.
A champion for causes with claims to many firsts, Dr. Indrakrishnan is a force to reckon with. He dedicates this rare gesture of honor to his wife Gayathri without whom he feels he would not have received this exceptional recognition from the law makers.
Accolades from the Senate and the people he works with apart, we can only assume his passion for service will propel this assiduous physician's aspirations to new heights.
Vibha's "Are you ready for college?" raises awareness on college admissions
Attorneys general sue Trump over ending immigrants protection program
Access Life America raises funds to provide accommodation for kids battling cancer
Veena April 17, 2017
Violent home invasion in Alpharetta; large amount of cash & jewelry taken
Veena June 27, 2018
Gov. Deal Appoints Ritesh Desai & Sugandha Yadav to State Boards
Covid vaccine: India, 9 other countries call on WTO to exempt member countries from enforcing some patents


Until now, Yoga for Fertility has only been available at certain Pulling Down the Moon locations – we are thrilled to now be offering this empowering class to anyone, anywhere! We will meet weekly via Webinar Jame for discussion. You will interact with other women on their fertility journey and we will explore how yoga enhances our fertility and whole body wellness. Enrollment fee includes the Yoga for Fertility downloads so you can practice yoga at home and The Infertility Cleanse Book to supplement the discussions (a $35 value).
Cost: $110 for 6 sessions (45 minute webinar). **April NIAW Special: 50% off with the promo code ONLINE50!


text:
Q: Use MediaRecorder for live streaming / broadcasting into continuous 5-second segmented files among Android phones I am using MediaRecorder for live broadcasting among Android phones, but I don't want to use socket-based method. I want to record into 5-second segmented files, e.g.:
LIVE000.mp4  for the first 5 seconds
LIVE001.mp4   for the next 5 seconds
...
And then remote users can just continuously download the segments and display.
Now based on my tests, I can close and reopen the MediaRecorder every 5 second to save to continuous files, but the camera will also close and reopen with delay and sound, which is so bad.
So can I have any other method for my purpose? Should I use the low-layer APIs?
Thank you very much for your help! : )
Best
Xiaofei

redpajama_set_name: RedPajamaStackExchange


I'm actually surprised about how many characters are in the lineup. 2D HD graphics are very time intensive to draw. That's why this game has been a good few years in the making.
I'd rather a game that had 12 characters really nicely animated than one with twice as many poorly animated.
You make a great point Molloy, I can certainly agree with that. I think that the overall anticipation for this game is building and I hope that I'll have the funds to import it later next year – it will look really cool next to my BlazBlue cabinet.
Its still early guys alot of devs like to announce new chars periodically before the release to keep the hype at a high point.
Yeah I didn't notice that she wasn't there are first but she is a fan favorite so I'd be surprised to NOT see her on there at one point.


Aimed at health care professionals and managers, as well as new graduates, this programme provides an introduction to the central issues in health economics and health policy involved in the management of primary health care.
This programme is suitable for people currently working in the health care sector (in both the public and private sectors, including the pharmaceutical industry) who wish to improve their understanding of and skills in health economics. It may also be of interest to new graduates who wish to pursue a career in health economics and/or health services research.
The course does not require a first degree in economics. Students who do have a first degree in economics may be interested in our MSc in Health Economics and Econometrics.
Dr Jesse Kigozi, deputy programme lead, talks about the MSc Health Economics and Health Policy programme.
MSc Health Economics and Health Policy student, Adrain Bamford, talks about his time on the programme.
MSc Health Economics and Health Policy student, Ben O'Sullivan, talks about his time on the programme.
Students taking Core 2 also attend Statistics for Health Economics II as a non-assessed pre-requisite for Modelling for Health Economics.
Students then have the freedom to select the modules for the remaining 10 or 20 credits from the range offered within the department or, with departmental agreement, by other departments within the University.
The normal entrance requirement for our Masters programmes is a good Honours degree (upper second-class or above), or an equivalent professional qualification and professional experience.
Appropriate career experience may also be taken into account. It is hard to give general rules on these matters, since each case is considered on individual merit. However, the factors which tend to count in your favour are suitable health services managerial experience, favourable reports from academic referees, or proven ability in research or publication. You should give as much evidence as possible of your capabilities in these areas.
As a Birmingham student, you will be joining the academic elite and will have the privilege of learning from world-leading experts, as well as your peers. From the outset you will be encouraged to become an independent and self-motivated learner. We want you to be challenged and will encourage you to think for yourself.
This programme is delivered via block sessions of 3 or 5 days. You will participate in a range of teaching styles such as lectures, small group tutorials, presentations, peer group learning, self-study etc.
Each module is assessed independently. The compulsory modules on the MSc Health Economics and Health Policy are all assessed by either assignment, examination or a combination of both.
You may be wondering what you can go on to do with an MSc in Health Economics and Health Policy. The following articles will give you some idea of the variety of fields you can go into with this qualification.
These alumni profiles will give you an idea of what our students have gone on to after studying on the MSc Health Economics and Health Policy programme.
Dr Tosin Ahmed Lambe talks about the MSc Health Economics and Health Policy programme and his journey to becoming a Research Associate.


text:
Schweinfurt "Inner-City"
Traditionally, Schweinfurt was dominated by the mechanical engineering industry. At the end of the 90s, the city provoked a change of the economic structure and the image by systematically expanding services and culture in the inner city. In practising a consequent regulatory policy and an active land policy combined with public-private cooperation, Schweinfurt breaks new ground towards achieving a new inner-city profile.
TocAural
Project chronology
Types of measures
Source: FIRU GmbH
The city of Schweinfurt has around 54,000 inhabitants (2007) and has the function of a high-order centre. Historically, it has been dominated by the mechanical engineering industry but it is also increasingly characterised by the medical technology, the measurement and control technology and the plastics processing industries. The city provides just under 50,000 jobs (2007) and thus attracts a large number of commuters from the surrounding area. The challenges to urban development, caused by the change of the industrial structure in the field of mechanical engineering in the mid-90s, were all the larger.
With regard to the spatial division of functions in Schweinfurt, the inner city is situated between the business areas in the south and the residential areas in the north. This is why the city centre is affected by a high traffic volume, which has negative impacts on the residential quality in the inner city. Last but not least against this background, the residential population in the inner city has slightly decreased since 2000.
Nevertheless, the inner city of Schweinfurt offers a number of strengths and potentials on an area of 111 hectares. It includes the medieval old town and a town extension area of the 19th century with a mostly closed system of two- to five-storey buildings. The inner city is the shopping and service centre for local residents and commuters. The variety of offers, a manageable density and a pedestrian zone with circular pathway turn the main business area in the old town into an attractive shopping area. Since 2009, the traditional retail sector has been facing competition by a new shopping centre on the edge of the inner city.
According to the planned constellation in the mid-90s, the role of the whole city and the perspectives of the inner city had to be newly discussed, which led to a push of investments and functional reorientation of the inner city. The new orientation of the inner city towards services and arts aims at diversifying the job opportunities of the whole city. Another aim is to improve the quality of the residential function of the inner city and to stabilise it in quantiative terms. With the reorientation, the inner-city renewal gained an important status in local policies, the administrative sector and for citizens.
The City of Schweinfurt has started to expand the service and the cultural sector systematically. The Georg Schäfer Museum, the alteration of the public library in the Erbacher Hof building, the main customs office etc. became key projects. This group of buildings represents a cultural and educational centre in the old town. It was realised in an ambitious architectural style and within a historic context. Building culture-related requirements to future projects in the inner city as well are planned to receive high attention. In order to promote the intended image change, Schweinfurt argues for the qualities of architecture and urban planning as a marketing instrument. Furthermore, the inner-city development concentrates on redeveloping the old town, altering the municipal bath house into an art gallery, building a youth hostel, planning green areas and squares. The squares in the old town, a market square for major and market events, the "Postplatz" for people to have a rest, the "Roßmarkt" as main bus station, complement each other in functional terms.
In the four redevelopment areas in the old town, the city prepares gaps between buildings for individual residential housing. Families and elderly people are the target groups for housing in the inner city. Locations in green zones and on the River Main are improved in order to create an attractive housing quality. In carrying out the redevelopment activities, the city intensively participates in purchasing, refurbishing and modernising old buildings, in preparing properties and in marketing.
The master urban planning plan is set by an integrated urban development concept. Another relevant document is the city's policy decision against admitting large-scale retail trade businesses on unintegrated sites. These are the bases on which master plans and concepts for urban areas clearly define the inner-city redevelopment. In order to finance these activities, urban development funds (Urban Development and Redevelopment Measures programme), EU funds (Objective 2), funds by "Bayerische Landesstiftung" (foundation of the Bavarian state government supporting building measures), municipal funds and private financial resources are combined.
The inner-city development is coordinated by an advisory and steering committee managed by the city's Lord Mayor and supported by a large number of citizens. A neighbourhood management office serves to network stakeholders. In the context of this organisation, public-private partnerships carry out various projects and activities, especially building projects such as the Higher Social Court, the main customs office, the adult education centre. The operator of the new shopping centre participated in the costs for replanning public roads and squares and in the city marketing costs via urban development contract etc. For other measures in the inner city, the city council provides financial incentives through a city fund for example by awarding investment grants for designing façades. An inner-city non-trading partnership (50% owned by the City of Schweinfurt, 25% by absentee property owners, 25% by retail traders) finances activities of the inner-city neighbourhood management office (family brand for the shopping district, lighting master plan etc.) via a revolving fund. The City's redevelopment department provides intensive construction consulting for improving the building culture quality. Competitions for structural engineering projects and in public areas are obligatory. Finally, there is a development association for the inner city of Schweinfurt, which plans to create an Urban Improvement District on a voluntary basis.
Since 1979 old town redeveloped via four redevelopment areas
2000 Georg Schäfer Museum completed
2006-2009 Municipal bath house altered into an art gallery
2007-2008 Youth hostel rebuilt
2009 "StadtGalerie" shopping centre opened
To diversify the job opportunities of the whole city
To reorientate the inner city towards services and culture
To strengthen the inner city's residential function
High-quality architecture and urban planning
To promote the city's image
Altering and constructing new public buildingsConcentrating cultural and educational facilities in the inner city
Modernising and constructing new residential buildings
Planning green areas and squares
Public-private cooperation
Revolving funds
Providing construction consulting
The City of Schweinfurt's combination of consequent regulatory policy and active land policy with various measures to initiate private action and public-private cooperation has to be mentioned.In this way, Schweinfurt breaks new ground towards a new inner-city profile.
The change of the economic structure and of the image was caused by systematically expanding services and culture in the inner city. The commercial sectors meanwhile seems to have stabilised, services and administrations offer numerous jobs in the inner city. Furthermore, many jobs at Bavarian state authorities were created (e.g. Higher Social Court, Bavarian statistical office), but also smaller handicraft businesses (shoemakers, carpenters).
Bundesministerium für Verkehr, Bau und Stadtentwicklung (BMVBS) Online-Publikation Nr. 19/2010: Reurbanisierung der Innenstadt (Reurbanisation of the Inner City) (Abstract in English), >>more information
http://www.schweinfurt.de
The projekt site ist to be found at postal code: 97421 - town: Schweinfurt - street: Schillerplatz 9.
Poject site on Google-Maps: https://goo.gl/maps/HXjcCqN7CjP2
Stadt Schweinfurt, Stadtplanungsamt, Norbert Bauer, Markt 1, 97421 Schweinfurt, Tel.: +49(0)9721 – 54140, email: norbert.bauer@schweinfurt.de .
Record inserted on 28.02.2011 by the Federal Institute for Research on Building, Urban Affairs and Spatial Development (BBSR) within the Federal Office for Building and Regional Planning (BBR).

redpajama_set_name: RedPajamaCommonCrawl


The Miami Heat played the perfect game to defeat the Oklahoma City Thunder last night. It was not perfect in appearance but it was perfect in strategy. Miami slowed the game down and attacked the Oklahoma City defense with quick, decisive, and powerful moves. LeBron James stopped playing a finesse game and used his major asset on offense: power. What can you say about Shane Battier the first two games? He is playing the way he did with the Rockets and Grizzlies. Battier gives the Heat a solid outside shooter and above average defender on the wings. Also he is a smart player that is not going to make stupid mistakes to hurt your cause.
Dwayne Wade came to play last night and was the perfect complement to James. Center Chris Bosh played a physical game last night and did not back down against the Thunder big men. Heat coach Erik Spoelstra probably coached his best game of the playoffs last night. He pushed the right buttons on the bench by using his bench more and calling timeouts at the perfect times to slow down Oklahoma City. The Heat defense did a better job of clogging the middle to make life for Russell Westbrook difficult when he penetrated the interior of the Heat defense.
Oklahoma City got off to another slow start and that seems to be a pattern for the Thunder during the playoffs. Coach Scott Brooks laid back too much last night and did not make the proper substitutions at the right times. If the Thunder gets off to a slow start in game three he has to get Derrick Fisher in there to give the team a veteran presence. Russell Westbrook took a step back last night. He was pressing and making mistakes that turned into easy offensive opportunities for the Heat. Kevin Durant started slow for Oklahoma City but came on like gangbusters in the second half and especially in the fourth quarter. James Harden kept the Thunder close until Westbrook and Durant heated up in the fourth quarter. Oklahoma City needs better play from their big men especially on offense. Now the series switches to Miami for the next three games and this is time where the Thunder has to step up and see if they have that NBA championship mettle.
Tiger Woods is in the hunt after the first round of the US Open. He seems to be getting his game back into form. Many are saying that he is back but, I will reserve judgment until he wins another major golf title and he has a chance this weekend. There's still time to get your bets in for the US Open events happening right now!


text:
using namespace DirectX;
using namespace Eigen;

namespace SSDR {

double ComputeApproximationErrorSq(const Output& output, const Input& input, const Parameter& param)
{
    std::vector<double> errsq(input.numExamples);
    double rsqsum = 0;
    for (int s = 0; s < input.numExamples; ++s)
    {
        const int numVertices = input.numVertices;
        const int numIndices = param.numIndices;
        const int numBones = output.numBones;
        const int numExamples = input.numExamples;

        for (int s = 0; s < numExamples; ++s)
        {
            for (int v = 0; v < numVertices; ++v)
            {
                XMVECTOR residual = XMLoadFloat3A(&input.sample[s * numVertices + v]);
                const XMVECTOR& p = XMLoadFloat3A(&input.bindModel[v]);
                for (int i = 0; i < numIndices; ++i)
                {
                    const int b = output.index[v * numIndices + i];
                    const float w = output.weight[v * numIndices + i];
                    const RigidTransform& rt = output.boneTrans[s * numBones + b];
                    residual -= w * rt.TransformCoord(p);
                }
                rsqsum += XMVectorGetX(XMVector3LengthSq(residual));
            }
        }
    }
    return rsqsum;
}
#ifdef ENABLE_TBB
class WeightMapUpdator
{
private:
    Output* output;
    const Input* input;
    const Parameter* param;
    const MatrixXd* cem;
    const MatrixXd* cim;
    const VectorXd* cev;
    const VectorXd* civ;
    const MatrixXd* scem;
    const MatrixXd* scim;
    const VectorXd* sciv;
public:
    WeightMapUpdator(Output* output_, const Input* input_, const Parameter* param_,
        const MatrixXd* cem_, const MatrixXd* cim_, const VectorXd* cev_, const VectorXd* civ_,
        const MatrixXd* scem_, const MatrixXd* scim_, const VectorXd* sciv_)
        : output(output_), input(input_), param(param_),
        cem(cem_), cim(cim_), cev(cev_), civ(civ_),
        scem(scem_), scim(scim_), sciv(sciv_)
    {
    }
    void operator ()(const tbb::blocked_range<int>& range) const
    {
        const int numVertices = input->numVertices;
        const int numExamples = input->numExamples;
        const int numIndices = param->numIndices;
        const int numBones = output->numBones;

        MatrixXd gm = MatrixXd::Zero(numBones, numBones), sgm = MatrixXd::Zero(numIndices, numIndices);
        VectorXd gv = VectorXd::Zero(numBones), sgv = VectorXd::Zero(numIndices);

        VectorXd weight = VectorXd::Zero(numBones), w0, sweight = VectorXd::Zero(numIndices);
        MatrixXd basis = MatrixXd::Zero(numBones, numExamples * 3), sbasis = MatrixXd::Zero(numIndices, numExamples * 3);
        VectorXd targetVertex = VectorXd::Zero(numExamples * 3);

        for (int v = range.begin(); v != range.end(); ++v)
        {
            const XMVECTOR restVertex = XMLoadFloat3A(&input->bindModel[v]);
            for (int s = 0; s < numExamples; ++s)
            {
                for (int b = 0; b < numBones; ++b)
                {
                    const RigidTransform& rt = output->boneTrans[s * numBones + b];
                    XMVECTOR tv = rt.TransformCoord(restVertex);
                    basis(b, s * 3 + 0) = XMVectorGetX(tv);
                    basis(b, s * 3 + 1) = XMVectorGetY(tv);
                    basis(b, s * 3 + 2) = XMVectorGetZ(tv);
                }
            }
            for (int s = 0; s < numExamples; ++s)
            {
                targetVertex[s * 3 + 0] = input->sample[s * numVertices + v].x;
                targetVertex[s * 3 + 1] = input->sample[s * numVertices + v].y;
                targetVertex[s * 3 + 2] = input->sample[s * numVertices + v].z;
            }
            // G = A * A^T
            gm = basis * basis.transpose();
            // g = A^T * b
            gv = -basis * targetVertex;

            double qperr = SolveQP(gm, gv, *cem, *cev, *cim, *civ, weight);
            assert(qperr != std::numeric_limits<double>::infinity());

            float weightSum = 0;
            for (int i = 0; i < numIndices; ++i)
            {
                double maxw = -std::numeric_limits<double>::max();
                int bestbone = -1;
                for (int b = 0; b < numBones; ++b)
                {
                    if (weight[b] > maxw)
                    {
                        maxw = weight[b];
                        bestbone = b;
                    }
                }
                if (maxw <= 0)
                {
                    break;
                }

                output->index[v * numIndices + i] = bestbone;
                output->weight[v * numIndices + i] = static_cast<float>(maxw);
                weightSum += static_cast<float>(maxw);
                weight[bestbone] = 0;
            }

            if (weightSum < 1.0f)
            {
                for (int j = 0; j < numExamples * 3; ++j)
                {
                    for (int i = 0; i < numIndices; ++i)
                    {
                        sbasis(i, j) = basis(output->index[v * numIndices + i], j);
                    }
                }
                sgm = sbasis * sbasis.transpose();
                sgv = -sbasis * targetVertex;
                qperr = SolveQP(sgm, sgv, *scem, *cev, *scim, *sciv, sweight);
                if (qperr != std::numeric_limits<double>::infinity())
                {
                    for (int i = 0; i < numIndices; ++i)
                    {
                        output->weight[v * numIndices + i] = static_cast<float>(sweight[i]);
                    }
                }
                else
                {
                    for (int i = 0; i < numIndices; ++i)
                    {
                        output->weight[v * numIndices + i] /= weightSum;
                    }
                }
            }
        }
    }
};
void UpdateWeightMap(Output& output, const Input& input, const Parameter& param)
{
    const int numBones = output.numBones;
    const int numIndices = param.numIndices;

    // partition of unity§–ñ : cem^T xv + cev = 0
    MatrixXd cem = MatrixXd::Zero(1, numBones);
    MatrixXd scem = MatrixXd::Zero(1, numIndices);
    VectorXd cev = VectorXd::Zero(1);
    // "ñ•‰§–ñ : cim^T xv + civ >= 0
    MatrixXd cim = MatrixXd::Zero(numBones, numBones);
    MatrixXd scim = MatrixXd::Zero(numIndices, numIndices);
    VectorXd civ = VectorXd::Zero(numBones);
    VectorXd sciv = VectorXd::Zero(numIndices);
    for (int b = 0; b < numBones; ++b)
    {
        cem(0, b) = -1.0;
        cim(b, b) = 1.0;
        civ(b) = 0;
    }
    for (int i = 0; i < numIndices; ++i)
    {
        scem(0, i) = -1.0;
        scim(i, i) = 1.0;
        sciv(i) = 0;
    }
    cev(0) = 1.0;

    tbb::parallel_for(tbb::blocked_range<int>(0, input.numVertices),
        WeightMapUpdator(&output, &input, &param,
        &cem, &cim, &cev, &civ, &scem,
        &scim, &sciv));
}
#else
void UpdateWeightMap(Output& output, const Input& input, const Parameter& param)
{
    const int numVertices = input.numVertices;
    const int numExamples = input.numExamples;
    const int numIndices = param.numIndices;
    const int numBones = output.numBones;

    // '˜a§–ñ : cem * xv + cev = 0
    MatrixXd cem = MatrixXd::Zero(1, numBones);
    MatrixXd scem = MatrixXd::Zero(1, numIndices);
    VectorXd cev = VectorXd::Zero(1);
    for (int b = 0; b < numBones; ++b)
    {
        cem(0, b) = 1.0;
    }
    cev(0) = -1.0;
    // "ñ•‰§–ñ : cim * xv + civ >= 0
    MatrixXd cim = MatrixXd::Zero(numBones, numBones);
    MatrixXd scim = MatrixXd::Zero(numIndices, numIndices);
    VectorXd civ = VectorXd::Zero(numBones);
    VectorXd sciv = VectorXd::Zero(numIndices);
    for (int b = 0; b < numBones; ++b)
    {
        cim(b, b) = 1.0;
        civ(b) = 0;
    }
    for (int i = 0; i < numIndices; ++i)
    {
        scem(0, i) = 1.0;
        scim(i, i) = 1.0;
        sciv(i) = 0;
    }

    MatrixXd gm = MatrixXd::Zero(numBones, numBones);
    MatrixXd sgm = MatrixXd::Zero(numIndices, numIndices);
    VectorXd gv = VectorXd::Zero(numBones);
    VectorXd sgv = VectorXd::Zero(numIndices);

    VectorXd weight = VectorXd::Zero(numBones);
    VectorXd sweight = VectorXd::Zero(numIndices);
    MatrixXd am = MatrixXd::Zero(numBones, numExamples * 3);
    MatrixXd sam = MatrixXd::Zero(numIndices, numExamples * 3);
    VectorXd bv = VectorXd::Zero(numExamples * 3);

    for (int v = 0; v < numVertices; ++v)
    {
        const XMVECTOR restVertex = XMLoadFloat3A(&input.bindModel[v]);
        for (int s = 0; s < numExamples; ++s)
        {
            for (int b = 0; b < numBones; ++b)
            {
                const RigidTransform& rt = output.boneTrans[s * numBones + b];
                XMVECTOR tv = rt.TransformCoord(restVertex);
                am(b, s * 3 + 0) = XMVectorGetX(tv);
                am(b, s * 3 + 1) = XMVectorGetY(tv);
                am(b, s * 3 + 2) = XMVectorGetZ(tv);
            }
        }
        for (int s = 0; s < numExamples; ++s)
        {
            bv[s * 3 + 0] = input.sample[s * numVertices + v].x;
            bv[s * 3 + 1] = input.sample[s * numVertices + v].y;
            bv[s * 3 + 2] = input.sample[s * numVertices + v].z;
        }
        // G = A * A^T
        gm = am * am.transpose();
        // g = A^T * b
        gv = -am * bv;

        double qperr = SolveQP(gm, gv, cem, cev, cim, civ, weight);
        assert(qperr != std::numeric_limits<double>::infinity());

        float weightSum = 0;
        for (int i = 0; i < numIndices; ++i)
        {
            double maxw = -std::numeric_limits<double>::max();
            int bestbone = -1;
            for (int b = 0; b < numBones; ++b)
            {
                if (weight[b] > maxw)
                {
                    maxw = weight[b];
                    bestbone = b;
                }
            }
            if (maxw <= 0)
            {
                break;
            }

            output.index[v * numIndices + i] = bestbone;
            output.weight[v * numIndices + i] = static_cast<float>(maxw);
            weightSum += static_cast<float>(maxw);
            weight[bestbone] = 0;
        }

        if (weightSum < 1.0f)
        {
            for (int j = 0; j < numExamples * 3; ++j)
            {
                for (int i = 0; i < numIndices; ++i)
                {
                    sam(i, j) = am(output.index[v * numIndices + i], j);
                }
            }
            sgm = sam * sam.transpose();
            sgv = -sam * bv;
            qperr = SolveQP(sgm, sgv, scem, cev, scim, sciv, sweight);
            if (qperr != std::numeric_limits<double>::infinity())
            {
                for (int i = 0; i < numIndices; ++i)
                {
                    output.weight[v * numIndices + i] = static_cast<float>(sweight[i]);
                }
            }
            else
            {
                for (int i = 0; i < numIndices; ++i)
                {
                    output.weight[v * numIndices + i] /= weightSum;
                }
            }
        }
    }
}
#endif

// ƒŠƒXƒgxxx.13FHorn'Ì"_ŒQˆÊ'u‡'킹ƒAƒ‹ƒSƒŠƒYƒ€
RigidTransform CalcPointsAlignment(size_t numPoints, std::vector<XMFLOAT3A>::const_iterator ps, std::vector<XMFLOAT3A>::const_iterator pd)
{
    RigidTransform transform;

    // '»'ꂼ'ê'Ì"_ŒQ'̏dSÀ•W'ÌŒvŽZ
    XMVECTOR cs = XMVectorZero(), cd = XMVectorZero();
    std::vector<XMFLOAT3A>::const_iterator sit = ps;
    std::vector<XMFLOAT3A>::const_iterator dit = pd;
    for (size_t i = 0; i < numPoints; ++i, ++sit, ++dit)
    {
        cs += XMLoadFloat3A(&(*sit));
        cd += XMLoadFloat3A(&(*dit));
    }
    cs /= numPoints;
    cd /= numPoints;

    // ‰ñ"]'̐"'肪'Å'«'È'¢ or ‰ñ"]'𐄒肵'È'¢ê‡'Í•½sˆÚ"®¬•ª'Ì'Ý–ß'·
    if (numPoints < 3)
    {
        XMStoreFloat3A(&transform.Translation(), cd - cs);
        return transform;
    }

    // ƒ'[ƒƒ"ƒgs—ñ'ÌŒvŽZ
    Matrix<double, 4, 4> moment;
    double sxx = 0, sxy = 0, sxz = 0, syx = 0, syy = 0, syz = 0, szx = 0, szy = 0, szz = 0;
    sit = ps;
    dit = pd;
    for (size_t i = 0; i < numPoints; ++i, ++sit, ++dit)
    {
        sxx += (sit->x - XMVectorGetX(cs)) * (dit->x - XMVectorGetX(cd));
        sxy += (sit->x - XMVectorGetX(cs)) * (dit->y - XMVectorGetY(cd));
        sxz += (sit->x - XMVectorGetX(cs)) * (dit->z - XMVectorGetZ(cd));
        syx += (sit->y - XMVectorGetY(cs)) * (dit->x - XMVectorGetX(cd));
        syy += (sit->y - XMVectorGetY(cs)) * (dit->y - XMVectorGetY(cd));
        syz += (sit->y - XMVectorGetY(cs)) * (dit->z - XMVectorGetZ(cd));
        szx += (sit->z - XMVectorGetZ(cs)) * (dit->x - XMVectorGetX(cd));
        szy += (sit->z - XMVectorGetZ(cs)) * (dit->y - XMVectorGetY(cd));
        szz += (sit->z - XMVectorGetZ(cs)) * (dit->z - XMVectorGetZ(cd));
    }
    moment(0, 0) = sxx + syy + szz;
    moment(0, 1) = syz - szy;        moment(1, 0) = moment(0, 1);
    moment(0, 2) = szx - sxz;        moment(2, 0) = moment(0, 2);
    moment(0, 3) = sxy - syx;        moment(3, 0) = moment(0, 3);
    moment(1, 1) = sxx - syy - szz;
    moment(1, 2) = sxy + syx;        moment(2, 1) = moment(1, 2);
    moment(1, 3) = szx + sxz;        moment(3, 1) = moment(1, 3);
    moment(2, 2) = -sxx + syy - szz;
    moment(2, 3) = syz + szy;        moment(3, 2) = moment(2, 3);
    moment(3, 3) = -sxx - syy + szz;

    if (moment.norm() > 0)
    {
        // •"†•t'«Å'åŒÅ—L'l'ɑΉž'·'éŒÅ—LƒxƒNƒgƒ‹'ðŽæ"¾
        EigenSolver<Matrix<double, 4, 4>> es(moment);
        int maxi = 0;
        for (int i = 1; i < 4; ++i)
        {
            if (es.eigenvalues()(maxi).real() < es.eigenvalues()(i).real())
            {
                maxi = i;
            }
        }
        transform.Rotation() = XMFLOAT4A(
            static_cast<float>(es.eigenvectors()(1, maxi).real()),
            static_cast<float>(es.eigenvectors()(2, maxi).real()),
            static_cast<float>(es.eigenvectors()(3, maxi).real()),
            static_cast<float>(es.eigenvectors()(0, maxi).real()));
    }

    // •½sˆÚ"®¬•ª
    //
    XMVECTOR cs0 = transform.TransformCoord(cs);
    XMStoreFloat3A(&transform.Translation(), cd - cs0);
    return transform;
}

// Ž®xxx.9F\tilde{q}_{j,n}
void ComputeExamplePoints(std::vector<XMFLOAT3A>& example, int sid, int bone, const Output& output, const Input& input, const Parameter& param)
{
    const int numVertices = input.numVertices;
    const int numIndices = param.numIndices;
    const int numBones = output.numBones;
    for (int v = 0; v < numVertices; ++v)
    {
        example[v] = input.sample[sid * numVertices + v];
        const XMVECTOR s = XMLoadFloat3A(&input.bindModel[v]);
        for (int i = 0; i < numIndices; ++i)
        {
            const int b = output.index[v * numIndices + i];
            if (b != bone)
            {
                const float w = output.weight[v * numIndices + i];
                const RigidTransform& at = output.boneTrans[sid * numBones + b];
                XMVECTOR r = XMLoadFloat3A(&example[v]);
                XMStoreFloat3A(&example[v], r - w * at.TransformCoord(s));
            }
        }
    }
}

void SubtractCentroid(std::vector<XMFLOAT3A>& model, std::vector<XMFLOAT3A>& example, XMFLOAT3A& corModel, XMFLOAT3A& corExample, const VectorXd& weight, const Output& output, const Input& input)
{
    const int numVertices = input.numVertices;

    // Ž®xxx.10F\bar{p}_nC\bar{q}_{j,n}
    double wsqsum = 0;
    XMVECTOR dmodel = XMVectorZero();
    XMVECTOR dexample = XMVectorZero();
    for (int v = 0; v < numVertices; ++v)
    {
        const double w = weight[v];
        dmodel += static_cast<float>(w * w) * XMLoadFloat3A(&input.bindModel[v]);
        dexample += static_cast<float>(w)* XMLoadFloat3A(&example[v]);
        wsqsum += w * w;
    }
    dmodel /= static_cast<float>(wsqsum);
    dexample /= static_cast<float>(wsqsum);
    XMStoreFloat3A(&corModel, dmodel);
    XMStoreFloat3A(&corExample, dexample);

    for (int v = 0; v < numVertices; ++v)
    {
        // Ž®xxx.11Fw_{j,c} p_j
        XMVECTOR d = XMLoadFloat3A(&input.bindModel[v]) - XMLoadFloat3A(&corModel);
        XMStoreFloat3A(&model[v], static_cast<float>(weight[v]) * d);
        // Ž®xxx.11Fq_{j,n}
        d = XMLoadFloat3A(&example[v]) - static_cast<float>(weight[v]) * XMLoadFloat3A(&corExample);
        XMStoreFloat3A(&example[v], d);
    }
}

#ifdef ENABLE_TBB
class BoneTransformUpdator
{
private:
    Output* output;
    const Input* input;
    const Parameter* param;
    const VectorXd* weight;
    int bone;
public:
    BoneTransformUpdator(Output* output_, const Input* input_, const Parameter* param_, const VectorXd* weight_)
        : bone(0), output(output_), input(input_), param(param_), weight(weight_)
    {
    }
    void ChangeBone(int b)
    {
        bone = b;
    }
    void operator () (const tbb::blocked_range<int>& range) const
    {
        std::vector<XMFLOAT3A> model(input->numVertices), example(input->numVertices);
        for (int s = range.begin(); s != range.end(); ++s)
        {
            // Ž®xxx.9F\tilde{q}_{j,n}
            ComputeExamplePoints(example, s, bone, *output, *input, *param);

            // Ž®xxx.10Cxxx.11
            XMFLOAT3A corModel(0, 0, 0), corExample(0, 0, 0);
            SubtractCentroid(model, example, corModel, corExample, *weight, *output, *input);

            // Ž®xxx.12'̉ð
            RigidTransform transform = CalcPointsAlignment(model.size(), model.begin(), example.begin());
            // Ž®xxx.13
            XMVECTOR d = XMLoadFloat3A(&corExample) - transform.TransformCoord(XMLoadFloat3A(&corModel));
            XMStoreFloat3A(&transform.Translation(), d + XMLoadFloat3A(&transform.Translation()));
            output->boneTrans[s * output->numBones + bone] = transform;
        }
    }
};
void UpdateBoneTransform(Output& output, const Input& input, const Parameter& param)
{
    const int numVertices = input.numVertices;
    const int numExamples = input.numExamples;
    const int numIndices = param.numIndices;
    const int numBones = output.numBones;

    VectorXd boneWeight = VectorXd::Zero(numVertices);
    BoneTransformUpdator transformUpdator(&output, &input, &param, &boneWeight);
    tbb::blocked_range<int> blockedRange(0, numExamples);
    for (int bone = 0; bone < numBones; ++bone)
    {
        for (int v = 0; v < numVertices; ++v)
        {
            boneWeight[v] = 0;
            for (int i = 0; i < numIndices; ++i)
            {
                if (output.index[v * numIndices + i] == bone)
                {
                    boneWeight[v] = output.weight[v * numIndices + i];
                    break;
                }
            }
        }
        transformUpdator.ChangeBone(bone);
        tbb::parallel_for(blockedRange, transformUpdator);
    }
}
#else
void UpdateBoneTransform(Output& output, const Input& input, const Parameter& param)
{
    const int numVertices = input.numVertices;
    const int numExamples = input.numExamples;
    const int numIndices = param.numIndices;
    const int numBones = output.numBones;

    VectorXd weight = VectorXd::Zero(numVertices);
    std::vector<XMFLOAT3A> model(input.numVertices), example(input.numVertices);
    for (int bone = 0; bone < numBones; ++bone)
    {
        for (int v = 0; v < numVertices; ++v)
        {
            weight[v] = 0;
            for (int i = 0; i < numIndices; ++i)
            {
                if (output.index[v * numIndices + i] == bone)
                {
                    weight[v] = output.weight[v * numIndices + i];
                    break;
                }
            }
        }

        for (int s = 0; s < numExamples; ++s)
        {
            // Ž®xxx.9F\tilde{q}_{j,n}
            ComputeExamplePoints(example, s, bone, output, input, param);
            // Ž®xxx.10Cxxx.11
            XMFLOAT3A corModel(0, 0, 0), corExample(0, 0, 0);
            SubtractCentroid(model, example, corModel, corExample, weight, output, input);
            // Ž®xxx.12'̉ð
            RigidTransform transform = CalcPointsAlignment(model.size(), model.begin(), example.begin());
            // Ž®xxx.13
            XMVECTOR d = XMLoadFloat3A(&corExample) - transform.TransformCoord(XMLoadFloat3A(&corModel));
            XMStoreFloat3A(&transform.Translation(), d + XMLoadFloat3A(&transform.Translation()));
            output.boneTrans[s * output.numBones + bone] = transform;
        }
    }
}
#endif
void UpdateBoneTransform(std::vector<RigidTransform>& boneTrans, int numBones, const Output& output, const Input& input, const Parameter& param)
{
    const int numVertices = input.numVertices;
    const int numExamples = input.numExamples;
    const int numIndices = param.numIndices;

    std::vector<int> numBoneVertices(numBones, 0);
    for (int v = 0; v < numVertices; ++v)
    {
        ++numBoneVertices[output.index[v * numIndices + 0]];
    }
    std::vector<int> boneVertexId(numBones, 0);
    for (int i = 1; i < numBones; ++i)
    {
        boneVertexId[i] = boneVertexId[i - 1] + numBoneVertices[i - 1];
    }
    std::vector<XMFLOAT3A> skin(numVertices, XMFLOAT3A(0, 0, 0));
    std::vector<XMFLOAT3A> anim(numVertices * numExamples, XMFLOAT3A(0, 0, 0));
    for (int v = 0; v < numVertices; ++v)
    {
        const int bs = output.index[v * numIndices + 0];
        const int bd = boneVertexId[bs];
        skin[bd] = input.bindModel[v];
        for (int s = 0; s < numExamples; ++s)
        {
            anim[s * numVertices + bd] = input.sample[s * numVertices + v];
        }
        ++boneVertexId[bs];
    }
    boneVertexId[0] = 0;
    for (int i = 1; i < numBones; ++i)
    {
        boneVertexId[i] = boneVertexId[i - 1] + numBoneVertices[i - 1];
    }
    for (int b = 0; b < numBones; ++b)
    {
        for (int s = 0; s < numExamples; ++s)
        {
            boneTrans[s * numBones + b] = CalcPointsAlignment(numBoneVertices[b], skin.begin() + boneVertexId[b], anim.begin() + s * numVertices + boneVertexId[b]);
        }
    }
}

int BindVertexToBone(Output& output, std::vector<RigidTransform>& boneTrans, const Input& input, const Parameter& param)
{
    const int numVertices = input.numVertices;
    const int numExamples = input.numExamples;
    const int numIndices = param.numIndices;
    int numBones = static_cast<int>(boneTrans.size() / numExamples);

    std::vector<int> numBoneVertices(numBones, 0);
    std::vector<float> vertexError(numVertices, 0);

    for (int v = 0; v < numVertices; ++v)
    {
        int bestBone = 0;
        float minErr = std::numeric_limits<float>::max();
        const XMVECTOR bindModelPos = XMLoadFloat3A(&input.bindModel[v]);
        for (int b = 0; b < numBones; ++b)
        {
            float errsq = 0;
            for (int s = 0; s < numExamples; ++s)
            {
                const RigidTransform& at = boneTrans[s * numBones + b];
                XMVECTOR diff = XMLoadFloat3A(&input.sample[s * numVertices + v])
                              - at.TransformCoord(XMLoadFloat3A(&input.bindModel[v]));
                errsq += XMVectorGetX(XMVector3LengthSq(diff));
            }
            if (errsq < minErr)
            {
                bestBone = b;
                minErr = errsq;
            }
        }
        ++numBoneVertices[bestBone];
        output.index[v * numIndices + 0] = bestBone;
        vertexError[v] = minErr;
    }

    // ‹óƒNƒ‰ƒXƒ^'̏œ‹Ž
    std::vector<int>::iterator smallestBoneSize = std::min_element(numBoneVertices.begin(), numBoneVertices.end());
    while (*smallestBoneSize <= 0)
    {
        const int smallestBone = static_cast<int>(smallestBoneSize - numBoneVertices.begin());
        numBoneVertices.erase(numBoneVertices.begin() + smallestBone);
        for (int s = input.numExamples - 1; s >= 0; --s)
        {
            boneTrans.erase(boneTrans.begin() + s * numBones + smallestBone);
        }
        for (int v = 0; v < numVertices; ++v)
        {
            int b = output.index[v * numIndices + 0];
            if (b >= smallestBone)
            {
                --output.index[v * numIndices + 0];
            }
        }
        --numBones;
        smallestBoneSize = std::min_element(numBoneVertices.begin(), numBoneVertices.end());
    }
    return static_cast<int>(numBoneVertices.size());
}

int ClusterInitialBones(Output& output, const Input& input, const Parameter& param)
{
    const int numVertices = input.numVertices;
    const int numExamples = input.numExamples;
    const int numIndices = param.numIndices;

    std::fill(output.index.begin(), output.index.end(), 0);
    std::fill(output.weight.begin(), output.weight.end(), 0.0f);
    for (int v = 0; v < numVertices; ++v)
    {
        output.weight[v * numIndices + 0] = 1.0f;
    }

    int numClusters = 1;
    std::vector<RigidTransform> boneTrans(numExamples);
    UpdateBoneTransform(boneTrans, numClusters, output, input, param);

    while (numClusters < param.numMinBones)
    {
        std::vector<XMFLOAT3A> clusterCenter(numClusters, XMFLOAT3A(0, 0, 0));
        std::vector<int> numBoneVertices(numClusters, 0);
        for (int v = 0; v < numVertices; ++v)
        {
            const int c = output.index[v * numIndices + 0];
            clusterCenter[c].x += input.bindModel[v].x;
            clusterCenter[c].y += input.bindModel[v].y;
            clusterCenter[c].z += input.bindModel[v].z;
            ++numBoneVertices[c];
        }
        for (int c = 0; c < numClusters; ++c)
        {
            clusterCenter[c].x /= static_cast<float>(numBoneVertices[c]);
            clusterCenter[c].y /= static_cast<float>(numBoneVertices[c]);
            clusterCenter[c].z /= static_cast<float>(numBoneVertices[c]);
        }

        std::vector<float> maxClusterError(numClusters, -std::numeric_limits<float>::max());
        std::vector<int> mostDistantVertex(numClusters, -1);
        for (int v = 0; v < numVertices; ++v)
        {
            const int c = output.index[v * numIndices + 0];
            float sumApproxErrorSq = 0;
            for (int s = 0; s < numExamples; ++s)
            {
                XMVECTOR diff = XMLoadFloat3A(&input.sample[s * numVertices + v])
                    - boneTrans[s * numClusters + c].TransformCoord(XMLoadFloat3A(&input.bindModel[v]));
                sumApproxErrorSq += XMVectorGetX(XMVector3LengthSq(diff));
            }
            XMVECTOR d = XMLoadFloat3A(&input.bindModel[v]) - XMLoadFloat3A(&clusterCenter[c]);
            float errSq = sumApproxErrorSq * XMVectorGetX(XMVector3LengthSq(d));
            if (errSq > maxClusterError[c])
            {
                maxClusterError[c] = errSq;
                mostDistantVertex[c] = v;
            }
        }
        int numPrevClusters = numClusters;
        for (int c = 0; c < numPrevClusters; ++c)
        {
            output.index[mostDistantVertex[c] * numIndices + 0] = numClusters++;
            --numBoneVertices[c];
            numBoneVertices.push_back(1);
        }
        boneTrans.resize(numExamples * numClusters);

        UpdateBoneTransform(boneTrans, numClusters, output, input, param);
        numClusters = BindVertexToBone(output, boneTrans, input, param);
    }
    return numClusters;
}

#pragma region Decompose
double Decompose(Output& output, const Input& input, const Parameter& param)
{
    const int numVertices = input.numVertices;
    const int numExamples = input.numExamples;
    const int numIndices = param.numIndices;

    output.index.assign(numVertices * numIndices, 0);
    output.weight.assign(numVertices * numIndices, 0.0f);

    // ƒNƒ‰ƒXƒ^•ªŠ"Šú'Ò'lÅ'剻–@'ð—p'¢'½‰ŠúƒoƒCƒ"ƒfƒBƒ"ƒO
    output.numBones = ClusterInitialBones(output, input, param);
    // ‰Šúƒ{[ƒ"ƒgƒ‰ƒ"ƒXƒtƒH[ƒ€
    output.boneTrans.assign(numExamples * output.numBones, RigidTransform::Identity());
    UpdateBoneTransform(output.boneTrans, output.numBones, output, input, param);

    // BCDƒAƒ‹ƒSƒŠƒYƒ€'É'æ'éƒXƒLƒjƒ"ƒOƒEƒFƒCƒg'ƃ{[ƒ"Žp¨'ÌŒðŒÝÅ"K‰»
    for (int loop = 0; loop < param.numMaxIterations; ++loop)
    {
        UpdateWeightMap(output, input, param);
        UpdateBoneTransform(output, input, param);
    }
    return ComputeApproximationErrorSq(output, input, param);
}
#pragma endregion

} //namespace SSDR

redpajama_set_name: RedPajamaGithub


Back in 1995, I purchased a condo. After everything was unpacked, starving I decided to celebrate by cooking my first meal and I was craving fried chicken, not just any fried chicken, but my Granny's Fried Chicken. So off to the store to fill my new refrigerator and pick-up all the ingredients for dinner.
My reply, "Hi Grandpa, how are you doing?"
The Grandpa "Just fine and dandy."
I ask, "Is Granny around?"
The Grandpa, "Oh sure, what do you need her for?"
Smiling I replied, "I'm making Fried Chicken and I needed her expertise."
The Grandpa, "Well I can tell you how to make Fried Chicken."
"You know how to make fried chicken?" I asked.
"I've been married to that woman for over 50 years, she's not the only one that makes fried chicken in this house!" Proclaims The Grandpa.
Startled I answered, "Well ok, can you tell me how to make fried chicken?"
Much calmer The Grandpa answered, "Suuuuuuurrre, here's what you do. You got your flour with salt and pepper in a dish? Egg wash? Thawed chicken? Oil in a frying pan getting nice and hot?"
Happy he's not so feisty, "Yup!"
The Grandpa, "Good, now grab a bottle of Whiskey."
Confused I say, "I don't have any Whiskey, I have Vodka, will that work?"
The Grandpa, "Oh sure, now take your chicken and stand it up."
"Ok, I'm standing the chicken up, now what?"
The Grandpa, "Pour the Vodka in the chicken."
"Really? Won't it spill out?"
The Grandpa, "No, of course not."
Smelling something fishy - I say, "All righty, what next?
The Grandpa, "After you pour the vodka in the chicken, wait a few minutes, let go of the chicken - when it falls over, IT'S FRIED!!!!!" He laughs and laughs.
silence... Then exasperated I ask, "Can I please talk to Granny?"
I still giggle every time I eat Fried Chicken, what a silly, wonderful, amazing Grandpa I had - what a lucky girl I am to have had him for 43 years.
Silk Screened with white, brown, yellow and red ink.


text:
Elizabeth Warren unveils 'Blue New Deal' to end offshore drilling and spend cash on wind turbines saying she will 'clean up the oceans'
2020 Democrat unveils plan phasing out all offshore drilling and investing in renewable energy projects like wind turbines
'The future of our planet depends on a healthy ocean, and we have no more time to waste,' she says
Calls for significant increases in offshore renewable energy projects by using executive authority to fast-track the approval process
Would reinstate an Obama-era program that protected vast swaths of the Atlantic and Arctic oceans from oil and gas leasing
Democratic presidential candidate Elizabeth Warren on Tuesday proposed a 'Blue New Deal' to revitalize and protect the world's oceans, including phasing out all offshore drilling and investing in renewable energy projects like wind turbines.
'Our oceans can underpin a sustainable food system, be a source of renewable energy and defend against the worst of climate change,' Warren wrote in a post on the website Medium.
'The future of our planet depends on a healthy ocean, and we have no more time to waste.'
Warren, a U.S. senator from Massachusetts, is among the top contenders for the Democratic nomination to take on Republican President Donald Trump in the November 2020 election. There are 15 Democrats vying for the party's nod.
Blue new deal: Elizabeth Warren has unveiled a new plan to turn away from drilling for oil and gas in the ocean, saying that renewable energy is vital to keeping the oceans healthy
More of these, less of these: Elizabeth Warren says she wants to see a massive investment in wind turbines and to end all offshore drilling
Warren's latest initiative calls for significant increases in offshore renewable energy projects by using executive authority to fast-track the approval process.
Construction projects would receive additional subsidies or tax benefits by guaranteeing prevailing wages and collective bargaining rights.
In addition, her administration would seek to ensure that any wind infrastructure is made with U.S. iron, steel and cement and employs American crews and boats to ferry goods and workers.
Warren, who previously vowed to end all new offshore fossil fuel leases, said she would also direct federal agencies to plan a phase-out of existing offshore drilling, while offering retraining and education for displaced workers.
She added she would reinstate an Obama-era program that protected vast swaths of the Atlantic and Arctic oceans from oil and gas leasing.
The Trump administration has pushed to expand oil drilling on federal land and in coastal waters as part of a broader effort to maximize U.S. oil, gas and coal production.
Warren's plan also calls for a program to support ocean farming, beefed-up anti-pollution efforts from the U.S. Justice Department and quintupling the Federal Emergency Management Agency's pre-disaster mitigation grant program, which helps local governments implement long-term plans for disaster response.
Like many of the Democratic candidates, Warren supports the 'Green New Deal,' a proposal backed by many congressional Democrats that aims to achieve a net-zero carbon economy in 10 years, along with social and economic justice programs.
Donald Trump beats the Russians to the punch by tweeting out... Nancy Pelosi did a deal on USMCA because she is EMBARRASSED... Handful of moderate Democrats are floating plans to CENSURE... The charges against me are 'VERY WEAK' says Donald Trump as...
I will be EXONERATED says Donald Trump as Democrats unveil...
WHO ARE THE 12 DEMOCRATS RUNNING FOR PRESIDENT IN 2020?
Age on Inauguration Day 2021: 56
Entered race: May 2, 2019
Career: Currently Colorado senator. Educated at elite St. Albans preparatory school and was a Capitol Hill page before graduating Wesleyan and Yale Law School. Was law clerk and worked in Clinton's Department of Justice then moved to Colorado in 1997 as managing director of billionaire Philip Anschutz's investment company. Was chief of staff to Denver mayor John Hickenlooper, then superintendent of Denver Public schools. Appointed to vacant Colorado Senate seat in 2009, held it 48.1 to 46.4 in 2010 and 50 to 44.3 in 2016
Family: Married to environmental attorney Susan Daggett, with three daughters - Halina, Anne and Caroline. Was born in New Delhi while to diplomat father Douglas Bennet, who went onto be CEO of NPR and a Clinton assistant secretary of state. His grandfather, also Douglas, was an economic adviser to FDR. Mother Susanne is retired elementary school librarian whose parents were Holocaust survivors. Brother James is editor of the New York Times opinion section
Religion: Says he was raised with Jewish and Christian heritage; no known adherence
Views on key issues: Moderate who does not endorse Medicare for all or - so far - Green New Deal. Strongly pro-choice and pro-gay rights, leading to 2010 Senate victory. Pro raising minimum wage. Wants citizenship pathway for 'dreamers.'
Would make history as: First Colorado president
Slogan: Building Opportunity Together
Entered race: April 25, 2019
Career: No current role. A University of Delaware and Syracuse Law graduate, he was first elected to Newcastle City Council in 1969, then won upset election to Senate in 1972, aged 29. Was talked out of quitting before being sworn in when his wife and daughter died in a car crash and served total of six terms. Chaired Judiciary Committee's notorious Clarence Thomas confirmation hearings. Ran for president in 1988, pulled out after plagiarism scandal, ran again in 2008, withdrew after placing fifth in the Iowa Caucuses. Tapped by Obama as his running mate and served two terms as vice president. Contemplated third run in 2016 but decided against it after his son died of brain cancer.
Family: Eldest of four siblings born to Joe Biden Sr. and Catherine Finnegan. First wife Neilia Hunter and their one-year-old daughter Naomi died in car crash which their two sons, Joseph 'Beau' and Robert Hunter survived. Married Jill Jacobs in 1976, with whom he has daughter Ashley. Beau died of brain cancer in 2015. Hunter's marriage to Kathleen Buhle, with whom he has three children, ended in 2016 when it emerged Hunter was in a relationship with Beau's widow Hallie, mother of their two children. Hunter admitted cocaine use; his estranged wife accused him of blowing their savings on drugs and prostitutes
Views on key issues: Ultra-moderate who will emphasize bipartisan record. Will come under fire over record, having voted: to stop desegregation bussing in 1975; to overturn Roe v Wade in 1981; for now controversial 1994 Violent Crime Act; for 2003 Iraq War; and for banking deregulation. Says he is 'most progressive' Democrat. New positions include free college, tax reform, $15 minimum wage. No public position yet on Green New Deal and healthcare. Pro-gun control. Has already apologized to women who say he touched them inappropriately
Would make history as: Oldest person elected president
Slogan: Our Best Days Still Lie Ahead
MIKE BLOOMBERG
Age on Inauguration Day: 78
Entered race: November 25, 2019
Career: Currently multi-billionaire CEO of Bloomberg PL, the financial information firm he founded in 1981 and which remains a private company. Educated at Johns Hopkins and Harvard, he became a Wall Street trader at investment bank Salomon Brothers and was laid off in 1981, walking away with $10m in stock which he used to set up his own financial information firm, now one of the world's largest. Three times mayor of New York 2002 to 2013, running first as Republican then as independent; had to get term limits suspended for final term. Once flirted with running for mayor of London where he has a home; holds an honorary knighthood from Queen Elizabeth. Has spent large amounts on philanthropy in line with his political views as well as on political campaigns
Family: Born in Brookline, MA, to first-generation Jewish immigrant parents whose own parents had fled Russia. Divorced wife of 18 years, Susan Brown-Meyer, in 1993; former couple have daughters Emma, who has a son with her former boyfriend, and Georgina, who has daughter Zelda with her husband Chris Fissora. The child has a portmanteau surname, Frissberg. Partner since 2000 is Diana Taylor, former New York state banking commissioner, 13 years his junior
Religion: Jewish
Views on key issues: Self-professed fiscal conservative, although painted as a Democratic moderate by other conservative groups. Opposed to Medicare for all. Social progressive who backed gay marriage early, but has flip-flopped on marijuana legalization, most recently opposing it.. Wants firm action on climate change. Fiercely in favor of gun control. As New York mayor banned smoking in public places and tried to outlaw large sugary drinks. Backs increased immigration. Apologized for his stop-and-frisk policing strategy as mayor
Would make history as: Oldest person elected president; first Jewish president; richest president ever; first New York mayor to become president
Slogan: Fighting For Our Fture
Entered race: Announced formation of exploratory committee January 23, 2019. Formally entered race April 14, 2019
Career: Currently mayor of Sound Bend, Indiana. Harvard grad and Rhodes scholar who got a second degree from Oxford before working as a McKinsey management consultant and being commissioned as a Navy Reserve intelligence officer. Elected South Bend mayor in 2011 and served in combat in 2013, won re-election in 2015
Family: Came out as gay during second mayoral run and married husband Chasten Glezman, a middle school teacher in 2018. Parents were University of Notre Dame academics; his father was Maltese-American. Surname is pronounced BOOT-edge-edge
Religion: Raised as a Catholic, now Episcopalian
Views on key issues: Has said Democratic party needs a 'fresh start'; wrote an essay in praise of Bernie Sanders aged 17; backed paid parental leave for city employees; other policies unknown
Would make history as: First openly gay and youngest-ever president. First veteran of post-World War II conflict
Slogan: A Fresh Start For America
Entered race: Filed papers July 28, 2017
Career: No current job. Columbia and Georgetown law educated financial entrepreneur. Set up publicly-traded companies lending capital to healthcare and mid-size businesses and was youngest CEO at the time of a New York Stock Exchange-listed firm. Three-time Maryland congressman, first winning election in 2012; announced run for president instead of running again in 2018
Family: Married father of four; wife April works for children's issues nonprofit. Credits his working class father's union roots for helping him through college
Views on key issues: Social liberal in favor of legalized pot and gun control but not single-payer healthcare; fiscally conservative
Would make history as: First president from Maryland. First openly bald president since Eisenhower
Slogan: Focus on the Future
Entered race: Still to formally file any papers but said she would run on January 11 2019
Career: Currently Hawaii congresswoman. Born on American Samoa, a territory. Raised largely in Hawaii, she co-founded an environmental non-profit with her father as a teenager and was elected to the State Legislature aged 21, its youngest member in history. Enlisted in the National Guard and served two tours, one in Iraq 2004-2006, then as an officer in Kuwait in 2009. Ran for Honolulu City Council in 2011, and House of Representatives in 2012
Family: Married to her second husband, Abraham Williams, a cinematographer since 2015. First marriage to childhood sweetheart Eduardo Tamayo in 2002 ended in 2006. Father Mike Gabbard is a Democratic Hawaii state senator, mother Carol Porter runs a non-profit.
Views on key issues: Has apologized for anti-abortion and anti-gay marriage views; wants marijuana federally legalized; opposed to most U.S. foreign interventions; backs $15 minimum wage and universal health care; was the second elected Democrat to meet Trump after his 2016 victory
Would make history as: First female, Hindu and Samoan-American president; youngest president ever
Slogan: Lead with Love
Entered race: Announced candidacy February 10, 2019 at snow-drenched rally in her native Minneapolis
Career: Currently Minnesota senator. Yale and University of Chicago law graduate who became a corporate lawyer. First ran unsuccessfully for office in 1994 as Hennepin, MI, county attorney, and won same race in 1998, then in 2002, without opposition. Ran for Senate in 2006 and won 58-38; re-elected in 2012 and 2018
Family: Married to John Bessler, law professor at University of Baltimore and expert on capital punishment. Daughter Abigail Bessler, 23, works fora Democratic member of New York City council. Father Jim, 90, was a veteran newspaper columnist who has written a memoir of how his alcoholism hurt his family; mom Rose is a retired grade school teacher
Religion: Congregationalist (United Church of Christ)
Views on key issues: Seen as a mainstream liberal: says she wants 'universal health care' but has not spelled out how; pro-gun control; pro-choice; backs $15 minimum wage; no public statements on federal marijuana legalization; has backed pro-Israel law banning the 'boycott, divestment and sanctions' movement; spoke out against abolishing ICE
Would make history as: First female president
Slogan: Let's Get To Work
Entered race: Told friends he was running on November 13, 2019
Career: Currently a managing director of Bain Capital. Awarded scholarship in eighth grade to Massachusetts boarding school Milton Academy, becoming first in his family to go to college. Harvard law grad who twice failed the bar before working for NAACP then private practice where he represented Mike Tyson's rape victim Desiree Washington. Assistant attorney general for civil rights in Clinton administration then Texaco and Coca-Cola and sub-prime lender Ameriquest executive. Ran for Massachusetts governor as outside candidate in 2006 and won, becoming first African-American in role, won a second term 48-42.
Family: Born in Chicago, his jazz musician father Pat Patrick left mother Emily Wintersmith when he was three when he fathered a Patrick's half-sister with another woman. Patrick married wife Diane Bemus, an attorney, in 1984; they have two adult daughters, Sarah and Katherine. Sarah is married to a former Italian soldier Marco Morgese; their son Gianluca is the Patricks' first grandchild. Katherine came out as lesbian in 2008 and married Alisha Lemieux in 2016.
Religion: Presbyterian
Views on key issues: Moderate who championed social liberal policies and embraced Obamacare. Boosted transportation spending and increased state gas taxes to pay, speaking out against climate change. Unclear where he stands on Medicare for All and Green New Deal. Pro-gun control, proposing ban on multiple gun sales after Sandy Hook.
Would make history as: No obvious claim
Slogan: To be announced
Entered race: Sources said on January 25, 2019, that he would form exploratory committee. Officially announced February 19
Career: Currently Vermont senator. Student civil rights and anti-Vietnam activist who moved to Vermont and worked as a carpenter and radical film-maker. Serial failed political candidate in the 1970s, he ran as a socialist for mayor of Burlington in 1980 and served two terms ending in 1989, and win a seat in Congress as an independent in 1990. Ran for Senate in 2006 elections as an independent with Democratic endorsement and won third term in 2018. Challenged Hillary Clinton for the Democratic nomination in 2016 but lost. Campaign has since been hit by allegations of sexual harassment - for which he has apologized - and criticized for its 'Bernie bro' culture
Family: Born to a Jewish immigrant father and the daughter of Jewish immigrant parents in Brooklyn, New York. First marriage to college sweetheart Deborah Shiling Messing in 1964 ended in divorce in 1966; had son Levi in 1969 with then girlfriend Susan Cambell Mott. Married Jone O'Meara in 1988 and considers her three children, all adults, his own. The couple have seven grandchildren. His older brother Larry is a former Green Party councilor in Oxfordshire, England.
Religion: Secular Jewish
Views on key issues: Openly socialist and standard bearer for the Democratic party's left-turn. Wants federal $15 minimum wage; banks broken up; union membership encouraged; free college tuition; universal health care; re-distributive taxation; he opposed Iraq War and also U.S. leading the fight against ISIS and wants troops largely out of Afghanistan and the Middle East
Would make history as: Oldest person elected president; first Jewish president
Slogan: Not me. Us.
Entered race: July 9, 2019
Career: Currently retired. New York-born to wealthy family, he was educated at elite Phillips Exeter Academy, same as rival Andrew Yang, and Yale, then Stanford Business School. Morgan Stanley and Goldman Sachs banker who founded his own hedge fund in 1986 and made himself a billionaire; investments included subprime lenders, private prisons and coal mines. Stepped down in 2012 to focus on advocating for alternative energy. Longtime Democratic activist and donor who started campaign to impeach Trump in October 2017. Net worth of $1.6 billion has made him one of the Democrats' biggest single donors
Family: Married Kathryn Taylor in 1986; they have four adult children who have been told they will not inherit the bulk of his fortune. Announced last November he and his wife would live apart. Father Roy was a Nuremberg trials prosecutor
Religion: Episcopalian
Views on key issues: On the left of the field despite being a hedge fund tycoon. Backs single-payer health care, minimum wage rises and free public college. Previously spoke in favor of Bernie Sanders' agenda. Aggressive backer of climate change action, including ditching fossil fuels
Would make history as: Richest Democratic president ever
Slogan: Actions Speak Louder Than Words
Entered race: Set up exploratory committee December 31, 2018
Career: Currently Massachusetts senator. Law lecturer and academic who became an expert on bankruptcy law and tenured Harvard professor. Ran for Senate and won in 2012, defeating sitting Republican Scott Brown, held it in 2018 60% to 36%. Was short-listed to be Hillary's running mate and campaigned hard for her in 2016
Family: Twice-married mother of two and grandmother of three. First husband and father of her children was her high-school sweetheart. Second husband Bruce Mann is Harvard law professor. Daughter Amelia Tyagi and son Alex Warren have both been involved in her campaigns. Has controversially claimed Native American roots; DNA test suggested she is as little as 1,064th Native American
Religion: Raised Methodist, now described as Christian with no fixed church
Views on key issues: Was a registered Republican who voted for the party but registered as a Democrat in 1996. Pro: higher taxes on rich; banking regulation; Dream Act path to citizenship for 'dreamers'; abortion and gay rights; campaign finance restrictions; and expansion of public provision of healthcare - although still to spell out exactly how that would happen. Against: U.S. presence in Afghanistan and Syria; liberalization of gambling
Slogan: Warren Has A Plan For That
Entered race: Filed papers November 6, 2018
Career: No current job. Went to public school in New York where he describes being bullied with racial slurs, then elite Phillips Exeter Academy boarding school - same as rival Tom Steyer. Brown and Columbia Law graduate who abandoned career as an attorney then started a dotcom flop then become healthcare and education tech executive who set up nonprofit Venture for America
Family: Married to wife Evelyn with two sons, one of whom he has said is on the autism spectrum. His parents were both immigrants from Taiwan who met at the University of California, Berkeley, as grad students
Religion: Reformed Church
Views on key issues: Warns of rise of robots and artificial intelligence, wants $1,000 a month universal basic income and social media regulated. Spoke out against male circumcision. Wants a state monitor to crack down on 'fake news.'
Would make history as: First Asian-American president
Slogan: Humanity First
AND THOSE WHO HAVE WITHDRAWN
CORY BOOKER, New Jersey Senator
Entered race: February 1, 2019
Quit: January 13, 2020
STEVE BULLOCK, Montana governor
Entered race: May 14, 2019
Quit: December 2, 2019
JULIÁN CASTRO, former Housing Secretary
Entered race: January 18, 2019
Quit: January 2, 2020
KIRSTEN GILLIBRAND, New York senator
Quit: August 28, 2019
BILL DE BLASIO, New York City mayor
Quit: September 20, 2020
MIKE GRAVEL, Former Alaska governor
Entered race: April 2,2019
Quit: August 2, 2019
KAMALA HARRIS,California senator
JOHN HICKENLOOPER, Former Colorado governor
Entered race: March 4, 2019
JAY INSLEE, Washington governor
WAYNE MESSAM, mayor of Miramar, Florida
Entered race: March 28, 2019
Quit: November 20, 2019
SETH MOULTON, Massachusetts congressman
Entered race: April 22,2019
RICHARD OJEDA, former West Virginia state senator
BETO O'ROURKE, former Texas congressman
Quit: November 1, 2019
TIM RYAN, Ohio congressman
Entered race: April 4, 2019
Quit: October 24, 2019
JOE SESTAK, former Pennsylvania congressman
Entered race: June 23, 2019
ERIC SWALWELL, California congressman
Quit: July 8, 2019
MARIANNE WILLSAMSON, author
Elizabeth Warren unveils 'Blue New Deal' to end offshore drilling
No comments have so far been submitted. Why not be the first to send us your thoughts, or debate this issue live on our message boards.


text:
Citizen Effort Launches to Improve LGBTQ Protections in MI
Pentagon Must Show Trans Ban Documents
MN Joins States With Specialized Clinics for Transgender Youth
MT Gathering Celebrates Native Two-Spirit People
New Year: Time to Review Your Meds
WA Bill Would Extend Health Coverage to One Year After Birth
Supreme Court's Citizens United Decision Turns Ten
Ten Years After Citizens United, Dark Money Pours into NV Elections
Capitol Could Go Dark for Boise Pride Festival
The Boise Pride Festival is celebrating its 30th anniversary this year. (Kenneth Freeman/Flickr)
BOISE, Idaho – Boise is set to host one of its biggest pride festivals ever, but the Idaho State Capitol might not be part of the festivities.
After three years of lighting the building with rainbow lights to support the LGBTQ community, Idaho officials say the Capitol building is no longer taking lighting requests for the Boise Pride Festival or any other occasion.
Boise Pride Fest is set to take place June 14 and 15.
Michael Dale, board president of the festival, calls the decision disappointing. He says being part of the LGBTQ community in Idaho is challenging and a darkened Capitol is an unfortunate metaphor.
"When we can't do it, I think it's more significant because our voices go dark," he states. "So, it kind of makes us feel like we're not being recognized and we can't celebrate who we all are."
Boise Pride has a petition on change.org that reached 10,000 signatures last week calling on Capitol officials to reverse their decision.
The Department of Administration points to a message former agency director Robert Geddes sent to festival organizers last year, saying the agency was receiving a high volume of applications and could no longer accept requests.
According to the Idaho Statesman, the agency receives about 10 to 12 requests a year.
Dale says it's going to be a big year for Boise Pride, with organizers expecting 70,000 attendees from across the West.
Last year's event drew 50,000 people.
It's the 30th anniversary in Boise and also the 50th anniversary of the Stonewall riots in New York City, which are often recognized as the beginning of the LGBTQ movement.
Along with saying there is a high volume of requests, the Department of Administration also says if one application for Capitol lighting were approved, the agency would have to approve them all.
Dale takes exception to this, saying it's the agency's job to make decisions like this.
"We think, as elected officials and as the state, they need to make a determination who should do it and who can't do it," he stresses. "You know, that's why we trust them to make those decisions. It hasn't been an issue for areas across the country. For some reason, it's an issue here in Idaho."
Dale says this year also is important because the community continues to advocate for adding the terms "sexual orientation" and "gender identity" to the Idaho Human Rights Act, which would provide housing and employment protections.
Organizers might do a lighting across the street from the Capitol, but Dale says it will cost an additional $5,000 to do this, on top of they would have spent to light the Capitol.
Eric Tegethoff, Public News Service - ID


text:
Dosarele Istoriei a fost o revistă lunară de istorie din România.
Revista a fost lansată în luna august 1996 și a apărut în 127 de numere, până în aprilie 2007 când și-a încetat apariția. Inițial a fost editată de Mircea Suciu și Ion Cristoiu.
Din 2001 și până la încetarea apariției, Mircea Suciu a rămas singurul proprietar, revista aparand sub egida editurii sale, Pro Historia. .

Note

Reviste de istorie din România

redpajama_set_name: RedPajamaWikipedia


text:
Floyd Mayweather, DJ Khaled Settle With SEC In Cryptocurrency ProbeFormer boxing champ Floyd Mayweather Jr. and music producer DJ Khaled have settled with the Securities and Exchange Commission (SEC) for failing to disclose payments they received for promoting investments in cryptocurrency.
Mayweather Dominates McGregor In Late Rounds To Go 50-0Floyd Mayweather Jr. put on a show in the last fight of his spectacular career.
Mayweather, McGregor Get Ready For International Tour To Promote August 26th FightThe fighters will hold four press conferences in four days at various locations that will be open to the public.
Oscar De La Hoya Trolls Mayweather On TwitterBoxing legend Oscar De La Hoya is clearly not a fan of Floyd Mayweather Jr.
Mayweather Defeats Berto By Unanimous Decision In "Last Fight"Floyd Mayweather Jr. wasn't about to change what he does best in his last fight.
Mayweather Insists Next Fight Will Be His LastFloyd Mayweather Jr. insists this is it, though he may be one of only a few who really seem to believe it.
Keidel: Mayweather-Berto Bout Still Clouded By Mayweather-PacquiaoBefore we dissect Mayweather's next opponent any further, which we'll have plenty of time to do over the coming days and weeks, let's muse over his prior opponent.
Mayweather-Pacquiao Lawsuits Sent To California CourtPlaintiffs who say the May 2 Las Vegas fight between Manny Pacquiao and Floyd Mayweather Jr. was a fraud and they deserve their pay-per-view money back will argue their cases in front of a federal judge in California.
Top 5 Wildest Sports Callers Of The Week: August 3rd-August 7thThe Top 5 Sports Callers of the week is a weekly installment from CBS Local Sports that will bring you the wildest callers from across the nation.
Mayweather-Pacquiao Sets Pay-Per-View Record With 4.4M BuysFloyd Mayweather Jr. and Manny Pacquiao proved a box office smash, obliterating the pay-per-view record with 4.4 million buys for their welterweight title fight.
Pacquiao Faces $5M Lawsuit By Fans Over Undisclosed Shoulder InjuryThe so-called "fight of the century" appears to be impacting the sports world well after its conclusion.
Keidel: Pacquiao Should Pack It InPacquiao was no match for Mayweather In this career-defining fight. What will he do next?
Mayweather Jr. Defeats Pacquiao By Unanimous DecisionAs everyone expected, Floyd Mayweather Jr. defends his title by defeating Manny Pacquiao in unanimous decision.
Viewers Stunned By Cable Outages Prior To Pacquiao, Mayweather FightMinutes before the highly-anticipated fight between Manny Pacquiao and Floyd Mayweather Jr. was set to get underway in Las Vegas, viewers were stunned to discover technical difficulties instead.
Attorney: Mayweather May 'Come Riding To The Rescue' Of Jailed 'Suge' KnightThe fight between Manny Pacquiao and Floyd Mayweather Jr., touted as "the fight of the century", may have a degree of impact on the Suge Knight proceedings in LA.
CBSLA Newsletter
Man Charged In Orange County Vaccine Clinic Attack


Are you crazy about Tootsie Pops? Always looking for those new flavors? Well look no further. This 20 count single flavor bag is packed with a new berrylicious flavor, Wild Black Berry! Of course, every delicious pop has that tasty chocolaty Tootsie Roll center. Enjoy the world's #1 selling candy in these exciting new flavors!


text:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta http-equiv="Content-Style-Type" content="text/css" />
  <meta name="generator" content="pandoc" />
  <title>Corona Docs: API > Libraries > Enterprise > canShowPopup</title>
  <meta name="revised" content="17-May-2013" />
  <meta name="description" content="Whether you're new to Corona or want to take your app to the next level, we've got a wealth of resources for you including extensive documentation, API reference, sample code, and videos.  API > Libraries > Enterprise > canShowPopup" />
  <link rel="stylesheet" href="../../../css/style.css" type="text/css" />

SDK APIs

Enterprise APIs

Plugins

Guides

Tutorials

Corona Resources ▹

  <form action="http://www.google.com/cse" id="cse-search-box">
  <input type="hidden" name="cx" value="009283852522218786394:g40gqt2m6rq" />
  <input type="hidden" name="ie" value="UTF-8" />
  <input type="text" name="q" id="q" autocomplete="off" size="40" style="width:150px;float:left" />
  <input type="submit" name="sa" value="Search" style="float:right; font-size: 13px;" />
  </form>

native.canShowPopup()

Overview

Syntax

name (required)

Ξ  ▸  API  ▸  Libraries  ▸  Enterprise  ▸  canShowPopup

native.canShowPopup()

Type
Function

Library
native.*

Return value
Boolean

Revision
Current Public Release (2013.2076)

Keywords
email, sms, text message, store, show popup

Sample code
/CoronaSDK/SampleCode/Networking/ComposeEmailSMS

See also
native.showPopup()

Composing E-mail and SMS (tutorial)

Overview

Returns whether or not the popup type can be shown.

By "can be shown", we usually mean whether the popup will actually be displayed. However, in the case of "appStore" and "rateApp", a result of true does not guarantee that the popup will be displayed because, in those cases, the particular popup will depend on additional parameters.

The predominant use case was for detecting simple popups like "mail" or "sms", so this API is geared to make that case simple.

Syntax

native.canShowPopup( name )

name (required)

String. The string name of the popup to be shown. It can be one of the following: "mail", "sms", "appStore", or "rateApp". There are also additional popup types available via plugins (see native.showPopup()).

© 2013 Corona Labs Inc. All Rights Reserved. (Last updated: 17-May-2013)

Help us help you! Give us feedback on this page:

Love it

Like it, but...

Hate it


text:
Brigg Town 1-0 North Ferriby
North Ferriby tasted defeat for the first time in the league, falling 1-0 to promotion rivals Brigg at a fog draped Hawthorns. It was a second-half penalty converted by former Villager Scott Phillips that was the difference.
It was a cagey start with both sides trying to find a foothold in the game. Both sides tried to keep hold of possession, with Brigg testing the Villagers with balls over the top looking for Batty to run in behind.
Changes were far and few between and it was the Villagers who came closest first when Danny East received the ball on the right side of the penalty area and his effort that was aimed at the closest corner of the goal hit the underside of the bar and Brig cleared the remaining danger.
Brigg started to get a feel for the game and had a couple of chances of their own. A deep cross that looked destined for Scott Phillips fell to Batty who shot and saw his effort saved low by Lewis Exall. Jack Bowskin came close with a long-range effort that hit the side netting. The chance came about from good Brigg play which allowed Bowskin to have space.
Josh Whiteley went close when he saw himself one on one with the Brigg goalkeeper. Whiteley's shot was saved by the goalkeepers legs and the ball ran away without any further danger.
The second half remained a scrappy affair with neither side really taking full advantage of the contest.
The main talking point and turning point of the game came when Ferriby skipper Niall Tilsley fouled a Brigg attacker in the area. The referee awarded a penalty and up stepped former Villager Scott Phillips. Phillips calmly placed his spot-kick to the right of Exall, where the Ferriby stopper dived to his left.
Ferriby looked to get back into the game and brought on new signing Rich Medcalf, who joined the club from Hall Road just in time to make his debut. Danny Emerton was fouled in the area from behind but the referee kept his whistle in his hand and did not adjudge there was enough contact. Niall Tilsley came close with a header and a couple of other chances fell the Villagers way but nothing that really tested the Brigg goalkeeper.
Chris Bolder summed up his thoughts, "The lads have been fantastic all season, credit to each and every one of them. To go 21 games unbeaten in any league is a great achievement. This is our first setback but if you'd have asked me at the start of the season that it would be game 22 in the league that you taste your first defeat, I'd have snatched your hands off at that moment in time".
Bolder went on the say, "it was a real scrappy game with limited quality all over. We had enough chances to get something out of the game most certainly but I don't think we did enough during the game to win it".
North Ferriby: 1. Exall 2. Dennett 3. Leyland 4. Tarbotton 5. Tilsley 6. Forrester (14. Jowett) 7. Emerton 8. Kirk 9. Whiteley (16. Medcalf) 10. East 11. Corner (12.Buttle)
Subs not used: 13. Douglas 17. Plummer
Report kindly provided by North Ferriby.