text:
How to fix your LG V30 that won't turn on [Troubleshooting Guide]
Last Updated on: January 3, 2021 by Harold
Power-related issues often haunt smartphone owners regardless of the specifications of their devices. It's because there are a lot of factors that may contribute to the occurrence of these problems. One of the most commonly reported issue is about powering on. This kind of problem may render your device useless as you won't be able to turn it on anymore.
In this post, I will tackle this problem with the LG V30 being the subject of our troubleshooting. We have already addressed a lot of problems like this in the past but we're just starting to receive complaints from our readers who own this device. Continue reading this post if you're one of the owners of this phone as we may be able to help you.
However, if you're trying to find for a solution to a different problem, you may want to visit our LG V30 troubleshooting page for we have already addressed some of the most common problems with this phone. Find issues that are similar with yours and use the solutions and workarounds we suggested. If they don't work for you or if you need more help, then fill up our Android issues questionnaire and hit submit to contact us.
How to troubleshoot your LG V30 that doesn't turn on
We will simply have to do some basic troubleshooting to try to bring your phone to life. Don't worry, we don't suggest procedures that can potentially damage or mess up your phone even more. If we can't fix the problem here, at least, we tried our best and you can always bring your phone back to the store to have a technician take a look at it. But if we're successful, then you have saved yourself from the hassle of going to the shop and waiting in line for an hour or two.
Step 1: Charge your phone to see how it responds
There's always the possibility that the battery got drained completely that's why the phone doesn't respond when you press the power key. In this case, you just have to plug the charger into the wall outlet and then connect your phone to it using the original cable. If the battery got drained completely, it may take a couple of minutes before the phone actually shows the charging signs like the battery icon with a bolt and the LED light which is usually located at the top of the display. If these signs show after a few minutes of charging, there's a higher probability that you can turn the phone on when you press the power key even if it's still plugged in. You may also see the battery charge percentage on the screen.
RELATED POST: How to fix your LG V30 that doesn't charge [Troubleshooting Guide]
Assuming the phone charges fine when you do this step, then I think you don't have to continue troubleshooting it. Just let it charge its battery up to 100% and then turn it on after that. However, if the phone doesn't show those charging signs even after several minutes of charging, make sure it's not heating up because if it does, disconnect it from the charger immediately and bring it back to the store so that the technician can do further tests.
Step 2: Try doing the Forced Restart procedure on your LG V30
Regardless whether your phone shows the charging signs or not for as long as it doesn't heat up while plugged in, let it continue charging for 10 minutes, at least. After which if it still won't turn on when you hit the Power key, then you must do the Forced Restart procedure while it's charging.
Press and hold the Volume down key and Power button at the same time, for up to 45 seconds until the device reboots.
Step 3: Try starting it up in Recovery mode
It's possible the problem is with the firmware and if this is the case, you can always bring your phone to power up in Recovery mode as it's a fail-safe environment for almost all Android devices. So, after trying to charge your LG V30 for several minutes and it still refuses to turn on, try booting it up in Recovery mode. If you can successfully bring your phone to start in this environment, you can try rebooting it normally and if it's still stuck, at least, know it's more of a firmware issue than a hardware. You can then try to boot it up in the same mode and do the master reset.
How to start LG V30 in Recovery mode and do the master reset
Turn off the device.
Press and hold the Power and Volume down buttons.
When the LG logo appears, quickly release and then re-hold the Power button while continuing to hold the Volume down button.
When "Factory data reset" appears, use the Volume down button to highlight Yes.
Press the Power button to confirm.
When prompted to "Erase all user data and restore default settings," use the Volume down button to highlight Yes.
Press the Power button to reset the device.
Please note that doing a reset will delete all your personal files and data that are stored in your phone's internal memory and I understand you may not have been able to make a backup but you don't have much of a choice now but it's up to you if you continue with the reset.
We are always open to your problems, questions and suggestions, so feel free to contact us by filling up this form. This is a free service we offer and we won't charge you a penny for it. But please note that we receive hundreds of emails every day and it's impossible for us to respond to every single one of them. But rest assured we read every message we receive. For those whom we've helped, please spread the word by sharing our posts to your friends or by simply liking our Facebook and Google+ page or follow us on Twitter.
Categories LG, Mailbag Tags LG V30, not turning on, V30, Won't Charge, won't power up, Won't Turn On Post navigation
How To Fix Samsung Galaxy Note 10+ 5G Moisture Detected Error
How to watch US Netflix from abroad | best Netflix VPN in 2021


This fake electrical box is a perfect recording device that even has a hole to add your own lock on the outside to prevent it from being opened. Almost every home these days has one that looks similar to this. It's a perfect addition to any connected home and provides added security with a built in hidden camera so you can keep track of your kids a nanny or simply want to keep an eye on the outside of your property, or even a garage & construction site. Nothing will indicate this device is anything other than your average electrical box. Even if the camera is handled by someone curious, the electronics are sealed inside. Within minutes you can have the device set up to view live video footage from the free downloadable app from your smartphone, or tablet.


The plans for the new coalition government were outlined as Queen Elizabeth II opened the first session of Parliament. Civil rights, electoral system reform and fighting the budget deficit are being spotlighted.
"The emphasis on civil liberties… is very high on the agenda for both parties. That's very important because it is one of the areas where both the Liberal Democrats and the Conservatives can agree. It's the area where they both opposed Labor quite consistently over the last few years," Brian Cattell, from the Conservative Bow Group think tank, told RT.
Mr. Cattell noted that it is not that the government does not see its security as a top priority any longer.
"This is not about the threat getting less but this is about getting the balance right and safeguarding some of the historic traditions of British government, which is the respect for civil liberties," explains Mr. Cattell.
According to Mr. Cattell, the government is also committed to scrapping ID cards, which is a means of reducing the deficit.
The budget deficit is one of the toughest problems that the coalition government has to tackle.
"There are huge economic problems which have been left to the coalition government. One is the burgeoning budget deficit, the other is a very high level of taxation…There's also the problem of rising inflation," Professor Philip Booth, a program director from the Institute of Economic Affairs, told RT.
The government has so far revealed the plans to cut over 6 billion pounds in spending. Booth says that these cuts are relatively trivial in terms of the total budget deficit, and will not cause serious damage to the public services sector.
"The 6 billion pounds worth of cuts that were proposed yesterday are really just a holding measure … to give the impression to the market that the new government has a credible program to control government spending in the future," said Booth.
According to Booth, the cuts are unlikely to send the economy deeper into recession.
"What would be more dangerous is to allow the budget deficit to continue to rise," said Booth.
The recent parliamentary election in the UK has shown the flaws of the current electoral system, which fails to show the true balance of political forces. The new government has unveiled plans for changes.
What is being proposed as a way out is called the "alternative vote," or "instant run-off voting." Under this system, voters rank candidates in order of preference. In case no candidate gets the majority of votes, the candidates voted top preference the least are eliminated, and their ballots are redistributed to those remaining according to the rankings on each ballot. The procedure is repeated until one candidate has the majority.
According to Ritchie, the Liberal Democrats, the minor partner in the current coalition government, are committed to pushing for changes in electoral system.
"Although the alternative vote is not a proportional system, it is a system that will give a bit of help to the Liberal Democrats," said Ritchie.
However, he pointed out that the Conservatives, the major coalition partner, "certainly don't want to see it happen".
Ritchie says that with the growing support for the Liberal Democrats and the advantage they can get if the electoral system is changed, hung parliaments will become the norm rather than exception. However, he denied that a hung parliament would leads to indecision and stagnation, as is widely believed.


With so many credit card companies offering their credit card products, it can be quite tough to choose the better ones. It seems that many retailer have started to offer their own brand of credit card either under Visa or Mastercard. Someone told me that Walmart Credit card is pretty good and they had actually gotten quite a good amount of Walmart money.
Walmart Mastercard gives you 1.25% of your spending at Walmart stores back to you in the form of Walmart money which you can redeem for any items in Walmart. If you spend at other places or online, you still get 1% of your spending amount in the form of Walmart money. The rewards can add up quickly if you continue to spend using this Walmart Mastercard for your everyday purchases. i had redeemed my Walmart money to buy a Nexus 7 tablet but it did take quite a long time to collect this much Walmart money.
However, be aware that Walmart only allows you to redeem your Walmart money in the increment of $5,$10,$15 and so on. Walmart doesn't allow you to redeem exact amount of your bill in terms of cents unless you press the "Redeem Max" option while checking out at the cash counter. I once made a mistake of not choosing the "Redeem Max" option while checking out at the cash counter and i ended up paying for remaining balance since it only allows you to redeem in fives, tens and so on.
Be sure to pay your credit card bills on time since the interest you incurred for not paying credit bills on time will be more than the rewards you earned.
What are the pros and cons of taking Propecia (Finasteride) drugs orally for stopping hair loss?
Which is the best and cleanest lake in the whole of Canada?
Why is it that the Canadian movie industry is underdeveloped as compared to Hollywood?
What and when are the statutory holidays in Canada for 2016?
How to earn a good credit score ratings so that i can get loans in the future?
How to install a printer without using the CD provided along with the printer?


text:
package com.wheat7.cashew.view;

import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.internal.BottomNavigationItemView;
import android.support.design.internal.BottomNavigationMenuView;
import android.support.design.widget.BottomNavigationView;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.util.SparseIntArray;
import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import java.lang.ref.WeakReference;
import java.lang.reflect.Field;

public class BottomNavigationViewEx extends BottomNavigationView {
    // used for animation
    private int mShiftAmount;
    private float mScaleUpFactor;
    private float mScaleDownFactor;
    private boolean animationRecord;
    private float mLargeLabelSize;
    private float mSmallLabelSize;
    private boolean visibilityTextSizeRecord;
    private boolean visibilityHeightRecord;
    private int mItemHeight;
    // used for animation end

    // used for setupWithViewPager
    private ViewPager mViewPager;
    private MyOnNavigationItemSelectedListener mMyOnNavigationItemSelectedListener;
    private BottomNavigationViewExOnPageChangeListener mPageChangeListener;
    private BottomNavigationMenuView mMenuView;
    private BottomNavigationItemView[] mButtons;
    // used for setupWithViewPager end

    public BottomNavigationViewEx(Context context) {
        super(context);
    }

