text:
10 Things You Didn't Know About Ethan Plath
Dana Hanson-Firestone 3 years ago
Ethan Plath is the eldest son of Kim and Barry Plath, stars of the new reality television series "Welcome to Plathville." The couple has gone a bit off the grid and they moved their family to a 55-acre farm that is 10 miles from the nearest town. Ethan is the oldest and we're just beginning to get to know him on the series, but there is a lot more than fans are curious about. Although he's new to reality television, he does have an interesting story, so here are 10 things you might or might not know about Ethan Plath.
1. He's a fantastic musician
Ethan joins his family as a member of the Plath Family Band. They are a talented group of musicians who travel occasionally performing their folk-style gospel music. Ethan plays the accordion and he also plays the piano. He also sings Johnny Cash gospel songs with the group.
2. He was recently married
Ethan Plath is 20 years old and he's a been married for just over a year. He married his wife Olivia in October of 2018. The couple is just beginning their new life together, but they do have a lot of adjustments to make. They have been raised in very different environments. Ethan will need to adjust to a different lifestyle, but so will Olivia. It is going to be interesting to watch their new life together unfold on the show.
3. Ethan's mother disapproves of his wife's lifestyle
It's been reported that Ethan's mother Kim Plath has not been pleased about the lifestyle that her new daughter-in-law lives. Ethan was raised in a family that does not believe in consuming foods and beverages that contain sugar. Olivia grew up like the majority of the population drinking sodas and eating sweet snacks and desserts and she sees nothing wrong with that.
4. Ethan is is a tough position with his mother
The friction between Ethan's wife Olivia and his mother Kim is a source of drama on the show. It's also a tough situation that Ethan will have to deal with as neither woman shows any sign of changing their beliefs or their lifestyle. It's one of those situations where people come from different backgrounds and belief systems so conflicts are going to arise, and Ethan is caught in the middle of this one.
5. Married life agrees with Ethan
So far, young Ethan Plath has proclaimed that is is very happy with his marriage. The couple has been happily wed for over a year now, and despite disagreements between his wife and mother, he has stated that this is the happiest time in his entire life. He went against his mother's advice in marrying Olivia and from what he has shared, it was a decision that he has not regretted for a moment.
6. Ethan has more freedom than ever
Ethan discussed the ways that his life has changed since he married his wife Olivia. His life as an adult has changed dramatically. He is now a married man with his own family and as such he has a new sense of freedom. This is something that he has never known growing up with his parents in charge.
7. His new lifestyle goes against his parents' values
Ethan has tried Coca-cola for the first time and this is something that hasn't gone over very well with his folks. They blame Olivia for this, but really, it's just Ethan doing the things that he wants to do and exploring a world that he was never allowed to venture into. Although they're not happy about it, it is, after all, his life and he can live it however he wants. He is enjoying his life with Olivia as she teaches him about the things that most people consider to be innocent enough, that he's never had the freedom to experience.
8. He may be forced to make a choice
It will be interesting to see how things unfold between Ethan and Olivia and the rest of the family. Since they are living under the same roof with Kim and Barry, the house rules are those that the parents make. However, since Ethan is an adult he can choose whether or not to indulge in a sweet treat now and then. We'll have to stay tuned in to find out if the newly married couple can iron out the differences between them and Ethan's parents and if Olivia can adapt to the new lifestyle that Kim insists upon. Will it come down to Ethan being forced to make a choice? Only time will tell.
9. Ethan didn't go to public school
Ethan and the rest of his siblings were all homeschooled. They didn't go to public school, or even a private school for that matter. They do not know what it is to interact in this type of social setting. Although they didn't spend all of their time at home. The music they perform has taken the family out on tours to different places where they've met new people in their travels. Through Olivia, Ethan is learning how to make new friends and he is enjoying it very much.
10. Ethan wasn't allowed to watch television
Another modern form of entertainment that most kids take to extremes is watching television or going to movies. Neither Ethan nor his siblings were allowed to do this. They didn't grow up watching their favorite programs on television because their parents didn't believe that it was a healthy thing to do. This is yet one more thing about the modern world that Ethan is learning about through his wife Olivia. Being with her has opened up a whole new world for him as though he is seeing it for the first time, and she is his guide as he navigates through it.
Tamar Braxton Shaves Head Completely Bald On Instagram
Tom Foster March 17, 2018
10 Fun Facts You Didn't Know about Candis Cayne
Five Actors Who Should Play Adam Neumann in a Lifetime Movie
Lily Wordsmith October 30, 2019
10 Things You didn't Know about Keyshia Ka'oir
Aiden Mason August 13, 2018
Can Jason Todd Really Have His Own Solo Series?
David Martinez July 14, 2021
20 Things You Didn't Know About Diana Ross
Liz Flynn May 19, 2019
Five Things You Didn't Know about Iain de Caestecker
Aiden Mason January 9, 2018
10 Things You Didn't Know About Christopher Larkin
Jennifer Borama May 26, 2020
10 Things You Didn't Know about Rotimi Akinosho
Jennifer Borama January 27, 2020
10 Things You Didn't Know about Rupali Ganguly
Tiffany Raiford March 22, 2021
10 Things You Didn't Know about Genevieve Gorder
Five Things You Didn't Know about Lisa Hanawalt
Aiden Mason October 5, 2017
10 Things You Didn't Know About Rudi Gutierrez
Jennifer Borama April 30, 2020
Five Things You Didn't Know About Leslie Grossman
Rick Wallace October 4, 2017
Appreciating the Amazing Career of John Witherspoon
Liz Flynn November 3, 2019
Five Things You Didn't Know About Betty Gabriel
10 Things You Didn't Know about Hannah Herzsprung
10 Things You Didn't Know about Imogen Waterhouse
Camille Moore October 22, 2020
Five Things You Didn't Know About Jason Mewes
Unicron vs. Arishem: Who Wins?
10 Things You Didn't Know about Melissa Joan Hart
10 Things You Didn't Know about FlightReacts
Tiffany Raiford September 18, 2020
Cannes Will Provide 1,000 Free Festival Badges for Young-Adult Cinephiles
Rick Wallace April 16, 2018
Interesting Jim Carrey Documentary Talks Vulnerability and Art
Dana Hanson-Firestone
Dana Hanson-Firestone has extensive professional writing experience including technical and report writing, informational articles, persuasive articles, contrast and comparison, grant applications, and advertisement. She also enjoys creative writing, content writing on nearly any topic, because as a lifelong learner, she loves research. She holds academic degrees which are: AA social Science BA English MEd Adult Ed & Community & Human Resource Development and ABD in PhD studies in Indust & Org Psychology. Her favorite topics are psychology, sociology, anthropology, history and religion.
General Hospital: Ava is In A Lot of Trouble
Is it Time For Destiny 2 to Switch Things Up With Xur?
Bold and the Beautiful Brooke Week: When Brooke Met Ridge
Five Things We Learned from the South Park Season 21 Premiere
5 Must-Stream Movies to Watch on Shudder in May 2022


7:17 a.m. - Alarm goes off. Mikey and Big Bob on 96.1 FM are in the middle of either "Redneck Roadkill" or "Hot Mom Check In."
7:19 a.m. - Turn on SportsCenter to check in on my Black and Gold.
7:25 a.m. - Grab some Count Chocula to start the day off right.
7:59 a.m. - Finish watching SportsCenter. Head to the gym.
9 a.m. - Finish up at the gym and head back home for a shower.
9:45 a.m. - Arrive at school. Check in with Hotmail, Gmail, Myspace, ESPN, and Pittsburgh Post Gazette.
10 a.m. - Fill up the task bar with Microsoft applications and get to work.
11:30 a.m. - Break for lunch: half price at Hemingway's until 11:45 a.m. Get there early. Grilled Cheese is not a bad option.
12:10 p.m. - Back from lunch. Check in with Hotmail, Gmail, Myspace, ESPN, and Pittsburgh Post Gazette. Just because you're confined indoors doesn't mean the world stops around you. There is still a lot going on.
4 p.m. - This is a Friday in the life, a day with certain special exceptions. The two obvious choices for happy hour at this point would be Hemingway's for $1 Miller Lites or Mad Mex for a $5 Big Azz Margarita—peach or raspberry would be my two personal choices. (Warning: Three margaritas and daylight do not mix well).
7 p.m. - Happy hour ends. Go home and power-nap before heading out for a Friday night on the town.
9:30 p.m. - Some personal favorites: Cappyoke, where you can be a rock star in your world for one evening, or hitting up Jack's in the South Side. On a Friday night, you can't go wrong.
2 a.m. - You don't have to go home, but you gotta get out of here—well, at least that's what they are gonna tell you at the bar. Going home isnot an option. Hungry. Why wait? I like Village Pizza in Shadyside (good and greasy) or the best late-night food in Pittsburgh, Ritter's. My suggestion would be to check out the chili-cheese omelet. Just to be safe, order an extra side of chili. Sometimes they get a little skimpy.
We love our sports teams. We might get down on them every once in a while, but the locals, including myself, bleed black and gold.
Pittsburghese. "Yinz goin' dahntahn to watch da Pengins and grab a cold Irn?" Spell-check that.
Pittsburgh has over 700 bridges.
KDKA radio was the first commercial radio station in the world.
The first World Series was played in Pittsburgh in 1903.
Mister Rogers was from Oakland.
The Big Mac and the banana split were invented in Pittsburgh.
Andy Warhol was a native son.
The city is 1,223 feet above sea level.
Follow a few Pitt grad students through a typical day in Pittsburgh, and see what they've got to say about the city in their own words.


text:
ABC's Andy Field - May 14, 2021 - KRDO's Afternoon News
Lawmakers have announced that after months of stalled negotiations they have reached an agreement on a 9/11-style commission to investigate the Jan. 6 attack on the Capitol. A vote on the commission bill is expected on the House floor next week, but the timing for a vote in the Senate is still unclear. The announcement of an agreement comes after months of intense negotiations between Republicans and Democrats on the size and scope of the commission -- and after a week of a number of Republican lawmakers casting doubt on what they themselves witnessed at the Capitol just four months ago. The agreed-upon commission would include 10 members with significant expertise in the areas of law enforcement, civil rights, civil liberties, privacy, intelligence and cybersecurity. Current government officers or employees would be prohibited from appointment, according to the bipartisan duo, and each party would select five members to be on the commission.

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: How to determine which database table columns need to be updated from modified struct? The problem that I am facing is more of a code design rather than specifically go related. I am building a simple CRUD application and everything seems to go nice and easy except the updating part: I have a struct type as simple as:
type User struct {
   ID string
   Name string
   Password string
}

