text:
Success For Life

Many of us go about our daily routine without really paying attention to how or why we do what we do. Yeah sure we put in the hours every day, but is it enough? Are we happy with our progress or do we always fall short? If you wish to create “success for life” you need to begin celebrating the small successes in each passing day, instead of giving attention to the things we don’t get done.

What Is Success?

Put simply, success is “the accomplishment of an aim or purpose”. One of the great coaches John Wooden described success as “peace of mind, which is a direct result of self-satisfaction in knowing you made the effort to do your best to become the best that you are capable of becoming”. You see, getting to the top of a staircase is an accomplishment but so is each step on the way, and this is the part I struggled with.

The ‘end result’ was what took all my focus, and when this is the case, the feeling of falling short and never having enough done are the predominant emotions and feelings. Noticing only what you failed to get done brings about that feeling of not enough, a feeling that does not serve us and a feeling that leaves us unfulfilled as a person. If we are to progress in life we must change our perception of success. We must notice and celebrate all of the steps on the way to the top of our stairs.

Notice The Steps

There was a time in my life when just getting out of bed was a success. Within seconds of opening my eyes my mind flooded with thoughts, thoughts of things needed to be done, the bills and general urgency. Looking back, by the time my feet hit the floor I was in a ‘stressed state’ and on a mission to get things done. This was my solution. To get absolutely everything I thought about that morning done and then I’ll be happy. The problem with this is the goals I set each morning as I lay there, were unattainable because I always set the bar too high.

It didn’t matter how many things I completed each day, I always fell short. I had the complete wrong approach to life and each day I ended paying attention to what wasn’t done, I didn’t notice the steps. This way of being compounds thoughts and feelings of not having enough, a state that attracts more of the same. Living in a stressed state will ultimately bring ill health but, what’s worse is the ripple effect of stress on the surrounding people. Let’s face it, none of us like being around someone who is constantly stressed.

Begin Your Day

Transform your daily experience by getting up as soon as you wake up, smile to the universe and move. You may be saying you have little to smile about but reel it in here a little, over one hundred and fifty thousand people don’t wake up each day. They don’t get another chance at life, at least not this one anyway and they’ll not see their loved ones again. Waking up is a gift, cherish it. Drawing a great big smiley face and placing it where you can see it immediately on waking is a great way of breaking the negative thinking cycle.

At first the smile may be encouraged, sometimes forced, but this doesn’t matter keep doing it as your brain cannot tell the difference. The effect is even greater when you look in a mirror and see yourself smiling. The next thing is to move, you’ve been lying in bed all night so your body is rested, right? Getting your heart beating faster by walking, practicing yoga, skipping or whatever floats your boat is a great way to awaken the bodies natural energy. Smile and be grateful as you move.

The Benefits Of A Smile

According to the Mayo Clinic a smile can bring many health benefits. When you smile or, laugh, your brain releases endorphins which, short-term, relieves stress and makes us feel good mentally.

But, smiling regularly has many long term benefits too, such as: A stronger immune system, helps with pain relief, increased personal satisfaction, reduces depression and anxiety along with the ability to lower blood pressure.

The positive benefits of a smile are undeniable and best of all, it’s free. Quote: “Successful people always have two things on their lips. 1 -Silence. 2 – Smile.”

Gratitude for the little things, the small completed steps along the way is what makes us successful. No-one ‘appears’ at the top of a mountain, no, they claim the mountain step by step resting along the way. Having gratitude for each step will ultimately give you more reasons to be grateful.

Start each day with a positive thought, one that empowers you, one that puts you in a winning frame of mind. Look at it this way, you reap what you sow. Would you sow a spinach seed if you wanted cabbage?, doubtful! The same applies with our thoughts, we can’t possibly expect to be happy and prosperous if we’re constantly focusing on and generating negative thoughts. Give yourself the best chance. Success for life begins with you.

What kind of seeds do you sow each morning? Are they positive? Do they match your desired outcome?

Thank you for taking the time to read ‘Success For Life’, we appreciate it :). If you have any thoughts or experiences relating to this post, we would love to hear them. You are on this page because you are searching for something more, something better than you currently possess. This is normal. It’s human nature to want ‘more’, we just need to go after our dreams in a way that benefits everyone. Climbing to the top is easier when we help each other.

Please leave a comment in the comment box below and we will respond asap. Your details are strictly private and confidential and will never be shared with anyone.

More Information And Guidance.

Your success is our business. If you are struggling professionally or personally, Siobhan can help. You can visit us on our free FB group @

Alternatively, you can email us : and you will Be contacted by your preferred method.

Remember – “If you do what you’ve always done, you’ll get what you’ve always gotten.” – Tony Robbins.

Warmest Regards,

Previous Article

6 thoughts on “Success For Life

  • Jason
    May 9, 2020 at 10:11 am

    Excellent article, well written and great at informing us about the topic, have booked marked this page in fact !
    Many thanks Jason

    • Siobhan Leijen
      August 11, 2020 at 8:53 am

      Hi Jason. Many thanks for your comment and bookmarking this page, we appreciate it. Success means something different to each of us, and I believe that true, lasting success begins with becoming best version of ourselves. We wish you success in all your endeavours.

  • Jeff
    May 9, 2020 at 11:49 am

    I thank you for sharing Success For Life, you know before reading your article I never really thought about what success really meant to me. I know some people being wealthy would make them feel successful, but that is not me. I think my idea of success is to help as many people every day that I am able to, so you have given me a new direction and purpose for my life by sharing this article.

  • Ger
    May 10, 2020 at 7:45 am

    Hi Jeff. I am so glad you have found this article useful.
    For many years my idea of success was accumulating wealth. While there is nothing wrong with this, I went about it the wrong way by setting the bar too high and expecting too much from myself and others.
    There was so much to ‘do’ in my day that I forgot how to ‘be’ and have fun. Today, it’s all about balance and working on my inner world, 1st. When we feel good about ourselves we are better able to serve and help others, for we cannot give what we do not have.
    Thanks so much for your comment, Jeff, I wish you great success on your journey 🙂

  • Steve
    May 14, 2020 at 12:38 pm

    This is a wonderful article. Thank you for sharing, Ger. I often pause for breath when I see a “success” post because so many people refer to success as a thing to be chased yet the reality is that it’s something that we have within us. It takes growth, development and nurturing but it is there if we look. Even in setbacks, we can prepare and setup to enable the manifestation of success. Here’s to success!

    • Ger
      May 20, 2020 at 9:32 am

      Hi Steve, and thank you for stopping by.
      Agreed! True success begins inside. There’s not much point in building your house without first laying a solid foundation. Investing in ourselves, lays the foundation for our success. Creating inward balance and harmony will reflect positively to the world around us. The setbacks are all but part of our learning, and adopting this attitude is vital for success.
      Success to you Steve, have a wonderful day 😊

Leave a Reply to Steve Cancel reply

Your email address will not be published. Required fields are marked *.

You may use these HTML tags and attributes:   <acronym title="">
      <q cite=""> <s>

Theme BCF By aThemeArt - Proudly powered by WordPress .

Enjoy this blog? Please spread the word :)

Follow by Email


Content-Type: application/http; msgtype=response

WARC-Identified-Payload-Type: application/xhtml+xml

WARC-Type: response

text:
Monday, April 25th, 2011...12:48 pm

2011 Young Leaders Program

Jump to Comments

The Northeast Asia Economic Forum (NEAEF) is pleased to announce the Young Leaders Training and Research Program in Regional Cooperation and Development Fellowship for 2011. This year’s program will take place from July 26 through August 11, 2011 in Honolulu, Hawaii, USA.

Fellowships are awarded to persons from China, Japan, Korea, Mongolia, the Russian Federation, and the United States who have demonstrated potential leadership. Applicants must be affiliated with an academic, research or business institution, non-governmental, governmental or international organization when applying for a fellowship.

Application Instructions

  • A cover letter identifying specific research interests, your motivation for applying, and how the candidate will benefit from the Young Leaders Program. Please indicate in your cover letter if you are interested in presenting a research paper during the seminars and include a copy of the paper or a summary of the research in progress. Also please indicate in your cover letter your anticipated location in late July 2011.
  • curriculum vitae/resume
  • Two letters of reference (letters in Chinese, Japanese, and Korean are also acceptable). Please identify your tow referees in the cover letter.

Deadline: The deadline is extended such that late submissions will be reviewed if they are submitted within two weeks after the original deadline of May 2, 2011. Please submit applications to:

For more information please see: NEAEF Fellowship

Leave a Reply

You must be logged in to post a comment.