    public BottomNavigationViewEx(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public BottomNavigationViewEx(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    /**
     * change the visibility of icon
     *
     * @param visibility
     */
    public void setIconVisibility(boolean visibility) {
        /*
        1. get field in this class
        private final BottomNavigationMenuView mMenuView;

        2. get field in mButtons
        private BottomNavigationItemView[] mButtons;

        3. get mIcon in mButtons
        private ImageView mIcon

        4. set mIcon visibility gone

        5. change mItemHeight to only text size in mMenuView
         */
        // 1. get mMenuView
        final BottomNavigationMenuView mMenuView = getBottomNavigationMenuView();
        // 2. get mButtons
        BottomNavigationItemView[] mButtons = getBottomNavigationItemViews();
        // 3. get mIcon in mButtons
        for (BottomNavigationItemView button : mButtons) {
            ImageView mIcon = getField(button.getClass(), button, "mIcon");
            // 4. set mIcon visibility gone
            mIcon.setVisibility(visibility ? View.VISIBLE : View.INVISIBLE);
        }

        // 5. change mItemHeight to only text size in mMenuView
        if (!visibility) {
            // if not record mItemHeight
            if (!visibilityHeightRecord) {
                visibilityHeightRecord = true;
                mItemHeight = getItemHeight();
            }

            // change mItemHeight
            BottomNavigationItemView button = mButtons[0];
            if (null != button) {
                final ImageView mIcon = getField(button.getClass(), button, "mIcon");
//                System.out.println("mIcon.getMeasuredHeight():" + mIcon.getMeasuredHeight());
                if (null != mIcon) {
                    mIcon.post(new Runnable() {
                        @Override
                        public void run() {
//                            System.out.println("mIcon.getMeasuredHeight():" + mIcon.getMeasuredHeight());
                            setItemHeight(mItemHeight - mIcon.getMeasuredHeight());
                        }
                    });
                }
            }
        } else {
            // if not record the mItemHeight, we need do nothing.
            if (!visibilityHeightRecord)
                return;

            // restore it
            setItemHeight(mItemHeight);
        }

        mMenuView.updateMenuView();
    }

    /**
     * change the visibility of text
     *
     * @param visibility
     */
    public void setTextVisibility(boolean visibility) {
        /*
        1. get field in this class
        private final BottomNavigationMenuView mMenuView;

        2. get field in mButtons
        private BottomNavigationItemView[] mButtons;

        3. set text size in mButtons
        private final TextView mLargeLabel
        private final TextView mSmallLabel

        4. change mItemHeight to only icon size in mMenuView
         */
        // 1. get mMenuView
        BottomNavigationMenuView mMenuView = getBottomNavigationMenuView();
        // 2. get mButtons
        BottomNavigationItemView[] mButtons = getBottomNavigationItemViews();
        // 3. change field mShiftingMode value in mButtons
        for (BottomNavigationItemView button : mButtons) {
            TextView mLargeLabel = getField(button.getClass(), button, "mLargeLabel");
            TextView mSmallLabel = getField(button.getClass(), button, "mSmallLabel");

            if (!visibility) {
                // if not record the font size, record it
                if (!visibilityTextSizeRecord && !animationRecord) {
                    visibilityTextSizeRecord = true;
                    mLargeLabelSize = mLargeLabel.getTextSize();
                    mSmallLabelSize = mSmallLabel.getTextSize();
                }

                // if not visitable, set font size to 0
                mLargeLabel.setTextSize(TypedValue.COMPLEX_UNIT_PX, 0);
                mSmallLabel.setTextSize(TypedValue.COMPLEX_UNIT_PX, 0);

            } else {
                // if not record the font size, we need do nothing.
                if (!visibilityTextSizeRecord)
                    break;

                // restore it
                mLargeLabel.setTextSize(TypedValue.COMPLEX_UNIT_PX, mLargeLabelSize);
                mSmallLabel.setTextSize(TypedValue.COMPLEX_UNIT_PX, mSmallLabelSize);
            }
        }

        // 4 change mItemHeight to only icon size in mMenuView
        if (!visibility) {
            // if not record mItemHeight
            if (!visibilityHeightRecord) {
                visibilityHeightRecord = true;
                mItemHeight = getItemHeight();
            }

            // change mItemHeight to only icon size in mMenuView
            // private final int mItemHeight;

            // change mItemHeight
//            System.out.println("mLargeLabel.getMeasuredHeight():" + getFontHeight(mSmallLabelSize));
            setItemHeight(mItemHeight - getFontHeight(mSmallLabelSize));

        } else {
            // if not record the mItemHeight, we need do nothing.
            if (!visibilityHeightRecord)
                return;
            // restore mItemHeight
            setItemHeight(mItemHeight);
        }

        mMenuView.updateMenuView();
    }

    /**
     * get text height by font size
     *
     * @param fontSize
     * @return
     */
    private static int getFontHeight(float fontSize) {
        Paint paint = new Paint();
        paint.setTextSize(fontSize);
        Paint.FontMetrics fm = paint.getFontMetrics();
        return (int) Math.ceil(fm.descent - fm.top) + 2;
    }

    /**
     * enable or disable click item animation(text scale and icon move animation in no item shifting mode)
     *
     * @param enable It means the text won't scale and icon won't move when active it in no item shifting mode if false.
     */
    public void enableAnimation(boolean enable) {
        /*
        1. get field in this class
        private final BottomNavigationMenuView mMenuView;

        2. get field in mButtons
        private BottomNavigationItemView[] mButtons;

        3. chang mShiftAmount to 0 in mButtons
        private final int mShiftAmount

        change mScaleUpFactor and mScaleDownFactor to 1f in mButtons
        private final float mScaleUpFactor
        private final float mScaleDownFactor

        4. change label font size in mButtons
        private final TextView mLargeLabel
        private final TextView mSmallLabel
         */

        // 1. get mMenuView
        BottomNavigationMenuView mMenuView = getBottomNavigationMenuView();
        // 2. get mButtons
        BottomNavigationItemView[] mButtons = getBottomNavigationItemViews();
        // 3. change field mShiftingMode value in mButtons
        for (BottomNavigationItemView button : mButtons) {
            TextView mLargeLabel = getField(button.getClass(), button, "mLargeLabel");
            TextView mSmallLabel = getField(button.getClass(), button, "mSmallLabel");

            // if disable animation, need animationRecord the source value
            if (!enable) {
                if (!animationRecord) {
                    animationRecord = true;
                    mShiftAmount = getField(button.getClass(), button, "mShiftAmount");
                    mScaleUpFactor = getField(button.getClass(), button, "mScaleUpFactor");
                    mScaleDownFactor = getField(button.getClass(), button, "mScaleDownFactor");

                    mLargeLabelSize = mLargeLabel.getTextSize();
                    mSmallLabelSize = mSmallLabel.getTextSize();

//                    System.out.println("mShiftAmount:" + mShiftAmount + " mScaleUpFactor:"
//                            + mScaleUpFactor + " mScaleDownFactor:" + mScaleDownFactor
//                            + " mLargeLabel:" + mLargeLabelSize + " mSmallLabel:" + mSmallLabelSize);
                }
                // disable
                setField(button.getClass(), button, "mShiftAmount", 0);
                setField(button.getClass(), button, "mScaleUpFactor", 1);
                setField(button.getClass(), button, "mScaleDownFactor", 1);

                // let the mLargeLabel font size equal to mSmallLabel
                mLargeLabel.setTextSize(TypedValue.COMPLEX_UNIT_PX, mSmallLabelSize);

                // debug start
//                mLargeLabelSize = mLargeLabel.getTextSize();
//                System.out.println("mLargeLabel:" + mLargeLabelSize);
                // debug end

            } else {
                // haven't change the value. It means it was the first call this method. So nothing need to do.
                if (!animationRecord)
                    return;
                // enable animation
                setField(button.getClass(), button, "mShiftAmount", mShiftAmount);
                setField(button.getClass(), button, "mScaleUpFactor", mScaleUpFactor);
                setField(button.getClass(), button, "mScaleDownFactor", mScaleDownFactor);
                // restore
                mLargeLabel.setTextSize(TypedValue.COMPLEX_UNIT_PX, mLargeLabelSize);
            }
        }
        mMenuView.updateMenuView();
    }

    /**
     * enable the shifting mode for navigation
     *
     * @param enable It will has a shift animation if true. Otherwise all items are the same width.
     */
    public void enableShiftingMode(boolean enable) {
        /*
        1. get field in this class
        private final BottomNavigationMenuView mMenuView;

        2. change field mShiftingMode value in mMenuView
        private boolean mShiftingMode = true;
         */
        // 1. get mMenuView
        BottomNavigationMenuView mMenuView = getBottomNavigationMenuView();
        // 2. change field mShiftingMode value in mMenuView
        setField(mMenuView.getClass(), mMenuView, "mShiftingMode", enable);

        mMenuView.updateMenuView();
    }

    /**
     * enable the shifting mode for each item
     *
     * @param enable It will has a shift animation for item if true. Otherwise the item text always be shown.
     */
    public void enableItemShiftingMode(boolean enable) {
        /*
        1. get field in this class
        private final BottomNavigationMenuView mMenuView;

        2. get field in this mMenuView
        private BottomNavigationItemView[] mButtons;

        3. change field mShiftingMode value in mButtons
        private boolean mShiftingMode = true;
         */
        // 1. get mMenuView
        BottomNavigationMenuView mMenuView = getBottomNavigationMenuView();
        // 2. get mButtons
        BottomNavigationItemView[] mButtons = getBottomNavigationItemViews();
        // 3. change field mShiftingMode value in mButtons
        for (BottomNavigationItemView button : mButtons) {
            setField(button.getClass(), button, "mShiftingMode", enable);
        }
        mMenuView.updateMenuView();
    }

    /**
     * get the current checked item position
     *
     * @return index of item, start from 0.
     */
    public int getCurrentItem() {
        /*
        1. get field in this class
        private final BottomNavigationMenuView mMenuView;

        2. get field in mMenuView
        private BottomNavigationItemView[] mButtons;

        3. get menu and traverse it to get the checked one
         */

        // 1. get mMenuView
//        BottomNavigationMenuView mMenuView = getBottomNavigationMenuView();
        // 2. get mButtons
        BottomNavigationItemView[] mButtons = getBottomNavigationItemViews();
        // 3. get menu and traverse it to get the checked one
        Menu menu = getMenu();
        for (int i = 0; i < mButtons.length; i++) {
            if (menu.getItem(i).isChecked()) {
                return i;
            }
        }
        return 0;
    }

    /**
     * get menu item position in menu
     *
     * @param item
     * @return position if success, -1 otherwise
     */
    public int getMenuItemPosition(MenuItem item) {
        // get item id
        int itemId = item.getItemId();
        // get meunu
        Menu menu = getMenu();
        int size = menu.size();
        for (int i = 0; i < size; i++) {
            if (menu.getItem(i).getItemId() == itemId) {
                return i;
            }
        }
        return -1;
    }

    /**
     * set the current checked item
     *
     * @param item start from 0.
     */
    public void setCurrentItem(int item) {
        // check bounds
        if (item < 0 || item >= getMaxItemCount()) {
            throw new ArrayIndexOutOfBoundsException("item is out of bounds, we expected 0 - "
                    + (getMaxItemCount() - 1) + ". Actually " + item);
        }

        /*
        1. get field in this class
        private final BottomNavigationMenuView mMenuView;

        2. get field in mMenuView
        private BottomNavigationItemView[] mButtons;
        private final OnClickListener mOnClickListener;

        3. call mOnClickListener.onClick();
         */
        // 1. get mMenuView
        BottomNavigationMenuView mMenuView = getBottomNavigationMenuView();
        // 2. get mButtons
        BottomNavigationItemView[] mButtons = getBottomNavigationItemViews();
        // get mOnClickListener
        OnClickListener mOnClickListener = getField(mMenuView.getClass(), mMenuView, "mOnClickListener");

//        System.out.println("mMenuView:" + mMenuView + " mButtons:" + mButtons + " mOnClickListener" + mOnClickListener);
        // 3. call mOnClickListener.onClick();
        mOnClickListener.onClick(mButtons[item]);

    }

    /**
     * get OnNavigationItemSelectedListener
     *
     * @return
     */
    public OnNavigationItemSelectedListener getOnNavigationItemSelectedListener() {
        // private OnNavigationItemSelectedListener mListener;
        OnNavigationItemSelectedListener mListener = getField(BottomNavigationView.class, this, "mSelectedListener");
        return mListener;
    }

    @Override
    public void setOnNavigationItemSelectedListener(@Nullable OnNavigationItemSelectedListener listener) {
        // if not set up with view pager, the same with father
        if (null == mMyOnNavigationItemSelectedListener) {
            super.setOnNavigationItemSelectedListener(listener);
            return;
        }

        mMyOnNavigationItemSelectedListener.setOnNavigationItemSelectedListener(listener);
    }

    /**
     * get private mMenuView
     *
     * @return
     */
    private BottomNavigationMenuView getBottomNavigationMenuView() {
        if (null == mMenuView)
            mMenuView = getField(BottomNavigationView.class, this, "mMenuView");
        return mMenuView;
    }

    /**
     * get private mButtons in mMenuView
     *
     * @return
     */
    public BottomNavigationItemView[] getBottomNavigationItemViews() {
        if (null != mButtons)
            return mButtons;
        /*
         * 1 private final BottomNavigationMenuView mMenuView;
         * 2 private BottomNavigationItemView[] mButtons;
         */
        BottomNavigationMenuView mMenuView = getBottomNavigationMenuView();
        mButtons = getField(mMenuView.getClass(), mMenuView, "mButtons");
        return mButtons;
    }

    /**
     * get private mButton in mMenuView at position
     *
     * @param position
     * @return
     */
    public BottomNavigationItemView getBottomNavigationItemView(int position) {
        return getBottomNavigationItemViews()[position];
    }

    /**
     * get icon at position
     *
     * @param position
     * @return
     */
    public ImageView getIconAt(int position) {
        /*
         * 1 private final BottomNavigationMenuView mMenuView;
         * 2 private BottomNavigationItemView[] mButtons;
         * 3 private ImageView mIcon;
         */
        BottomNavigationItemView mButtons = getBottomNavigationItemView(position);
        ImageView mIcon = getField(BottomNavigationItemView.class, mButtons, "mIcon");
        return mIcon;
    }

    /**
     * get small label at position
     * Each item has tow label, one is large, another is small.
     *
     * @param position
     * @return
     */
    public TextView getSmallLabelAt(int position) {
        /*
         * 1 private final BottomNavigationMenuView mMenuView;
         * 2 private BottomNavigationItemView[] mButtons;
         * 3 private final TextView mSmallLabel;
         */
        BottomNavigationItemView mButtons = getBottomNavigationItemView(position);
        TextView mSmallLabel = getField(BottomNavigationItemView.class, mButtons, "mSmallLabel");
        return mSmallLabel;
    }

    /**
     * get large label at position
     * Each item has tow label, one is large, another is small.
     *
     * @param position
     * @return
     */
    public TextView getLargeLabelAt(int position) {
        /*
         * 1 private final BottomNavigationMenuView mMenuView;
         * 2 private BottomNavigationItemView[] mButtons;
         * 3 private final TextView mLargeLabel;
         */
        BottomNavigationItemView mButtons = getBottomNavigationItemView(position);
        TextView mLargeLabel = getField(BottomNavigationItemView.class, mButtons, "mLargeLabel");
        return mLargeLabel;
    }

    /**
     * return item count
     *
     * @return
     */
    public int getItemCount() {
        BottomNavigationItemView[] bottomNavigationItemViews = getBottomNavigationItemViews();
        if (null == bottomNavigationItemViews)
            return 0;
        return bottomNavigationItemViews.length;
    }

    /**
     * set all item small TextView size
     * Each item has tow label, one is large, another is small.
     * Small one will be shown when item state is normal
     * Large one will be shown when item checked.
     *
     * @param sp
     */
    public void setSmallTextSize(float sp) {
        int count = getItemCount();
        for (int i = 0; i < count; i++) {
            getSmallLabelAt(i).setTextSize(sp);
        }
        mMenuView.updateMenuView();
    }

    /**
     * set all item large TextView size
     * Each item has tow label, one is large, another is small.
     * Small one will be shown when item state is normal.
     * Large one will be shown when item checked.
     *
     * @param sp
     */
    public void setLargeTextSize(float sp) {
        int count = getItemCount();
        for (int i = 0; i < count; i++) {
            getLargeLabelAt(i).setTextSize(sp);
        }
        mMenuView.updateMenuView();
    }

    /**
     * set all item large and small TextView size
     * Each item has tow label, one is large, another is small.
     * Small one will be shown when item state is normal
     * Large one will be shown when item checked.
     *
     * @param sp
     */
    public void setTextSize(float sp) {
        setLargeTextSize(sp);
        setSmallTextSize(sp);
    }

    /**
     * set item ImageView size which at position
     *
     * @param position position start from 0
     * @param width    in dp
     * @param height   in dp
     */
    public void setIconSizeAt(int position, float width, float height) {
        ImageView icon = getIconAt(position);
        // update size
        ViewGroup.LayoutParams layoutParams = icon.getLayoutParams();
        layoutParams.width = dp2px(getContext(), width);
        layoutParams.height = dp2px(getContext(), height);
        icon.setLayoutParams(layoutParams);

        mMenuView.updateMenuView();
    }

    /**
     * set all item ImageView size
     *
     * @param width  in dp
     * @param height in dp
     */
    public void setIconSize(float width, float height) {
        int count = getItemCount();
        for (int i = 0; i < count; i++) {
            setIconSizeAt(i, width, height);
        }
    }

    /**
     * set menu item height
     *
     * @param height in px
     */
    public void setItemHeight(int height) {
        // 1. get mMenuView
        final BottomNavigationMenuView mMenuView = getBottomNavigationMenuView();
        // 2. set private final int mItemHeight in mMenuView
        setField(mMenuView.getClass(), mMenuView, "mItemHeight", height);

        mMenuView.updateMenuView();
    }

    /**
     * get menu item height
     *
     * @return in px
     */
    public int getItemHeight() {
        // 1. get mMenuView
        final BottomNavigationMenuView mMenuView = getBottomNavigationMenuView();
        // 2. get private final int mItemHeight in mMenuView
        return getField(mMenuView.getClass(), mMenuView, "mItemHeight");
    }

    /**
     * dp to px
     *
     * @param context
     * @param dpValue dp
     * @return px
     */
    public static int dp2px(Context context, float dpValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

    /**
     * set Typeface for all item TextView
     *
     * @attr ref android.R.styleable#TextView_typeface
     * @attr ref android.R.styleable#TextView_textStyle
     */
    public void setTypeface(Typeface typeface, int style) {
        int count = getItemCount();
        for (int i = 0; i < count; i++) {
            getLargeLabelAt(i).setTypeface(typeface, style);
            getSmallLabelAt(i).setTypeface(typeface, style);
        }
        mMenuView.updateMenuView();
    }

    /**
     * set Typeface for all item TextView
     *
     * @attr ref android.R.styleable#TextView_typeface
     */
    public void setTypeface(Typeface typeface) {
        int count = getItemCount();
        for (int i = 0; i < count; i++) {
            getLargeLabelAt(i).setTypeface(typeface);
            getSmallLabelAt(i).setTypeface(typeface);
        }
        mMenuView.updateMenuView();
    }

    /**
     * get private filed in this specific object
     *
     * @param targetClass
     * @param instance    the filed owner
     * @param fieldName
     * @param <T>
     * @return field if success, null otherwise.
     */
    private <T> T getField(Class targetClass, Object instance, String fieldName) {
        try {
            Field field = targetClass.getDeclaredField(fieldName);
            field.setAccessible(true);
            return (T) field.get(instance);
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * change the field value
     *
     * @param targetClass
     * @param instance    the filed owner
     * @param fieldName
     * @param value
     */
    private void setField(Class targetClass, Object instance, String fieldName, Object value) {
        try {
            Field field = targetClass.getDeclaredField(fieldName);
            field.setAccessible(true);
            field.set(instance, value);
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }

    /**
     * This method will link the given ViewPager and this BottomNavigationViewEx together so that
     * changes in one are automatically reflected in the other. This includes scroll state changes
     * and clicks.
     *
     * @param viewPager
     */
    public void setupWithViewPager(@Nullable final ViewPager viewPager) {
        setupWithViewPager(viewPager, false);
    }

    /**
     * This method will link the given ViewPager and this BottomNavigationViewEx together so that
     * changes in one are automatically reflected in the other. This includes scroll state changes
     * and clicks.
     *
     * @param viewPager
     * @param smoothScroll whether ViewPager changed with smooth scroll animation
     */
    public void setupWithViewPager(@Nullable final ViewPager viewPager, boolean smoothScroll) {
        if (mViewPager != null) {
            // If we've already been setup with a ViewPager, remove us from it
            if (mPageChangeListener != null) {
                mViewPager.removeOnPageChangeListener(mPageChangeListener);
            }
        }

        if (null == viewPager) {
            mViewPager = null;
            super.setOnNavigationItemSelectedListener(null);
            return;
        }

        mViewPager = viewPager;

        // Add our custom OnPageChangeListener to the ViewPager
        if (mPageChangeListener == null) {
            mPageChangeListener = new BottomNavigationViewExOnPageChangeListener(this);
        }
        viewPager.addOnPageChangeListener(mPageChangeListener);

        // Now we'll add a navigation item selected listener to set ViewPager's current item
        OnNavigationItemSelectedListener listener = getOnNavigationItemSelectedListener();
        mMyOnNavigationItemSelectedListener = new MyOnNavigationItemSelectedListener(viewPager, this, smoothScroll, listener);
        super.setOnNavigationItemSelectedListener(mMyOnNavigationItemSelectedListener);
    }

    /**
     * A {@link ViewPager.OnPageChangeListener} class which contains the
     * necessary calls back to the provided {@link BottomNavigationViewEx} so that the tab position is
     * kept in sync.
     * <p>
     * <p>This class stores the provided BottomNavigationViewEx weakly, meaning that you can use
     * {@link ViewPager#addOnPageChangeListener(ViewPager.OnPageChangeListener)
     * addOnPageChangeListener(OnPageChangeListener)} without removing the listener and
     * not cause a leak.
     */
    private static class BottomNavigationViewExOnPageChangeListener implements ViewPager.OnPageChangeListener {
        private final WeakReference<BottomNavigationViewEx> mBnveRef;

        public BottomNavigationViewExOnPageChangeListener(BottomNavigationViewEx bnve) {
            mBnveRef = new WeakReference<>(bnve);
        }

        @Override
        public void onPageScrollStateChanged(final int state) {
        }

        @Override
        public void onPageScrolled(final int position, final float positionOffset,
                                   final int positionOffsetPixels) {
        }

        @Override
        public void onPageSelected(final int position) {
            final BottomNavigationViewEx bnve = mBnveRef.get();
            if (null != bnve)
                bnve.setCurrentItem(position);
//            Log.d("onPageSelected", "--------- position " + position + " ------------");
        }
    }

    /**
     * Decorate OnNavigationItemSelectedListener for setupWithViewPager
     */
    private static class MyOnNavigationItemSelectedListener implements OnNavigationItemSelectedListener {
        private OnNavigationItemSelectedListener listener;
        private final WeakReference<ViewPager> viewPagerRef;
        private boolean smoothScroll;
        private SparseIntArray items;// used for change ViewPager selected item
        private int previousPosition = -1;

        MyOnNavigationItemSelectedListener(ViewPager viewPager, BottomNavigationViewEx bnve, boolean smoothScroll, OnNavigationItemSelectedListener listener) {
            this.viewPagerRef = new WeakReference<>(viewPager);
            this.listener = listener;
            this.smoothScroll = smoothScroll;

            // create items
            Menu menu = bnve.getMenu();
            int size = menu.size();
            items = new SparseIntArray(size);
            for (int i = 0; i < size; i++) {
                int itemId = menu.getItem(i).getItemId();
                items.put(itemId, i);
            }
        }

        public void setOnNavigationItemSelectedListener(OnNavigationItemSelectedListener listener) {
            this.listener = listener;
        }

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            int position = items.get(item.getItemId());
            // only set item when item changed
            if (previousPosition == position) {
                return true;
            }

            // user listener
            if (null != listener) {
                boolean bool = listener.onNavigationItemSelected(item);
                // if the selected is invalid, no need change the view pager
                if (!bool)
                    return false;
            }

            // change view pager
            ViewPager viewPager = viewPagerRef.get();
            if (null == viewPager)
                return false;

            viewPager.setCurrentItem(items.get(item.getItemId()), smoothScroll);

            // update previous position
            previousPosition = position;

            return true;
        }

    }

    public void enableShiftingMode(int position, boolean enable) {
        getBottomNavigationItemView(position).setShiftingMode(enable);
    }

    public void setItemBackground(int position, int background) {
        getBottomNavigationItemView(position).setItemBackground(background);
    }

    public void setIconTintList(int position, ColorStateList tint) {
        getBottomNavigationItemView(position).setIconTintList(tint);
    }
    public void setTextTintList(int position, ColorStateList tint) {
        getBottomNavigationItemView(position).setTextColor(tint);
    }

    /**
     * set margin top for all icons
     * @param marginTop in px
     */
    public void setIconsMarginTop(int marginTop) {
        for (int i = 0; i < getItemCount(); i++) {
            setIconMarginTop(i, marginTop);
        }
    }

    /**
     * set margin top for icon
     * @param position
     * @param marginTop in px
     */
    public void setIconMarginTop(int position, int marginTop) {
        /*
        1. BottomNavigationItemView
        2. private final int mDefaultMargin;
         */
        BottomNavigationItemView itemView = getBottomNavigationItemView(position);
        setField(BottomNavigationItemView.class, itemView, "mDefaultMargin", marginTop);
        mMenuView.updateMenuView();
    }

}

redpajama_set_name: RedPajamaGithub


text:
MISS Online: The death of Swift's printer John Harding
17 Nov 2020 28 Jul 2021 by isaanz
Tuesday 17th November, 2020 at 6:30pm (AEDT) on Zoom
Dr. Craig Pett, journalist and researcher
The death of Swift's printer John Harding: new evidence that implicates Swift
John Harding, the printer of the seditious Letters written by Jonathan Swift under the pseudonym 'M.B. Drapier', died five months after his imprisonment in November 1724. It has been assumed that he died from jail fever, which is an assumption that consigns his death to the realm of 'accident' and which leaves Swift's reputation unquestioned. This paper presents never-before-seen evidence suggesting that Harding, who had been due to appear in court, was the victim of a vicious beating ordered by the Lord Lieutenant, John Carteret, Swift's friend, and carried out with tacit knowledge on Swift's part. The evidence is seen by returning to the primary sources and discarding the assumption that Swift was without fear through these events. It is evidence that is clear and unmistakable and which overturns long-entrenched beliefs about the character of this canonical writer.
Craig Pett works in the educational publishing industry, as well as an independent journalist and researcher. Craig was the runner-up in the 2018 Thawley Spectator Australia essay competition. That essay as well as two subsequent articles appeared in The Spectator Australia and can be found on his blog. One of his research areas is eighteenth-century studies, in particular the Dublin printing scene during the years of Jonathan Swift's Irish career. Craig studied law at The University of Adelaide and practised for a few years in Adelaide before moving to Melbourne. The title of his PhD thesis was "I am no inconsiderable Shop-Keeper in this Town. Swift and his Dublin Printers of the 1720's: Edward Waters, John Harding and Sarah Harding".
The seminar will start at 6:30pm Australian Eastern Daylight Time (Melbourne); 8.30pm New Zealand Daylight Time (Wellington); 7:30am Greenwich Mean Time (Dublin)
For zoom details RSVP: melbirishstudies [at] gmail.com.
For queries contact: melbirishstudies [at] gmail.com or dianne.hall [at] vu.edu.au
RECORDING – Video
RECORDING – Audio
MISS Online: Women and the shaping of Modern Ireland
MISS Online: Vincent Hearnes and the cultural landscape of Irish Australia
One thought on "MISS Online: The death of Swift's printer John Harding"
Pingback: 'The death of Swift's printer John Harding – new evidence that implicates Swift', Melbourne Irish Studies Seminar Series, 17 November 2020. – Craig Pett

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Performance Clustermap in R I found this very appealing chart about the performance of the S&P500 from the WSJ.:

I'm trying to recreate it in R but I have no idea how to best plot the data, eg
data<-data.frame(stock=c("A","B","C","D"),group=c(rep("Fin",2),rep("Ind",2)),Perf=rnorm(4,0,1),mvalue=abs(rnorm(4,100,50)))

Has anybody a idea how to recreate it (e.g. with ggplot2?) or has anybody ever done a similar plot? Thx in advance.

A: treemapify is a ggplot2 solution, as you were hoping for.
https://github.com/wilkox/treemapify
And the results are beautiful & flexible - typical of ggplot2 and its extensions.

A: You are looking for treemap:
require(treemap)
treemap(data,c("group","stock"),"mvalue",vColor="Perf",type="value")

This example from the treemap package is also helpful:
data(GNI2010)
treemap(GNI2010,
        index=c("continent", "iso3"),
        vSize="population",
        vColor="GNI",
        type="value")

Using the search term "treemap" you will find more information, e.g., http://en.wikipedia.org/wiki/Treemap

A: Or portfolio:
require(portfolio)

dt<-data.frame(ticker=paste0(sample(LETTERS,100,T),sample(LETTERS,100,T),sample(LETTERS,100,T)),
           value=abs(rnorm(100,10000,4000)),
           perc_change=rnorm(100,0,0.1),
           group=sample(LETTERS[1:4],100,T)
               )

rownames(dt)

map.market(dt$ticker,lab=c(T,T), area=dt$value, group=dt$group, color=dt$perc_change, main="Stock Map")

redpajama_set_name: RedPajamaStackExchange


Getting Fat – Part 2 – We're Having A Baby!
This is part 2 of how I got fat. If you missed the beginning of the story you may want to get caught up.
I was just catching my groove on the whole working out thing. And by "catching my groove" I mean I hadn't missed an appointment with my personal trainer in two weeks. Maybe three. I'll give myself the benefit of the doubt here. You may remember this was about the time my husband and I decided to start our family. Much to my surprise, I was pretty damn fertile.
We both really wanted to have a baby and I realize how incredibly fortunate we were to get pregnant pretty much right away. That, however, did not take away from the utter shock of that positive pregnancy test. And the other four that followed (in the next 10 minutes). I made my doctor's appointment right away and yep, there was in fact a little bun in the oven. Also, according to my doctor, I was a little short for my weight. He told me I'd have to be careful with putting weight on since I was already considered "overweight". Thankfully it was only by a few pounds (if I remember correctly I was 155 or so and I'm 5'4), but seriously, who wants to hear that crap? And, it's not like I could start dieting then anyway. But I did decide I would still go to the gym. I vowed to myself that when I delivered I would have really buff arms and perfectly pedicured feet. I went to approximately two aerobics classes and the only sport I did after that was eating. My feet, however, looked fabulous on delivery day!
I left the doctor's office and headed straight to the first Wendy's drive thru I could find. I was a hot mess and hadn't been able to get in touch with my husband. (I think I had paged him. Hello, it was 2000!) I ordered a salad (of the taco variety). Hey, I was eating for two so I was being healthy. (This was before I knew a taco salad wasn't actually healthy.) I also ordered a large Frosty. For the calcium, of course. (I'm not even sure those are actually milk based to be honest with you.) This was just the beginning of my pregnancy melt down. Oh, and I was approximately five weeks pregnant at this point.
There were many, many binges during this pregnancy. And the food wasn't just craptastic. I was a freaking maniac and would eat anything I could get my hands on. I remember laying on my bathroom floor crying in shame because I had just eaten five bananas. I was hormonal and clearly unstable. The good news was, my pregnancy was a breeze and I absolutely LOVED being pregnant.
Toward the end of my pregnancy our 15 year old nephew, Chris, started staying with us to take care of our dogs when I went into the hospital. I had also already began my maternity leave because I was too fat to work. Okay, that's not really true. But the simple act of blow drying my hair literally winded me. The walk from my car to my office was exhausting. It was summer time and you don't even want to know about all the sweating. UGH! Plus, there was food to be eaten. I was far too distracted for working. So, instead, my nephew and I went to Golden Corral every day for lunch while my husband worked. We would see who could eat the most. If you have ever seen a 15 year old boy eat, you know how absolutely ridiculous that is. I gained 10 pounds in my 8th month. Yep, ten. Iwas wearing XXL maternity clothes. DOUBLE EXTRA LARGE! Holy fatness!
Two days before I delivered our daughter, I weighed 201 pounds. Two hundred and one pounds. I weighed the same as my husband (who had also gained the required "sympathy weight"). You know that gross, blubbery, snotty cry that people do? Yeah, I totally did that. And then went to lunch at Golden Corral. I fully expected someone to come out of the back and yell, "YOU GO HOME NOW!". They never did. And we kept eating. And eating!
I told myself after the baby was born it would be on like Donkey Kong. She was born in August 2001….
This entry was posted in Body Image, Finding Balance, How I Got Fat and tagged balance, Eating, Golden Corral, Health, kids, mental fitness, Pregnancy, Weight loss. Bookmark the permalink.


Welcome to Friday, dear friends. I don't know about you, but I wouldn't mind visiting another planet in the coming days, so long as the inhabitants were peaceable and there were no forest fires. I'd also want them to have good coffee and choclate . . . and comfy bedrooms with private baths. Other than that, I'd totally be up for something different. But since that does not seem to be an option, I'll content myself to finding small amounts of time in which to read. These remaining days of summer are proving to be busy suckers.
1,100 Haiku are headed to Mars thanks to a contest hosted by University of Colorado. I wonder if martians will think we routinely communicate in three phrases of 5, 7 and 5 on.
Being field notes and all, it only fitting we highlight "A Field Guide to Uncommon Punctuation" by Peter Kispert (McSweeney's). Always good to be prepared, you know.
You realize Dave Eggers is the founder of McSweeney's, right? Well, his latest novel,The Circle, will be released by Knopf in October. It looks to be full of intrigue. There's a slight chance it will also make you a bit more neurotic.
Good news for David Baldacci fans who love fantasy — he's set to to write fantasy novel for young adults (YA). Sounds like a win-win to me. I do hope we're not disappointed.
Whenever there is a school tragedy, we ask what's wrong with teachers, education, and the youth. Logical questions to pose in the wake of tragedy. But I wonder if we are not missing out when we fail to ask this question: What is going right on the many days when kids in crisis get help and tragedy is avoided? There are hero teachers in every high school quietly helping troubled teens. We can learn from them . . .
There are no clues indicating parts of Thomas Kyd's play "The Spanish Tragedy" were, in fact, written by Shakespeare. Mainly, spelling and handwriting. Living in an electronic age, as we do, makes you wonder how we'll ever solve such a dilemma for works of today, squabbled over in the future.


text:
Home/Landscape/Social enterprise bike shop crowdfunds to create cycle cafe in Leicester
Social enterprise bike shop crowdfunds to create cycle cafe in Leicester
BikeBiz 16th February 2018	Landscape
Social enterprise bike shop Future Cycles is crowdfunding to raise cash to open a cycle cafe in Leicester city centre. As well as serving caffeinated beverages – and cake, natch – this venue would promote "Leicester's cycling culture, new developments and all things cycling."
Future Cycles was founded in 2010 and has carved out a niche selling refurbed vintage cycles and parts. It trades from premises on Market Street, and also sells recumbents, trikes, tandems and cargo bikes. The shop started life as a mechanics' training scheme, and also operates a seven-days-a-week cycle parking facility in Leicester's Town Hall on behalf of the city council.
"We also operate a cycle maintenance training facility," said director Tim Hudson.
"During term time we work with schools to train pupils as part of an alternative curriculum. Outside of these times we also offer training to the wider public."
Future Cycles employs eight people, most of whom were previously long-term unemployed.
In a 2015 profile of the business, BikeBiz said the store "profits from 1950s-1970s zombikes brought back from the dead."
The shop's crowdfunding campaign is seeking £9,974 and has so far received pledges of £130 from four thirsty backers.
Previous Jobs of the week
Next Millions of dockless bikes are taking cars off the street, says Chinese government


I got out the old soldering iron and removed the blue plastic film to get access to the rivet holes and started deburring.
I finished deburring, dimpling and edge sanding on the outboard top skin for the right wing.
I laid everything out in the back yard on some scrap lumber and primed all the surfaces of the ribs. Then I only primed the places on the skin where it made contact with the ribs.
The tilting jig that I built for the tank came in handy when putting in these rivets.
4/15/2007 - Started puttin' on the them skins!
4/24/2007 - Hey, remember me? I'm baaaccckkkkk!
My rivet gun buddy and I are working during our lunch break from work to wack out some of the rivets. We managed to finish the inboard right wing skin. Looking good!
4/28/2007 - Back to work!
My good buddy Norwood and I came out again at lunch today determined to finished up riveting the skin to the spars and ribs.
After my riveting buddy finished riveting on the J Stringer, we loaded to the right wing on to the wing cradle. Sure feels great to get this done.


text:
248.731.0029|info@sghwm.com
Retirement Income Tax Planning
Why SGHWM
Fee Comparison
Read What I'm Reading: Dec. 4th, 2020
The New Phone Books are Here: Tax Law Updates for 2021
SGH Wealth Management's "Read What I'm Reading" Dec. 2020 | Dec. 4th, 2020
Every year, the U.S. tax system resets its limits and allowable contributions caused by inflation, and the most recent changes (affecting tax year 2021) were recently announced. These are important numbers to us here at SGH Wealth Management because it sets the framework for our year-end tax planning advice involving:
· Roth Conversions
· Mega Back-Door Roth Strategies
· Required Minimum Distribution Planning
· Qualified Charitable Distributions
· Year-End Tax Loss Harvesting.
Last year, single taxpayers could fully deduct their contributions to traditional IRA accounts if their income was at or below $65,000; now that income limit has moved up to $66,000, at which point the allowable deduction phases out until it disappears completely at the $76,000 income level. For married filing jointly couples, the phase-out range shifted slightly, from $105,000-$125,000, up from $104,000-$124,000 income levels. The limit on annual contributions remains at $6,000, with a $1,000 additional permitted "catch-up" contribution for people age 50 and over.
The limits on contributions that can be made by employees who participate in 401(k), 403(b) and most 457 plans was unchanged at $19,500, and there was no change in the $6,500 catch-up contribution limit for employees age 50 and over. Participants in SIMPLE retirement accounts can still contribute $13,500.
The limits on the annual benefit under a defined benefit plan remains unchanged at $230,000, and the limits for defined contribution plans will go up in 2021 from $57,000 to $58,000.
Everyone here at SGH wishes you a great end of year and holidays. We looking forward to being able to be face-to-face again and saying "good-bye" to 2020! Cheers,
Read the Paper
Ashley Taylor2020-12-18T15:58:27-05:00
Read What I'm Reading: Jan. 13th, 2023
Read What I'm Reading: Dec. 2nd, 2022
Read What I'm Reading: Nov. 4th, 2022
Read What I'm Reading: Oct. 7th, 2022
Read What I'm Reading: Sep. 9th, 2022
17550 W Eleven Mile Rd
Lathrup Village, MI 48076
Email: info@sghwm.com
Do You Know What You're Paying In Your Current Investment Strategy?
What Does a Fiduciary Even Mean Anymore?
View past editions of "Read What I'm Reading
© Copyright SGH Wealth Management | All Rights Reserved | Join Us on LinkedIn
SGH Wealth Management is registered as a large investment advisory firm with the U.S. Securities and Exchange Commission. The adviser may not transact business in states where it is not appropriately registered, excluded or exempted from registration. Individualized responses to persons that involve either the effecting of transaction in securities, or the rendering of personalized investment advice for compensation, will not be made without registration or exemption.
SGH Wealth Management


text:
Jan Gabriel Tęczyński herbu Topór (ur. 1484, zm. 21 maja 1552) – podkomorzy (1515) i wojewoda sandomierski (1542), kasztelan (1518) i starosta lubelski, lelowski, bełski, trembowelski, marszałek nadworny koronny (1529), kasztelan wojnicki (1535), hrabia Świętego Cesarstwa Rzymskiego (1527), poseł do sułtana Sulejmana Wspaniałego w 1524 roku dla negocjowania rozejmu.

Życiorys
Był synem Gabriela Tęczyńskiego i Anny z Konińskich. Posiadał liczne rodzeństwo. Braci Stanisława Tęczyńskiego i Andrzeja Tęczyńskiego oraz cztery siostry.
Od około 1512 był żonaty z Dobrochną Sapieżanką (zm. po 1512) – córką Jana Sapiehy. Po jej śmierci ożenił się przed 1539 z Anną Kamieniecką córka Jana Kamienieckiego i Anny Buczackiej. Od około 1540 jego żoną była Anna Sienieńska. Z pierwszą żoną miał syna Stanisława Gabriela Tęczyńskiego i córkę Beatę Tęczyńską (ur. ok. 1520), której mężem był Jan Zabrzeziński – syn Jana.
W młodości studiował na Akademii w Krakowie. Jan Gabriel wychowywał się na dworze w Królewcu; uważany był za najbliższego zaufanego człowieka królowej Bony; W 1510 wraz z braćmi Stanisławem i Andrzejem odkupił od Zofii Słaboszowej połowę dóbr kraśnickich, a w kilka lat później drugą połowę miasta Kraśnika od braci Wodów. Od 1527 roku wraz z innymi Tęczyńskimi od cesarza Karola V otrzymał tytuł Hrabiego SIR (hrabia Cesarstwa – Sacri Imperii Romani). Jan Gabriel przez króla Polski Zygmunta I został wydelegowany w poselstwie do królów węgierskich, czeskich, Solimana, Ferdynanda.

Był chorążym lubelskim (1516–1518), kasztelanem lubelskim (1518–1535), marszałkiem nadwornym (1529–1552), kasztelanem wojnickim (1535–1542), wojewodą sandomierskim (1542–1552), starostą lubelskim (1530–1552), starostą lelowskim (1533–1552). Zostając dziedzicem całego Kraśnika, ustanowił tutaj siedzibę swojej linii. W 1541 przyłączył do Kraśnika przyległą wieś Wolę Piasecką (Piaski).

W 1531 z fundacji Jana Gabriela Tęczyńskiego, poza murami miejskimi Kraśnika rozpoczęto budowę, drewnianego kościoła szpitalnego pw. Św. Ducha i szpitala dla ubogich. W 1541 Jan Gabriel Tęczyński nadał Kraśnikowi przywilej odbywania targów w dni piątkowe i jarmarków czwartego dnia przed Janem Chrzcicielem. Około 1541 rozpoczął przebudowę tamtejszego kościoła na rodzinną nekropolię. Prace te do około 1561 roku kontynuował jego syn Stanisław Gabriel.

W latach 1550–1553 z fundacji Jana Gabriela wykonano w kościele parafialnym w Kraśniku nagrobek renesansowy jego brata Stanisława Gabriela Tęczyńskiego zmarłego w 1550. Odlana z brązu reliefowa płyta nagrobna z leżącą postacią rycerza w zbroi w antycznej pozie spoczynku pochodzi z krakowskiego warsztatu Bernardina Zanobi de Gianotis. Charakterystyczna architektoniczna oprawa płyty wykonana została zapewne w krakowskim warsztacie Giovanniego Cini z Sieny ściśle współpracującego z Bernardinem.

Jan Gabriel Tęczyński zmarł 21 maja 1552. W latach 1553–1561 wykonano w kościele parafialnym w Kraśniku, dzięki mistrzom warsztatów krakowskich, renesansowy nagrobek Jana Gabriela Tęczyńskiego. Była to fundacja jego syna – Stanisława Gabriela Tęczyńskiego – wojewody sandomierskiego i krakowskiego.

Przypisy

Bibliografia
 Janusz Kurtyka, Tęczyńscy. Studium z dziejów polskiej elity możnowładczej w średniowieczu. Wydawnictwo Secesja, 1997

Członkowie dworu królewskiego Zygmunta I Starego
Członkowie dworu królewskiego Zygmunta II Augusta
Ludzie związani z Kraśnikiem (I Rzeczpospolita)
Polscy hrabiowie Świętego Cesarstwa Rzymskiego
Posłowie I Rzeczypospolitej w Imperium Osmańskim
Posłowie I Rzeczypospolitej w Królestwie Czech
Posłowie I Rzeczypospolitej w Królestwie Węgier
Kasztelanowie lubelscy
Kasztelanowie wojniccy
Marszałkowie nadworni koronni
Senatorowie świeccy I Rzeczypospolitej
Senatorowie za panowania Zygmunta I Starego
Senatorowie za panowania Zygmunta II Augusta
Starostowie lubelscy
Starostowie lelowscy
Starostowie bełscy
Starostowie trembowelscy
Jan Gabriel Tęczyński
Podkomorzowie sandomierscy
Polscy bożogrobcy
Urodzeni w 1484
Urzędnicy ziemscy I Rzeczypospolitej
Wojewodowie sandomierscy (I Rzeczpospolita)
Zmarli w 1553

redpajama_set_name: RedPajamaWikipedia


Infinity Computing is a family owned and operated business services company located in Winter Springs Florida. We specialize in on-site computer repair and service for both residential and small business needs. We also offer website design and hosting as well as bookkeeping services.
Infinity Computing focuses on providing quality computer repair and maintenance. You can count on us to get your computer repaired and running no matter what the problem. Our experienced and knowledgeable staff offers you personalized service that you won't find elsewhere. We offer on-site home and business computer repair and maintenance services as well as remote services. We perform repairs on all types of systems and complete all computer repairs quickly and thoroughly.
We understand that response time to your service call is critical. Beyond our commitment to a speedy response time, we have dedicated many resources to best serve our customers.
We want to be the company you call for all of your computer needs, not just today but for always!


text:
Home | Assign A Loss | Our Company | Our Services | Portfolio | Team Members | Contact
Peter T. Strongrich
General Adjuster / President
Email: PTS@sradjusters.com
Peter T. Strongrich began his career in the insurance industry in 1978 with The ASU Group after graduating from Michigan State University with a degree in biology/chemistry. During his years with The ASU Group, Mr. Strongrich rapidly advanced his position with the company from that of a property adjuster to National General Adjuster. He too, has testified as an expert witness in local, state and federal courts on numerous issues.
Mr. Strongrich became an experienced commercial and personal lines adjuster, proficient in policy language, interpretation and advanced business interruption skills. He has heavy experience in value determination, litigation file management and arson/fraud investigations.
Past positions held by Mr. Strongrich were that of VP of Property Operations, VP Quality Control, VP Products, VP Administration, Training Director and Regional/Branch Manager(s). For several years, he also served on the board of directors for a large independent adjusting firm.
Mr. Strongrich has been nationally recognized in the industry and currently has served on the PLRB/LIRB National Planning Committee. He has also served the industry as a member/presenter for the PLRB/LIRB, National Forum for Property Loss Professionals and Loss Executives Association. He has, for many years, been an adjunct faculty member for the Olivet College Department of Insurance.
In their first twenty months of operation, Strongrich & Associates, Inc. has been assigned and successfully adjusted nearly 2000 claims as well as more than doubling their client list, once again proving that their core values and performance are in high demand in the industry.
HOME | assign a loss | Our Company | Our Services | portfolio | OUR adjusters | CONTACT
© 2023 Behind Your Design


text:
Hypnagogue Podcast
Hypnagogue Music Reviews
Johan Agebjörn, Notes
March 27, 2015 HypnagogueLeave a comment
Feeling down? Rough day? No worries. Johan Agebjörn just showed up with a copy of Notes, and everything's going to be all right—or at least seem that way for 45 minutes or so. Between slightly fluffy, sometimes jazz-tinged instrumental tracks and a handful of vocal offerings that range from shoegaze-y quiet to smoky lounge, Notes stuffs a lot of feel-good into just over 45 minutes. Some may have a small problem, as did I at first, getting through the sugar-glazed barrier that is the opening track, "The Right to Play," but I came around to the thematically appropriate charm of its shiny little notes running up and down the keyboard. Just as a side note, my ears keep hearing the central riff as kind of day-glo revisitation of Iggy Pop's "The Passenger." (Though I must say, Johan—although it fits the title, the slide whistle is a bit much.) And unless my ears deceive me, and they may, that central riff finds its way into several of the tracks. I believe I hear it in the moody waltz of "The Boy Who Thought It Was A Good Idea To Cry" and later, slowed down, it re-emerges as the melody for "The Leftovers." I quite like that track, with guest artist Loney, Dear sounding like a man talking to himself during a a walk in the rain. Agebjörn's backdrop stays quiet, a combination of misty susurrus and a walking bass line, letting us focus on the rhythm and impact of the words. Agebjörn offers a particularly strong duo in the combination of "Will They Forgive Us" and his remix of Brain Machine's "Alpha Beta Gamma." The first is a nice blend of hurried sequencer lines and silky flute, with a thumping beat folded in. The mix of fast and slow works very well. Take a moment to admire how smoothly Agebjörn slips into "Alpha…," the beat rising in force as cool electric piano notes lay down a jazzy lead. The toes, oh how they will tap.
As for the vocal tracks, which I don't normally review, as I mentioned above, I very much dig the Loney, Dear collaboration. Sally Shapiro, with whom Agebjörn collaborates regularly in a project that bears her name, appears on two tracks to lend her high, elfin tones. Not my favorite moments on the release, but a fine addition. Canadian dream-pop band Young Galaxy bring the shoegaze element in the form of "You Passed Through." Vocalist Catherine McCandless' voice has a smoky ennui and mild sadness about it that works well on the track.
All in all, Notes is a nicely constructed, thoughtful album that's easy to float through. Where it's light, it's very light. Where it wraps itself in a dreamy fog, it gets better. I can't say for sure whether Agebjörn is playing with the idea of manipulating a central musical theme and seeing in how many directions he can take it, but there are moments that ring with a touch of sameness. Mind you, it works, but some might feel slighted at hearing the echoes. Still, an enjoyable release from Johan Agebjörn that you should hear.
Available from Paper Bag Records.
Soiled/Marcus H, Splices and Phases
SourceCodeX, Rebirth
Before You Send
Hypnagogue is open to submissions for review and podcasting. But PLEASE, before sending anything, take the time to read the Contact/Submissions page. Yes, it matters.
I'll Email You
Would you like to get an email every time a review posts? Just say yes.
I'm on Facebook and Twitter. Email? Sure. It's hypnagogue@hotmail.com
Look For Words
The Last Ten
So Long, and Thanks for All the Support
Visiting Cat, Host
Eyes Cast Down, Souls Adrift, in Disrepair
Von Geistley, Winter
Red Sky Lullaby, Very Own Special Day
Memorybell, Obsolete
Loren Nerell, The Venerable Dark Cloud
Joe Frawley, How They Met Themselves
Secoya, The World Is Yours
Erik Scott, In the Company of Clouds
Into The Library
Into The Library Select Month July 2017 (1) June 2017 (8) May 2017 (8) April 2017 (6) March 2017 (13) February 2017 (12) January 2017 (15) December 2016 (7) November 2016 (8) October 2016 (10) September 2016 (11) August 2016 (7) July 2016 (11) June 2016 (11) May 2016 (5) April 2016 (7) March 2016 (6) February 2016 (3) January 2016 (10) December 2015 (12) November 2015 (15) October 2015 (13) September 2015 (14) August 2015 (11) July 2015 (9) June 2015 (17) May 2015 (12) April 2015 (15) March 2015 (13) February 2015 (17) January 2015 (11) December 2014 (5) November 2014 (6) October 2014 (15) September 2014 (18) August 2014 (8) July 2014 (6) June 2014 (8) May 2014 (9) April 2014 (7) March 2014 (9) February 2014 (6) January 2014 (9) December 2013 (13) November 2013 (13) October 2013 (14) September 2013 (15) August 2013 (16) July 2013 (12) June 2013 (16) May 2013 (14) April 2013 (7) March 2013 (11) February 2013 (14) January 2013 (14) December 2012 (17) November 2012 (12) October 2012 (13) September 2012 (17) August 2012 (12) July 2012 (17) June 2012 (14) May 2012 (16) April 2012 (13) March 2012 (11) February 2012 (6) January 2012 (15) December 2011 (11) November 2011 (12) October 2011 (15) September 2011 (11) August 2011 (13) July 2011 (10) June 2011 (5) May 2011 (12) April 2011 (13) March 2011 (14) February 2011 (10) January 2011 (7) December 2010 (6) November 2010 (12) October 2010 (12) September 2010 (19) August 2010 (8) July 2010 (6)
If you are an artist who has been reviewed here, YES, you absolutely may use part or all of your review in your promotional efforts. That's what it's here for!


text:
Spotify successfully opposes POTIFY applications based on dilution by blurring
By Felicia Boyd (US) on February 9, 2022 Posted in Brands, Copyright, Intellectual Property, Trademark
In its first precedential decision of 2022, the Trademark Trial and Appeal Board ("TTAB") sustained two oppositions filed by Spotify AB ("Spotify") against registration of POTIFY for use in connection with an online ordering platform and community for medical and recreational cannabis consumers to connect with legal marijuana retailers. Both oppositions were sustained on Spotify's dilution by blurring claim, with the TTAB not reaching Spotify's likelihood of confusion or dilution by tarnishment claims. Spotify AB v. U.S. Software Inc., 2022 USPQ2D 37 (TTAB 2022).
Applicant U.S. Software Inc. ("Applicant") develops sales systems, telemedicine systems and enterprise resource planning systems. Applicant's POTIFY platform is designed to permit legal marijuana dispensaries to market and sell their products, including via mobile applications and websites. Spotify AB, 2022 USPQ2D 37 at *13–14. Applicant sought registration of POTIFY, both in standard characters, and stylized with the following design element:
for use in connection various services including downloadable software for use in searching, creating and making compilations, rankings, ratings, reviews, referrals and recommendations relating to medical marijuana dispensaries and doctor's offices and displaying and sharing a user's location and finding, locating, and interacting with other users and place, and clothing, namely, shirts, tops, t-shirts, hoodies, headwear, shorts. Spotify AB, 2022 USPQ2D 37 at *1–2.
Opposer Spotify AB is a Swedish audio streaming and media services provider. It is one of the largest music streaming service providers with over 406 million monthly active users, including 180 million paying subscribers. Spotify offers digital copyright restricted recorded music and podcasts from record labels and media companies. Users can search for music based on artist, album, or genre, and can create, edit, and share playlists. Spotify AB, 2022 USPQ2D 37 at *7.
Opposer, Spotify AB, alleged in both of its notices of opposition prior common law rights and registration of SPOTIFY, in standard characters, for not only computer software for use in the delivery, distribution and transmission of digital music and entertainment-related content, but also entertainment services and a range of sound and television broadcasting services for music and films, on-line chat rooms and discussion forums for transmission of messages and digital pictures among users in the field of general interest. Spotify AB, 2022 USPQ2D 37 at *2–3.
Basis of opposition
Spotify alleged dilution by both blurring and tarnishment. To prevail, Spotify was required to show that (1) it owns a famous mark that is distinctive; (2) Applicant was using a mark in commerce that allegedly dilutes Opposer's famous mark; (3) Applicant's use of its mark began after Opposer's became famous; and (4) Applicant's use of its mark is likely to cause dilution by blurring or tarnishment. N.Y. Yankees P'ship v. IET Prods. & Servs., Inc. 114 USPQ2d 1497, 1502 (TTAB 2015) (quoting Coach Servs. v. Triumph Learning LLC, 101 USPQ2d 1713, 1723-24 (Fed. Cir. 2021). The TTAB chose to focus solely on dilution by blurring and not to reach whether use of Applicant's POTIFY mark is also likely to dilute Opposer's SPOTIFY by tarnishment. Spotify AB, 2022 USPQ2D 37 at *21–22.
Spotify mark is "exceedingly" famous
The TTAB had no trouble concluding that the SPOTIFY mark was famous based upon the evidence in the record. There was no dispute that SPOTIFY was inherently distinctive and the TTAB turned to the question of whether SPOTIFY was sufficiently "famous" to qualify for protection against dilution. Spotify AB, 2022 USPQ2D 37 at *21.
To be "famous," the TTAB must determine whether the mark at issue "is widely recognized by the general consuming public of the United States as a designation of source of the goods or services of the mark's owner." N.Y. Yankees P'ship, 114 USPQ2d at 1502 (quoting 15 U.S.C. § 1125(c)(2)(A). In doing so, the TTAB will consider:
(i) The duration, extent, and geographic reach of advertising and publicity of the mark, whether advertised or publicized by the owner or third parties.
(ii) The amount, volume, and geographic extent of sales of goods or services offered under the mark.
(iii) The extent of actual recognition of the mark.
(iv) Whether the mark was registered under the Act of March 3, 1881, or the Act of February 20, 1905, or on the principal register.
15 U.S.C. § 1125(c)(2)(A).
The TTAB reviewed the evidence of widespread use and recognition of the mark put forth by Spotify AB and highlighted the following as part of its "fame" analysis:
Opposer "promotes its products and services under the SPOTIFY mark to a wide variety of consumers, including across age groups (from younger users to older listeners) and across all geographic regions in the U.S. (from West, Northwest, Midwest, South and others)."
Opposer advertises in well known, national publications such as THE NEW YORK TIMES, THE WASHINGTON POST, VANITY FAIR and ROLLING STONE, as well as all of the major broadcast television networks, and many cable television and radio networks. It also advertises itself in connection with, and gains publicity from, several nationally televised or distributed programs in a variety of genres, which we can safely assume exposes fans of those programs to the SPOTIFY mark, even if those fans are not prospective SPOTIFY customers.
Opposer has "exclusive podcast partnership deals" with famous celebrities including Michelle Obama, Joe Rogan and Kim Kardashian West.
Opposer's "President of Playlists" job posting after President Obama expressed a desire to work for Opposer was so successful and engaging that it became "the number one trending moment on Twitter."
Opposer's sales of goods and services offered under the SPOTIFY mark were quite significant prior to Applicant's first use of its mark. In fact, in 2015, before Applicant's first use of its POTIFY mark, Opposer had more monthly SPOTIFY users than most U.S. states had residents.
Evidence of public recognition of the SPOTIFY mark was expansive. Opposer's 23.3 million Facebook "likes" (and its millions of followers on other social media platforms) evidences widespread recognition of the mark by a substantial fraction of the United States population.
Opposer's search of the iWeb Corpus, an online database of 14 billion words, revealed that SPOTIFY had more Web "hits" than a number of other trademarks, including ROLEX, MCDONALD'S, AMERICAN EXPRESS, CHANEL and BARBIE.
Opposer's "President of Playlists" marketing effort was so widely recognized that it was "the number one trending moment on Twitter, and claimed the number one spot on Reddit."
Opposer's SPOTIFY brand is so strong that it has been ranked among the "best" or most "relevant" in the United States and beyond. .
Opposer also introduced empirical evidence that a substantial portion of the United States is aware of the SPOTIFY mark.
Opposer's SPOTIFY mark has been registered on the Principal Register in its broadest (standard character) form for almost 13 years. The incontestable Registration is not based on a claim of acquired distinctiveness.
Against this body of evidence, the TTAB had no hesitation in finding that SPOTIFY was "exceedingly famous." Spotify AB, 2022 USPQ2D 37 at *22–26.
Potify marks dilutes spotify mark by blurring
Dilution by blurring is "an association arising from the similarity between a mark or trade name and a famous mark that impairs the distinctiveness of the famous mark." Coach Servs., 101 USPQ2d at 1724 (quoting 15 U.S.C. § 1125(c)(2)(B)). It "occurs when a substantial percentage of consumers, on seeing the junior party's mark on its goods, are immediately reminded of the famous mark and associate the junior party's mark with the owner of the famous mark, even if they do not believe that the goods emanate from the famous mark's owner." N.Y. Yankees P'ship, 114 USPQ2d at 1509.
The concern is that "the gradual whittling away of distinctiveness will cause the trademark holder to suffer 'death by a thousand cuts.'" Nat'l Pork Board v. Supreme Lobster and Seafood Co., 96 USPQ2d 1479, 1497 (TTAB 2010). Blurring may occur "regardless of the presence or absence of actual or likely confusion, of competition, or of actual economic injury." Omega SA (Omega AG) (Omega Ltd.) v. Alpha Phi Omega, 118 USPQ2d 1289, 1298 (TTAB 2016) (quoting 15 U.S.C. § 1125(c)).
To determine whether Applicant's use of its mark is likely to cause dilution by blurring, the TTAB considered:
(i) the degree of similarity between Applicant's mark and Opposer's famous mark;
(ii) the degree of inherent or acquired distinctiveness of Opposer's mark;
(iii) the extent to which Opposer is engaging in substantially exclusive use of its mark;
(iv) the degree of recognition of Opposer's mark;
(v) whether Applicant intended to create an association with Opposer's SPOTIFY mark; and
(vi) any actual association between Applicant's mark and Opposer's mark.
15 U.S.C. § 1125(c)(2)(B)(i-vi).
Here, the TTAB concluded that the POTIFY mark was strikingly similar to Opposer's SPOTIFY mark in sight, sound and commercial impression, noting that the only difference in the two marks is the deletion of the letter "S." The marks are otherwise identical and even rhyme. The inclusion of the design element did not change this conclusion as POTIFY was the dominant portion of the mark. Further, consistent with its fame analysis, the TTAB quickly found that Opposer's SPOTIFY mark was inherently distinctive, used by Opposer in a substantially exclusive manner, and that the SPOTIFY mark was widely recognized throughout the United States. Spotify AB, 2022 USPQ2D 37 at *29–34.
In addressing evidence of Applicant's intent in seeking to create an association between POTIFY and SPOTIFY, the TTAB considered Applicant's claim of innocent adoption and rejected the same. The owners of Applicants were both long-time users of the SPOTIFY platform well before selecting POTIFY as a mark. In view of this long time use, the TTAB stated that it "defies logic and common sense" for the TTAB to conclude that longtime SPOTIFY users came up with the highly similar POTIFY name with no intent to create any association with SPOTIFY. Regardless of Applicant's intent, however, the TTAB noted that it would find dilution regardless of Applicant's intent based upon the overall record. Spotify AB, 2022 USPQ2D 37 at *34–35.
Finally, the TTAB found no evidence of actual association between Applicant's POTIFY mark and Opposer's SPOTIFY mark. Recognizing that such an association was possible, the record did not support a finding that actual association had occurred. Spotify AB, 2022 USPQ2D 37 at *35–36.
On balance, the TTAB considered the "exceedingly famous" nature of the SPOTIFY mark, the high level of recognition of the mark in the United States and the distinctive nature of SPOTIFY as sufficient to support a finding of dilution. Indeed, the TTAB concluded that "although we need only find likely dilution" the TTAB believed "it inevitable that POTIFY 'will diminish [SPOTIFY's] distinctiveness.'" Spotify AB, 2022 USPQ2D 37 at *37.
The opinion provides a useful overview of the different types of evidence relevant to a fame inquiry. Here, the volume and variety of evidence presented by Spotify drove a conclusion that the SPOTIFY mark was not only "famous," but "exceedingly famous."
Tags: brand protection, intellectual property, trademark, trademark protection


Homelessness is a very real issue in Centre County and, in an effort to connect with the individuals/families that need our services the most, we are asking for your assistance. If you know the whereabouts of someone who is homeless, or you yourself are homeless, please contact the Office of Adult Services at adultservices@centrecountypa.gov or 355-6768 ext. 2 no later than Tuesday, Jan. 22.


text:
You are here: Home > Football Tips > The Gunners to Upset the King's Road Blues at the Emirates
The Gunners to Upset the King's Road Blues at the Emirates
Carl Wright 2019-01-18 in Football Tips
Arsenal v Chelsea – 19th January – 17:30 GMT
In the recent past, a London derby between Arsenal and Chelsea would have been a clash between two title hopefuls, but in this era of Manchester City – who this season are locked in an arm-wrestle with Liverpool at the top of the table – things have changed.
This Saturday's teatime game is a clash between fourth and fifth, with the fifth-placed Gunners kicking off six points behind the Blues of the King's Road. More significantly they begin the day 10 and 16 points respectively behind the leaders, Liverpool. This is very much a battle for Champions League places, with Arsenal currently sitting outside them and, instead, in the dreaded Europa League spot.
For all the reasons above, this is a game the Gunners dare not lose – a nine-point gap with just 15 league games remaining would look insurmountable – and will be heartened by the fact that Chelsea, in all competitions, have won just one of their last six visits to the Emirates.
Arsenal's current form is very much hit and miss, and they have won just two of their last six Premier League games – a far cry from the 22-game unbeaten run they went on after losing their first two games of the season – although, in fairness, most of their problems have been on the road. They have dropped just four points at home since the opening day of the season.
TOP TIP! – Arsenal to win 2-1 @ 11/1 12.00 +1100 11.00 11.00 -0.09 / Chelsea to lead at HT & Arsenal at FT @ 30/1 31.00 +3000 30.00 30.00 -0.03
Get the best odds for Arsenal v Chelsea and our other featured games with our selected bookmakers below.
Bookmakers Providing the Best Odds for Arsenal v Chelsea in the USA - January 2022
They have however struggled to keep clean sheets – only three all season – and are clearly a better side offensively than defensively. At home, they average 2.2 goals-per-game and look, on paper, more than a match for anyone at the Emirates, and that includes Chelsea.
The Blues though have won seven of their 10 away games this season and so will travel to North London expectant of a win, but it should be noted that Spurs are the only top six side they have played away from home, and there they were comprehensively beaten.
So, providing the Gunners can successfully quell the threat of Eden Hazard (no easy task), we can see them having enough attacking threat to outscore Maurizio Sarri's side, who of late have lacked invention. The Stamford Bridge faithful is restless right now and there has been much talking of 'passing for passing's sake', so they will need to find a purpose to the endless sideways passing if they are to take anything away from this one.
Aside from the aforementioned Hazard however, we're not convinced their squad full of fine technicians are able to provide enough thrust playing in Sarri's style, so, contrary to most of the bookies, we think Arsenal will sneak the win.
Based on their good home form, Arsenal in our view will have plenty of joy against Chelsea's back-four and, while we can't see them keeping a clean sheet, the 2-1 home win on offer from Bet365 at 11/1 12.00 +1100 11.00 11.00 -0.09 looks very tempting indeed. Also, given the Gunners' propensity to score most of their goals in the second half, give some thought to the Blues leading at the interval but Arsenal winning the game – on offer with 188bet at a whopping 30/1 31.00 +3000 30.00 30.00 -0.03 .
Liverpool v Crystal Palace – 19th January – 15:00 GMT
TOP TIP! – Liverpool & Palace 2-2 @ 33/1 34.00 +3300 33.00 33.00 -0.03 / Townsend anytime goalscorer @ 13/2 7.50 +650 6.50 6.50 -0.15
The Reds appear on an unstoppable march to their first title in the Premier League era, but right now those pesky Citizens from Manchester refuse to go away. Despite Liverpool having lost just a single game all season – against City at the Etihad – their lead at the top is still only four points and with the demanding Liverpool public awaiting a trophy the pressure is increasing week-on-week.
As daft as it sounds in Janaury, every game has more than element of 'must win' and that in itself creates a huge amount of pressure on a group of players who, as a collective, have yet to claim any silverware. With City breathing down their necks just awaiting a slip up, this only serves to ratchet it up another notch.
Palace meanwhile have had a funny season and have been hovering at the wrong end of the table for most of it. Their home form has been problematic but interestingly they have won four games on the road, one of them being that incredible 3-2 at the Etihad three days before Christmas.
So, with that in mind, they will travel to Anfield without fear and may even fancy their chances of springing another upset. The form book of course screams 'home win' but Jurgen Klopp has injury problems in defence, with Trent Alexander-Arnold being the latest to be ruled out for a spell.
We think the Reds' enforced changes and the heightened pressure will play into the wily Roy Hodgson's hands. While we can't see Palace winning the game, we can see them upsetting the form book and earning themselves a point frpm a 2-2 draw 33/1 34.00 +3300 33.00 33.00 -0.03 with Bet365, and also, we're tempted by the 13/2 7.50 +650 6.50 6.50 -0.15 on offer from 888sport for Andros Townsend to be an anytime goalscorer.
Fulham v Tottenham – 20th January – 16:00 GMT
TOP TIP! – Spurs to win 2-1 @ 8/1 9.00 +800 8.00 8.00 -0.13 / Dele Alli as last goalscorer @ 13/2 7.50 +650 6.50 6.50 -0.15
Craven Cottage will play host to another London derby on Sunday, but with the Cottagers scratching around for points to stave off the dreaded drop, Tottenham are far from ideal visitors.
The Lillywhites – still reluctant residents of Wembley – have, not unsurprisingly, enjoyed rather more success on their travels than at their temporary home, and have a fine record of ten wins and just two defeats. Even without the injured Harry Kane and Son Heung-min away on Asian Cup duty, they still have more than enough to trouble a Fulham defence, who have to date 19 goals in their ten home games.
Fulham's desire for points will, of course, be massive, but the bigger question is around how well they spent their £100+ million in the summer and why, having spent such a ginormous sum, their general performance level has been so poor. Even replacing Slavisa Jokanovic with Claudio Ranieri has had limited impact, and big questions need asking of their recruitment process.
We expect them though to be spirited and full of fire, and if fit, Mitrovic will cause problems for Tottenham's centre-backs, but still there should be enough quality in Spurs' attacking third for them to win the game.
Tottenham have equal need for the win and will be keen to keep the pressure on Liverpool and Manchester City, despite dropping off the pace after being beaten by Manchester Utd at Wembley last Sunday. Pochettino recognised, even in defeat, the quality of performance and will know that more of the same will be enough for three points at Craven Cottage.
All things considered, we are very tempted by the 2-1 win for Tottenham 8/1 9.00 +800 8.00 8.00 -0.13 with BetVictor, and for what seems a great value 13/2 7.50 +650 6.50 6.50 -0.15 188bet we also recommend Dele Alli as last goalscorer.
Feel free to let us know what you think of our tips. Click the button below and Share on Facebook or Twitter and tell us if you agree or disagree with our selections!
Chiefs To End Super Bowl Drought By Beating Patriots
Women in Darts – Future World Champions?
Carl Wright
Carl is the original 'Special One' and uses his statistical knowledge of football to gain the upper hand over the bookies on a weekly basis. A student of odds and probabilities, 'Wrighty' pinpoints the value bets in the top leagues across Europe. A big signing for the SBO.net sports team, Carl brings his vast experience of playing the odds and beating the bookies to a weekly column highlighting the very best football bets.