and an interface for data storage layer:
type Store interface {
    ...
    Update(user *User) error
    ...
}

The problem is that with most database drivers you can't just pass the whole struct instance and hope the their system knows which fields were modified, the whole document/row gets replaced. How should I track which fields were modified (so that I could update them in the storage layer accordingly)? Maybe pass all the fields I would like to modify to the Update function as a map of interface{}?

A: There are plenty of ways to achieve that. For example you can use setters to change the values.So you can keep track of updated fields.
like so :
type User struct {
   ID string
   Name string
   Password string
   updateFields map[string]bool
}

func (u *User) SetName(name string) {
   u.Name = name
   updateFields["name"] = true
}

You can use more automated way by reflection.

redpajama_set_name: RedPajamaStackExchange


text:
The American GI Forum (AGIF) of the U.S. is a patriotic national veteran family organization founded on March 26, 1948 in Corpus Christi, Texas by a group of WWII Hispanic Veterans, led by Dr. Hector Perez Garcia. Congress chartered the AGIF in 1998 on the 50th anniversary of the organization.
Over a half-million Hispanics served in World War II, Korea and Vietnam. They served their country with honor and distinction and achieved the highest number of Congressional Medial of Honor than any other ethnic minority.
More than Two Hundred and Fifty Thousand lost their lives or were wounded in battle in WWII and Korea. Many more served in Vietnam and many of our young men continued to serve in Bosnia, Panama, Granada, Desert Storm, and now our young women joined our men in Afghanistan and Iraq. Hispanics in America hold a distinguished and proud War record.
Following WWII, in spite of the protected legislation that had been passed by our government guaranteeing all veterans certain rights and privileges, the returning Mexican-American Veterans were being subjected to certain discriminatory practices in the areas of Education, Employment, Health care and Housing.
Dr. Garcia's dynamic leadership incited these Americans to action and they were successful in correcting some discriminatory practices in the Corpus Christi area.
As a result Chapters were formed and it was only a matter of time before the organization spread into New Mexico, where another leader, Vicente T. Ximenez joined the organization and set up the mechanics of the organization. Both he and Dr. Garcia gained National prominence for the American GI Forum.
Dr. Garcia was appointed by the late President John F. Kennedy to the delegation, which formulated a treaty with the West Indies. He was frequently consulted by high government officials in matters dealing with the Hispanic population. He was then appointed as ambassador to the United Nations, the highest position to ever held by a Mexican-American to that point. He was the first U.S. Citizen to give a speech in Spanish in the history of the United Nations.
He received the Medal of Freedom from President Ronald Reagan, the highest honor that a civilian can receive from his country. He was also honored by Spain and Mexico with their highest awards for civilians. Dr. Hector P. Garcia remained active in the American GI Forum until his death in 1996.
FELIX LONGORIA AFFAIR
The controversy surrounding the burial of Felix Longoria provided a successful case for the American G. I. Forum in fighting discrimination with political pressure.
In 1948 the remains of Private Felix Longoria of Three Rivers, Texas, were recovered from the Philippines, where he had been killed on a volunteer mission during the last days of World War II. His body was shipped home for burial at the Three Rivers cemetery, where a fence separated the "Mexican" section.
The funeral home would not allow the use of the chapel because of alleged disturbances at previous Mexican-American services and "the whites would not like it." Longoria's widow and her sister discussed the refusal with Dr. Garcia, and he, in turn, contacted the funeral director and received the same refusal and rationale.
On January 11, 1949, Garcia called a meeting of the Corpus Christi Forum, which he had organized as the first G. I. Forum chapter in March 1948; he also sent many telegrams and letters to Texas congressmen.
Senator Lyndon B. Johnson responded immediately with support which resulted with the burial being held in Washington D.C. The funeral took place on February 16, 1949, at the Arlington National Cemetery. In attendance were the Longoria family, Senator and Lady Bird Johnson and a Military VIP representing President Truman.
After the funeral, the Texas House of Representatives authorized a five-member committee to investigate the Longoria incident. The committee held open hearings at the Three Rivers Chamber of Commerce and, after recriminations and exculpatory arguments, concluded that there had been no discrimination on the part of the funeral director and that he had acted in anger but had apologized.
Four of the committeemen signed the report. Frank Oltorf, the fifth member, stated that the funeral director's words "appear to be discriminatory." Another member withdrew his name from the majority report and filed his own account, which stated that the actions of the director were on "the fine line of discrimination."
The report was never filed. The Felix Longoria Affair provided Mexican Americans an example to unify and expand their struggle for equality in the coming decades.
Felix Longoria Affair from: Carl Allsup, The American GI Forum: Origins and Evolution (University of Texas Center for Mexican American Studies Monograph 6, Austin, 1982).
At war or at peace at home and afar great progress is being made by Hispanics in many fields. Let us continue this pattern of success, taking action in areas that need improvement: You can become a member in your area, or you can become a Texas member-at-large if there isn't a chapter near your area.
American GI Forum of Texas Inc.
8833 Capitol View Drive
www.agiftx.com
AGIF National Office
635 W, Corona Anenue, Suite 114
Pueblo, CO 81004
www.agifusa.org
Join the American GI Forum
Go to www.agiftx.org and under membership tab:
Print and Mail the Application to Us
Join at a Local Chapter
Join as Life Member
In 1998, the United States Congress approved the charter of The American GI Forum (AGIF) as a Family Veterans' Organization. You may become a member if you served in the military and want to help our veterans and their families. If you are not a veteran you may join our unique group of non-veterans, ready to assist those that served with the privileges and benefits earned by serving as a non-veteran.
The American GI Forum is proud to have non-vets as members. Our Charter allows 25 percent non-veterans as members. Our backgrounds may be different, but we are joined by a common cause, we who served and continue to help our young men and women returning from war-zones and those who were not able to serve but are willing to share their time helping our veterans and their families with the same devotion that comes from serving our country and by sharing experiences that are uniquely ours with others.
As more veterans return home from the War-zones, they will need medical help now or later. With our programs and members we are prepared to:
Render assistance, with our NVOP, in preparing VA claims and getting accurate information concerning financial benefits.
Provide job training, placement and jobs through our NVOP VETS and Weatherization programs.
Use NVOP staff to assist in obtaining full medical, educational, and insurance benefits from the Department of Veterans Affairs, the State of Texas Workforce Commission and the Texas Veterans Land Board.
Assist homeless veterans with shelter, transitional housing and job placement while securing their benefits and provide help to the homeless with the annual American GI Forum National Veterans Outreach Stand-Down.
Provide representation for all veterans in Congress through our friends and chapter in Washington, D.C. and in Texas through our State Office in Austin.
We advocate and fight for legislation that protects the benefits of all veterans and their families. For assistance visit or call:
National Veterans Outreach Program, Inc.
611 N. Flores, Suite 200
(210) 223 – 4088 Office
(210) 223 – 4970 Fax
http://www.agif-nvop.org/
Membership Eligibility & Requirements
If you are on active duty today, serving honorably, anywhere in the world, or have served honorably for 181 days, become a member of The American GI Forum.
We represent veterans just like you, nearly 1.5 million strong, who care about America, veterans and their families and our nation's youth. The American GI Forum is a powerful voice in Washington. Dedicated to preserving the rights we've all earned - And were promised - By service to our nation in uniform.
We invite you to join us now. Membership brings an impressive array of benefits. The American GI Forum is always there for you and your family - In Washington and nearly 400 local Chapters throughout America and Puerto Rico. Just like you, we're "Still Serving America!"
Additional Information on Membership can be obtained by contacting our State Office in Austin.
Served in a military branch for at least 181 days.
Non-veterans may join if recommended by a veteran and are of good character, willing to work for veterans' issues and are over 18 years of age.
Women may join the Women of the American GI Forum Chapters. Must be at least 18 years of age.
Young boys and girls between the ages of 12 to 18 years of age may join the Youth Chapters.
Download the Membership Application
(requires Adobe Reader 7+)


Find out more information about Oregon University System (OUS) classification specification, including class title, class number and salary range.
Bargaining contracts for staff and graduate assistants, summary of changes SEIU collective bargaining agreement and SEIU economic highlights.
Classified compensation plan, information technology rates, conversion table, temporary staff plan and student compensation plan.
We are reviewing and updating OSU's Professional Faculty compensation program. We will assess our existing compensation philosophy/practices, leverage current industry best practices and market data, and clarify our procedures.
Tools and resources to assist in classification and compensation processes and administration, including organizational charts, managing pay within a salary grade and more.


text:
Hero in Ohio kidnap case not endorsing free burgers
05/24/2013 // West Palm Beach , Florida, US // JusticeNewsFlash // Justice News Flash // (press release)
New York – Charles Ramsey, who helped rescue three women from a house in Cleveland after they had been missing for several years after being kidnapped as teens, released a statement this week saying he is not endorsing the restaurants that have offered him free burgers. As reported by the Associated Press (AP), Ramsey, who was offered free burgers for life by the restaurants, and also had a burger named in his honor, stated through his attorney Friday, "I never told these people they could use my name for this."
The free food offers were made following Ramsey's noting in a televised interview that prior to the rescue he had been eating at McDonald's.
Scott Kuhn of the Driftwood Restaurant Group is quoted by the AP as stating in response to Ramsey's request that his name not be used in endorsing the burger named in his honor, "We are saddened to hear that Chuck did not take this — or the offer of so many Cleveland restaurants to give him free meals — in the spirit we intended."
Justice News Flash delivers the latest in New York legal news.
Url: http://justicenews.visionsmartnews.com/hero-in-ohio-kidnap-case-not-endorsing-free-burgers_9378.html
Tags: Charles RamseyDriftwood Restaurant Groupfree burgersjustice newskidnappedNew York legal news


In this example the Obsolete attribute is applied to class A and to method B.OldMethod. Because the second argument of the attribute constructor applied to B.OldMethod is set to true, this method will cause a compiler error, whereas using class A will just produce a warning. Calling B.NewMethod, however, produces no warning or error.
Two warnings for class A are generated: one for the declaration of the class reference, and one for the class constructor.
The Obsolete attribute can be used without arguments, but including an explanation of why the item is obsolete and what to use instead is recommended.
The Obsolete attribute is a single-use attribute and can be applied to any entity that allows attributes. Obsolete is an alias for ObsoleteAttribute.