warcinfo:
isPartOf: CC-MAIN-2020-45
publisher: Common Crawl
description: Wide crawl of the web for October 2020
operator: Common Crawl Admin (info@commoncrawl.org)
hostname: ip-10-67-67-127.ec2.internal
software: Apache Nutch 1.17 (modified, https://github.com/commoncrawl/nutch/)
robots: checked via crawler-commons 1.2-SNAPSHOT (https://github.com/crawler-commons/crawler-commons)
format: WARC File Format 1.1
conformsTo: http://iipc.github.io/warc-specifications/specifications/warc-format/warc-1.1/


WARC-Identified-Payload-Type: text/html

text:
Mexico and Central America have become two of the most dangerous places in the world for journalists – more than 100 journalists have been killed or disappeared in the region since 2004. Hundreds more have been censored, threatened, and forced into exile. The high-quality journalism produced in this dangerous situation reaches an extremely limited audience, however, yet on-the-ground reporting offers both valuable information and a crucial human perspective on drug war violence.

The Trans-Border Freedom of Expression Project coordinates the translation and dissemination of the work of these at-risk journalists, ensuring that the most important investigative reporting from Mexico and Central America is not silenced or censored, and that its authors are no longer unknown to an international audience.

Leave a Reply

Your email address will not be published. Required fields are marked *


text:
10 results for: tier list

Temple of the Dog

My Top 5 Decks for Week 1 of Players Cup Bracket Play (Including: Spiritomb, Baby Blowns, PikaRom, Dragapult, and Zacian Combo)

Cats Out of the Bag

Water Mew3 Box and Silvally-GX/Alolan Persian-GX, Two Crazy Decks to Compete with Tier 1

Eyes Wide Shut

Analyzing the Limitless Q3 Meta and Exploring New Ideas for Q4 (Zacian V/Galarian Perrserker + Torkoal V/Magcargo-GX)

Grubbin’s Revenge

Vikavolt and Early Impressions of the UPR–RCL Format So Far (or: a Tentative Tier List)

East to West Vol. 1

A Look to Japan for Rebel Clash’s Impact on Standard’s Top Tiers, Including Dragapult VMAX, Toxtricity VMAX, ADPZ, and PikaRom
It eats snow that piles up on the ground. The more snow it eats, the bigger and more impressive the spikes on its back grow. (Snom)

The New Spin

On TrevNoir in Dallas, Other Expanded Contenders, ADsPinner, and the Post-Malmö Standard Tier List

Get a Whiff of This

T4 @ Dallas w/ ZoroGarb, Other Good Expanded Decks, Idea Dump (Sword & Shield Edition), and an Early UPR–SSH Tier List

Run Run Run

What I Learned from the Iowa Marathon, a Pre-Dallas Tier List, and Turbo Dark (My Top Play for Dallas)

If You Need A List…

The Post-Madison Tier List and Optimal Decklists for Almost Every Archetype

Step Right Up and Win a Prize!

An Analysis of the Japanese Battle Carnival
Once a year, on a specific date and at a specific time, they gather out of nowhere and form up in a circle. (Stonjourner)


text:
A mini-meander in Holden Arboretum

2017_05_26_Places_Holden Arboretum_00052017_05_26_Places_Holden Arboretum_00062017_05_26_Places_Holden Arboretum_0010

This was a beautiful day to wander the trails in the Arboretum. The sounds, smells, and colors of spring were intoxicating! Although I don’t have much time for blogging today, if you enjoy this mini-meander, please come back tomorrow when I’ll take you on a longer walk.

Hope to see you again tomorrow.
Trail Walker

Blog at WordPress.com.

Up ↑

%d bloggers like this:


text:
4.2. Feature extraction

The sklearn.feature_extraction module can be used to extract features in a format supported by machine learning algorithms from datasets consisting of formats such as text and image.

Feature extraction is very different from Feature selection: the former consists in transforming arbitrary data, such as text or images, into numerical features usable for machine learning. The latter is a machine learning technique applied on these features.

4.2.1. Loading features from dicts

The class DictVectorizer can be used to convert feature arrays represented as lists of standard Python dict objects to the NumPy/SciPy representation used by scikit-learn estimators.

While not particularly fast to process, Python’s dict has the advantages of being convenient to use, being sparse (absent features need not be stored) and storing feature names in addition to values.

DictVectorizer implements what is called one-of-K or “one-hot” coding for categorical (aka nominal, discrete) features. Categorical features are “attribute-value” pairs where the value is restricted to a list of discrete of possibilities without ordering (e.g. topic identifiers, types of objects, tags, names…).

In the following, “city” is a categorical attribute while “temperature” is a traditional numerical feature:

>>> measurements = [
...     {'city': 'Dubai', 'temperature': 33.},
...     {'city': 'London', 'temperature': 12.},
...     {'city': 'San Francisco', 'temperature': 18.},
... ]

>>> from sklearn.feature_extraction import DictVectorizer
>>> vec = DictVectorizer()

>>> vec.fit_transform(measurements).toarray()
array([[  1.,   0.,   0.,  33.],
       [  0.,   1.,   0.,  12.],
       [  0.,   0.,   1.,  18.]])

>>> vec.get_feature_names()
['city=Dubai', 'city=London', 'city=San Francisco', 'temperature']

DictVectorizer is also a useful representation transformation for training sequence classifiers in Natural Language Processing models that typically work by extracting feature windows around a particular word of interest.

For example, suppose that we have a first algorithm that extracts Part of Speech (PoS) tags that we want to use as complementary tags for training a sequence classifier (e.g. a chunker). The following dict could be such a window of features extracted around the word ‘sat’ in the sentence ‘The cat sat on the mat.’:

>>> pos_window = [
...     {
...         'word-2': 'the',
...         'pos-2': 'DT',
...         'word-1': 'cat',
...         'pos-1': 'NN',
...         'word+1': 'on',
...         'pos+1': 'PP',
...     },
...     # in a real application one would extract many such dictionaries
... ]

This description can be vectorized into a sparse two-dimensional matrix suitable for feeding into a classifier (maybe after being piped into a text.TfidfTransformer for normalization):

>>> vec = DictVectorizer()
>>> pos_vectorized = vec.fit_transform(pos_window)
>>> pos_vectorized
<1x6 sparse matrix of type '<... 'numpy.float64'>'
    with 6 stored elements in Compressed Sparse ... format>
>>> pos_vectorized.toarray()
array([[ 1.,  1.,  1.,  1.,  1.,  1.]])
>>> vec.get_feature_names()
['pos+1=PP', 'pos-1=NN', 'pos-2=DT', 'word+1=on', 'word-1=cat', 'word-2=the']

As you can imagine, if one extracts such a context around each individual word of a corpus of documents the resulting matrix will be very wide (many one-hot-features) with most of them being valued to zero most of the time. So as to make the resulting data structure able to fit in memory the DictVectorizer class uses a scipy.sparse matrix by default instead of a numpy.ndarray.

4.2.2. Feature hashing

The class FeatureHasher is a high-speed, low-memory vectorizer that uses a technique known as feature hashing, or the “hashing trick”. Instead of building a hash table of the features encountered in training, as the vectorizers do, instances of FeatureHasher apply a hash function to the features to determine their column index in sample matrices directly. The result is increased speed and reduced memory usage, at the expense of inspectability; the hasher does not remember what the input features looked like and has no inverse_transform method.

Since the hash function might cause collisions between (unrelated) features, a signed hash function is used and the sign of the hash value determines the sign of the value stored in the output matrix for a feature. This way, collisions are likely to cancel out rather than accumulate error, and the expected mean of any output feature’s value is zero. This mechanism is enabled by default with alternate_sign=True and is particularly useful for small hash table sizes (n_features < 10000). For large hash table sizes, it can be disabled, to allow the output to be passed to estimators like sklearn.naive_bayes.MultinomialNB or sklearn.feature_selection.chi2 feature selectors that expect non-negative inputs.

FeatureHasher accepts either mappings (like Python’s dict and its variants in the collections module), (feature, value) pairs, or strings, depending on the constructor parameter input_type. Mapping are treated as lists of (feature, value) pairs, while single strings have an implicit value of 1, so ['feat1', 'feat2', 'feat3'] is interpreted as [('feat1', 1), ('feat2', 1), ('feat3', 1)]. If a single feature occurs multiple times in a sample, the associated values will be summed (so ('feat', 2) and ('feat', 3.5) become ('feat', 5.5)). The output from FeatureHasher is always a scipy.sparse matrix in the CSR format.

Feature hashing can be employed in document classification, but unlike text.CountVectorizer, FeatureHasher does not do word splitting or any other preprocessing except Unicode-to-UTF-8 encoding; see Vectorizing a large text corpus with the hashing trick, below, for a combined tokenizer/hasher.

As an example, consider a word-level natural language processing task that needs features extracted from (token, part_of_speech) pairs. One could use a Python generator function to extract features:

def token_features(token, part_of_speech):
    if token.isdigit():
        yield "numeric"
        yield "token={}".format(token.lower())
        yield "token,pos={},{}".format(token, part_of_speech)
    if token[0].isupper():
        yield "uppercase_initial"
    if token.isupper():
        yield "all_uppercase"
    yield "pos={}".format(part_of_speech)

Then, the raw_X to be fed to FeatureHasher.transform can be constructed using:

raw_X = (token_features(tok, pos_tagger(tok)) for tok in corpus)

and fed to a hasher with:

hasher = FeatureHasher(input_type='string')
X = hasher.transform(raw_X)

to get a scipy.sparse matrix X.

Note the use of a generator comprehension, which introduces laziness into the feature extraction: tokens are only processed on demand from the hasher. Implementation details

FeatureHasher uses the signed 32-bit variant of MurmurHash3. As a result (and because of limitations in scipy.sparse), the maximum number of features supported is currently 2^{31} - 1.

The original formulation of the hashing trick by Weinberger et al. used two separate hash functions h and \xi to determine the column index and sign of a feature, respectively. The present implementation works under the assumption that the sign bit of MurmurHash3 is independent of its other bits.

Since a simple modulo is used to transform the hash function to a column index, it is advisable to use a power of two as the n_features parameter; otherwise the features will not be mapped evenly to the columns.

4.2.3. Text feature extraction The Bag of Words representation

Text Analysis is a major application field for machine learning algorithms. However the raw data, a sequence of symbols cannot be fed directly to the algorithms themselves as most of them expect numerical feature vectors with a fixed size rather than the raw text documents with variable length.

In order to address this, scikit-learn provides utilities for the most common ways to extract numerical features from text content, namely:

  • tokenizing strings and giving an integer id for each possible token, for instance by using white-spaces and punctuation as token separators.
  • counting the occurrences of tokens in each document.
  • normalizing and weighting with diminishing importance tokens that occur in the majority of samples / documents.

In this scheme, features and samples are defined as follows:

  • each individual token occurrence frequency (normalized or not) is treated as a feature.
  • the vector of all the token frequencies for a given document is considered a multivariate sample.

A corpus of documents can thus be represented by a matrix with one row per document and one column per token (e.g. word) occurring in the corpus.

We call vectorization the general process of turning a collection of text documents into numerical feature vectors. This specific strategy (tokenization, counting and normalization) is called the Bag of Words or “Bag of n-grams” representation. Documents are described by word occurrences while completely ignoring the relative position information of the words in the document. Sparsity

As most documents will typically use a very small subset of the words used in the corpus, the resulting matrix will have many feature values that are zeros (typically more than 99% of them).

For instance a collection of 10,000 short text documents (such as emails) will use a vocabulary with a size in the order of 100,000 unique words in total while each document will use 100 to 1000 unique words individually.

In order to be able to store such a matrix in memory but also to speed up algebraic operations matrix / vector, implementations will typically use a sparse representation such as the implementations available in the scipy.sparse package. Common Vectorizer usage

CountVectorizer implements both tokenization and occurrence counting in a single class:

>>> from sklearn.feature_extraction.text import CountVectorizer

This model has many parameters, however the default values are quite reasonable (please see the reference documentation for the details):

>>> vectorizer = CountVectorizer()
>>> vectorizer
CountVectorizer(analyzer=...'word', binary=False, decode_error=...'strict',
        dtype=<... 'numpy.int64'>, encoding=...'utf-8', input=...'content',
        lowercase=True, max_df=1.0, max_features=None, min_df=1,
        ngram_range=(1, 1), preprocessor=None, stop_words=None,
        strip_accents=None, token_pattern=...'(?u)\\b\\w\\w+\\b',
        tokenizer=None, vocabulary=None)

Let’s use it to tokenize and count the word occurrences of a minimalistic corpus of text documents:

>>> corpus = [
...     'This is the first document.',
...     'This is the second second document.',
...     'And the third one.',
...     'Is this the first document?',
... ]
>>> X = vectorizer.fit_transform(corpus)
>>> X
<4x9 sparse matrix of type '<... 'numpy.int64'>'
    with 19 stored elements in Compressed Sparse ... format>

The default configuration tokenizes the string by extracting words of at least 2 letters. The specific function that does this step can be requested explicitly:

>>> analyze = vectorizer.build_analyzer()
>>> analyze("This is a text document to analyze.") == (
...     ['this', 'is', 'text', 'document', 'to', 'analyze'])

Each term found by the analyzer during the fit is assigned a unique integer index corresponding to a column in the resulting matrix. This interpretation of the columns can be retrieved as follows:

>>> vectorizer.get_feature_names() == (
...     ['and', 'document', 'first', 'is', 'one',
...      'second', 'the', 'third', 'this'])

>>> X.toarray()
array([[0, 1, 1, 1, 0, 0, 1, 0, 1],
       [0, 1, 0, 1, 0, 2, 1, 0, 1],
       [1, 0, 0, 0, 1, 0, 1, 1, 0],
       [0, 1, 1, 1, 0, 0, 1, 0, 1]]...)

The converse mapping from feature name to column index is stored in the vocabulary_ attribute of the vectorizer:

>>> vectorizer.vocabulary_.get('document')

Hence words that were not seen in the training corpus will be completely ignored in future calls to the transform method:

>>> vectorizer.transform(['Something completely new.']).toarray()
array([[0, 0, 0, 0, 0, 0, 0, 0, 0]]...)

Note that in the previous corpus, the first and the last documents have exactly the same words hence are encoded in equal vectors. In particular we lose the information that the last document is an interrogative form. To preserve some of the local ordering information we can extract 2-grams of words in addition to the 1-grams (individual words):

>>> bigram_vectorizer = CountVectorizer(ngram_range=(1, 2),
...                                     token_pattern=r'\b\w+\b', min_df=1)
>>> analyze = bigram_vectorizer.build_analyzer()
>>> analyze('Bi-grams are cool!') == (
...     ['bi', 'grams', 'are', 'cool', 'bi grams', 'grams are', 'are cool'])

The vocabulary extracted by this vectorizer is hence much bigger and can now resolve ambiguities encoded in local positioning patterns:

>>> X_2 = bigram_vectorizer.fit_transform(corpus).toarray()
>>> X_2
array([[0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0],
       [0, 0, 1, 0, 0, 1, 1, 0, 0, 2, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0],
       [1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0],
       [0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1]]...)

In particular the interrogative form “Is this” is only present in the last document:

>>> feature_index = bigram_vectorizer.vocabulary_.get('is this')
>>> X_2[:, feature_index]
array([0, 0, 0, 1]...) Tf–idf term weighting

In a large text corpus, some words will be very present (e.g. “the”, “a”, “is” in English) hence carrying very little meaningful information about the actual contents of the document. If we were to feed the direct count data directly to a classifier those very frequent terms would shadow the frequencies of rarer yet more interesting terms.

In order to re-weight the count features into floating point values suitable for usage by a classifier it is very common to use the tf–idf transform.

Tf means term-frequency while tf–idf means term-frequency times inverse document-frequency: \text{tf-idf(t,d)}=\text{tf(t,d)} \times \text{idf(t)}.

Using the TfidfTransformer’s default settings, TfidfTransformer(norm='l2', use_idf=True, smooth_idf=True, sublinear_tf=False) the term frequency, the number of times a term occurs in a given document, is multiplied with idf component, which is computed as

\text{idf}(t) = log{\frac{1 + n_d}{1+\text{df}(d,t)}} + 1,

where n_d is the total number of documents, and \text{df}(d,t) is the number of documents that contain term t. The resulting tf-idf vectors are then normalized by the Euclidean norm:

v_{norm} = \frac{v}{||v||_2} = \frac{v}{\sqrt{v{_1}^2 +
v{_2}^2 + \dots + v{_n}^2}}.

This was originally a term weighting scheme developed for information retrieval (as a ranking function for search engines results) that has also found good use in document classification and clustering.

The following sections contain further explanations and examples that illustrate how the tf-idfs are computed exactly and how the tf-idfs computed in scikit-learn’s TfidfTransformer and TfidfVectorizer differ slightly from the standard textbook notation that defines the idf as

\text{idf}(t) = log{\frac{n_d}{1+\text{df}(d,t)}}.

In the TfidfTransformer and TfidfVectorizer with smooth_idf=False, the “1” count is added to the idf instead of the idf’s denominator:

\text{idf}(t) = log{\frac{n_d}{\text{df}(d,t)}} + 1

This normalization is implemented by the TfidfTransformer class:

>>> from sklearn.feature_extraction.text import TfidfTransformer
>>> transformer = TfidfTransformer(smooth_idf=False)
>>> transformer
TfidfTransformer(norm=...'l2', smooth_idf=False, sublinear_tf=False,

Again please see the reference documentation for the details on all the parameters.

Let’s take an example with the following counts. The first term is present 100% of the time hence not very interesting. The two other features only in less than 50% of the time hence probably more representative of the content of the documents:

>>> counts = [[3, 0, 1],
...           [2, 0, 0],
...           [3, 0, 0],
...           [4, 0, 0],
...           [3, 2, 0],
...           [3, 0, 2]]
>>> tfidf = transformer.fit_transform(counts)
>>> tfidf
<6x3 sparse matrix of type '<... 'numpy.float64'>'
    with 9 stored elements in Compressed Sparse ... format>

>>> tfidf.toarray()
array([[ 0.81940995,  0.        ,  0.57320793],
       [ 1.        ,  0.        ,  0.        ],
       [ 1.        ,  0.        ,  0.        ],
       [ 1.        ,  0.        ,  0.        ],
       [ 0.47330339,  0.88089948,  0.        ],
       [ 0.58149261,  0.        ,  0.81355169]])

Each row is normalized to have unit Euclidean norm:

v_{norm} = \frac{v}{||v||_2} = \frac{v}{\sqrt{v{_1}^2 +
v{_2}^2 + \dots + v{_n}^2}}

For example, we can compute the tf-idf of the first term in the first document in the counts array as follows:

n_{d, {\text{term1}}} = 6

\text{df}(d, t)_{\text{term1}} = 6

\text{idf}(d, t)_{\text{term1}} =
log \frac{n_d}{\text{df}(d, t)} + 1 = log(1)+1 = 1

\text{tf-idf}_{\text{term1}} = \text{tf} \times \text{idf} = 3 \times 1 = 3

Now, if we repeat this computation for the remaining 2 terms in the document, we get

\text{tf-idf}_{\text{term2}} = 0 \times (log(6/1)+1) = 0

\text{tf-idf}_{\text{term3}} = 1 \times (log(6/2)+1) \approx 2.0986

and the vector of raw tf-idfs:

\text{tf-idf}_{\text{raw}} = [3, 0, 2.0986].

Then, applying the Euclidean (L2) norm, we obtain the following tf-idfs for document 1:

\frac{[3, 0, 2.0986]}{\sqrt{\big(3^2 + 0^2 + 2.0986^2\big)}}
= [ 0.819,  0,  0.573].

Furthermore, the default parameter smooth_idf=True adds “1” to the numerator and denominator as if an extra document was seen containing every term in the collection exactly once, which prevents zero divisions:

\text{idf}(t) = log{\frac{1 + n_d}{1+\text{df}(d,t)}} + 1

Using this modification, the tf-idf of the third term in document 1 changes to 1.8473:

\text{tf-idf}_{\text{term3}} = 1 \times log(7/3)+1 \approx 1.8473

And the L2-normalized tf-idf changes to

\frac{[3, 0, 1.8473]}{\sqrt{\big(3^2 + 0^2 + 1.8473^2\big)}}
= [0.8515, 0, 0.5243]:

>>> transformer = TfidfTransformer()
>>> transformer.fit_transform(counts).toarray()
array([[ 0.85151335,  0.        ,  0.52433293],
       [ 1.        ,  0.        ,  0.        ],
       [ 1.        ,  0.        ,  0.        ],
       [ 1.        ,  0.        ,  0.        ],
       [ 0.55422893,  0.83236428,  0.        ],
       [ 0.63035731,  0.        ,  0.77630514]])

The weights of each feature computed by the fit method call are stored in a model attribute:

>>> transformer.idf_
array([ 1. ...,  2.25...,  1.84...])

As tf–idf is very often used for text features, there is also another class called TfidfVectorizer that combines all the options of CountVectorizer and TfidfTransformer in a single model:

>>> from sklearn.feature_extraction.text import TfidfVectorizer
>>> vectorizer = TfidfVectorizer()
>>> vectorizer.fit_transform(corpus)
<4x9 sparse matrix of type '<... 'numpy.float64'>'
    with 19 stored elements in Compressed Sparse ... format>

While the tf–idf normalization is often very useful, there might be cases where the binary occurrence markers might offer better features. This can be achieved by using the binary parameter of CountVectorizer. In particular, some estimators such as Bernoulli Naive Bayes explicitly model discrete boolean random variables. Also, very short texts are likely to have noisy tf–idf values while the binary occurrence info is more stable.

As usual the best way to adjust the feature extraction parameters is to use a cross-validated grid search, for instance by pipelining the feature extractor with a classifier: Decoding text files

Text is made of characters, but files are made of bytes. These bytes represent characters according to some encoding. To work with text files in Python, their bytes must be decoded to a character set called Unicode. Common encodings are ASCII, Latin-1 (Western Europe), KOI8-R (Russian) and the universal encodings UTF-8 and UTF-16. Many others exist.

An encoding can also be called a ‘character set’, but this term is less accurate: several encodings can exist for a single character set.

The text feature extractors in scikit-learn know how to decode text files, but only if you tell them what encoding the files are in. The CountVectorizer takes an encoding parameter for this purpose. For modern text files, the correct encoding is probably UTF-8, which is therefore the default (encoding="utf-8").

If the text you are loading is not actually encoded with UTF-8, however, you will get a UnicodeDecodeError. The vectorizers can be told to be silent about decoding errors by setting the decode_error parameter to either "ignore" or "replace". See the documentation for the Python function bytes.decode for more details (type help(bytes.decode) at the Python prompt).

If you are having trouble decoding text, here are some things to try:

  • Find out what the actual encoding of the text is. The file might come with a header or README that tells you the encoding, or there might be some standard encoding you can assume based on where the text comes from.
  • You may be able to find out what kind of encoding it is in general using the UNIX command file. The Python chardet module comes with a script called chardetect.py that will guess the specific encoding, though you cannot rely on its guess being correct.
  • You could try UTF-8 and disregard the errors. You can decode byte strings with bytes.decode(errors='replace') to replace all decoding errors with a meaningless character, or set decode_error='replace' in the vectorizer. This may damage the usefulness of your features.
  • Real text may come from a variety of sources that may have used different encodings, or even be sloppily decoded in a different encoding than the one it was encoded with. This is common in text retrieved from the Web. The Python package ftfy can automatically sort out some classes of decoding errors, so you could try decoding the unknown text as latin-1 and then using ftfy to fix errors.
  • If the text is in a mish-mash of encodings that is simply too hard to sort out (which is the case for the 20 Newsgroups dataset), you can fall back on a simple single-byte encoding such as latin-1. Some text may display incorrectly, but at least the same sequence of bytes will always represent the same feature.

For example, the following snippet uses chardet (not shipped with scikit-learn, must be installed separately) to figure out the encoding of three texts. It then vectorizes the texts and prints the learned vocabulary. The output is not shown here.

>>> import chardet
>>> text1 = b"Sei mir gegr\xc3\xbc\xc3\x9ft mein Sauerkraut"
>>> text2 = b"holdselig sind deine Ger\xfcche"
>>> text3 = b"\xff\xfeA\x00u\x00f\x00 \x00F\x00l\x00\xfc\x00g\x00e\x00l\x00n\x00 \x00d\x00e\x00s\x00 \x00G\x00e\x00s\x00a\x00n\x00g\x00e\x00s\x00,\x00 \x00H\x00e\x00r\x00z\x00l\x00i\x00e\x00b\x00c\x00h\x00e\x00n\x00,\x00 \x00t\x00r\x00a\x00g\x00 \x00i\x00c\x00h\x00 \x00d\x00i\x00c\x00h\x00 \x00f\x00o\x00r\x00t\x00"
>>> decoded = [x.decode(chardet.detect(x)['encoding'])
...            for x in (text1, text2, text3)]
>>> v = CountVectorizer().fit(decoded).vocabulary_
>>> for term in v: print(v)

(Depending on the version of chardet, it might get the first one wrong.)

For an introduction to Unicode and character encodings in general, see Joel Spolsky’s Absolute Minimum Every Software Developer Must Know About Unicode. Applications and examples

The bag of words representation is quite simplistic but surprisingly useful in practice.

In particular in a supervised setting it can be successfully combined with fast and scalable linear models to train document classifiers, for instance:

In an unsupervised setting it can be used to group similar documents together by applying clustering algorithms such as K-means:

Finally it is possible to discover the main topics of a corpus by relaxing the hard assignment constraint of clustering, for instance by using Non-negative matrix factorization (NMF or NNMF): Limitations of the Bag of Words representation

A collection of unigrams (what bag of words is) cannot capture phrases and multi-word expressions, effectively disregarding any word order dependence. Additionally, the bag of words model doesn’t account for potential misspellings or word derivations.

N-grams to the rescue! Instead of building a simple collection of unigrams (n=1), one might prefer a collection of bigrams (n=2), where occurrences of pairs of consecutive words are counted.

One might alternatively consider a collection of character n-grams, a representation resilient against misspellings and derivations.

For example, let’s say we’re dealing with a corpus of two documents: ['words', 'wprds']. The second document contains a misspelling of the word ‘words’. A simple bag of words representation would consider these two as very distinct documents, differing in both of the two possible features. A character 2-gram representation, however, would find the documents matching in 4 out of 8 features, which may help the preferred classifier decide better:

>>> ngram_vectorizer = CountVectorizer(analyzer='char_wb', ngram_range=(2, 2))
>>> counts = ngram_vectorizer.fit_transform(['words', 'wprds'])
>>> ngram_vectorizer.get_feature_names() == (
...     [' w', 'ds', 'or', 'pr', 'rd', 's ', 'wo', 'wp'])
>>> counts.toarray().astype(int)
array([[1, 1, 1, 0, 1, 1, 1, 0],
       [1, 1, 0, 1, 1, 1, 0, 1]])

In the above example, 'char_wb analyzer is used, which creates n-grams only from characters inside word boundaries (padded with space on each side). The 'char' analyzer, alternatively, creates n-grams that span across words:

>>> ngram_vectorizer = CountVectorizer(analyzer='char_wb', ngram_range=(5, 5))
>>> ngram_vectorizer.fit_transform(['jumpy fox'])
<1x4 sparse matrix of type '<... 'numpy.int64'>'
   with 4 stored elements in Compressed Sparse ... format>
>>> ngram_vectorizer.get_feature_names() == (
...     [' fox ', ' jump', 'jumpy', 'umpy '])

>>> ngram_vectorizer = CountVectorizer(analyzer='char', ngram_range=(5, 5))
>>> ngram_vectorizer.fit_transform(['jumpy fox'])
<1x5 sparse matrix of type '<... 'numpy.int64'>'
    with 5 stored elements in Compressed Sparse ... format>
>>> ngram_vectorizer.get_feature_names() == (
...     ['jumpy', 'mpy f', 'py fo', 'umpy ', 'y fox'])

The word boundaries-aware variant char_wb is especially interesting for languages that use white-spaces for word separation as it generates significantly less noisy features than the raw char variant in that case. For such languages it can increase both the predictive accuracy and convergence speed of classifiers trained using such features while retaining the robustness with regards to misspellings and word derivations.

While some local positioning information can be preserved by extracting n-grams instead of individual words, bag of words and bag of n-grams destroy most of the inner structure of the document and hence most of the meaning carried by that internal structure.

In order to address the wider task of Natural Language Understanding, the local structure of sentences and paragraphs should thus be taken into account. Many such models will thus be casted as “Structured output” problems which are currently outside of the scope of scikit-learn. Vectorizing a large text corpus with the hashing trick

The above vectorization scheme is simple but the fact that it holds an in- memory mapping from the string tokens to the integer feature indices (the vocabulary_ attribute) causes several problems when dealing with large datasets:

  • the larger the corpus, the larger the vocabulary will grow and hence the memory use too,
  • fitting requires the allocation of intermediate data structures of size proportional to that of the original dataset.
  • building the word-mapping requires a full pass over the dataset hence it is not possible to fit text classifiers in a strictly online manner.
  • pickling and un-pickling vectorizers with a large vocabulary_ can be very slow (typically much slower than pickling / un-pickling flat data structures such as a NumPy array of the same size),
  • it is not easily possible to split the vectorization work into concurrent sub tasks as the vocabulary_ attribute would have to be a shared state with a fine grained synchronization barrier: the mapping from token string to feature index is dependent on ordering of the first occurrence of each token hence would have to be shared, potentially harming the concurrent workers’ performance to the point of making them slower than the sequential variant.

It is possible to overcome those limitations by combining the “hashing trick” (Feature hashing) implemented by the sklearn.feature_extraction.FeatureHasher class and the text preprocessing and tokenization features of the CountVectorizer.

This combination is implementing in HashingVectorizer, a transformer class that is mostly API compatible with CountVectorizer. HashingVectorizer is stateless, meaning that you don’t have to call fit on it:

>>> from sklearn.feature_extraction.text import HashingVectorizer
>>> hv = HashingVectorizer(n_features=10)
>>> hv.transform(corpus)
<4x10 sparse matrix of type '<... 'numpy.float64'>'
    with 16 stored elements in Compressed Sparse ... format>

You can see that 16 non-zero feature tokens were extracted in the vector output: this is less than the 19 non-zeros extracted previously by the CountVectorizer on the same toy corpus. The discrepancy comes from hash function collisions because of the low value of the n_features parameter.

In a real world setting, the n_features parameter can be left to its default value of 2 ** 20 (roughly one million possible features). If memory or downstream models size is an issue selecting a lower value such as 2 ** 18 might help without introducing too many additional collisions on typical text classification tasks.

Note that the dimensionality does not affect the CPU training time of algorithms which operate on CSR matrices (LinearSVC(dual=True), Perceptron, SGDClassifier, PassiveAggressive) but it does for algorithms that work with CSC matrices (LinearSVC(dual=False), Lasso(), etc).

Let’s try again with the default setting:

>>> hv = HashingVectorizer()
>>> hv.transform(corpus)
<4x1048576 sparse matrix of type '<... 'numpy.float64'>'
    with 19 stored elements in Compressed Sparse ... format>

We no longer get the collisions, but this comes at the expense of a much larger dimensionality of the output space. Of course, other terms than the 19 used here might still collide with each other.

The HashingVectorizer also comes with the following limitations:

  • it is not possible to invert the model (no inverse_transform method), nor to access the original string representation of the features, because of the one-way nature of the hash function that performs the mapping.
  • it does not provide IDF weighting as that would introduce statefulness in the model. A TfidfTransformer can be appended to it in a pipeline if required. Performing out-of-core scaling with HashingVectorizer

An interesting development of using a HashingVectorizer is the ability to perform out-of-core scaling. This means that we can learn from data that does not fit into the computer’s main memory.

A strategy to implement out-of-core scaling is to stream data to the estimator in mini-batches. Each mini-batch is vectorized using HashingVectorizer so as to guarantee that the input space of the estimator has always the same dimensionality. The amount of memory used at any time is thus bounded by the size of a mini-batch. Although there is no limit to the amount of data that can be ingested using such an approach, from a practical point of view the learning time is often limited by the CPU time one wants to spend on the task.

For a full-fledged example of out-of-core scaling in a text classification task see Out-of-core classification of text documents. Customizing the vectorizer classes

It is possible to customize the behavior by passing a callable to the vectorizer constructor:

>>> def my_tokenizer(s):
...     return s.split()
>>> vectorizer = CountVectorizer(tokenizer=my_tokenizer)
>>> vectorizer.build_analyzer()(u"Some... punctuation!") == (
...     ['some...', 'punctuation!'])

In particular we name:

  • preprocessor: a callable that takes an entire document as input (as a single string), and returns a possibly transformed version of the document, still as an entire string. This can be used to remove HTML tags, lowercase the entire document, etc.
  • tokenizer: a callable that takes the output from the preprocessor and splits it into tokens, then returns a list of these.
  • analyzer: a callable that replaces the preprocessor and tokenizer. The default analyzers all call the preprocessor and tokenizer, but custom analyzers will skip this. N-gram extraction and stop word filtering take place at the analyzer level, so a custom analyzer may have to reproduce these steps.

(Lucene users might recognize these names, but be aware that scikit-learn concepts may not map one-to-one onto Lucene concepts.)

To make the preprocessor, tokenizer and analyzers aware of the model parameters it is possible to derive from the class and override the build_preprocessor, build_tokenizer` and build_analyzer factory methods instead of passing custom functions.

Some tips and tricks:

  • If documents are pre-tokenized by an external package, then store them in files (or strings) with the tokens separated by whitespace and pass analyzer=str.split

  • Fancy token-level analysis such as stemming, lemmatizing, compound splitting, filtering based on part-of-speech, etc. are not included in the scikit-learn codebase, but can be added by customizing either the tokenizer or the analyzer. Here’s a CountVectorizer with a tokenizer and lemmatizer using NLTK:

    >>> from nltk import word_tokenize
    >>> from nltk.stem import WordNetLemmatizer
    >>> class LemmaTokenizer(object):
    ...     def __init__(self):
    ...         self.wnl = WordNetLemmatizer()
    ...     def __call__(self, doc):
    ...         return [self.wnl.lemmatize(t) for t in word_tokenize(doc)]
    >>> vect = CountVectorizer(tokenizer=LemmaTokenizer())

    (Note that this will not filter out punctuation.)

    The following example will, for instance, transform some British spelling to American spelling:

    >>> import re
    >>> def to_british(tokens):
    ...     for t in tokens:
    ...         t = re.sub(r"(...)our$", r"\1or", t)
    ...         t = re.sub(r"([bt])re$", r"\1er", t)
    ...         t = re.sub(r"([iy])s(e$|ing|ation)", r"\1z\2", t)
    ...         t = re.sub(r"ogue$", "og", t)
    ...         yield t
    >>> class CustomVectorizer(CountVectorizer):
    ...     def build_tokenizer(self):
    ...         tokenize = super(CustomVectorizer, self).build_tokenizer()
    ...         return lambda doc: list(to_british(tokenize(doc)))
    >>> print(CustomVectorizer().build_analyzer()(u"color colour"))
    [...'color', ...'color']

    for other styles of preprocessing; examples include stemming, lemmatization, or normalizing numerical tokens, with the latter illustrated in:

Customizing the vectorizer can also be useful when handling Asian languages that do not use an explicit word separator such as whitespace.

4.2.4. Image feature extraction Patch extraction

The extract_patches_2d function extracts patches from an image stored as a two-dimensional array, or three-dimensional with color information along the third axis. For rebuilding an image from all its patches, use reconstruct_from_patches_2d. For example let use generate a 4x4 pixel picture with 3 color channels (e.g. in RGB format):

>>> import numpy as np
>>> from sklearn.feature_extraction import image

>>> one_image = np.arange(4 * 4 * 3).reshape((4, 4, 3))
>>> one_image[:, :, 0]  # R channel of a fake RGB picture
array([[ 0,  3,  6,  9],
       [12, 15, 18, 21],
       [24, 27, 30, 33],
       [36, 39, 42, 45]])

>>> patches = image.extract_patches_2d(one_image, (2, 2), max_patches=2,
...     random_state=0)
>>> patches.shape
(2, 2, 2, 3)
>>> patches[:, :, :, 0]
array([[[ 0,  3],
        [12, 15]],

       [[15, 18],
        [27, 30]]])
>>> patches = image.extract_patches_2d(one_image, (2, 2))
>>> patches.shape
(9, 2, 2, 3)
>>> patches[4, :, :, 0]
array([[15, 18],
       [27, 30]])

Let us now try to reconstruct the original image from the patches by averaging on overlapping areas:

>>> reconstructed = image.reconstruct_from_patches_2d(patches, (4, 4, 3))
>>> np.testing.assert_array_equal(one_image, reconstructed)

The PatchExtractor class works in the same way as extract_patches_2d, only it supports multiple images as input. It is implemented as an estimator, so it can be used in pipelines. See:

>>> five_images = np.arange(5 * 4 * 4 * 3).reshape(5, 4, 4, 3)
>>> patches = image.PatchExtractor((2, 2)).transform(five_images)
>>> patches.shape
(45, 2, 2, 3) Connectivity graph of an image

Several estimators in the scikit-learn can use connectivity information between features or samples. For instance Ward clustering (Hierarchical clustering) can cluster together only neighboring pixels of an image, thus forming contiguous patches:

For this purpose, the estimators use a ‘connectivity’ matrix, giving which samples are connected.

The function img_to_graph returns such a matrix from a 2D or 3D image. Similarly, grid_to_graph build a connectivity matrix for images given the shape of these image.

These matrices can be used to impose connectivity in estimators that use connectivity information, such as Ward clustering (Hierarchical clustering), but also to build precomputed kernels, or similarity matrices.


text:
FRETT - World As a Hologram

  • Add feedback:
  • Manufacturer: Gusstaff
  • Availability: Available
  • szt.
  • Net Price: EUR 7.11 EUR 8.75

Release date: 04.09.2020.

Released by: Gusstaff / Don't Sit On My Vinyl / Ant-Zen.

FRETT is a new solo project by Maciej FRETT of Job Karma and 7JK, curator and director of Wrocław Industrial Festival, Wrocław Underwater, and Energy of the Sound, as well as organiser of concerts under the Industrial Art brand, active on the independent music scene in Wrocław, Poland since the mid-1990s.

On “The World as a Hologram” full-blooded old school industrial collides head-on with IDM/techno, creating a raw palette of analog sounds based on industrial and tribal dance rhythms, punctuated with soulless vocals with elements of noise and ambient.

DISCLAIMER: No animal was harmed in the recording of this material and no sound on the album was computer-generated.

1 Dreams

2 Two Cups

3 Trust

4 Flag

5 The Light

6 Isolation

7 Judge

8 Holy


text:
Skip to content
Dawoud Bey in #FilmFridays

This #FilmFridays feature is Dawoud Bey’s video 9.15.63 which he made in 2013. Click the link below to watch on Vimeo for 24 hours from Friday, May 15 until Saturday, May 16.

Join us on social media and tag @SeanKellyNY to share a pic of your at-home screening. The person who submits the winning picture of them watching the film will receive a signed copy of #DawoudBey’s publication.

#DawoudBey’s film 9.15.63 is a part of one of his most important series, "The Birmingham Project," a deeply felt and conceptually rich tribute to the victims of the 16th Street Baptist Church bombing in Birmingham, Alabama, on September 15, 1963. For this body of work, Bey created a series of photographs in which he paired two life-size portraits representing the victims of the bombing and related violence on that day in Birmingham: one is a portrait of a young person who was the same age as one of the victims; the other is an image of an adult approximately 50 years older, the age that child would have been in 2013 had he or she survived.The film is a split-screen projection that juxtaposes the re-creation of a drive to the 16th Baptist Church in Birmingham, Alabama opposite views of everyday spaces. On the right, we see the drive from the window of a moving vehicle, with the camera looking up at trees and the roofs of houses from the vantage point of a young child. On the left, slow pans move through various locations —some familiar (a beauty parlor and barbershop), some politically charged (a lunch counter and schoolroom), as they might have appeared that Sunday morning. Devoid of people, these views poeticize the innocent, mundane existences torn apart by violence on that fateful morning.


text:
Skip to content Skip to navigation Skip to footer

Don’t miss out on getting the best experience from your ride. Get the latest software and maps for your Slingshot Ride Command display.

How To's For Everything Ride Command

Slingshot Ride Command - Plan A Route And Share

Find a tried and true route or plan your own adventure. Share your plans and the fun with family and friends from all your devices.

Slingshot Ride Command - How To Update Software

Follow the process for bringing your Ride Command software up to date. Step by step instructions to make sure your update is as smooth as your ride.

Slingshot Ride Command - How To Update Maps

Instructions for making sure your maps are up to date, ensuring you can find your way home after every joyride.

Ride Command: What's New

Find a route, plan your own, share with friends and more. See what all the excitement is about.

Frequently Asked Questions

Where do I find software and map updates?

Updates for software and maps can be found on the Ride Command page.

How do I get the turn-by-turn navigation on my Slingshot SL to work?

Slingshot SL does not have turn-by-turn navigation standard. Click here to learn how to add or contact your dealer.

Visit the Help Center.

Ride Command Portal

We know that getting behind the wheel of your Slingshot is more than just getting from point A to point B – it’s how you experience the road. Maximize how you experience the road with the new Ride Command site and app. Find new routes or make your own way using the ride planner. Add waypoints to make sure you don’t miss anything on the way. Use Bluetooth connectivity to load your ride to your Slingshot and share with friends and family from the mobile app so everyone can join in the fun.

Great people and experiences are part of the Slingshot life. Connect with other Slingshot riders in the area and join in the excitement.

Making your ride your own takes the experience up a notch. Explore the options.

Slingshot makes even the ordinary an adventure. See what other Slingshot owners are up to.


text:
9 Things You (Probably) Didn’t Know About the Tongue

60605 Dentist

Cute little girl sticking out her tongueWe use our tongues every day to talk, taste, and swallow, yet we rarely take time to think about this flexible organ. Here are 9 things you may not know about the tongue:

  1.      The longest recorded tongue was more than 3.8 inches from back to tip; the widest measured over 3” across.
  2.      The human tongue contains 8 separate muscles intertwined.
  3.      A blue whale tongue weighs about 5,400 pounds and is roughly the size of an adult elephant!
  4.      Tongues come in many shapes and have varying numbers of taste buds. This makes a human tongue imprint as unique as a fingerprint.
  5.      The average person has about 10,000 taste buds in their mouth.
  6.      A single taste bud contains between 50 and 100 taste cells, which may have sensors for multiple tastes.
  7.      No individual taste cell can identify both bitter and sweet flavors.
  8.      1 milliliter of saliva contains about 1,000,000 bacteria.
  9.      Using a tongue scraper to clean your tongue is proven to help prevent osteoporosis, pneumonia, heart attacks, premature births, diabetes, and male infertility.

Health issues involving the tongue are most commonly caused by bacteria or tobacco use. Proper cleaning of the tongue can help prevent these conditions from developing. However, if you notice sores, discoloration, or other symptoms, contact our office.

Some tongue-affecting illnesses include:

  •         Leukoplakia – excessive cell growth characterized by white patches in the mouth and on the tongue. It is not dangerous, but can be a precursor to oral cancer.
  •         Oral thrush – an oral yeast infection common after antibiotic use, often characterized by cottage-cheese like white patches on the surface of the tongue and mouth.
  •         Red tongue – may be caused by a deficiency of folic acid and/or vitamin B-12.
  •         Hairy tongue – black and/or hairy-feeling tongue can be caused by build-up of bacteria.
  •         Canker sores – small ulcerous sores on the tongue, often associated with stress. These sores are not the same as cold sores and are not contagious.
  •         Oral cancer – most sore tongue issues are not serious. However, if you have a sore or lump on your tongue that does not heal within a week or two, schedule a screening.

For more information about the tongue or to schedule a screening with our doctor, contact our office.

Resource: http://www.webmd.com/oral-health/guide/

1440 S. Wabash Ave., Ste 101, Chicago, IL 60605

South Loop Dentist | Optimal Gum Health for Seniors

Dentist in 60605

Middle aged woman smiling

For seniors, it is imperative that gum health is a top priority. As you age, your risk of developing periodontal (gum) disease increases. Periodontal disease is both preventable, and in many cases, reversible. When left untreated, it can lead to more serious complications such as bloody or swollen gums, and even tooth loss. Even more alarming are the numerous studies connecting periodontal disease to other serious illnesses. Here’s what you need to know about gum health as you age.

Periodontal Disease and Your Overall Health

Periodontal disease has been linked to serious health issues. In fact, a recent study conducted by the University of Southampton and King’s College London uncovered a link between periodontal disease and an increase in the rate of cognitive decline in those who suffer from early Alzheimer’s disease. In patients with periodontal disease, the study found cognitive decline underwent a rapid change, occurring six times as fast on average.

Periodontal disease has also been found to increase your risk of developing heart disease or having a stroke. Risk factors for these serious issues increase with age, among other causes, and it is especially important to limit potential risk factors where possible. This can be as easy as improving your gum health with a visit to our office.

The Numbers You Need to Know

According to the National Institute of Dental and Craniofacial Research, moderate or severe periodontal disease was found in over 14% of seniors aged 65 to 74. The number increases to more than 20% for those over 75 years of age. Men were found to be more likely than women to have moderate to severe periodontal disease. Smoking was also found to have a significant impact. The same study showed 32% of current smokers had periodontal disease, compared to 14% for those who never smoked.

Steps You Can Take

As you age, it is essential to keep up with your gum health. Doing so is an important link in lowering your risk factors for other serious ailments such as heart disease, stroke, and the impacts of Alzheimer’s disease. You can keep your gums healthy by brushing twice each day for a full two minutes. Be sure to regularly floss your teeth as well. Flossing is an effective way to clean the hard-to-reach cracks and gaps where plaque builds up. Schedule a visit with our team for a complete gum evaluation. We can work with you to devise a course of action to ensure healthy gums.

1440 S. Wabash Ave., Ste 101, Chicago, IL 60605


text:
6 Buzz-Worthy Female-Directed Films at TIFF 2019

It’s that time of year again when the world’s most prestigious movie stars and film industry talent can be spotted around Toronto. This year, the Toronto International Film Festival is celebrating a record-breaking feat—half of the films being presented are directed by women, telling stories across different genres and following people of varying nationalities, religions, sexualities, and ethnic backgrounds. To celebrate this triumph, here are six of the most highly anticipated female-directed films at TIFF 2019.

Bring Me Home: Kim Seung-woo

A dedicated mother in search of her missing son follows a lead to a fishing village where corrupt police officers might have the answers to her long-lived mystery.

Harriet: Kasi Lemmons

A biopic about renowned American abolitionist Harriet Tubman who escapes slavery and risks her life to lead others to freedom through a network of safe-houses, later known as the underground railroad.

Highway To Heaven: Sandra Ignagni

A beautifully composed documentary on the 25 houses of worship that line Road No. 5 in Richmond, BC. The film captures the tensions around multiculturalism and ethnic diversity in Canada.

I Am Woman: Unjoo Moon

This uplifting biopic tells the story of Helen Reddy, the fiercely ambitious Australian singer behind the 1971 hit song that became the signature rallying cry of the women’s liberation movement.

Portrait of a Lady on Fire: Céline Sciamma

Hired to paint a portrait ahead of a prospective marriage, an 18th century artist finds herself falling for the reclusive bride to be. Intimacy and attraction begin to grow as the two women share the reluctant bride’s last moments of freedom.

There’s Something in The Water: Ellen Page, Ian Daniel

Ellen Page brings attention to the injustices caused by environmental racism in her home province. The documentary highlights the indigenous and African Nova Scotian women fighting to protect their communities, their land, and their future.


text:
Tap on the profile icon to edit
your financial details.

When firms or people invest in companies, there are a few different ways to go about it. For example, there are venture capitalists and private equity firms. Both have interests in helping companies, but how they go about it isn’t the same.

Here are the similarities and differences between private equity and venture capital.

What Is Private Equity?

Private equity is simply an ownership stake in a company that does not have publicly traded shares. It serves as an investment in the company with a person or firm eventually taking control of the company. It can also be the purchase of a public company with the intention of taking it private, also known as de-listing.

Private equities firms will use a mix of debt and equity to take control or controlling interest of companies, often ones that are financially struggling. The goal of PEs is almost always to buy out a company, which means the companies they invest in are typically more established. It’s not as common for PEs to invest in start-ups.

What Is Venture Capital?

Venture capital is financing for start-ups in hopes the company becomes successful enough to cash out and earn a profit for investors. Venture capital can come from individuals, firms or other types of financial institutions.

While PEs invest in more established companies, VCs put their money into companies’ very early life cycle or business model. They’re putting more risk into newer companies in hopes that they can earn it back during an initial public offering or if the company gets acquired.

Private Equity vs. Venture Capital: What’s the Difference?

Both PEs and VCs are putting money and resources into companies, but how they go about it isn’t the same. Here are a few key differences.

The Stages of the Company

PEs and VCs put money and resources into different types of companies in different stages of their development. Venture capital firms or investors are looking for new, fresh start-ups. They’ll invest early on and possibly continue investing until the company is acquired or has an IPO.

Private equity firms look for more established companies. They’re looking to take a controlling interest of a company with a proven track record — even if it’s not that stellar. While VCs are investing early on in companies, it’s PEs that would provide the acquisition for VCs to cash out on.

How Much They Invest

Venture capital firms and individuals invest much as you invest. They’re spreading their money around to many different start-ups and companies. It’s a big risk to give money to a company that doesn’t have a proven track record yet. Because of that, they’ll invest less than 50% of equity into companies and invest in many different companies to minimize their risks. That way, if one company fails, they haven’t lost all their money. VCs will invest anywhere from $1 million to $10 million (or less, if necessary).

PEs are usually looking to buy out a company. They have the opportunity to put in hundreds of millions of dollars into an acquisition. Depending on the company, that figure could go up into the billions of dollars. Since they can look at a company’s track record, they’re able to spend based on what they’ve done. It’s less risky but also costs more.

Exit Strategies

Both VCs and PEs have ways of ending their relationship with the companies they invest in. VCs are early investors, not only with money but sometimes managerial experience. They’re good for providing insight and direction on how to handle an emerging enterprise. When a company is up for an IPO or possible acquisition, VCs can cash in on their investments.

PEs are looking to acquire a company or part of one. While the company might already be established, PEs look for companies that need a help, whether in direction, structure or otherwise, and then improve it. That improvement may entail selling parts of the company or liquidating parts of the company. Once improvements are complete — typically after a few years — PEs will try to sell the refurbished company for a profit. Sort of like house-flipping but longer-term.

The Bottom Line

Whether you’re looking to get funding for your new company or one that’s been around for a while, it’s important to know where to get help. For newer companies, you may want to enlist the help of venture capital. You’ll get money and guidance on how to be successful.

For older companies, experiment with private equity. Some owners are happy to have their company sold, even if it means losing control of their business.

Tips for Investing in Companies

  • Consider talking to a financial advisor about whether investing with a venture capital fund or a private equity fund would make a good addition to your portfolio. Finding the right financial advisor who fits your needs doesn’t have to be hard. SmartAsset’s free tool matches you with financial advisors in your area in five minutes. If you’re ready to be matched with local advisors who will help you achieve your financial goals, get started now.
  •  If you have the financial means to help companies and want to, think about the types of companies you want to invest in. If you want to take a risk with newer companies, you might want to become a venture capitalist. If you have a bit more money and want to improve companies that are somewhat established, you can give through private equity. Determine what’s best for your portfolio and goals.

Photo credit: ©iStock.com/Ta Nu, ©iStock.com/designer491, ©iStock.com/Dekdoyjaidee

Dori Zinn Dori Zinn has been covering personal finance for nearly a decade. Her writing has appeared in Wirecutter, Quartz, Bankrate, Credit Karma, Huffington Post and other publications. She previously worked as a staff writer at Student Loan Hero. Zinn is a past president of the Florida chapter of the Society of Professional Journalists and won the national organization's "Chapter of the Year" award two years in a row while she was head of the chapter. She graduated with a bachelor's degree from Florida Atlantic University and currently lives in South Florida.
Was this content helpful?
Thanks for your input!


text:
Free shipping for orders over $100 USD*

New snacks on sale now for a limited time! Use code NEW for 15% off.

Hypothyroidism: Risks, Symptoms, and Diagnosis

"If you're experiencing these symptoms, go to your doctor and get screened for hypothyroidism."

Chronic fatigue, sudden weight fluctuations, hair loss, feeling cold all the time... these are just a few symptoms that could be signs of an under-active thyroid, also called hypothyroidism. On today's show with Dr. Keller Wortham, MD, we'll take a closer look at thyroid function and what happens when it's not functioning the way it should. Dr. Keller will explain it all, including the other symptoms of hypothyroidism, risk factors, how it's diagnosed, and how it can be treated.

Video Highlights

  • 00:45: The Thyroid Gland
  • 02:40: The Thyroid Hormones
  • 05:53: Hypothyroidism
  • 07:16: Symptoms of Hypothyroidism
  • 08:57: Primary Risk Factors For Developing Hypothyroidism
  • 11:18: What Hypothyroidism Does to the Body
  • 14:19: How Hypothyroidism is Diagnosed
  • 17:20: Treating Hypothyroidism
  • 18:49: Wrap-Up

The Thyroid Gland

The thyroid gland is a butterfly-shaped gland that sits right under the Adam's apple, around the neck, and it produces hormones that are vital for your metabolism. It helps us with development and growth, as well as a lot of our metabolic processes, by essentially charging and running the metabolism. Normally, you can't really feel the thyroid gland unless it's enlarged or has a problem.

The thyroid gland is referred to as an endocrine gland, which means that the thyroid gland secretes its hormones right into the bloodstream. There are other endocrine glands in the body like theadrenal glands, but the thyroid is really the one responsible for running our metabolism. This process of controlling and running the metabolism is very specific and very well controlled. The thyroid gland produces two primary hormones: one called thyroxine which is also referred to as T4 and one called triiodothyronine which is referred to as T3. Both of these hormones are dependent on a molecule called iodine to come in and help create the building blocks for thyroid hormone. That’s why it's very important to have iodine in our diets. Incidentally, in the U.S. there is iodine in our salt (that’s why it’s called iodized salt) just to make sure that people don’t end up with an iodine efficiency. It is very hard in the modern world to get an iodine deficiency, which in the past could have led to a thyroid hormone deficiency.

The Thyroid Hormones

T4 is produced primarily by the thyroid gland. T3 is also produced in the thyroid gland but it's also usually produced in other areas, and converted from T4 to T3 in the periphery. T3 is important because it’s the main active thyroid hormone. Now that conversion process of T4 to T3 can be affected by a lot of things going on in your body, includingstress, starvation, different medications that you might be taking, andvitamin deficiencies (especially avitamin D deficiency). All these things can affect that conversion from T4, which is less active hormone, to the more active T3.

Additionally, as far as regulating this very sophisticated process, most thyroid hormones circulating through our bodies are attached to proteins, which help control the thyroid levels, and help the hormones move around to other body parts, but when thyroid is bound to a protein it is not active. So only the parts that are referred to asfree thyroid hormone are the biologically active thyroid molecules in our bodies. That thyroid element that’s bound to proteins allows us to really tightly regulate the thyroid hormone, and also to have a good-sized storage of thyroid hormone available that our bodies can reactivate, or activate at a moment's notice.

In addition to that, the thyroid hormone is very tightly regulated by something that's called a feedback loop.  This is a really fascinating process. We can think of our thyroid as a furnace that's producing heat, and imagine the thyroid hormone as the heat coming out of this furnace.  Then there's a gland in the brain called the pituitary, which we can think of as the thermostat. Basically what happens is, our thermostat resides in our brain and it tells our thyroid, the heater, how much heat (or thyroid hormone) to make. As our thyroid starts making that thyroid heat, then the heat gets out into our body, until the thermostat gets the message that enough heat has been produced, at which point the thermostat turns down the heater. So, you have this nice feedback loop of your brain telling your thyroid what to do, your thyroid creating this hormone and then that hormone circulating back up to your brain to tell it when to stop.  When that process takes place properly, your metabolism is right where it needs to be, managing your growth, your cellular repair, yourdigestive function, and other things. However, if something goes wrong with the process, then your whole metabolism can collapse and you can end up with a lot of those symptoms that we mentioned in the beginning, as well as others.

One of the issues that can occur with the thyroid, is that it can stop producing enough hormones — that condition is calledhypothyroidism. Hypothyroidism can happen for a variety of different reasons, but primarily it means that we don't have enough circulating thyroid hormone to take care of our body’s processes. The main reason this usually happens is something calledHashimoto's thyroiditis, an autoimmune condition where the body starts attacking the thyroid gland, and then that thyroid gland starts to really burn out because the cells that produce the thyroid hormone are being rendered non-functional. Hypothyroidism can also be caused by radiation, by an iodine deficiency (which is rare), because of a surgery that you've had in the past that removed part of your thyroid, or it can happen if someone's ever hadhyperthyroid (the overproduction of thyroid hormones) and it was overtreated.

Symptoms of Hypothyroidism

Regardless of the reason, once you have that low-functioning thyroid you start to develop symptoms, including:

  • Weight gain, because the thyroid regulates metabolism
  • Low energy, because the thyroid is responsible for giving us energy
  • A low heart rate. Your heart needs stimulation, and when the whole metabolism slows down, your heart rate might also slow down
  • Hair loss
  • Dry skin
  • Constipation. Again, your gut is dependent on thyroid hormone, so, if your thyroid levels are very low, you can feel constipated.
  • Irregular periods. If you are a woman, the thyroid is also very important in regulating your menstrual cycle.

So, if you’re experiencing any of these symptoms, you should talk to your doctor about the potential of having low thyroid function. Luckily, it’s a very easy thing to evaluate. It usually involves palpation of your thyroid — your doctor will see if he can feel an abnormal thyroid gland — or a blood test. Blood tests are also very very important for looking at the potential conditions that set you up for hypothyroid.

Primary Risk Factors For Developing Hypothyroidism

  • Being Female —Unfortunately, just being female puts you at a higher risk for a lot of autoimmune diseases, including Hashimoto’s thyroiditis, one of the main autoimmune causes of low thyroid.
  • Aging— Women over 60 years of age have a higher risk of developing hypothyroidism.
  • Family history —  If you've had a mom, an aunt, or a sister who's had thyroid problems, then your risk factors go up as well, especially if you're female.
  • Autoimmune disorders of any kind — Any type of autoimmune disorder involves the body attacking itself. Since the number one cause of hypothyroidism is an autoimmune disorder, that can set you in that higher risk category even if it’s not specifically Hashimoto’s.
  • Radiation of any kind — Certainly, if you've had radiation for cancer treatment or if you get a lot of exposure to radiation at work, it can really affect the thyroid gland.  Incidentally, that's why, when your dentist does x-rays, they put something around your neck to protect your thyroid from radiation. It’s very very susceptible to radiation.
  • Recent Pregnancy — If you're a woman who's been pregnant recently, your risk of thyroid disease, specifically hypothyroidism, goes up. There are some interesting theories about why that is: it's thought that being female, autoimmune diseases, and pregnancy may all be tied together, because when you're pregnant you have someone else inside of you and only half of their genes are yours. The other half comes from the child’s father. So your body might be on high alert and start reacting to all of these different cells and genes that are within your body but are not related to you. And that can set you up for an autoimmune condition that can later go on to attack your body. That's just one of the theories about why women might have a higher risk of autoimmune diseases and therefore of hypothyroidism.

What Hypothyroidism Does to the Body

So, what happens if you have hypothyroidism that remains undiagnosed? Well, it can set you up for some pretty serious complications.

The first is maybe not as severe as others. It's called goiter and that basically means that if you have an autoimmune process attacking your body's ability to make thyroid hormone, your thyroid itself can start to get larger and larger in an attempt to compensate for the fact it's not making good thyroid hormone, resulting in a mass around your neck. It's one of the first things your doctor will look at when checking to see if they can palpate the thyroid. If they can palpate it, that usually means it's larger than it's supposed to be, and that could be an indication of a low functioning thyroid. This enlarged thyroid can also start to put pressure on your neck, making it difficult to swallow, and even affecting the quality of your voice.

Heart Problems

This can be another result of undiagnosed thyroid issues. As we mentioned earlier, your heart is very dependent on your thyroid hormone. If you're starting to get low levels of thyroid hormone, it can have affect the rhythm of your heart, as well as cholesterol levels in the body, making it so that thecholesterol levels are not as healthy for your body and for your heart. That, in turn, can lead toheart disease and a higher risk of heart attack and stroke.

Mood Disorders

Mood disorders and mental problems can also occur as a result of undiagnosed thyroid problems.  Thyroid hormone is very important for stimulating the brain and keeping it going. People who have low thyroid hormones can getdepressed more easily, and can start to experiencemental fogginess and even an increased risk ofdementia. So it’s very important to diagnose hypothyroidism for your nervous system and your brain.

Peripheral Neuropathy

Peripheralneuropathy has to do with the nerves that are coming out of your spinal cord and going to the various areas of your body. If your thyroid is functioning low for a long period of time, those nerves start to become damaged and you can lose sensation or you can get tingling in your different body parts and that can be quite serious, which can set you up for injury to those body parts.

Again, if your thyroid levels are low, your menstruation cycle can go off. For both men and women it can affect the health of the gonads where the sperm cells and eggs are produced, and that can really affect your fertility.

Birth Defects

If you are pregnant, low thyroid hormone can lead to really severe birth defects in your child.  This is why it’svery important for pregnant women to be screened for low thyroid. As we talked about, just being pregnant can increase your risk for thyroid disease, so make sure to get screened and diagnosed.

How Hypothyroidism is Diagnosed

As we already discussed, diagnosing thyroid issues involves palpation of the thyroid, and then blood tests. We’re going to go into more detail about a couple of the blood tests that your doctor would typically do.

The main tests a doctor would perform to screen for thyroid diseases is called a TSH, which tests thyroid stimulating hormone, which is produced in the brain. You might wonder why you’d check a hormone made in the pituitary, to find out what the thyroid is doing. Well, that's because the pituitary is that thermostat we talked about, which is trying to correctly set the heat of the thyroid. If your thyroid isn't working, and it’s shutting down, then that thermostat will think it’s way too cold in the body and try to turn up the heat, which will raise those levels of TSH (thyroid stimulating hormone) in an attempt to wake up the thyroid. And if the thyroid burns out, it's not going to be able to do that. So that TSH continues to rise — it should normally be between 2 and 4, but it can get up to 12, 13, or even as high as 20. That's a very easy way to diagnose a problem with a low circulating thyroid hormone.

You can also test the thyroid hormones directly. Your doctor can test T3 and T4, both the bound and free, to get a sense of what the thyroid proteins are doing and how much of the active free circulating thyroid is available. This will give them an idea of whether the thyroid is producing those hormones, and whether they are circulating in the appropriate amounts of free and bound.

Specifically for autoimmune thyroid disorders, the doctor can check a couple autoimmune markers. One is called TPO, which are thyroid peroxidase antibodies. That basically means looking for antibodies which your body makes that are attacking certain elements of the thyroid. If you have high levels of those antibodies, it can mean that you're actually dealing with an autoimmune process that's attacking your thyroid. You can talk with your doctor if it does look like you have autoimmune thyroid problems going on. There are some things you can do to reduce that autoimmune process and reduce inflammation in your body, so that you can spare the amount of thyroid that you have left. Unfortunately, a lot of times this process just continues on until it starts to burn out the thyroid.

And finally, there’s a blood test to check thyroglobulin levels. That's a test where we're looking at a certain other cell in the thyroid — it's not the thyroid hormone itself, but it's a matrix cell that lives there. If thyroglobulin levels are too high, it can indicate that there might be a cancer going on.

Treating Hypothyroidism

So those are just some blood tests that can be done to investigate hypothyroidism. All of this may sound scary, but if you are dealing with hypothyroidism, it's a very easy thing to treat.

If your thyroid burns out, you may end up needing to take a medication permanently — often that medication is a thyroid hormone substitute, either a T4 or T3 substitute. Levothyroxine is one of the most common treatments. But that doesn’t have to be a scary thing. It just means taking a pill every day to replace the hormone that your body's not making. When you look at the other things that are out there, other diseases that have a much worse prognosis or have treatments with terrible side effects, taking one pill every day doesn’t seem so bad. Luckily, most of the time with hypothyroidism we just have to replace that hormone that went away, and you'll feel back to normal — your metabolism will kick back up, your hair might grow back, and you won’t be subject to some of those more dangerous side effects of hypothyroidism like heart issues and nerve problems.

If you're experiencing fatigue, hair loss, weight gain, or some of the other symptoms we talked about, go to your doctor, get screened for hypothyroidism, and if you have it, don't worry. There are some really easy things we can do to take care of it. We hope that's reassuring and helpful.

Search our shop


text:
Welcome to the Dental Foundation of Oregon
The DFO is dedicated to advancing oral health education, providing charitable care, and coordinating resources for Oregon’s children and vulnerable communities.

Oregon children have among the worst oral health in the nation. Because of poverty, lack of access to care, and other social and economic issues, Oregon children suffer more dental pain and infection than children in almost any other state. Kids in pain get sick and miss school. In fact, Oregon educators estimate that on any given day over 5,000 children are suffering from dental pain or infection. Dental disease isn't just a cosmetic problem. Poor oral health affects overall health. When decay goes untreated, children may face even greater problems as adults, including chronic conditions that contribute to lung disease, stroke, and bacterial pneumonia.

Platinum logo

The DFO is a proud member of Philanthropy Northwest and the Nonprofit Association of Oregon.
PNW logo new

Dental Foundation Oregon nao

We Believe Every Child Deserves Quality Dental Care

We advocate for increased funding for children's dental treatment and education. We support community water fluoridation, a proven and safe way to reduce cavities, and we encourage volunteerism in the dental community.

HOME  | ABOUT  | TOOTH TAXI  | GIVE  | EVENTS  | RESOURCES  | Leadership  | Tooth Taxi Adventures  | Schedule  | Request a Visit  | Volunteer  | Donate  | Get Involved!  | Partner Support  | Chip! for Teeth Golf Tournament

Dental Foundation of Oregon | www.smileonoregon.org | 503-594-0880
8699 SW Sun Place, Wilsonville, OR 97070
Copyright © 2012-2020 Dental Foundation of Oregon and WEO Media (Touchpoint Communications LLC). All rights reserved.  Sitemap | Links | Privacy Policy
Dental Foundation of Oregon, 8699 S.W. Sun Place, Wilsonville, OR, 97070-9611 - Related Phrases: dental nonprofit Wilsonville OR, dental nonprofit Wilsonville OR, 503-594-0880, www.smileonoregon.org, 10/29/2020


text:
First and foremost, this is a place for independent thinkers.

After decades of building businesses, I’m turning my attention to writing, producing podcasts, and advising the businesses I still have an interest in.

I spent the last four years building Royalty Exchange and recently handed the reins over to a very capable team led by Anthony Martini and Gary Young.

Now, I write (and talk) about the things that interest me and my independent thinking friends. Things like:

  • Living with the Long View, Farsightedness, and Definite Optimism.

  • The outrageous leadership void in today’s institutions and what we can do about it.

  • The fragility of money and markets and how to succeed with what’s coming next.

  • The strange reasons people do what they do.

  • How to carve out a useful and happy existence while we’re lucky enough to be here.

    Join the Free Email Newsletter for updates


text:
October 29, 2020 Breaking News, Latest News, and Videos

Bush Does Asbestos As He Can…:

Maybe you heard it last Friday.  That giant lawnmower sound, like the enormous blades approaching in Stephen King’s  The Langolier.  It was Bush, cutting down class action suits. Large class actions, the kind in which citizens can come back at big corporations for negligence and abuse, which has changed their lives or ruined their health, will now go to federal courts instead of more consumer-friendly state courts.   Consumer groups contend that federal courts will be less sympathetic, and even less likely to hear, class action cases against well-financed corporations from oil, tobacco, automakers or my personal favorite, large pharmaceutical companies. Naturally, your man of the people thinks it’s fantastic.  Bush:  “We have agreed on a practical way to begin restoring common sense and balance to America’s legal system.” At a certain point, litigation against corporations ironically acquired a negative connotation in America.   The easy explanation might be to trace all this back to the notorious McDonald’s hot coffee suit of 1994, which, thanks to late night comics and pundit yak-fests, lingers in the public’s mind as the point at which something had to turn. Except that McDonald’s knew there was trouble brewing.  The company settled 700 incidents of scalding coffee burns in the last decade, and in the notorious case the woman involved pursued McDonald’s after they dismissed her request for compensation for medical bills from the resulting burns that required a seven-day hospital stay and skin grafts.   On appeal, the award to the plaintiff was lowered. But rather than re-spill that case… let’s look closer to home for evidence that consumers need the courts to help them.  Alan R. Sporn is a Laguna Hills businessman who had his Social Security number stolen.  He learned this when tracing problems with his credit to the giant retailer Home Depot.  Home Depot had submitted inquiries regarding Sporn’s credit at least a dozen times in a year.   But it wasn’t Sporn they were checking on, it was the party that had ripped-off his Social Security number. Home Depot would not reveal to Sporn who the culprit was, nor did it respond to certified mail from Sporn asking it to stop checking—thus denigrating his credit, and when he finally sued, it ignored the suit.   Sporn won, but Home Depot never showed up for the hearings.   Sporn and his attorney finally had to notify the L.A. Sheriff’s department, which began pursuing for Sporn’s judgment.  Home Depot, with Bush-like empathy for consumers, appealed.  But the District Court of Appeals scolded Home Depot and Sporn will now eventually get close to $1.15 million for the neglect. One consumer advocate says last week’s legislation shows that Bush “has once again demonstrated that the deep pockets of powerful corporate interests are more important to this administration than protecting the rights of ordinary Americans.”  Put another way, did you hear that Vioxx is back on the market?Bush has been aggressive in attacking what he calls “junk and frivolous lawsuits,” such as asbestos and medical claims.  You know, events in which large corporations make mistakes that kill people.   Dumb stuff that slows down the economy the way worker safety, product safety, consumer safety, medical safety and now identity protection slow down profits.   Bush has his template:  If brave Americans can fight in Iraq without enough armor, then certainly those at home can eat the asbestos of corporate abuse without recourse through the courts.

in Uncategorized
Related Posts


text:
October 29, 2020 Breaking News, Latest News, and Videos

Chrysalis’ Butterfly Ball Is Saturday:

Chrysalis’ fourth annual Butterfly Ball on Saturday, April 9 will raise money to help economically disadvantaged and homeless people to find jobs.

Oren Aviv, Walt Disney Pictures and Touchstone Pictures Marketing, Dana Walden, Twentieth Century Fox Television, and Ice Cube will be honored at the ball.

Net proceeds will go directly to Chrysalis, a nonprofit organization, which helps more than 2,000 individuals a year at three centers — in Los Angeles’ Skid Row, Santa Monica and Pacoima.

92 percent of the people who complete Chrysalis’ job readiness curriculum have found jobs, and 80 percent of those people remained in their jobs for six months or more. It is Chrysalis’ philosophy that a steady job is the single most important step in a person’s transition to long-term self-sufficiency.

To be held at the Bel Air home of Carla and Fred Sands, the Butterfly Ball will begin with a 6 p.m. VIP reception.

Cocktails will be served at 6:30, followed by dinner, awards and entertainment.Tickets are $1,000 and subject to availability. To purchase tickets, contact Orlando Suarez at Chrysalis: (310) 392-4117 ext. 742.

in Uncategorized
Related Posts


text:
Call Us Contact
How does the pandemic impact me?

My notes for this property

Add listing to my favorites (required)
$335,000  (list price)
/mo   Edit
MLS# 5280054
Single Family
4 bed / 3 bath
2,604 fin sqft
North Branch schools
My rating:
Request a Showing:
Ask the Agent

Ask the Agent

    Property inquiries submitted online are continually monitored to provide the best possible service.

    Thank You!

    An agent will be in contact with you soon to answer your question.

    Description:   Sanctuary in the woods. Enjoy 20 private, wooded acres with abundant wildlife and open sunny spaces for gardens. Spacious, well maintained home with sprawling wood front porch sourced from the land. 60x30 pole building with concrete floor, electric and heated shop - and additional barn. Home is located on the corner of Isanti, North Branch and Forest Lake school districts, so buyer can look into enrollment options.
    List Price: $335,000
    Sold Price: $325,000
    Sold Date: 11/22/2019
    Price/sq ft: $129
    Property Type: Single Family
    Listing Status: Sold
    Contingency: None
    Property Style: 1 Story
    Year Built: 1992
    City: Oxford Twp
    County: Isanti
    State: MN
    Zip Code: 55079

    Bathrooms: 3
    Bedrooms: 4
    Fin Sq Ft / Living Area: 2,604 ft²
    Above Ground Living: 1,904 ft²
    Below Ground Living: 700 ft²
    Total Fireplaces: 1
    Fireplace Details: Living Room, Wood Burning
    Appliances Included: Range, Microwave, Exhaust Fan/Hood, Dishwasher, Refrigerator, Washer, Dryer
    Basement Details: Walkout, Full, Partial Finished
    Common Wall: No

    Air Conditioning: Central
    Heating System: Forced Air, Fireplace, Wood Stove
    Foundation Size: 1,904 ft²
    Unit Amenities: Deck, Porch, Sauna, Kitchen Window, Skylight, Vaulted Ceiling(s), Ceiling Fan(s), Tiled Floors, Paneled Doors, Main Floor Master Bedroom, Washer/Dryer Hookup
    Road Frontage: Township
    Handicap Accessible: None
    Exterior Material: Vinyl
    Out Buildings: Shop, Pole Building, Barn
    Garage Spaces: 6
    Roof Details: Asphalt Shingles

    1/4 Baths: None
    Full Baths: 2
    Half Baths: None
    3/4 Baths: 1
    Bathroom Details: Main Floor Full Bath, Private Master, 3/4 Basement, Separate Tub & Shower
    Dining/Kitchen: Separate/Formal Dining Room, Informal Dining Room, Breakfast Area
    Family Room: Main Level
    Main Level Rooms Size Sq Ft
    Porch 68x14   952
    Master Bath 13x8   104
    Living Room 13x16   208
    Dining Room 10x13   130
    Family Room 13x14   182
    Kitchen 13x14   182
    1st Bedroom 13x12   156
    2nd Bedroom 10x12   120
    3rd Bedroom 11x11   121
    Lower Level Rooms Size Sq Ft
    Guest Room 14x50   700

    Acres: 20
    Construction Status: Previously Owned
    Lot Description: Tree Coverage - Heavy
    Latitude: 45.43023400
    Longitude: -93.09730200
    Lot Size Dim.: 694x1341x676x1327
    Zoning: Residential-Single

    School District: 138 - North Branch
    District Phone: 651-674-1000

    Financial & Taxes

    Association Fee: None
    Tax Year: 2018
    Annual Taxes: $2,630
    Assessment Pending: No
    Taxes w/ Assessments: $2,630

    Second Unit: Existing In-Law w/Kitchen, Existing In-Law w/Bath

    Fuel System: Propane
    Homestead: Yes
    Sewer System: Private
    Water System: Well

    Mortgage Calculator

    Use this calculator to estimate your monthly mortgage payment, including taxes and insurance. Simply enter the price of the home, your down payment and loan term. Property taxes are based on the last known value for this property or 0.012 of property price when data is unavailable. Your interest rate and insurance rates will vary based on credit score, loan type, etc.
    Payment:  /mo

    Get to know our Home Mortgage Professionals

    Jeff Zajac
    Area Sales Manager
    TruStone Home Mortgage NMLS#373627
    Jeff Zajac joined the Mortgage Lending Services team in 2014. With more than 10 years experience in the mortgage industry, Jeff is an expert in VA, FHA, conventional and construction loans. Jeff was one of the top five producers in the state of Minnesota in 2013. Jeff holds a bachelor's degree in economics and business administration from Augsburg College and participates in the Real Estate Investment Professionals business networking group. In his free time, Jeff spends his days as a youth hockey referee and coach.

     Residential Loan Pre-Qualification Form

    To get started on your loan pre-qualification, please complete the form below. A loan officer will need to gather additional information in order to determine your eligibility for a loan.

    I would like to get pre-qualified:

    I am interested in buying:

    I plan to use my new home as:

    I want to finance using:

    Loan term:

    I am interested in down payment assistance:

    Down payment amount:

    I am married:

    I am currently renting:

    My credit score:

    Listing provided by RMLS, courtesy of Edina Realty, Inc..
    Disclaimer: The information contained in this listing has not been verified by and should be verified by the buyer.