To Andrew and the team, just wanted to say thank you for the great job you did. Our blinds look wonderful and installation was prompt. We were so impressed with the service from the very start to the final installation. Well done and keep it up!
Your screens are so awesome. Since I have had them up I haven't needed to use my air conditioning once. The house is just so cool and comfortable – and the privacy! Finally I can have my windows and blinds open. I should have had these installed a year ago. Fantastic.


text:
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.chrome.browser.preferences.privacy;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.support.annotation.Nullable;
import android.widget.ListView;

import org.chromium.base.VisibleForTesting;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeFeatureList;
import org.chromium.chrome.browser.browsing_data.BrowsingDataType;
import org.chromium.chrome.browser.browsing_data.TimePeriod;
import org.chromium.chrome.browser.help.HelpAndFeedback;
import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
import org.chromium.chrome.browser.preferences.ButtonPreference;
import org.chromium.chrome.browser.preferences.ClearBrowsingDataCheckBoxPreference;
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.preferences.SpinnerPreference;
import org.chromium.chrome.browser.preferences.TextMessageWithLinkAndIconPreference;
import org.chromium.chrome.browser.preferences.privacy.BrowsingDataCounterBridge.BrowsingDataCounterCallback;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
import org.chromium.chrome.browser.tabmodel.document.TabDelegate;
import org.chromium.components.signin.ChromeSigninController;

import java.util.Arrays;
import java.util.EnumSet;

/**
 * Preference screen that allows the user to clear browsing data.
 * The user can choose which types of data to clear (history, cookies, etc), and the time range
 * from which to clear data.
 */
public class ClearBrowsingDataPreferences extends PreferenceFragment
        implements PrefServiceBridge.ImportantSitesCallback,
                   PrefServiceBridge.OnClearBrowsingDataListener,
                   PrefServiceBridge.OtherFormsOfBrowsingHistoryListener,
                   Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener {
    /**
     * Represents a single item in the dialog.
     */
    private static class Item implements BrowsingDataCounterCallback,
                                         Preference.OnPreferenceClickListener {
        private final ClearBrowsingDataPreferences mParent;
        private final DialogOption mOption;
        private final ClearBrowsingDataCheckBoxPreference mCheckbox;
        private BrowsingDataCounterBridge mCounter;
        private boolean mShouldAnnounceCounterResult;

        public Item(ClearBrowsingDataPreferences parent,
                    DialogOption option,
                    ClearBrowsingDataCheckBoxPreference checkbox,
                    boolean selected,
                    boolean enabled) {
            super();
            mParent = parent;
            mOption = option;
            mCheckbox = checkbox;
            mCounter = new BrowsingDataCounterBridge(this, mOption.getDataType());

            mCheckbox.setOnPreferenceClickListener(this);
            mCheckbox.setEnabled(enabled);
            mCheckbox.setChecked(selected);
            mCheckbox.setSummaryOff("");  // No summary when unchecked.
        }

        public void destroy() {
            mCounter.destroy();
        }

        public DialogOption getOption() {
            return mOption;
        }

        public boolean isSelected() {
            return mCheckbox.isChecked();
        }

        @Override
        public boolean onPreferenceClick(Preference preference) {
            assert mCheckbox == preference;

            mParent.updateButtonState();
            mShouldAnnounceCounterResult = true;
            PrefServiceBridge.getInstance().setBrowsingDataDeletionPreference(
                    mOption.getDataType(), mCheckbox.isChecked());
            return true;
        }

        @Override
        public void onCounterFinished(String result) {
            mCheckbox.setSummaryOn(result);
            if (mShouldAnnounceCounterResult) {
                mCheckbox.announceForAccessibility(result);
            }
        }

        /**
         * Sets whether the BrowsingDataCounter result should be announced. This is when the counter
         * recalculation was caused by a checkbox state change (as opposed to fragment
         * initialization or time period change).
         */
        public void setShouldAnnounceCounterResult(boolean value) {
            mShouldAnnounceCounterResult = value;
        }
    }

    private static final String PREF_HISTORY = "clear_history_checkbox";
    private static final String PREF_COOKIES = "clear_cookies_checkbox";
    private static final String PREF_CACHE = "clear_cache_checkbox";
    private static final String PREF_PASSWORDS = "clear_passwords_checkbox";
    private static final String PREF_FORM_DATA = "clear_form_data_checkbox";

    @VisibleForTesting
    public static final String PREF_GOOGLE_SUMMARY = "google_summary";
    @VisibleForTesting
    public static final String PREF_GENERAL_SUMMARY = "general_summary";
    private static final String PREF_TIME_RANGE = "time_period_spinner";

    /** The "Clear" button preference. */
    @VisibleForTesting
    public static final String PREF_CLEAR_BUTTON = "clear_button";

    /** The tag used for logging. */
    public static final String TAG = "ClearBrowsingDataPreferences";

    /** The histogram for the dialog about other forms of browsing history. */
    private static final String DIALOG_HISTOGRAM =
            "History.ClearBrowsingData.ShownHistoryNoticeAfterClearing";

    /** The web history URL. */
    private static final String WEB_HISTORY_URL =
            "https://history.google.com/history/?utm_source=chrome_cbd";

    /**
     * Used for the onActivityResult pattern. The value is arbitrary, just to distinguish from other
     * activities that we might be using onActivityResult with as well.
     */
    private static final int IMPORTANT_SITES_DIALOG_CODE = 1;

    private static final int IMPORTANT_SITES_PERCENTAGE_BUCKET_COUNT = 20;

    /**
     * The various data types that can be cleared via this screen.
     */
    public enum DialogOption {
        CLEAR_HISTORY(BrowsingDataType.HISTORY, PREF_HISTORY),
        CLEAR_COOKIES_AND_SITE_DATA(BrowsingDataType.COOKIES, PREF_COOKIES),
        CLEAR_CACHE(BrowsingDataType.CACHE, PREF_CACHE),
        CLEAR_PASSWORDS(BrowsingDataType.PASSWORDS, PREF_PASSWORDS),
        CLEAR_FORM_DATA(BrowsingDataType.FORM_DATA, PREF_FORM_DATA);

        private final int mDataType;
        private final String mPreferenceKey;

        private DialogOption(int dataType, String preferenceKey) {
            mDataType = dataType;
            mPreferenceKey = preferenceKey;
        }

        public int getDataType() {
            return mDataType;
        }

        /**
         * @return String The key of the corresponding preference.
         */
        public String getPreferenceKey() {
            return mPreferenceKey;
        }
    }

    /**
     * An option to be shown in the time period spiner.
     */
    private static class TimePeriodSpinnerOption {
        private int mTimePeriod;
        private String mTitle;

        /**
         * Constructs this time period spinner option.
         * @param timePeriod The time period represented as an int from the shared enum
         *     {@link TimePeriod}.
         * @param title The text that will be used to represent this item in the spinner.
         */
        public TimePeriodSpinnerOption(int timePeriod, String title) {
            mTimePeriod = timePeriod;
            mTitle = title;
        }

        /**
         * @return The time period represented as an int from the shared enum {@link TimePeriod}
         */
        public int getTimePeriod() {
            return mTimePeriod;
        }

        @Override
        public String toString() {
            return mTitle;
        }
    }

    private OtherFormsOfHistoryDialogFragment mDialogAboutOtherFormsOfBrowsingHistory;
    private boolean mIsDialogAboutOtherFormsOfBrowsingHistoryEnabled;

    private ProgressDialog mProgressDialog;
    private Item[] mItems;

    // This is a constant on the C++ side.
    private int mMaxImportantSites;
    // This is the sorted list of important registerable domains. If null, then we haven't finished
    // fetching them yet.
    private String[] mSortedImportantDomains;
    // These are the reasons the above domains were chosen as important.
    private int[] mSortedImportantDomainReasons;
    // These are full url examples of the domains above. We use them for favicons.
    private String[] mSortedExampleOrigins;
    // This is the dialog we show to the user that lets them 'uncheck' (or exclude) the above
    // important domains from being cleared.
    private ConfirmImportantSitesDialogFragment mConfirmImportantSitesDialog;

    private final EnumSet<DialogOption> getSelectedOptions() {
        EnumSet<DialogOption> selected = EnumSet.noneOf(DialogOption.class);
        for (Item item : mItems) {
            if (item.isSelected()) selected.add(item.getOption());
        }
        return selected;
    }

    /**
     * Requests the browsing data corresponding to the given dialog options to be deleted.
     * @param options The dialog options whose corresponding data should be deleted.
     */
    private final void clearBrowsingData(EnumSet<DialogOption> options,
            @Nullable String[] blacklistedDomains, @Nullable int[] blacklistedDomainReasons,
            @Nullable String[] ignoredDomains, @Nullable int[] ignoredDomainReasons) {
        showProgressDialog();

        int[] dataTypes = new int[options.size()];
        int i = 0;
        for (DialogOption option : options) {
            dataTypes[i] = option.getDataType();
            ++i;
        }

        Object spinnerSelection =
                ((SpinnerPreference) findPreference(PREF_TIME_RANGE)).getSelectedOption();
        int timePeriod = ((TimePeriodSpinnerOption) spinnerSelection).getTimePeriod();
        if (blacklistedDomains != null && blacklistedDomains.length != 0) {
            PrefServiceBridge.getInstance().clearBrowsingDataExcludingDomains(this, dataTypes,
                    timePeriod, blacklistedDomains, blacklistedDomainReasons, ignoredDomains,
                    ignoredDomainReasons);
        } else {
            PrefServiceBridge.getInstance().clearBrowsingData(this, dataTypes, timePeriod);
        }
    }

    private void dismissProgressDialog() {
        if (mProgressDialog != null && mProgressDialog.isShowing()) {
            mProgressDialog.dismiss();
        }
        mProgressDialog = null;
    }

    /**
     * Returns the Array of dialog options. Options are displayed in the same
     * order as they appear in the array.
     */
    private DialogOption[] getDialogOptions() {
        return new DialogOption[] {
                DialogOption.CLEAR_HISTORY,
                DialogOption.CLEAR_COOKIES_AND_SITE_DATA,
                DialogOption.CLEAR_CACHE,
                DialogOption.CLEAR_PASSWORDS,
                DialogOption.CLEAR_FORM_DATA
        };
    }

    /**
     * Returns the Array of time periods. Options are displayed in the same order as they appear
     * in the array.
     */
    private TimePeriodSpinnerOption[] getTimePeriodSpinnerOptions() {
        Activity activity = getActivity();

        TimePeriodSpinnerOption[] options = new TimePeriodSpinnerOption[] {
                new TimePeriodSpinnerOption(TimePeriod.LAST_HOUR,
                        activity.getString(R.string.clear_browsing_data_period_hour)),
                new TimePeriodSpinnerOption(TimePeriod.LAST_DAY,
                        activity.getString(R.string.clear_browsing_data_period_day)),
                new TimePeriodSpinnerOption(TimePeriod.LAST_WEEK,
                        activity.getString(R.string.clear_browsing_data_period_week)),
                new TimePeriodSpinnerOption(TimePeriod.FOUR_WEEKS,
                        activity.getString(R.string.clear_browsing_data_period_four_weeks)),
                new TimePeriodSpinnerOption(TimePeriod.ALL_TIME,
                        activity.getString(R.string.clear_browsing_data_period_everything))};

        return options;
    }

    /**
     * Decides whether a given dialog option should be selected when the dialog is initialized.
     * @param option The option in question.
     * @return boolean Whether the given option should be preselected.
     */
    private boolean isOptionSelectedByDefault(DialogOption option) {
        return PrefServiceBridge.getInstance().getBrowsingDataDeletionPreference(
                option.getDataType());
    }

    /**
     * Called when clearing browsing data completes.
     * Implements the ChromePreferences.OnClearBrowsingDataListener interface.
     */
    @Override
    public void onBrowsingDataCleared() {
        if (getActivity() == null) return;

        // If the user deleted their browsing history, the dialog about other forms of history
        // is enabled, and it has never been shown before, show it. Note that opening a new
        // DialogFragment is only possible if the Activity is visible.
        //
        // If conditions to show the dialog about other forms of history are not met, just close
        // this preference screen.
        if (MultiWindowUtils.isActivityVisible(getActivity())
                && getSelectedOptions().contains(DialogOption.CLEAR_HISTORY)
                && mIsDialogAboutOtherFormsOfBrowsingHistoryEnabled
                && !OtherFormsOfHistoryDialogFragment.wasDialogShown(getActivity())) {
            mDialogAboutOtherFormsOfBrowsingHistory = new OtherFormsOfHistoryDialogFragment();
            mDialogAboutOtherFormsOfBrowsingHistory.show(getActivity());
            dismissProgressDialog();
            RecordHistogram.recordBooleanHistogram(DIALOG_HISTOGRAM, true);
        } else {
            dismissProgressDialog();
            getActivity().finish();
            RecordHistogram.recordBooleanHistogram(DIALOG_HISTOGRAM, false);
        }
    }

    /**
     * Returns if we should show the important sites dialog. We check to see if
     *

     *
We've fetched the important sites,
     *
there are important sites,
     *
the feature is enabled, and
     *
we have cache or cookies selected.
     *

     */
    private boolean shouldShowImportantSitesDialog() {
        if (!ChromeFeatureList.isEnabled(ChromeFeatureList.IMPORTANT_SITES_IN_CBD)) return false;
        EnumSet<DialogOption> selectedOptions = getSelectedOptions();
        if (!selectedOptions.contains(DialogOption.CLEAR_CACHE)
                && !selectedOptions.contains(DialogOption.CLEAR_COOKIES_AND_SITE_DATA)) {
            return false;
        }
        boolean haveImportantSites =
                mSortedImportantDomains != null && mSortedImportantDomains.length != 0;
        RecordHistogram.recordBooleanHistogram(
                "History.ClearBrowsingData.ImportantDialogShown", haveImportantSites);
        return haveImportantSites;
    }

    @Override
    public boolean onPreferenceClick(Preference preference) {
        if (preference.getKey().equals(PREF_CLEAR_BUTTON)) {
            if (shouldShowImportantSitesDialog()) {
                showImportantDialogThenClear();
                return true;
            }
            // If sites haven't been fetched, just clear the browsing data regularly rather than
            // waiting to show the important sites dialog.
            clearBrowsingData(getSelectedOptions(), null, null, null, null);
            return true;
        }
        return false;
    }

    @Override
    public boolean onPreferenceChange(Preference preference, Object value) {
        if (preference.getKey().equals(PREF_TIME_RANGE)) {
            // Inform the items that a recalculation is going to happen as a result of the time
            // period change.
            for (Item item : mItems) {
                item.setShouldAnnounceCounterResult(false);
            }

            PrefServiceBridge.getInstance().setBrowsingDataDeletionTimePeriod(
                    ((TimePeriodSpinnerOption) value).getTimePeriod());
            return true;
        }
        return false;
    }

    /**
     * Disable the "Clear" button if none of the options are selected. Otherwise, enable it.
     */
    private void updateButtonState() {
        ButtonPreference clearButton = (ButtonPreference) findPreference(PREF_CLEAR_BUTTON);
        if (clearButton == null) return;
        boolean isEnabled = !getSelectedOptions().isEmpty();
        clearButton.setEnabled(isEnabled);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        RecordUserAction.record("ClearBrowsingData_DialogCreated");
        mMaxImportantSites = PrefServiceBridge.getMaxImportantSites();
        PrefServiceBridge.getInstance().requestInfoAboutOtherFormsOfBrowsingHistory(this);
        getActivity().setTitle(R.string.clear_browsing_data_title);
        addPreferencesFromResource(R.xml.clear_browsing_data_preferences);
        DialogOption[] options = getDialogOptions();
        mItems = new Item[options.length];
        for (int i = 0; i < options.length; i++) {
            boolean enabled = true;

            // It is possible to disable the deletion of browsing history.
            if (options[i] == DialogOption.CLEAR_HISTORY
                    && !PrefServiceBridge.getInstance().canDeleteBrowsingHistory()) {
                enabled = false;
                PrefServiceBridge.getInstance().setBrowsingDataDeletionPreference(
                        DialogOption.CLEAR_HISTORY.getDataType(), false);
            }

            mItems[i] = new Item(
                this,
                options[i],
                (ClearBrowsingDataCheckBoxPreference) findPreference(options[i].getPreferenceKey()),
                isOptionSelectedByDefault(options[i]),
                enabled);
        }

        // Not all checkboxes defined in the layout are necessarily handled by this class
        // or a particular subclass. Hide those that are not.
        EnumSet<DialogOption> unboundOptions = EnumSet.allOf(DialogOption.class);
        unboundOptions.removeAll(Arrays.asList(getDialogOptions()));
        for (DialogOption option : unboundOptions) {
            getPreferenceScreen().removePreference(findPreference(option.getPreferenceKey()));
        }

        // The time range selection spinner.
        SpinnerPreference spinner = (SpinnerPreference) findPreference(PREF_TIME_RANGE);
        spinner.setOnPreferenceChangeListener(this);
        TimePeriodSpinnerOption[] spinnerOptions = getTimePeriodSpinnerOptions();
        int selectedTimePeriod =
                PrefServiceBridge.getInstance().getBrowsingDataDeletionTimePeriod();
        int spinnerOptionIndex = -1;
        for (int i = 0; i < spinnerOptions.length; ++i) {
            if (spinnerOptions[i].getTimePeriod() == selectedTimePeriod) {
                spinnerOptionIndex = i;
                break;
            }
        }
        assert spinnerOptionIndex != -1;
        spinner.setOptions(spinnerOptions, spinnerOptionIndex);

        // The "Clear" button.
        ButtonPreference clearButton = (ButtonPreference) findPreference(PREF_CLEAR_BUTTON);
        clearButton.setOnPreferenceClickListener(this);
        clearButton.setShouldDisableView(true);

        // The general information footnote informs users about data that will not be deleted.
        // If the user is signed in, it also informs users about the behavior of synced deletions.
        // and we show an additional Google-specific footnote. This footnote informs users that they
        // will not be signed out of their Google account, and if the web history service indicates
        // that they have other forms of browsing history, then also about that.
        TextMessageWithLinkAndIconPreference google_summary =
                (TextMessageWithLinkAndIconPreference) findPreference(PREF_GOOGLE_SUMMARY);
        TextMessageWithLinkAndIconPreference general_summary =
                (TextMessageWithLinkAndIconPreference) findPreference(PREF_GENERAL_SUMMARY);

        google_summary.setLinkClickDelegate(new Runnable() {
            @Override
            public void run() {
                new TabDelegate(false /* incognito */).launchUrl(
                        WEB_HISTORY_URL, TabLaunchType.FROM_CHROME_UI);
            }
        });
        general_summary.setLinkClickDelegate(new Runnable() {
            @Override
            public void run() {
                HelpAndFeedback.getInstance(getActivity()).show(
                        getActivity(),
                        getResources().getString(R.string.help_context_clear_browsing_data),
                        Profile.getLastUsedProfile(),
                        null);
            }
        });
        if (ChromeSigninController.get(getActivity()).isSignedIn()) {
            general_summary.setSummary(
                    R.string.clear_browsing_data_footnote_sync_and_site_settings);
        } else {
            getPreferenceScreen().removePreference(google_summary);
            general_summary.setSummary(R.string.clear_browsing_data_footnote_site_settings);
        }
        if (ChromeFeatureList.isEnabled(ChromeFeatureList.IMPORTANT_SITES_IN_CBD)) {
            PrefServiceBridge.fetchImportantSites(this);
        }
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        // Now that the dialog's view has been created, update the button state.
        updateButtonState();

        // Remove the dividers between checkboxes.
        ((ListView) getView().findViewById(android.R.id.list)).setDivider(null);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        dismissProgressDialog();
        for (Item item : mItems) {
            item.destroy();
        }
    }

    // We either show the dialog, or modify the current one to display our messages.  This avoids
    // a dialog flash.
    private final void showProgressDialog() {
        if (getActivity() == null) return;
        mProgressDialog = ProgressDialog.show(getActivity(),
                getActivity().getString(R.string.clear_browsing_data_progress_title),
                getActivity().getString(R.string.clear_browsing_data_progress_message), true,
                false);
    }

    @VisibleForTesting
    ProgressDialog getProgressDialog() {
        return mProgressDialog;
    }

    @VisibleForTesting
    ConfirmImportantSitesDialogFragment getImportantSitesDialogFragment() {
        return mConfirmImportantSitesDialog;
    }

    /**
     * This method shows the important sites dialog. After the dialog is shown, we correctly clear.
     */
    private void showImportantDialogThenClear() {
        mConfirmImportantSitesDialog = ConfirmImportantSitesDialogFragment.newInstance(
                mSortedImportantDomains, mSortedImportantDomainReasons, mSortedExampleOrigins);
        mConfirmImportantSitesDialog.setTargetFragment(this, IMPORTANT_SITES_DIALOG_CODE);
        mConfirmImportantSitesDialog.show(
                getFragmentManager(), ConfirmImportantSitesDialogFragment.FRAGMENT_TAG);
    }

    @Override
    public void showNoticeAboutOtherFormsOfBrowsingHistory() {
        if (getActivity() == null) return;

        TextMessageWithLinkAndIconPreference google_summary =
                (TextMessageWithLinkAndIconPreference) findPreference(PREF_GOOGLE_SUMMARY);
        if (google_summary == null) return;
        google_summary.setSummary(
                R.string.clear_browsing_data_footnote_signed_and_other_forms_of_history);
    }

    @Override
    public void enableDialogAboutOtherFormsOfBrowsingHistory() {
        if (getActivity() == null) return;

        mIsDialogAboutOtherFormsOfBrowsingHistoryEnabled = true;
    }

    /**
     * Used only to access the dialog about other forms of browsing history from tests.
     */
    @VisibleForTesting
    OtherFormsOfHistoryDialogFragment getDialogAboutOtherFormsOfBrowsingHistory() {
        return mDialogAboutOtherFormsOfBrowsingHistory;
    }

    @Override
    public void onImportantRegisterableDomainsReady(
            String[] domains, String[] exampleOrigins, int[] importantReasons) {
        if (domains == null) return;
        // mMaxImportantSites is a constant on the C++ side. While 0 is valid, use 1 as the minimum
        // because histogram code assumes a min >= 1; the underflow bucket will record the 0s.
        RecordHistogram.recordLinearCountHistogram("History.ClearBrowsingData.NumImportant",
                domains.length, 1, mMaxImportantSites + 1, mMaxImportantSites + 1);
        mSortedImportantDomains = Arrays.copyOf(domains, domains.length);
        mSortedImportantDomainReasons = Arrays.copyOf(importantReasons, importantReasons.length);
        mSortedExampleOrigins = Arrays.copyOf(exampleOrigins, exampleOrigins.length);
    }

    /**
     * This is the callback for the important domain dialog. We should only clear if we get the
     * positive button response.
     */
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == IMPORTANT_SITES_DIALOG_CODE && resultCode == Activity.RESULT_OK) {
            // Deselected means that the user is excluding the domain from being cleared.
            String[] deselectedDomains = data.getStringArrayExtra(
                    ConfirmImportantSitesDialogFragment.DESELECTED_DOMAINS_TAG);
            int[] deselectedDomainReasons = data.getIntArrayExtra(
                    ConfirmImportantSitesDialogFragment.DESELECTED_DOMAIN_REASONS_TAG);
            String[] ignoredDomains = data.getStringArrayExtra(
                    ConfirmImportantSitesDialogFragment.IGNORED_DOMAINS_TAG);
            int[] ignoredDomainReasons = data.getIntArrayExtra(
                    ConfirmImportantSitesDialogFragment.IGNORED_DOMAIN_REASONS_TAG);
            if (deselectedDomains != null && mSortedImportantDomains != null) {
                // mMaxImportantSites is a constant on the C++ side.
                RecordHistogram.recordCustomCountHistogram(
                        "History.ClearBrowsingData.ImportantDeselectedNum",
                        deselectedDomains.length, 1, mMaxImportantSites + 1,
                        mMaxImportantSites + 1);
                RecordHistogram.recordCustomCountHistogram(
                        "History.ClearBrowsingData.ImportantIgnoredNum", ignoredDomains.length, 1,
                        mMaxImportantSites + 1, mMaxImportantSites + 1);
                // We put our max at 20 instead of 100 to reduce the number of empty buckets (as
                // our maximum denominator is 5).
                RecordHistogram.recordEnumeratedHistogram(
                        "History.ClearBrowsingData.ImportantDeselectedPercent",
                        deselectedDomains.length * IMPORTANT_SITES_PERCENTAGE_BUCKET_COUNT
                                / mSortedImportantDomains.length,
                        IMPORTANT_SITES_PERCENTAGE_BUCKET_COUNT + 1);
                RecordHistogram.recordEnumeratedHistogram(
                        "History.ClearBrowsingData.ImportantIgnoredPercent",
                        ignoredDomains.length * IMPORTANT_SITES_PERCENTAGE_BUCKET_COUNT
                                / mSortedImportantDomains.length,
                        IMPORTANT_SITES_PERCENTAGE_BUCKET_COUNT + 1);
            }
            clearBrowsingData(getSelectedOptions(), deselectedDomains, deselectedDomainReasons,
                    ignoredDomains, ignoredDomainReasons);
        }
    }
}

redpajama_set_name: RedPajamaGithub


This chart displays the words in A Peep at the Pilgrims, with their lengths and Scrabble® scores. Words that could not be created in a single turn because they are longer than seven characters are indicated. Words that cannot be created using a standard Scrabble® set, as they use more of a given letter than are available in such a single set, are also indicated.


Tell someone about Ricochet Infinity Game!
8TtGRW Im grateful for the post.Really thank you! Really Great.
6GVgGT Really informative blog article.Really looking forward to read more. Really Cool.
PEo4CM Thank you ever so for you article. Great.
S5gMet will leave out your wonderful writing because of this problem.
BZdZft It as not that I want to copy your web page, but I really like the design and style. Could you let me know which style are you using? Or was it tailor made?
Mu498K Piece of writing writing is also a fun, if you know after that you can write if not it is difficult to write.
NojxHd Thanks again for the blog.Really thank you! Really Cool.
LjpIFl Im grateful for the article.Really thank you! Really Cool.
n6Aefn Thanks a bunch for sharing this with all of us you actually know what you're talking about! Bookmarked. Kindly also visit my website =). We could have a link exchange arrangement between us!
xx7m30 I've read some good stuff here. Certainly worth bookmarking for revisiting. I wonder how much effort you put to make such a great informative site.
CAivRk This website online can be a walk-by way of for all of the data you needed about this and didn't know who to ask. Glimpse here, and also you'll positively discover it.
qLnGvc This is one awesome post. Cool.
r9PQ7V I cannot thank you enough for the article post.Thanks Again. Fantastic.
l67DBj Thanks-a-mundo for the article.Really thank you! Fantastic.
ED3Sqb Thank you ever so for you blog.Much thanks again. Great.
kzi2Fn Very good blog article.Thanks Again. Much obliged.
stizWH Major thanks for the article.
3PhsWZ Say, you got a nice article post.Really looking forward to read more.
OL22vr Great post.Thanks Again. Really Cool.
mGn5X7 Very good blog.Really thank you! Want more.
wLZolD Great, thanks for sharing this article post.Much thanks again.
uT85LF Thanks for the post.Really thank you!
FHXx4i wow, awesome post.Thanks Again. Keep writing.
EicBN5 I really like and appreciate your blog.Much thanks again.
2cF6LD Awesome blog.Much thanks again. Fantastic.
DA7SOK Thanks a lot for the article.
Gt6rXe I cannot thank you enough for the post.Much thanks again. Fantastic.
nxvZw1 I am so grateful for your blog article.Really thank you! Keep writing.
J9Rzda Thanks for sharing, this is a fantastic blog.Much thanks again. Much obliged.
5NK0LP Hey, thanks for the blog post.Much thanks again.
Vvf1pp Thank you for your article post.Much thanks again. Keep writing.
5gso9V Enjoyed every bit of your article post.Really thank you!
n56E9D Really appreciate you sharing this article.Much thanks again. Really Cool.
1puYsZ Appreciate you sharing, great blog article.Really thank you! Really Great.
CFhl7S I cannot thank you enough for the blog.
BZfIUs Great, thanks for sharing this blog article. Keep writing.
I needed to draft you a very small note to be able to give thknas as before with the incredible concepts you have shown here. This is really strangely open-handed of people like you to make openly all that a number of us might have sold as an electronic book in making some profit for themselves, precisely considering that you might have tried it in the event you considered necessary. Those thoughts as well served to become easy way to be sure that the rest have the same desire like mine to understand more and more with respect to this matter. I am sure there are a lot more pleasant moments in the future for people who browse through your website.
4FYXHK I appreciate you sharing this article post.Really looking forward to read more. Really Great.
iFW0wH This is one awesome article.Thanks Again. Really Great.
fRYRSt A big thank you for your blog post.Thanks Again.
QTfelj Thanks a lot for the blog article.Thanks Again.
pTVvMI I cannot thank you enough for the blog post. Fantastic.
P2mLbd Really enjoyed this article. Fantastic.
XuwRHL This is one awesome blog post. Want more.
76TLTq Say, you got a nice article.Really thank you! Want more.
Afo3T4 Wow, great article.Much thanks again. Cool.
90VRTb Im grateful for the post.Really thank you! Cool.
dUFgV5 Say, you got a nice blog post.Really looking forward to read more. Fantastic.
gEEG61 I cannot thank you enough for the article. Cool.
mYaf0R Very neat article post. Great.
9yIhjD Very informative post.Much thanks again. Really Cool.
J9DCeN I really like and appreciate your article.Really looking forward to read more. Much obliged.
GrnLRP I cannot thank you enough for the blog article. Really Cool.
YsZeKU Hey, thanks for the article.Thanks Again. Cool.
uE6kua A big thank you for your article post.Really looking forward to read more. Awesome.
V0kz8z This is one awesome article.Thanks Again. Much obliged.
LTyuh9 Im grateful for the article.Much thanks again. Fantastic.
kHHTtZ Say, you got a nice blog article.Really looking forward to read more. Keep writing.
yPf8fk I cannot thank you enough for the post.Thanks Again. Want more.


There are a number of different elements that have to come together to unlock yield potential in corn and move it to that coveted 300 bushel mark. As we visit field number 2 of the PRIDE Seeds 300+ bushel initiative, we take a look at one of those factors and the issues that can come with it.
Soil tilth is something that Staffa, Ontario producer Mark Brock has focussed on this year to unlock higher corn yields. Monitoring and managing the condition of your soil can really help your corn to become well established and can lay the foundation for higher yielding corn. However, as Ken Currah of PRIDE Seeds shows us, managing soil tilth comes with its own set of unique challenges.
New Seed Treating Standards: What Do They Mean for Treating Seed On-Farm?


text:
Are We Approaching A 'Bear Market'?
By Rida Morwa
Nov 29, 2021 - 5:18 PM EST
.In the past few weeks, the markets reaching highs after highs have puzzled some investors and left them worried about a major pullback due to high valuations. Many investors fear a collapse, especially now that we have Fed tapering, new COVID variants, possible interest rate hikes on the horizon, and market volatility.
There sure is a lot that reminds me of the Dotcom era in the late 1990s and preceding the Great Financial Crisis of 2007-2008 when we saw a similar phenomenon: The markets kept going up daily because of investors' euphoric attitude despite stocks hitting all-time highs, only to see a big bear market.
It is not surprising that many are worried today about the next big crash. Worse, there are always those "doom and gloom" analysts who keep predicting a severe market crash, and they have been wrong for the past several years. Could they be right this time?
In order to evaluate the current situation, let us take a look at what events triggered two of the greatest bear markets in recent history that plunged the economy into a recession. In the case of the Great Financial Crisis, it was the 2nd most severe recession in history, only exceeded by the Great Depression of the 1930s. This will help us better understand and ensure we can identify the warning signs in time.
1- The Dotcom Bubble Era
What was the Dotcom Bubble? The Dotcom Bubble was a very sharp rise in technology stocks fueled by investments in internet-based companies during the bull market in the late 1990s. The value of these stocks grew exponentially during this period. The Nasdaq technology index rose from under 1,000 to over 5,000 between 1995 and 2000 (or by 500%!).
The end of the bubble came in 2000, and the bubble burst between 2001 and 2002, with equities entering a bear market. The stock market's crash erased more than four years of gains in the tech-heavy Nasdaq composite index. By the end of the stock market downturn in 2002, the NASDAQ-100 had dropped to 1,114 points, down 78% from its peak. Even the share prices of blue-chip technology stocks like Intel (INTC), Cisco (CSCO), and Oracle (ORCL) lost more than 80% of their value.
The reasons behind the Dotcom Bubble crash:
Investor Euphoria was extreme, whereby many investors were putting every liquid asset they owned into equities. Neighbors who had never invested before were passing around stock tips. Everyone "knew" that investing in the Internet was the best way to get rich.
Irrationally high stock valuations were the rule, as measured by all aspects including historical valuations, price/earnings valuations or P/E ratios, and relative to interest rates. In many cases, P/E ratios were running well above 100 times for startup companies still earning negative cash flows. New metrics were invented like "eyeballs" or "mind share" to justify nosebleed valuations of unprofitable companies. Investor behavior was referred to as "irrational exuberance" at the time.
High Interest rates: Fed fund rates (or short-term rates) ran around 5%, making margin borrowing costs excessively high. Fed Chair at the time, Allan Greenspan, later decided to tighten monetary policy in the spring of 2000 by hiking interest rates from 5% to 6.8%, but it was already too late.
Liquidity Crunch: By the time the Fed moved to hike rates, banks and financial institutions had already used up excess liquidity in funding an expensive stock market, and liquidity was scarce both at the investor level and financial institution level. With the raise, the little excess liquidity dried up quickly. There was no more fuel to fire the bull market.
2- The Great Financial Crisis, or the 'Housing Bubble'
Now let us look at the factors that resulted in the "Great Financial Crisis" or the "housing bubble" which burst in late 2007. Both crises had some similarities, but the Great Financial Crisis was more complex. During the period preceding the crisis, the average house price from the early 1990s to 2007 rose more than 300%.
The bubble eventually burst and resulted in the second-worst economic crisis in U.S. history. Following the bubble burst, housing prices fell 33% nationally, and in many cases falling +50%. The resulting liquidity crunch hit the equity markets, with the S&P 500 falling by 57% from October 2007 to March 2009.
The downturn lasted 18 months and erased $19.2 trillion in wealth. It had its greatest impact on the bottom 50% of households, costing them as much as 42% of their net worth during the downturn. After all, for many Americans, their house is by far their largest asset. As of 2009, 18.5% of families had no liquid assets, and by 2011 this had grown to 23.4% of families.
The factors that lead to this crisis? Many claim that the main culprit was the collapse of the subprime mortgage market, but in fact, it was caused by widespread failures, including government regulation, and irresponsible behavior by Wall Street financial institutions and bankers.
HDI, a service on EWT for income investors and retirees, offers a "model portfolio" targeting a yield of +9%. This article is excerpted from HDI's market outlook for members. Learn more here.
Rida Morwa is the lead analyst for High Dividend Investing (HDI), currently offering a 15-day free trial.


A new study draws some interesting findings about a meal-time go-to.
Got milk? When a Southerner asks that question, chances are what he or she really means is "got whole milk?" This is especially holds true if you see milk listed in the ingredients of a recipe. Don't you dare try to put skim milk in your mac and cheese.
Indeed, we've long sung the virtues of rich, creamy, full-fat dairy — at least from a taste perspective — and a growing body of science-backed evidence is touting its health benefits, too. Now, new research from The University of Texas Health Science Center at Houston (UTHealth) has found that full-fat dairy may offer some protection from heart disease, especially stroke. Published in The American Journal of Clinical Nutrition on July 11th, the new study was titled "Serial measures of circulating biomarkers of dairy fat and total and cause-specific mortality in older adults: the Cardiovascular Health Study."
That may sound like a mouthful, but the study was fairly straightforward: It looked at nearly 3,000 American adults aged 65 and older over the course of 22 years and tracked how several biomarkers of fatty acid present in dairy fat was associated with heart disease and death. As the results revealed, none of the fatty acid types were significantly associated with total mortality, and one type was actually linked to lower heart disease deaths.
"Our findings not only support, but also significantly strengthen, the growing body of evidence which suggests that dairy fat, contrary to popular belief, does not increase risk of heart disease or overall mortality in older adults. In addition to not contributing to death, the results suggest that one fatty acid present in dairy may lower risk of death from cardiovascular disease, particularly from stroke," said Marcia Otto, Ph.D., the study's first and corresponding author and assistant professor in the Department of Epidemiology at UTHealth, in a press release.
Of course, dairy can be found in plenty of not-so-wholesome treats (sugary ice cream and yogurt, pastries, biscuits, fried cheese anything). But if you go for a tall glass of whole milk on a hot day or enjoy unsweetened, full-fat yogurt with some fresh fruit for breakfast, this study certainly bolsters the case for the benefits of full-fat dairy.
Looking for some healthy eating inspiration? Check out 7 healthy foods you should always have in your freezer and the one Sunday night meal prep tip that keeps you eating healthy all week.


text:
Hariri: Success is in Holding Summit after Attempt to Thwart It
by Naharnet Newsdesk 18 January 2019, 20:54
Prime Minister-designate Saad Hariri on Friday downplayed the absence of the majority of Arab leaders and senior officials from Beirut's Arab Economic and Social Development Summit, saying success lies in holding the summit despite the controversy that has surrounded it.
"Regardless of representation, success lies in holding this summit because there was an attempt to prevent it from taking place," Hariri told reporters after meeting Arab League chief Ahmed Abul Gheit.
"What's important is that the summit has taken place and any present delegation is representing its country," the PM-designate added.
"I expect the summit to achieve positive results and its convention in Lebanon is a very good thing," Hariri went on to say.
Organizers of the summit initially said that seven Arab heads of state would attend Sunday's summit which is being held in Lebanon for the first time. But only two heads of state are now expected, the leaders of Somalia and Mauritania, after several others pulled out despite previously having confirmed their attendance.
Their absence appeared to be a snub to Lebanon, where pro-Syrian groups led by the Iranian-backed Hizbullah have insisted that the Syrian government should be invited.
The summit, which Lebanon had hoped would boost Lebanon's sinking economic credentials, has been marred by controversy days before delegates arrive. Inviting Syria was only one issue. A days-long debate raged over whether Libya should get an invitation, because of the unresolved mystery surrounding the disappearance of revered Lebanese Shiite cleric Moussa al-Sadr in Libya four decades ago. Libya decided to stay away from the meeting after Lebanese supporters of the cleric tore down a Libyan flag on a Beirut street.
The AESD was formed in 2009 as an exclusively economic and development conference that tends to involve the private sector, including banks, chambers of commerce, industry and agriculture. The agenda does not include the reconstruction of Syria, much of it ruined in nearly eight years of civil war.
Source: Naharnet
Copyright © 2012 Naharnet.com. All Rights Reserved. http://www.naharnet.com/stories/en/255352


text:
ebolaThe U.S. Helped Defeat Ebola in 2014. Now, We're Watching a Crisis Become a Catastrophe
CongressMitch McConnell Says President Trump Is 'Not a Racist' Despite Controversial Tweets
Freed U.S. hostage David Roeder shouts and waves as he arrives at Rhein-Main U.S. Air Force base in Frankfurt, Germany. Roeder was among 52 Americans held hostage in Iran for 444 days after their capture at the U.S. Embassy in Tehran. Jan. 21, 1981.AP Photo
Freed U.S. hostage David Roeder shouts and waves as he arrives at Rhein-Main U.S. Air Force base in Frankfurt, Germany.
See 8 Joyous Photos of the Iran Hostages Going Free in 1981
Lily Rothman,Liz Ronk
When the dozens of Americans who had been held hostage in Iran for 14 1/2 months were told they'd be going free, they didn't believe it. As TIME reported in a cover package about the incredible confluence of events that took place 35 years ago on Jan. 20, 1981—a date that saw both the hostages released and the inauguration of President Ronald Reagan—an Iranian spokesperson said they "moved about like sleepwalkers."
But their initially muted response made sense, the article explained: "The Americans had been divided by their captors into at least two groups for transportation to the airport in buses with blackened windows. The Americans then were run through a gauntlet of chanting militants. While some hostages thought the dozens of militants forming a corridor to shout 'Death to America!' at them were just performing for propaganda effect, others were genuinely frightened and reported that they had been kicked and shoved during their last steps on Iranian soil."
History NewsletterStay on top of the history behind today's news. View Sample
It wasn't until they were safely on board an Air Algerie 727, and even then not until they'd waited a half hour to taxi, that the champagne was (literally) popped. After a brief refueling stop in Greece, they flew on to Algiers, landed, and walked down the ramp as free men and women. The following day, the former hostages arrived at Wiesbaden U.S. Air Force hospital in Germany, their final stop before finally going home.
"They flashed victory signs," TIME reported of the scene in Algeria, "and clenched fists and shouted to throngs of spectators: 'Thank you! Thank you! We made it!'"
Read the full cover story about the hostage release, here in the TIME Vault: The Ordeal Ends


text:
L'Oreal to face lawsuit over wrinkle-smoothing collagen claims
Jonathan Stempel
27 September 2022, 2:15 pm ·2-min read
A L'Oreal logo is seen at the company's offices in Levallois-Perret
By Jonathan Stempel
NEW YORK (Reuters) - L'Oreal SA on Tuesday failed to persuade a U.S. judge in Manhattan to dismiss a proposed class action lawsuit accusing the company of defrauding shoppers by suggesting that two topical collagen products help smooth wrinkles.
The plaintiffs Rocio Lopez and Rachel Lumbra sued in August 2021, claiming that L'Oreal violated New York and California consumer protection laws by deceiving them into overpaying for its Collagen Moisture Filler Day/Night Cream and its Fragrance-Free Collagen Moisture Filler Daily Moisturizer.
According to the complaint, topically applied collagen is too large to be absorbed by the epidermis, the uppermost layer of skin, making the products incapable of helping "smooth wrinkles" and "restore skin's cushion" as the labels suggest.
L'Oreal sought a dismissal, claiming it did not say a moisturizer containing collagen would penetrate the skin or stimulate collagen production, and that reasonable consumers would not believe otherwise from the products' names.
But U.S. District Judge Andrew Carter said the plaintiffs plausibly alleged that the "collagen" on L'Oreal's labels referred to molecules that provide cosmetic benefits, by purporting to reverse signs of aging.
"It is wholly plausible that a reasonable consumer, shopping for cosmetics, saw a product named 'Collagen Moisture Filler,' promising to 'smooth wrinkles' and 'restore skin's cushion,' and associated this product with the cosmetic benefits of the collagen molecule," the judge wrote.
L'Oreal and its lawyers did not immediately respond to requests for comment. A lawyer for the plaintiffs did not immediately respond to similar requests.
The lawsuit seeks unspecified damages for purchasers of the L'Oreal products nationwide.
The case is Lopez et al v L'Oreal USA Inc, U.S. District Court, Southern District of New York, No. 21-07300.
(Reporting by Jonathan Stempel; Editing by Sandra Maler)


I just stumbled upon a thread over at DAZ, if you're after a moggie it's right up your street! I just thought I'd post this here knowing what a bunch of cat people you all are on this forum (well, most of you are it seems).
And no, I'm not a soft touch either, I'm actually really really nasty.
I saw the one with the cat trying to wake the guy up about a year ago but didn't know there were more. Thanks.
This cracked me up when the dog farts!


TIP! Always be ready with dog treats. Giving a treat is how you show your dog that you appreciate the behavior.
Nowadays, many people attempt to have a clean home. If you own a dog, a large component of keeping your home clean is having a well-trained dog. But, training is a difficult process many have difficulty with. Information such as what is provided here can help in that regard.
TIP! When house training your pup, you should adhere to a regular schedule of feeding and elimination. This will give you an idea of when the dog is likely to have to go, so you can take it outdoors to take care of this matter before an accident occurs on your rug.
Consistency is of the utmost importance when it comes to crate training. The first thing to keep in mind is that you must let him use the bathroom as soon as he's let out. Eventually, your dog will wait until you let him out of his crate to relive himself.
Repetition is the key to success when teaching a dog a new command. It may take about 25-50 repetitions of a particular command before your dog understands it. Continue repeating the command patiently, and eventually your dog will understand it.
TIP! The tone of your voice is an important part of successfully disciplining your dog. Your pet is very in tune with your emotions.
If you house train your puppy, keep in mind that everything that goes in is eventually coming back out. Make sure that you feed your dog at least three times per day with good food. That way, you'll know when you need to take your doggie out to "go".
Don't bother with shock collars. They may not work very well and are far too expensive. They can cause your dog to be confused about all their behaviors. These techniques don't normally work.
TIP! Don't reward or ignore bad behavior because you want to put a stop to it. If you do, he'll think he's the boss.
When house training your dog, be sure your dog has a predictable feeding and elimination routine. This gives both you and the dog a heads up as to when they need to go outside, and you can make sure that happens before they make a mess indoors. Being consistent will teach the dog to hold it until it is time to go outside.
TIP! Teach your dog right and wrong for all instances. This means that everyone in the house must follow the same training patterns and always remain consistent.
Get your dog's attention the same way every time. Always start your commands with his name. First, call his name then give him a verbal or gesture command. Dogs tend to respond by name right away and they know that you want their attention.
TIP! Has your dog been tugging the leash? This annoying behavior is extremely common and quite simple to rectify. Consider buying a dog harness at a pet supply store to make walks considerably more enjoyable.
Understand that getting your dog to respond during the times that you tell him or her 'no' is not helpful. Stick to positive training methods, as they can help the most. Using the word "no" will not help your dog learn that a behavior is unacceptable. Every dog and situation is unique and you should adapt your strategies accordingly.
Create a specific command to stop your dog when it barks. Every time he barks, tell them the silent order and then treat him. Then, they can receive the treat. If you repeat this long enough, your dog will associate the treat and then the order with being quiet.
Wearing a puppy out by overloading it with information and training is counterproductive. Puppies have short attention spans and don't focus well, so make sure to keep your training sessions short, but as positive as you can. If you try to teach too much, he won't like the training sessions and won't remember everything. This will only frustrate you over time.
Spray bottles are the perfect deterrent for bad behavior. This technique will show your dog that the behavior is unacceptable. In short order, the dog is sure to cease such behavior, and assume the role of fun, yet obedient animal.
While training your dog, you need to introduce it to different social situations as early as possible. You need to show them what is acceptable when they are around people and their pets. This will help to reduce sporadic behavior in new environments as well.
TIP! When you are trying to break your dog from chewing, do it the right way. Remember to keep you dog away from anything that is considered dangerous to chew.
One of the first commands your dog should learn is "down." This is an important command for your dog to know in social settings. A dog that understands the "down" command can lower to the ground immediately in a risky situation, so it's perfect for safety reasons.
TIP! Use the 'shake-can' method of training. Drop some coins into a an empty can and cap it off.
Armed with the tips above, you ought to understand how training your family dog is crucial to keeping your home clean. You need to come up with techniques that you will be able to use everyday. When you have do this, you will soon have behaved dog.


text:
Sibrandes Poppema (geboren 24 juli 1949 in Emmen) is een Nederlands professor en academisch bestuurder. Hij was van 1 september 2008 tot 30 september 2018 voorzitter van het College van Bestuur van de Rijksuniversiteit Groningen. Per 1 oktober 2018 wordt hij als voorzitter van het College van Bestuur opgevolgd door Jouke de Vries.
Tijdens het bestuur van Poppema verbeterde het studieresultaat van de bachelors; behaalde eerst slechts 50% het bachelordiploma binnen 4 jaar, nu is dat 75%., de Rijksuniversiteit Groningen werd de beste klassieke universiteit in Nederland volgens het studententevredenheidonderzoek, uitgevoerd door de "Keuzegids Universiteiten" en in de rangorde van de "Academic Ranking of World Universities" (ARWU) ook wel de Shanghairanking genoemd, steeg de universiteit van positie 112 naar positie 59 wereldwijd.
Poppema was van september 1999 tot en met 2008 aangesteld als decaan van de medische faculteit en vice-voorzitter van het Universitair Medisch Centrum Groningen. Daarvoor was hij voorzitter van de afdeling pathologie en laboratoriumgeneeskunde van het academisch ziekenhuis van de Universiteit van Alberta in Edmonton, Alberta. Van 1980 tot 1987 was Poppema werkzaam als klinisch wetenschapper op de afdeling pathologie van de Rijksuniversiteit Groningen. In 1985 werd hij de eerste J.K. de Cock Professor immunopathologie.
Vanaf september 2015 is Poppema vice-voorzitter van de Vereniging van Universiteiten (VSNU). Vanaf december 2015 is hij lid van de Raad van Bestuur van de Confucius Instituten.

Onderscheiding
Op 27 april 2007 heeft koningin Beatrix Poppema gedecoreerd als Ridder in de Orde van de Nederlandse Leeuw voor zijn wetenschappelijke prestaties. Poppema is lid van de Nederlandse Academie voor Technologie en Innovatie (ACTI). Sinds oktober 2011 is hij honorair consul in Noord-Nederland voor de Republiek Korea.

Opleiding
Poppema behaalde zijn gymnasium B-diploma aan het Ubbo Emmius College in Stadskanaal in 1968 en studeerde Geneeskunde aan de Rijksuniversiteit Groningen van 1968 tot 1974. Hij is opgeleid als patholoog-anatoom en promoveerde op zijn onderzoek naar de immunopathologie van de ziekte van Hodgkin bij de afdeling pathologie van de Rijksuniversiteit Groningen (1975-1979). In 1978 werkte hij onder leiding van prof. Karl Lennert op de afdeling pathologie van de Christian Albrechts Universiteit in Kiel, Duitsland. Van 1979 tot 1980 was hij postdoc aan de afdeling pathologie van de Harvard Medical School in Boston, Massachusetts in de Verenigde Staten.

Persoonlijk
Poppema is getrouwd en heeft 3 kinderen en 10 kleinkinderen.

Nederlands medicus
Hoogleraar aan de Rijksuniversiteit Groningen
Nederlands onderwijsbestuurder

redpajama_set_name: RedPajamaWikipedia


text:
Digital TV News: Moving Picture Experts Group
Huawei, Qualcomm and Samsung welcome release of MPEG-5 EVC standard
May 8, 2020 – Huawei, Qualcomm and Samsung have welcomed the release of MPEG-5 Essential Video Coding (EVC) – a new video coding standard designed to meet both the business and technical needs of the media industry.
News categories: Huawei, Qualcomm, Samsung, Content Distribution, Digital TV, Worldwide
Via Licensing issues call for MPEG-H 3D Audio patents
Aug 21, 2015 – Via Licensing has announced a call for patents that are essential to the practice of the MPEG-H 3D Audio standard. MPEG-H 3D Audio specifies the transmission and playback of audio over a variety of speaker arrangements for broadcast and streaming applications.
News categories: Via Licensing, Roger Ross, Digital TV, Licensing, Patent, Worldwide
NTT develops world's first professional 4K H.265/HEVC real time encoder LSI
Mar 26, 2015 – NTT has announced that it has developed a real time 4K/60p ultra-high definition video encoder LSI in conformance with H.265/HEVC, the latest international video coding standard. It is the first LSI to comply with the Main 4:2:2 10 profile.
News categories: NTT, Hiroo Unoura, Content Distribution, ICs, NABShow, Semiconductor
Flash Networks optimises MPEG-DASH video streaming
Oct 22, 2013 – Flash Networks has announced the availability of MPEG-DASH video optimization that reduces network congestion and improves the quality of experience for subscribers without manipulating video content.
News categories: Flash Networks, Ofer Gottfried, Content Distribution, Media Player, Mobile, Streaming
Motorola to demonstrate real-time HD HEVC encoding and decoding at NABShow
Apr 5, 2013 – At the 2013 NAB Show, Motorola will continue its history of innovation with its first ever real-time HEVC (High Efficiency Video Coding) encoding and decoding demonstration at its exhibit space, booth # SU2017.
News categories: Motorola, Content Distribution, NABShow, TV Services
DOCOMO to License HEVC Decoding Software
Feb 4, 2013 – NTT DOCOMO has announced that it will license a software for decoding HEVC, the new international standard for video coding, in March. DOCOMO's HEVC decoding software is the world's first of its kind for Full HD playback on smartphones.
News categories: NTT DOCOMO, Digital TV, IPTV, Media Player, MWC22, Smartphone, Streaming
ITU gives first-stage approval to H.265 video coding standard
Jan 25, 2013 – The International Telecommunication Union has announced that its ITU-T Study Group 16 has agreed first-stage approval to Recommendation ITU-T H.265 or ISO/IEC 23008-2, known informally as 'High Efficiency Video Coding' (HEVC).
News categories: International Telecommunication Union, Digital TV
Motorola Presents the Future of the IP Connected Home at IBC2012
Sep 7, 2012 – At IBC, Motorola (NASDAQ:GOOG) is launching new IP and cable set-top technology designed to meet consumer demand for multi-screen, over-the-top (OTT) and time shift TV, while reducing energy use and maintenance.
News categories: Motorola, Steve McCaffrey, Cable TV, IBC2022, IPTV, Middleware, Set Top Box
Vanguard Software Solutions Demonstrates Real-Time HEVC (H.265) Software Encoder at IBC 2012
Sep 2, 2012 – Vanguard Software Solutions (VSS) has announced the introduction of the first HEVC real-time software Encoder SDK for PC. The VSS encoder demonstrates improvements in quality and bitrate over current implementations based on H.264/MPEG-4 AVC.
News categories: Vanguard Software Solutions, Digital TV, IBC2022


SOAP cutting is the latest trend to mesmerise the web.
If you type the term "soap cutting" into YouTube or Instagram you come across countless clips that have amassed thousands of likes.
And the trend is exactly as it sounds.
The videos show soaps of various colours, sizes and shapes being shaved with either knives or razors – and people are loving it.
The popularity of the trend all comes down to ASMR (Autonomous Sensory Meridian Response) pleasure – describing sounds and visuals that make the body tingle.
Some people call the sensation experienced while watching the clips "head orgasms", "brain orgasms" or "brain tingles".
Over the last few years, mainstream awareness of ASMR has grown, despite confusion over the number of people who actually experience it.
According to The Times, those who watch or listen to ASMR recordings claim that they "experience a tingling feeling on their scalp and spine, coupled with an almost trance-like state of relaxation and, crucially for many, the best night's sleep they have had."
The tingling feeling that's stimulated by the noises is known as autonomous meridian sensory response, or ASMR.
It can be triggered by a number of sounds, including crinkling, clicking and tapping on inanimate objects.
As the rush of euphoria travels from the head downwards, viewers of the videos claim to experience total relaxation.
Google Trends has also reported a rising interest in ASMR recordings.
Now, because many online videos have catered to people who experience it, ASMR is now an activity widely publicised across social media.
If you search "ASMR" on YouTube, you will be met with over 11 million video suggestions - of "stimulating" clips and vlogs filmed by those who experience the sensation.
Other popular objects featured in ASMR clips include people chopping up bath bombs, scooping ice cream, poking snow, prodding slime and scratching styrofoam.
And people just can't get enough of the clips - with soap being the latest favourite.
One user said: "Somehow I ended up watching soap cutting ASMR videos on YouTube and it was the most satisfying hour of my life ."
Another said: "I just accidentally sat on my phone for 30 min just watching people cutting up bars of soap on Instagram."
A third said: "Can't stop watching asmr soap videos".
In other web trends, people couldn't get enough of the "invisible box" challenge.
We previously told you that people were comparing the length of their arms with their feet in a bizarre craze… so how do YOU measure up?
While Channing Tatum and his Kingsman pals took on the Help for Heroes Orange Jacket Challenge.


Just another dud or the path to peak erection size?
The male performance industry is a complex world of products and supplements that are costly and confusing. Most brands are overhyped and overpriced but are still sold to desperate men who only want to do right by their female counterparts, and millennials or bachelors who are only looking for a good time over the weekend. We find it to be in very poor taste and downright pathetic for brands to give needy men false hope, when, really, there's no science to back up the claims of their product.
Frankly, we've grown tired of watching most men fall for these scam time after time. To help you navigate through this dizzying mix of male performance supplements, we've researched, sampled and reviewed just about all of them. Through this tedious process, we've formulated a list of ways to quickly analyze and assess whether a male performance product will deliver or not. By following our quick and easy tips, you can rest assured that you won't waste your money on another dud.
Hopefully you are reading this before falling for another internet scam. In a marketplace full of uncertainties, there are countless products out there that fall completely flat on their faces, or as we call them DUDS. Below are three of the big negatives we found when exploring the marketplace for male performance products.
If it's too good to be true, it probably is. Worse, if it's too good to be true and it's free, IT'S A SCAM. Most male performance companies in the marketplace that are giving away everything for free are probably after your credit card details and will be automatically charging you long after you've thrown away their bogus products. If a male performance supplement truly has value, they will want you to pay for it. Imagine investing a lot of money in developing a breakthrough formula and just giving away the result. That just does not happen.
One of the nice things about is that it is manufactured in the United States. Not only that, but their manufacturing is done in an FDA compliant facility that meets all current cGMP (Good Manufacturing Practices). This definitely exceeds our standards and gives us peace of mind.
This one really gets us. Why would a company who claims all these substantial benefits be scared of customers? If there is no way to reach a company after you purchase their product, this is usually an outlier that something is wrong. It's also safe to assume their product is ineffective and unsafe. Always stick with companies where you can speak to a knowledgeable customer service representative capable of explaining the product, what it promises and most importantly, if it is GUARNANTEED to work.
Is a Free Trial Scam?
From our research, is not a free trial scam. They are crystal clear and transparent on their terms and pricing. There are no hidden fees and even shipping is free.
Upon our research, has an extensive Customer Service Department. We even called their Customer Service phone number and the call was answered quickly by an actual person, and not by one of those robo-messages. We even went further to quiz the agent on questions about the product and the money back guarantee they promise. All of our questions were answered professionally and without hesitation. We give them an A+ in this department.
A well thought out formula with ingredients that are backed by science.
Customer feedback that can assure the product is safe and effective.
Once your T levels are kick-started, the next target area is your penile shaft, specifically sending signals that direction from your brain to expect more blood flow. Erectogenic substances can fill those cavernous spaces with blood for a visually fuller and thicker erection. It takes a masterful formula and a highly concentrated set of potent substances to ensure that you have a massive PEAK ERECTION. That last key target area is sexual stamina. Real Stamina starts with proper Recovery. The best formulas are designed to provide key nutrients that can be easily optimized while at rest, so you can maximize absorption throughout the night. To most, this time-period is known as recovery mode. The human body will utilize this time not only to heal itself, but to send nutrients throughout the body to function at peak performance the next day. From what we discovered, the vast display of ingredients that includes, surely covers this base. If you want to stay safe and reap the benefits of a truly effective male enhancement product, look no further then to .
Does meet our standards? Yes, it does, but what did real customers have to say?
DISCLAIMER: We are not responsible for the views or statements expressed by our users. Any extraordinary results experienced by any individual is specified explicitly. Results will vary with each individual. Any Gains made are not guaranteed and can vary depending on the individual. The information and opinions offered here on my website (MaleConsumerReviews.com) was written and designed for educational and entertainment purposes only. This information is not intended as a substitute for professional medical advice, and is not to treat, diagnosis, or cure any medical condition. Please seek out medical advice from a licensed doctor should you have any questions that are medical in nature. Parts of my website (MaleConsumerReviews.com) may from time to time contain information supplied by visitors and other outside parties. MaleConsumerReviews.com is not responsible for comments or information made by visitors or others here on the website. MaleConsumerReviews.com reserves the right to review items posted in any part of my website and edit them, for any reason, at any time.


Marlene here from ScrappinCookie. I'm so excited to be March's Jaded Blossom Guest Designer! Thank You to Michelle and Candace for selecting me to be part of this month's release. I have so many fun ideas in store for you all!
Today is Read Across America Day, also known as Dr. Seuss' Birthday. So for my first project, I decided to do a Dr. Seuss Birthday goodie bag. I found some Dr. Seuss themed goodies - pencil, bookmark, highlighters - that fit perfectly into the 3x8 Clear Bag available at Jaded Blossom. I pulled out my Jaded Blossom Ric Rac Topper and went to work.
I stamped the "Happy Birthday" from the Jaded Blossom Co-Workers Stamp Set on a Jaded Blossom Flag Die and tucked in under my "Hat in the Cat".
I hope you have liked my little Dr. Seuss Birthday goodie bag using Jaded Blossom products.
For more information on my Dr. Seuss Birthday Goodie Bag, please visit my blog SrappinCookie - HERE.
Love this! Perfect for today!
Just too cute!!! Love it!