text:
Hikari is a line of specialty fish food brand manufactured by Kyorin Food Industries, Ltd. in Japan.

History and profile

Kyorin Food Industries, Ltd. is a part of the Kamihata Fish Industry Group together with its sister companies namely the Kamihata Fish Industries, Ltd. and the Kyorin Company, Ltd.  The history of Kyorin Food Industries, Ltd. as a cultivator of Koi, goldfish and fish diets dates back to 1877 when a Japanese named Tozaemon Kamihata started Koi carp cultivation.  In 1946, another Kamihata, Tokichi Kamihata, opened a Koi carp store in Himeji City, Hyōgo Prefecture, Japan.  Then in 1961, Shigezo Kamihata established the Kamihata Fish Industries, Ltd. The Kyorin Company, Ltd. was formally established in 1968 to manage the wholesale division of Kamihata Fish Industries, Ltd.  The Kamihata Group then established other branches in Japan including Tokyo (1989), Hongkong (1991), China (1999) and Singapore (2001).  It has a representative office in the United States under the company name, Hikari USA.

Kamihata Fish Industries Ltd. exhibited their specialty products at the Interzoo Exhibition in 2004 and 2006, which is an international pet business exhibition, at Nuremberg Messe, Germany.

Hikari foods and fancy goldfish headgrowths
Izhak Kroshinsky, a leading American Ranchu goldfish breeder and co-author of the book The Fancy Goldfish: A Complete Guide to Care and Collecting (Chapter 10, Breeding Ranchus, page 171) wrote: "Some manufacturers of pellet foods claim to incorporate headgrowth enhancers. I have used Hikari's lionhead pellets, and they do seem to accelerate headgrowth.

See also
Fish food

References

Bibliography
Hikari-Kamihata Products Review, The Koi Supply Website, KoiSupply.com, date retrieved: 28 May 2007
Hikari Products Review: "Who is Hikari?", Myfishfood.com, date retrieved: 28 May 2007
An Aquarium Product Review - Hikari Betta Bio-Gold Pellets by guest author Jilly Florio, from the "Fish Site" of Mary Brennecke, BellaOnline Fish Editor, date retrieved: 28 May 2007
Feature Article: The Successful Aquarium Culture of Goniopora Species (Table of Contents No. 5: "Feeding your Goniopora") by Justin Credabel from Advanced Aquarist's Online Magazine (Reefs.org Publication) Volume IV, October 2005, date retrieved: 28 May 2007
The TTABlog, "Keeping Tabs on the TTAB" by John L. Welch, Tuesday, April 10, 2007, Legal article on Hikari Algae Wafer, date retrieved: 28 May 2007
Hikari Company in the European Union, an article, date retrieved: 28 May 2007
Kamihata Fish Inc., Ltd. - Hikari (United States), an exhibitor at Zoomark International, Bologna, Italy, May 2007; date retrieved: 28 May 2007
Kamihata Fish Inc. Ltd – Hikari (Exhibitor's profile), Zoomark International, Bologna, Italy, May 2007; date retrieved: 28 May 2007
Feed companies with products registered in Utah, Utah.gov, date retrieved: 28 May 2007
Feed products registered in Utah, Utah.gov, date retrieved: 28 May 2007
"Winter's Effect On Koi, Goldfish, and Ponds" by Richard E. Carlson (Noting Protein Levels and Contents of Three Hikari USA Company Food for Koi, date retrieved: 28 May 2007
 "Triops Food and Recipes" by Stuart Halliday (Quoting Hikari As A Popular Commercial Quality Food Brand), date retrieved: 28 May 2007
Distributor in Thailand

Food and drink companies of Japan
Fishkeeping
Fish food brands

redpajama_set_name: RedPajamaWikipedia


Balinese and Thai style; rooms and villas with natural materials, palm and teak woods, lotus ponds; faces the gulf of Thailand.
30 kilometers from Hua Hin. peaceful Pranburi to the south of Hua Hin overlooking Gulf of Siam. Beach.


Roofing By Curry prides ourselves on the work that we do for our all of our customers. We would like to have feedback from our clients about the work that we have completed. We want to hear it all – the good and the bad. We strive for continuous improvement at Roofing By Curry and your comments can help us achieve that goal.
Follow the steps below to write a Google+ review on Roofing By Curry to let us know how we did on your home improvement project. Please be honest in your review. We appreciate you taking the time to provide your opinion to us!
1. Visit our Google+ profile page here.
2. If you are not registered with Google, register now. If you are registered, begin by clicking the white Write A Review button near the middle of the screen.
3. Follow the instructions to rate Roofing By Curry from 0 to 5 on specific aspects, then write any opinions in the text box.
4. Click Publish, then decide if you would to click Share so that other Google+ members can read your review.
It really is THAT easy! Thank you for helping us do a better job serving your home improvement needs!
Read Google Plus directions on how to write a Google+ review.
Watch this short video on how to write a Google Plus review.


text:
Mass arrests in Dutch riots after police custody death
More than 200 people detained in The Hague for breaking a curfew to protest against death of a man during his arrest.
Protesters gathered in the Schilderswijk neighbourhood of The Hague, carrying banners protesting what they perceive as excessive use of force by police [AP]
Dutch police have conducted mass arrests, detaining about 200 people for ignoring a ban on public assembly in a neighbourhood hit by late-night rioting after the death of a man in police custody.
The arrests late Thursday and early Friday capped four nights of rioting in a predominantly immigrant neighbourhood in The Hague - a situation that has drawn comparisons with the angry protests that erupted in the United States following deaths of black men at the hands of white police officers.
Hague Mayor Jozias van Aartsen, however, has strongly rejected such comparisons.
"There is absolutely nothing in common between the work of American police forces and the Dutch police and the Hague force," he told national broadcaster NOS this week.
Prosecutors investigating Sunday's death of Mitch Henriquez, a 42-year-old from the Dutch Caribbean island of Aruba, say he likely died of oxygen starvation caused during his arrest at a music festival on Saturday night.
Police officers suspended
The five officers involved have been suspended from active duty and are being investigated as suspects in his death.
Protesters have gathered each night in the Schilderswijk neighbourhood of The Hague, carrying banners protesting what they perceive as racism and the excessive use of force by police.
Henriquez's family, have said in comments reported in Dutch media that they do not believe he was a victim of racist policing. The have issued a call on social media for a silent march in his memory on Saturday and urged people to walk in peace from a railway station in The Hague to the park where he was arrested.
The Dutch National Ombudsman's office, which investigates disputes between citizens and government agencies, last year published a report following allegations of discriminatory policing in Schilderswijk, a neighbourhood of 60,000 people of 125 different nationalities.
The report, which called policing there "a mix of peacekeeping and crime fighting," found "no indication of structural abuses in the behaviour of police" in Schilderswijk but said "police and citizens need to work to prevent escalation".
Dutch Justice Minister Ard van der Steur told reporters on Friday that residents say troublemakers are pouring into the neighbourhood to riot. He said the disorder has to stop.
"Of course, there is concern and anger at what possibly happened last weekend," Van der Steur said. "That is understandable. But this reaction is unacceptable."

redpajama_set_name: RedPajamaCommonCrawl


text:
package com.appleframework.cache.ehcache;

import java.time.Duration;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.BiFunction;
import java.util.function.Supplier;

import org.ehcache.config.Builder;
import org.ehcache.expiry.ExpiryPolicy;

/**
 * Builder and utilities for getting predefined {@link ExpiryPolicy} instances.
 */
public class ExpiryPolicyBuilder2<K, V> implements Builder<ExpiryPolicy<K, V>> {

	private static Map<Object, Duration> durationMap = new ConcurrentHashMap<Object, Duration>();

	public static void setExpiry(String key, int seconds) {
		Duration duration = Duration.ofSeconds(seconds);
		if (seconds > 0) {
			durationMap.put(key, duration);
		}
	}

	public static Duration getExpiry(Object key) {
		return durationMap.get(key);
	}

	/**
	 * Get an {@link ExpiryPolicy} instance for a non expiring (ie. "eternal")
	 * cache.
	 *
	 * @return the no expiry instance
	 */
	public static ExpiryPolicy<Object, Object> noExpiration() {
		return ExpiryPolicy.NO_EXPIRY;
	}

	/**
	 * Get a time-to-live (TTL) {@link ExpiryPolicy} instance for the given
	 * {@link Duration}.
	 *
	 * @param timeToLive the TTL duration
	 * @return a TTL expiry
	 */
	public static ExpiryPolicy<Object, Object> timeToLiveExpiration(Duration timeToLive) {
		Objects.requireNonNull(timeToLive, "TTL duration cannot be null");
		if (timeToLive.isNegative()) {
			throw new IllegalArgumentException("TTL duration cannot be negative");
		}
		return new TimeToLiveExpiryPolicy(timeToLive);
	}

	/**
	 * Get a time-to-idle (TTI) {@link ExpiryPolicy} instance for the given
	 * {@link Duration}.
	 *
	 * @param timeToIdle the TTI duration
	 * @return a TTI expiry
	 */
	public static ExpiryPolicy<Object, Object> timeToIdleExpiration(Duration timeToIdle) {
		Objects.requireNonNull(timeToIdle, "TTI duration cannot be null");
		if (timeToIdle.isNegative()) {
			throw new IllegalArgumentException("TTI duration cannot be negative");
		}
		return new TimeToIdleExpiryPolicy(timeToIdle);
	}

	@FunctionalInterface
	public interface TriFunction<T, U, V, R> {
		/**
		 * Applies this function to the given arguments.
		 *
		 * @param t the first function argument
		 * @param u the second function argument
		 * @param v the third function argument
		 * @return the function result
		 */
		R apply(T t, U u, V v);
	}

	/**
	 * Fluent API for creating an {@link ExpiryPolicy} instance where you can
	 * specify constant values for creation, access and update time. Unspecified
	 * values will be set to {@link ExpiryPolicy#INFINITE INFINITE} for create and
	 * {@code null} for access and update, matching the {@link #noExpiration()} no
	 * expiration} expiry.
	 *
	 * @return an {@link ExpiryPolicy} builder
	 */
	public static ExpiryPolicyBuilder2<Object, Object> expiry() {
		return new ExpiryPolicyBuilder2<>();
	}

	private final BiFunction<? super K, ? super V, Duration> create;
	private final BiFunction<? super K, ? super Supplier<? extends V>, Duration> access;
	private final TriFunction<? super K, ? super Supplier<? extends V>, ? super V, Duration> update;

	private ExpiryPolicyBuilder2() {
		this((k, v) -> ExpiryPolicy.INFINITE, (k, v) -> null, (k, oldV, newV) -> null);
	}

	private ExpiryPolicyBuilder2(BiFunction<? super K, ? super V, Duration> create,
			BiFunction<? super K, ? super Supplier<? extends V>, Duration> access,
			TriFunction<? super K, ? super Supplier<? extends V>, ? super V, Duration> update) {
		this.create = create;
		this.access = access;
		this.update = update;
	}

	/**
	 * Set TTL since creation.
	 *

	 * Note: Calling this method on a builder with an existing TTL since creation
	 * will override the previous value or function.
	 *
	 * @param create TTL since creation
	 * @return a new builder with the TTL since creation
	 */
	public ExpiryPolicyBuilder2<K, V> create(Duration create) {
		Objects.requireNonNull(create, "Create duration cannot be null");
		if (create.isNegative()) {
			throw new IllegalArgumentException("Create duration must be positive");
		}
		return create((a, b) -> create);
	}

	/**
	 * Set a function giving the TTL since creation.
	 *

	 * Note: Calling this method on a builder with an existing TTL since creation
	 * will override the previous value or function.
	 *
	 * @param create Function giving the TTL since creation
	 * @return a new builder with the TTL creation calculation function
	 */
	public <K2 extends K, V2 extends V> ExpiryPolicyBuilder2<K2, V2> create(BiFunction<K2, V2, Duration> create) {
		return new ExpiryPolicyBuilder2<>(Objects.requireNonNull(create), access, update);
	}

	/**
	 * Set TTI since last access.
	 *

	 * Note: Calling this method on a builder with an existing TTI since last access
	 * will override the previous value or function.
	 *
	 * @param access TTI since last access
	 * @return a new builder with the TTI since last access
	 */
	public ExpiryPolicyBuilder2<K, V> access(Duration access) {
		if (access != null && access.isNegative()) {
			throw new IllegalArgumentException("Access duration must be positive");
		}
		return access((a, b) -> access);
	}

	/**
	 * Set a function giving the TTI since last access.
	 *

	 * Note: Calling this method on a builder with an existing TTI since last access
	 * will override the previous value or function.
	 *
	 * @param access Function giving the TTI since last access
	 * @return a new builder with the TTI since last access calculation function
	 */
	public <K2 extends K, V2 extends V> ExpiryPolicyBuilder2<K2, V2> access(
			BiFunction<K2, Supplier<? extends V2>, Duration> access) {
		return new ExpiryPolicyBuilder2<>(create, Objects.requireNonNull(access), update);
	}

	/**
	 * Set TTL since last update.
	 *

	 * Note: Calling this method on a builder with an existing TTL since last access
	 * will override the previous value or function.
	 *
	 * @param update TTL since last update
	 * @return a new builder with the TTL since last update
	 */
	public ExpiryPolicyBuilder2<K, V> update(Duration update) {
		if (update != null && update.isNegative()) {
			throw new IllegalArgumentException("Update duration must be positive");
		}
		return update((a, b, c) -> update);
	}

	/**
	 * Set a function giving the TTL since last update.
	 *

	 * Note: Calling this method on a builder with an existing TTL since last update
	 * will override the previous value or function.
	 *
	 * @param update Function giving the TTL since last update
	 * @return a new builder with the TTL since last update calculation function
	 */
	public <K2 extends K, V2 extends V> ExpiryPolicyBuilder2<K2, V2> update(
			TriFunction<K2, Supplier<? extends V2>, V2, Duration> update) {
		return new ExpiryPolicyBuilder2<>(create, access, Objects.requireNonNull(update));
	}

	/**
	 * Builds an expiry policy instance.
	 *
	 * @return an {@link ExpiryPolicy}
	 */
	public ExpiryPolicy<K, V> build() {
		return new BaseExpiryPolicy<>(create, access, update);
	}

	/**
	 * Simple implementation of the {@link ExpiryPolicy} interface allowing to set
	 * constants to each expiry types.
	 */
	private static class BaseExpiryPolicy<K, V> implements ExpiryPolicy<K, V> {

		private final BiFunction<? super K, ? super V, Duration> create;
		private final BiFunction<? super K, ? super Supplier<? extends V>, Duration> access;
		private final TriFunction<? super K, ? super Supplier<? extends V>, ? super V, Duration> update;

		BaseExpiryPolicy(BiFunction<? super K, ? super V, Duration> create,
				BiFunction<? super K, ? super Supplier<? extends V>, Duration> access,
				TriFunction<? super K, ? super Supplier<? extends V>, ? super V, Duration> update) {
			this.create = create;
			this.access = access;
			this.update = update;
		}

		@Override
		public Duration getExpiryForCreation(K key, V value) {
			Duration duration = ExpiryPolicyBuilder2.getExpiry(key);
			if (null != duration) {
				return duration;
			} else {
				return create.apply(key, value);
			}
		}

		@Override
		public Duration getExpiryForAccess(K key, Supplier<? extends V> value) {
			Duration duration = ExpiryPolicyBuilder2.getExpiry(key);
			if (null != duration) {
				return duration;
			} else {
				return access.apply(key, value);
			}
		}

		@Override
		public Duration getExpiryForUpdate(K key, Supplier<? extends V> oldValue, V newValue) {
			Duration duration = ExpiryPolicyBuilder2.getExpiry(key);
			if (null != duration) {
				return duration;
			} else {
				return update.apply(key, oldValue, newValue);
			}
		}
	}

	private static final class TimeToLiveExpiryPolicy extends BaseExpiryPolicy<Object, Object> {

		private final Duration ttl;

		TimeToLiveExpiryPolicy(Duration ttl) {
			super((a, b) -> ttl, (a, b) -> null, (a, b, c) -> ttl);
			this.ttl = ttl;
		}

		@Override
		public int hashCode() {
			return ttl.hashCode();
		}

		@Override
		public boolean equals(Object obj) {
			return obj instanceof TimeToLiveExpiryPolicy && ttl.equals(((TimeToLiveExpiryPolicy) obj).ttl);
		}

		@Override
		public String toString() {
			return "TTL of " + ttl;
		}
	}

	private static final class TimeToIdleExpiryPolicy extends BaseExpiryPolicy<Object, Object> {

		private final Duration tti;

		TimeToIdleExpiryPolicy(Duration tti) {
			super((a, b) -> tti, (a, b) -> tti, (a, b, c) -> tti);
			this.tti = tti;
		}

		@Override
		public int hashCode() {
			return tti.hashCode();
		}

		@Override
		public boolean equals(Object obj) {
			return obj instanceof TimeToIdleExpiryPolicy && tti.equals(((TimeToIdleExpiryPolicy) obj).tti);
		}

		@Override
		public String toString() {
			return "TTI of " + tti;
		}
	}
}

redpajama_set_name: RedPajamaGithub


I couldn't think of a better way to celebrate the end of this year's HBCU Month on Revision Path (as well as this year's World Interaction Design Day) than with a conversation with Marcus Mosby. Marcus is a senior interaction designer at Fjord in Austin, TX, and his passion lies in designing and creating experiences that help improve the lives of users everywhere.
We started off with an introduction to interaction design, and Marcus talked about the processes and tools he uses, and gave tips for other designers looking to get into the field. From there, we talked about his time at Clark Atlanta University, and he shared what it's like to design for different cultural considerations, and even gave us a peek at his photography work! There are a lot of paths you can take to get into design, and Marcus wants you to know that the sky's the limit!
One of the brilliant things about design is that there's no one "right" way to enter the industry. Career paths aren't linear anymore, and no one demonstrates this more than Sabella Flagg. Her journey has a designer has literally taken her around the world, and now she's settled in Seattle as an interaction designer for digital agency Artefact.
Sabella and I talked about what interaction design is, and she shared what prompted her move to Seattle after spending time teaching English in China. Sabella is also a fine artist and photographer, and talked about her dreams of having her own gallery exhibition, and her motivations for growing as a designer. Learn more about Sabella in this week's interview!
Lorenzo Wilkins is a multitalented creative who has worked extensively in his field for more than 40 years! Graphic design, photography, videography…you name it, and Lorenzo has probably had his hand in it. His most recent endeavor, a video series titled "ArtLife/LifeArt: An Insight into Creativity" talks to artists across the creative spectrum (including one of our past guests, Sela Lewis)!
Lorenzo and I talk about life as a designer before the advent of the personal computer, his history of work across print, television, and video, and his advice for designers on maintaining a creative legacy. I hope that Lorenzo's story helps you with following your passion and fueling your creative self!
I couldn't think of a better person to start 2018 with here on Revision Path than Jermaine Bell. The Baltimore-based visual designer, photographer, and social designer embodies what it means to work within a supportive creative community.
Jermaine started off by talking about his childhood growing up in Baltimore, and we followed his design journey through high school and college. He also gave us the lowdown on the ups and downs of fellowships, his first foray into retail, and discussed what it means to him to "make it" as a designer. Keep an eye out for Jermaine — he's doing big things!
Student Perspectives is our new interview series with students at HBCUs and some of the nation's top art and design schools. Learn about their goals, their fears, and their plans for the future! We're kicking things off with Cydney Ahlberg, a sophomore at Savannah College of Art and Design's Atlanta campus.


"The new K�HL RENEGADE STEALTH PANT opposes conventional thought to deliver superior performance, comfort and style. Cut from innovative DURALUX, the durable softshell fabric feels like cotton to the touch. Stronger, more breathable, and boasting superior anti-abrasion and quick dry properties, DURALUX with DWR outperforms standard nylon and provides UPF 50 sun protection.
Our FULL FIT features a full seat and thigh for a more relaxed fit. The waistband is lined with soft micro-chamois for unmatched comfort.
K�HL's articulated knee and gusseted crotch allow true freedom of movement. Stealth compartment pockets inside large cargo pockets keep items secure and organized, while the mesh fabric allows ventilation. Easy care, wash and wear.


text:
from vint.linting.policy.abstract_policy import AbstractPolicy
from vint.linting.policy.reference.googlevimscriptstyleguide import get_reference_source
from vint.linting.level import Level
from vint.ast.node_type import NodeType
from vint.linting.policy_registry import register_policy

GoodStringComparisonOperators = {
    NodeType.EQUAL: ['==#', '==?'],
    NodeType.NEQUAL: ['!=#', '!=?'],
    NodeType.GREATER: ['>#', '>?'],
    NodeType.GEQUAL: ['>=#', '>=?'],
    NodeType.SMALLER: ['<#', '<?'],
    NodeType.SEQUAL: ['<=#', '<=?'],
    NodeType.MATCH: ['=~#', '=~?'],
    NodeType.NOMATCH: ['!~#', '!~?'],
    NodeType.IS: ['is#', 'is?'],
    NodeType.ISNOT: ['isnot#', 'isnot?'],
}

BadStringComparisonOperators = {
    NodeType.EQUAL: '==',
    NodeType.NEQUAL: '!=',
    NodeType.GREATER: '>',
    NodeType.GEQUAL: '>=',
    NodeType.SMALLER: '<',
    NodeType.SEQUAL: '<=',
    NodeType.MATCH: '=~',
    NodeType.NOMATCH: '!~',
    NodeType.IS: 'is',
    NodeType.ISNOT: 'isnot',
}

@register_policy
class ProhibitEqualTildeOperator(AbstractPolicy):
    level = Level.WARNING
    description = 'Use the =~# or =~? operator families over the =~ family.'
    reference = get_reference_source('MATCHING')

    def listen_node_types(self):
        return [
            NodeType.EQUAL,
            NodeType.NEQUAL,
            NodeType.GREATER,
            NodeType.GEQUAL,
            NodeType.SMALLER,
            NodeType.SEQUAL,
            NodeType.MATCH,
            NodeType.NOMATCH,
            NodeType.IS,
            NodeType.ISNOT,
        ]

    def is_valid(self, node, lint_context):
        """ Whether the specified node is valid to the policy.

        In this policy, comparing between a string and any value by
        'ignorecase'-sensitive is invalid. This policy can detect following
        script: variable =~ '1'

        But detecting exactly string comparison without evaluation is very hard.
        So this policy often get false-positive/negative results.
            False-positive case is: '1' =~ 1
            False-negative case is: ('1') =~ 1
        """
        node_type = NodeType(node['type'])

        left_node = node['left']
        right_node = node['right']
        left_type = NodeType(left_node['type'])
        right_type = NodeType(node['right']['type'])

        is_valid = True
        if left_type is NodeType.STRING:
            if any(c.isalpha() for c in left_node.value):
                is_valid = False
        if is_valid and right_type is NodeType.STRING:
            if any(c.isalpha() for c in right_node.value):
                is_valid = False

        if not is_valid:
            self._make_description(node_type)

        return is_valid

    def _make_description(self, node_type):
        good_examples = ['`' + op + '`' for op in GoodStringComparisonOperators[node_type]]
        formatted_good_examples = ' or '.join(good_examples)

        bad_example = BadStringComparisonOperators[node_type]

        params = {
            'good_example': formatted_good_examples,
            'bad_example': bad_example,
        }
        self.description = ('Use robust operators {good_example} '
                            'instead of `{bad_example}`').format(**params)


text:
In the Labyrinth
Steve Kemper's blog
Tag Archives: Gao
Why Timbuktu Will Overcome Its Latest Fundamentalist Conquerors
Posted on September 6, 2012 by Steve Kemper
Caravan routes
Many of today's headlines about Islamic north-central Africa would look familiar to the explorer and scientist Heinrich Barth, who traveled 10,000 miles there for the British from 1850 to 1855. The caravan routes ridden by Barth are now roads, but the arid territories they cross are still a nexus of distinctive cultures that have mixed and chafed for centuries. Old frictions still flare up between Muslims and non-Muslims, black and brown, fundamentalists and moderates, central governments and local chiefs.
As in Barth's day, bandits and fanatics keep the region in turmoil. The group Boko Haram ("Western education is forbidden") has killed hundreds of people in places Barth visited in northeastern Nigeria, bombing government offices, schools, and Christian churches. The group's violent quest to "purify" Islam is just the most recent of similar jihads reported by Barth. Other groups, now as then, use religion as a veneer to justify thuggery. The terrorists of al-Qaeda in the Islamic Maghreb (AQIM), for instance, seem motivated more by money than by Mohammed, kidnapping Western travelers whom they murder or ransom — behavior that Barth witnessed and survived.
For Barth, Boko Haram and AQIM would be familiar manifestations with historical precedents. So would the distress of today's moderate Muslims who want to reclaim their religion's traditions of tolerance and learning from gangsters and extremists.
Some current events are almost historical reenactments. In March of this year, after the Malian military staged a coup, several rebel groups took advantage of the political chaos to occupy Mali's northern half, including the ancient desert towns of Timbuktu and Gao. The group that now controls Timbuktu is associated with AQIM and calls itself Ansar Dine ("Defenders of the Faith"). Like Boko Haram, the Ansar Dine are fundamentalists intent on imposing their version of a purer Islam. If history is a guide, they would have better luck pushing a camel through the eye of a needle.
Ibn Battuta
Since the time of Ibn Battuta (1352), visitors to Timbuktu have been impressed by the town's scholars and amiable inhabitants, known for their love of singing, dancing, and smoking. The Ansar Dine have stopped the singing and the music, and are requiring women to veil their faces, atypical in Timbuktu. Tobacco and alcohol have been banned, places that sold them have been shuttered or destroyed, and possession of a cigarette brings a beating. Women have been whipped for immodest behavior such as walking alone or riding in a car with men. In a town near Timbuktu, an unmarried couple was stoned to death.
Ignorance, that frequent collaborator with fanaticism, has led the Ansar Dine to destroy at least half a dozen of Timbuktu's historic tombs and monuments, including part of the fourteenth-century Djingereber mosque, on grounds of idolatry. Scholars fear that Timbuktu's invaluable manuscript libraries might be looted, perhaps for the purpose of selling these volumes of old Islamic erudition to fund new Islamic intolerance.
Timbuktu has weathered it all before. Similar restrictions were in place when Barth spent seven months there under house arrest in 1853-54. Muslim jihadists from the newly-declared kingdom of Hamdallahi ("Praise to God") had conquered Timbuktu in 1826. They attempted to impose harsh reforms: no tobacco, mandatory attendance at mosque, segregation of men and women. The sociable smoking dancers of Timbuktu considered these dictates preposterous. By the time of Barth's visit, the fundamentalists had despaired of separating Timbuktu's men and women, but Barth recounts how they raided homes to seize tobacco and levied fines for insufficient piety.
Today's residents of Timbuktu, Gao, and nearby desert towns have begun staging protests and forming militias to resist Ansar Dine's severe version of Islam. It seems likely that long after Ansar Dine has vanished into history like Hamdallahi, Timbuktu and its people will still be singing and smoking.
Barth blamed much of the region's misery on its greedy, corrupt leaders, who devastated the region with constant warfare and slave raids. "Even the best of these mighty men," he wrote, "cares more for the silver ornaments of his numerous wives than for the welfare of his people." Today's Nigerians ask why their government can't protect them from Boko Haram, and why a country with some of the world's richest oil deposits must import most of its gas and can't light its largest cities. Greed and corruption, wrote Barth, inspired violent purifying jihads that imposed their own repressions. These criticisms still sound fresh.
As in Barth's day, most Westerners know little about Islam or Africa, and distort them into simple monoliths. Barth carried some of his era's assumptions, but he was willing to go where the evidence took him. He found ignorance and savagery in Africa — the prevailing European view of the continent — but also scholars and sophisticated systems of commerce and government.
He likewise challenged the dominant European view of Islam as an evil dangerous opponent of Christian civilization, which still sounds familiar. Consider the recent Republican presidential primary, in which nearly every candidate expressed alarm about the nonexistent threat of Sharia law in the United States. Members of Congress are on record about "terrorist babies" and "stealth jihadis." American towns have voted to ban mosques, and corporations tremble when fringe groups accuse them of being pro-Muslim.
Barth called Islam a great religion — not a popular view, then as now — but added that in some places it had been hijacked by brigands or fanatics who used it as an excuse to pillage or to subjugate. He pointed out that Islam wasn't much different in these ways from Christianity, another great religion sometimes hijacked by the greedy or the self-righteous. All of this remains in the headlines.
Unlike most pundits about the continent, then as now, Barth formed his views from close observation of African reality. His news and perspective remain pertinent. As a scientist he believed that knowledge can dissolve ignorance and misunderstanding. Perhaps it still can, given the chance.
*This originally appeared on the History News Network on August 22, 2012.
Posted in Uncategorized	| Tagged al-Qaeda in the Islamic Maghreb, Ansar Dine, Boko Haram, Gao, Heinrich Barth, History News Network, Islam, Mali, Mujao, Nigeria, north Africa, Sharia, terrorism, Timbuktu	| 2 Replies
Desert River
Posted on May 31, 2012 by Steve Kemper
In the last post I mentioned that Timbuktu's location near the Niger River made it the place "where the camel meets the canoe." In Barth's day those canoes landed at Kabara, a village on the Niger about eight miles from Timbuktu. Barth disembarked there after spending several days in a dugout, winding through the tributaries and channels that spill into the Niger from the south, upstream from the village. At Kabara he left the river and rode through the desert to Timbuktu. In those days thieves made a good living on the road that connected the two places.
Barth's arrival in Timbuktu, from Travels and Discoveries
These days a traveler coming from Kabara passes an agricultural project run by an evangelical sect, a small modern airport, an encampment of Bela (formerly the black slaves of Tuaregs), then a spot where people dig clay for bricks. Closer to Timbuktu a traveler reaches the mega-compound of Muammar Qaddafi, the Libyan despot. Some years ago, to the bewilderment of the locals, Qaddafi developed a fondness for Timbuktu, built the compound, and visited infrequently. He also connected his palace to the Niger with a canal, which some residents blame for Timbuktu's mosquitoes. Qaddafi is gone but the irritants he attracted remain, in small numbers.
I asked Shindouk if lions and other wildlife still roamed between Kabara and Timbuktu. He shook his head. "On the road to Kabara," he said, "there's not even a pigeon. Once there were ostriches and gazelles, but they've all been killed."
Some things about the road haven't changed. It's still a sun-baked straight line from river to town. Alongside it, people still rest in slivers of shade cast by stunted trees. Donkeys and their keepers still move briskly between the Niger and Timbuktu. Heading towards the port, the donkeys carry nothing. Heading towards town, they nearly disappear beneath their wide loads of millet stalks or river grass, sold for fodder in the markets.
When Barth reached Kabara the rainy season had started and the port was bustling. Barth was posing as a Syrian sherif. The people in Kabara were split between curiosity and suspicion about him. He wasn't sure how long his disguise would hold, or what would happen to him once he entered Timbuktu. He spent a few anxious days in the village while his guide, a devious rascal, tried to arrange protection in town.
When I visited Kabara, its harbor basin was somnolent and empty of vessels. The only action was four women washing clothes, as their kids loitered and fished nearby. My guide, a young Songhai named Mahamane Hameye, explained that Kabara used to be busy but its harbor began disappearing in the dry season, so boats couldn't reach it. Now most river traffic prefers to land at Korioume, a couple of miles upstream.
Kabara harbor
Road to Korioume
Part of the road to Korioume was generously shaded by eucalyptus trees. Rice and vegetables grew alongside. All this green, so close to the desert, was visually jarring.
Korioume more closely resembled the scene Barth saw in Kabara. The Niger looked at least a mile wide, the "noble stream" of so many accounts of exploration.
Korioume
Millet grew on islands far out in the river. Soldiers waiting for the ferry flirted with women doing laundry. Traders, trucks, cargo, and boats of various sizes crowded the waterfront—dugouts painted with geometric designs, fishing boats with big square nets, the big canopied boats called pinasses that carry cargo and passengers between Gao and Mopti, other port towns on the Niger. "Something comes and something goes," said Mahamane. Today one of the things going was slabs of salt, probably from Taoudeni, lined up on the shore. In the dry season, when the river thinned, hippos came near here and sometimes threatened the smaller boats.
Salt slabs at Korioume
Within minutes of leaving Korioume, we were back in the sand and scrub of the Sahara, and the Niger was a fading green dream.
Posted in Uncategorized	| Tagged Gao, Heinrich Barth, Kabara, Korioume, Mopti, Niger, Timbuktu, Tuareg people	| Leave a reply
The story of Heinrich Barth's epic journey
Strange Behaviors
Nieman Storyboard
More Intelligent Life
Mongabay
The Open Notebook
The Last Word on Nothing
W. W. Norton
Steve Kemper's Home Page
Nearing the End of the Journey
Images: Some Expedition Documents
August Petermann, Cartographer of Exploration


Please present your SimpleAirportParking.com parking receipt at the Front Desk to receive a 10% off coupon for La Riviera Restaurant. Starbucks coffee shop available on the property.
We recommend that you arrive to park at least 30 minutes before you wish to arrive at the airport. Enter this location at 5800 Blue Lagoon Drive; this is the Pullman MIA Hotel uncovered self-park lot. It is located on the south side of Blue Lagoon Dr. between NW 57th Ave. and NW 62nd Ave.
When entering the lot, make a right after entrance gate (do not park in front of the hotel) and visit the hotel front desk to present your SimpleAirportParking.com prepaid receipt either on your cellphone or hard copy.
FREE shuttle service from 4:30 a.m. - 11:30 p.m. to MIA and back is available to airport parkers from this location every 30 minutes on the hour and the half-hour. Outside of these hours, transportation is not provided or arranged by the hotel.
When you return to MIA, board the return shuttle on the 2nd floor of MIA near DEPARTURES. Look for a white shuttle with 'Pullman Hotel' lettering on the side.
Pullman Hotel offers you an inexpensive alternative for MIA parking with a free hotel shuttle that runs to and from the airport. 24-hour security staff and exterior video surveillance make this a safe location to leave your vehicle while traveling.


text:
WTN Media
FusionCIO 2020
The Government CIO 50: Driving change in the public sector
The job of government CIO hasn't hasn't gotten easier, but it's certainly grown more interesting. CIOs at federal agencies are under pressure to adopt new technologies, deliver on the promise of "open government," and shed outdated procurement practices. At the state and local level, the...
29 September, 2009 / 0 Comments
How useful are recruiters in getting hired in tech jobs
IT workers on the hunt for greener pastures look for any advantage they can find to land that dream job. But just how useful are recruiters in the technology job market? Dice.com asked as much this month in its September job update. Click here to view...
Google Sidewiki: Website browsing with a side of chaotic insight
What happens when you decide to let anyone leave comments on any website they visit? Google Sidewiki. Although Google Sidewiki isn't the first attempt by a company to integrate its comment system into the browsing experience, with the weight of Google and its popular toolbar behind...
Ballmer criticizes I.B.M.'s high-profit diet
Here's an unusual characterization of I.B.M.: a shrinking violet among technology giants. That's Steve Ballmer's take. During an interview last week, Mr. Ballmer, Microsoft's chief executive, was critical of I.B.M.'s decisions over the last decade to dispose of its networking equipment, hard disk and PC businesses....
E-Records get a big endorsement
The nation's drive toward computerized medical records is getting a push from big hospitals, which hope not only to improve patient care but to gain an edge on competitors. And an effort to be announced on Monday by a big New York regional hospital group...
Xerox shares plunge on ACS deal
Shares of Xerox fell about 15% in Monday trading on concerns that the company's plan for a multibillion dollar acquisition of outsourcer Affiliated Computer Services could expose the imaging giant to significant debt and integration problems. Xerox shares were off 14.86% Monday, to $7.68. ACS shares...
CIOs see the future clearly strategically and operationally
Recently I had the opportunity to work with two dozen CIOs as the facilitator of a three-hour discussion on their issues. I talked with 15 CIOs prior to the session to understand the issues at the top of their mind and the areas of strength...
At BarCamp, techies trade expertise
Technology professionals, enthusiasts and addicts are tooling up for BarCampMilwaukee4: a two-day meeting of minds starting Saturday where anyone can show up, learn and share. BarCamps are called "unconferences," which means the agenda is pretty informal and flexible. Everyone attending is asked to run a...
Foley & Lardner recognized for innovative IT
Foley & Lardner LLP has been named to the 2009 InformationWeek 500, an annual listing of the nation's most innovative users of business technology. Foley is the only law firm in the United States to have received this recognition for the fourth consecutive year. Foley...
Acuity named to InformationWeek 500
Sheboygan-based Acuity has been named again to InformationWeek magazine's InformationWeek 500, the listing of companies that are the most innovative users of information technology in the United States. Acuity has been listed in the InformationWeek 500 for six consecutive years and this year outranked companies...
WTN News & WTN Media
102 NE 2nd Street, Suite 244,
Mike Klein, CEO & Editorial Director
mike@wtnmedia.com


She is a dynamic person and working since 2001 in this field. She always tries to make her clients comfortable. She is a master in Hair Treatment and she believes in customer's satisfaction.
We use only Loreal professional products for all kind of hair treatment.
We use only Cheryl's products for all kind of skin treatments.
Makeup Studio : We offer makeup for all your celebration like Bridal Makeup, Profession Makeup, Party Makeup, Saree Draping. We also do entertain side Bridal.
Copyright © 2015 - Her Expertise. All rights reserved.
Her Expertise is all about promoting women entrepreneurship & women empowerment. We are providing platform for showcasing expertise skills, exchanging ideas, getting experienced advice & empowering women with knowledge.


I am so confused, he comes to get the kids, stays for a cuppa and a chat, asks me about my life, tells me about his, asks for advice about things. Time will give you the answers and clarity you need once you put these steps into motion. After 13 years of marriage my husband decided he needed space to figure himself out. I know it seems very dark right now, but I also know that you as the wife have so much power to make this marriage great again. I want her back but how long can some just wait for the other person to surface again.
If you can't be that woman there's always a chance. We have 4 kids together and they are hurting really bad about what happened! If you are able to follow this plan of action you should have the confidence and inspiration to find the means to cap off your resurrection by finding the right way to conclude your transformative journey. Whatever the cause of your marriage breakdown, turning things around and getting your ex-wife back comes down to showing her that you really have changed and you now have the qualities she wants in a man and a husband. I know things could be worse. Watch this video for more info on how that works… As you will discover from the video above, human feelings really can change.
You can try and prove to your wife how much you love her, but it will not lead you to the desired result. Wives usually feel lies very well, so strait manipulations will be perceived negatively. You will be disciplined and focused, and you will start steadily improving over time. If that feels like too much work or effort for you, then you should move on without her by finding yourself a new woman. It may not seem like it right now, but I definitely think you can revitalize your marriage and make it great again. You will soon be laughing and having fun together! What is better than getting your husband back to how he used to be? Step 3: Look at your spirit Now it's time to examine your spiritual life. Can you commit to never bringing up his hurtful actions ever again? We only have control over whether we approach them or not.
I am becoming a better man. We have been married for 2 years, together for 4. If you wait, your chances of getting her back will diminish. So many of my clients have come to me after their husbands left. Not to mention the fact that he will be super impressed and want to impress you and touched by this display of maturity and good will.
My family has washed their hands of the situation. I barely even see or talk to him at this time. It hurts and our children are suffering through as well. Bring your playful self to your interactions with him. I am extremely proud of my husband for this but it has become a source of great pain for me. Sorry for the book I am a thorough person.
All these things ate at me. Please pray for my wife Shannon and I to reconcile and for the Lord to soften her heart to me. Saving your marriage is you thinking outside the box. Screaming and yelling and sometimes throwing things. Work on your issues Okay!. Having a will obviously disturb the whole relationship. He wont communicate with me and of course he keeps telling me their is no other woman.
I am shattered that for whom i learnt to smile , for whom i gave my social media life to give her more time , I almost changed my anger into love for everyone but today i am left broken i dont know even if god send her back will anyone accept will she come even. The above suggestions are great, and I have been implementing them religiously but getting some traction takes a lot of doing. How did you get to this point? Fortunately, my clients have been able to save their marriages even after separation by practicing the 6 Intimacy Skills. After the proposal I focused on wedding preparations so I did not have time to nag or criticize him which was good. I am hoping and praying that keeping my distance will eventually make him come around and begin talking about things with the goal of working on our marriage.
Commit yourself to a regular routine of exercise. I would never diminish how hurtful that is. I found out in late March of 2015 that he was having an emotional affair with a female that he is in program with. More than simply keeping in touch you will need to turn the negative energy coming out of a divorce into a positive dialogue. I knew that they were texting but she assured me that she just wanted closure as their relationship had ended abruptly years ago due to circumstances and that they were just friends now. Men And Women Are Different Better Connect With Like a Woman This part is very critical if you wish to win your husband back after separation.


Filled under: 未分类	By: huo Posted on: 2018-03-31 Comments are disabled!
Filled under: 未分类	By: huo Posted on: 2018-03-29 Comments are disabled!
Filled under: 未分类	By: huo Posted on: 2018-03-27 Comments are disabled!
Filled under: 未分类	By: huo Posted on: 2018-03-24 Comments are disabled!
Filled under: 未分类	By: huo Posted on: 2018-03-22 Comments are disabled!


text:
<?php
declare(strict_types=1);
namespace MyPlot\subcommand;

use MyPlot\forms\MyPlotForm;
use MyPlot\forms\subforms\UndenyPlayerForm;
use MyPlot\Plot;
use pocketmine\command\CommandSender;
use pocketmine\player\Player;
use pocketmine\utils\TextFormat;

class UnDenySubCommand extends SubCommand
{
	public function canUse(CommandSender $sender) : bool {
		return ($sender instanceof Player) and $sender->hasPermission("myplot.command.undenyplayer");
	}

	/**
	 * @param Player $sender
	 * @param string[] $args
	 *
	 * @return bool
	 */
	public function execute(CommandSender $sender, array $args) : bool {
		if(count($args) === 0) {
			return false;
		}
		$dplayerName = $args[0];
		$plot = $this->plugin->getPlotByPosition($sender->getPosition());
		if($plot === null) {
			$sender->sendMessage(TextFormat::RED . $this->translateString("notinplot"));
			return true;
		}
		if($plot->owner !== $sender->getName() and !$sender->hasPermission("myplot.admin.undenyplayer")) {
			$sender->sendMessage(TextFormat::RED . $this->translateString("notowner"));
			return true;
		}
		$dplayer = $this->plugin->getServer()->getPlayerByPrefix($dplayerName);
		if($dplayer === null)
			$dplayer = $this->plugin->getServer()->getOfflinePlayer($dplayerName);
		if($this->plugin->removePlotDenied($plot, $dplayer->getName())) {
			$sender->sendMessage($this->translateString("undenyplayer.success1", [$dplayer->getName()]));
			if($dplayer instanceof Player) {
				$dplayer->sendMessage($this->translateString("undenyplayer.success2", [$plot->X, $plot->Z, $sender->getName()]));
			}
		}else{
			$sender->sendMessage(TextFormat::RED . $this->translateString("error"));
		}
		return true;
	}

	public function getForm(?Player $player = null) : ?MyPlotForm {
		if($player !== null and ($plot = $this->plugin->getPlotByPosition($player->getPosition())) instanceof Plot)
			return new UndenyPlayerForm($plot);
		return null;
	}
}


text:
Admirable Trees
The "Admirable Trees" of the Estate of Versailles
Among the 350,000 trees planted on the Estate of Versailles, 30 have been deemed admirable on account of their beauty, history or botanical rarity. 20 years after the terrible storm of 1999, the Palace of Versailles is aiming to draw attention to these trees with a walking tour that will allow visitors to locate and learn more about them. This programme was made possible thanks to the patronage of Maison Rémy Martin.
A heritage of sap and wood
The doyen of these trees, a pedunculate oak near the Grand Trianon, has been studied and dated from the time of Louis XIV. Planted in 1668, it is 36 metres high and the circumference of its trunk is more than 5 metres!
© Didier Saulnier
Covering over 800 hectares, the gardens of the Palace of Versailles are much more than a simple green space, a fact that greatly enhances the Royal Estate's renown. From the French gardens located in front of the Palace, to Trianon's English garden, the Estate is home to extraordinary trees that are living witnesses to Versailles' impressive history. Originally comprising mainly linden and chestnut trees from nearby forests, Versailles' arboreal heritage has expanded over the centuries to include rare trees from far-off lands: the American tulip tree and Virginian juniper, the Japanese Pagoda tree, the Chinese catalpa, and the giant sequoia. Though some ancient trees did not survive the 1999 storm, several of the most remarkable species are still standing and deserve greater attention. The gardeners of Versailles have chosen around 30 of these for visitors to discover through a signposted route, a publication, and an audio guide on the Palace of Versailles app (free download).
This walking tour was made possible thanks to the patronage of Maison Rémy Martin.
Follow the guide on the app
The Palace of Versailles' free mobile app offers visitors a new self-guided tour with 14 stops describing the Estate of Trianon's admirable trees. Commentary from head gardener Alain Baraton is also available in French and Spanish.
An ideal patron
Founded in 1724, and recognised for its quality in 1738 by Louis XV's Royal Accord, Maison Rémy Martin's values are similar to those of the Palace of Versailles. The cognac maker was founded by a winegrower and is deeply rooted in the land. It is also committed to environmental protection, using integrated viticulture since 2007 and receiving the High Environmental Value Agriculture certificate in 2012. Like the Palace of Versailles, its perception of time goes beyond human time, with profound respect for the patience required to obtain the best quality: each and every day, Maison Rémy Martin's Cellar Master has future generations in mind. The Estate of Versailles and Maison Rémy Martin also share the same passion for trees, especially oaks like the Quercus Robur, which are exclusively used to age its eaux-de-vie. Whether through the art of blending and barrel making, the winemaking professions, or crystal glassmaking, there is a key commitment to deepening and passing on their superior savoir-faire. By supporting the Palace of Versailles for the first time, Maison Rémy Martin is offering visitors the opportunity to discover the gardens' "Admirable Trees".
It is also worth reading Alain Baraton's article on the project, published in Les carnets de Versailles, accessible here.
Didier Saulnier
The Estate of Trianon is open from Tuesday to Sunday (except December 25th, January 1st and May 1st) from noon to 5.30 pm and until 6.30 pm in high season.
More informations here.
Admirable Trees' leaflet
A guide featuring illustrations of each of these trees was created just for this occasion. It is on sale in our online boutique.
A virtual visit of the Queen's hamlet
The Queen's hamlet in the Trianon Gardens is an idyllic place for a stroll. Upon restorating and refurnishing the key feature of the Hamlet, discover it in 3D wherever you are.
Fountains Shows and Musical Gardens
From May 22th to October 31th 2021, enjoy the Musical Gardens from Tuesday to Friday and the Musical Fountains Shows on Saturdays and Sundays in the Gardens and the groves open for the occasion. Every Saturday night from 12th June to 18th September, and on Wednesday 14th July, discover the gardens of Versailles in the evening with the Night Fountains Shows.
The taste of Marie Leszczynska
During the 42 years she spent at Versailles, Marie Leszczyńska had a profound impact on both the layout of the Palace and artistic life at the time. Her influence has inspired this dedicated exhibition, now open to the public.


I recently met and hung out with the peeps in charge of the 'New York Denim Days' festival and I ADORE them and all that is denim. My bestie Nicole (@mashupnicole) from the Morning Mashup and I were cordially invited to get a sneak peek at what's about to go DOWN this weekend….
So here are the deets… The two day festival is at New York's Metropolitan Pavilion this Saturday and Sunday. Nicole and I will be there from about 12-3 on Saturday and you can get your tix HERE!
Hope you see YOU there on Saturday!
i am guy is it ok for me to go ?


text:
package flow.twist.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Properties;
import java.util.Set;

import soot.ArrayType;
import soot.Local;
import soot.Modifier;
import soot.PrimType;
import soot.RefType;
import soot.SootClass;
import soot.SootMethod;
import soot.Type;
import soot.Unit;
import soot.Value;
import soot.jimple.ArrayRef;
import soot.jimple.AssignStmt;
import soot.jimple.CastExpr;
import soot.jimple.FieldRef;
import soot.jimple.InvokeExpr;
import soot.jimple.Stmt;
import soot.tagkit.LineNumberTag;
import soot.tagkit.SourceLnPosTag;

import com.google.common.collect.Sets;

import flow.twist.config.AnalysisContext;
import flow.twist.config.AnalysisDirection;
import flow.twist.targets.AnalysisTarget;

public class AnalysisUtil {

	/**
	 * Returns true if both references may point to the same memory
	 * location. The current implementation is conservative, as it does not take
	 * any points-to information into account.
	 */
	public static boolean maybeSameLocation(Value abstrRef, Value programRef) {
		// arrays are handled through their "base" pointer
		assert !(abstrRef instanceof ArrayRef);
		assert !(programRef instanceof ArrayRef);

		if (abstrRef == programRef)
			return true;

		// handle primtive types
		Type abstrRefType = abstrRef.getType();
		Type programRefType = programRef.getType();
		if (programRefType instanceof PrimType) {
			// we don't track primitive types, just Strings, ClassLoaders, etc.
			// ...
			return false;
		}
		if (abstrRefType instanceof PrimType) {
			// we don't track primitive types, just Strings, ClassLoaders, etc.
			// ...
			throw new InternalError("abstraction ref type is " + abstrRefType);
		}

		if (abstrRef instanceof Local && programRef instanceof Local) {
			// two locals only point to the same memory locations if they are
			// the same
			return abstrRef == programRef;
		} else if (abstrRef instanceof FieldRef && programRef instanceof FieldRef) {
			FieldRef fieldRef = (FieldRef) abstrRef;
			FieldRef fieldRef2 = (FieldRef) programRef;
			// references point to the same location if class and field name are
			// identical;
			// note that we ignore the receiver object of InstanceFieldRefs
			return fieldRef.getField().getDeclaringClass().equals(fieldRef2.getField().getDeclaringClass())
					&& fieldRef.getFieldRef().name().equals(fieldRef2.getFieldRef().name());
		} else {
			return false;
		}
	}

	public static String methodCanBeOverwrittenByApplication(SootMethod m) {
		int methodModifiers = m.getModifiers();
		int classModifiers = m.getDeclaringClass().getModifiers();

		if (Modifier.isPublic(classModifiers) && !Modifier.isFinal(classModifiers)) {
			if (Modifier.isPublic(methodModifiers) && !Modifier.isStatic(methodModifiers) && !Modifier.isFinal(methodModifiers)) {
				return "Method and declaring class are public and non-final, method is non-static.";
			} else if (Modifier.isProtected(methodModifiers) && !Modifier.isStatic(methodModifiers) && !Modifier.isFinal(methodModifiers)) {
				return "Method is protected and non-final and non-static, declaring class is public and non-final.";
			}
		}

		return null;
	}

	private static String[] restrictedPackages;

	public static void initRestrictedPackages(String pathToJREHome) {
		Properties secProps = new Properties();
		try {
			try {
				secProps.load(new InputStreamReader(new FileInputStream(pathToJREHome + File.separator + "lib" + File.separator + "security"
						+ File.separator + "java.security")));
			} catch (Exception e) {
				secProps.load(new InputStreamReader(new FileInputStream(pathToJREHome + File.separator + "jre" + File.separator + "lib"
						+ File.separator + "security" + File.separator + "java.security")));
			}
			restrictedPackages = secProps.getProperty("package.access").split(",");
			String defn = secProps.getProperty("package.definition");
			if (defn != null) {
				String[] defnPackages = defn.split(",");
				if (!Arrays.equals(restrictedPackages, defnPackages)) {
					System.err.println("package.access differs from package.definition!");
				}
			}

			System.out.println("The following packages are access restricted:");
			for (int i = 0; i < restrictedPackages.length; i++) {
				restrictedPackages[i] = restrictedPackages[i].trim();
				System.out.println(restrictedPackages[i]);
			}
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	public static boolean isAccessRestricted(SootClass sc) {
		for (String pkg : restrictedPackages) {
			String name = sc.getName();
			if (name.startsWith(pkg)) {
				return true;
			}
		}
		return false;
	}

	public static int getLine(Unit unit) {
		SourceLnPosTag tag = (SourceLnPosTag) unit.getTag("SourceLnPosTag");
		if (tag != null)
			return tag.startLn();
		LineNumberTag lnTag = (LineNumberTag) unit.getTag("LineNumberTag");
		if (lnTag != null)
			return lnTag.getLineNumber();
		return -1;
	}

	public static boolean isTarget(AnalysisContext context, Unit unit) {
		return isTarget(context.direction, context.icfg.getMethodOf(unit), unit, context.targets);
	}

	public static boolean isTarget(AnalysisDirection direction, SootMethod enclosingMethod, Unit unit, Iterable<AnalysisTarget> targets) {
		if (!(unit instanceof AssignStmt))
			return false;

		Stmt s = (Stmt) unit;
		if (!s.containsInvokeExpr())
			return false;

		InvokeExpr ie = s.getInvokeExpr();
		for (AnalysisTarget target : targets) {
			if (target.matches(direction, enclosingMethod, ie))
				return true;
		}
		return false;
	}

	public static boolean methodMayBeCallableFromApplication(SootMethod m) {
		int methodModifiers = m.getModifiers();
		int classModifiers = m.getDeclaringClass().getModifiers();

		if (Modifier.isPublic(classModifiers) && !isAccessRestricted(m.getDeclaringClass())) {
			if (Modifier.isPublic(methodModifiers)) {
				return true;
			} else if (Modifier.isProtected(methodModifiers) && !Modifier.isFinal(classModifiers)) {
				return true;
			}
		}

		return false;
	}

	/**
	 * extracts array base values from array refs and values from cast
	 * expressions
	 */
	public static Value getBackwardsBase(Value val) {
		if (val instanceof ArrayRef) {
			ArrayRef arrayRef = (ArrayRef) val;
			return arrayRef.getBase();
		}
		if (val instanceof CastExpr) {
			CastExpr castExpr = (CastExpr) val;
			return castExpr.getOp();
		}
		return val;
	}

	public static Value getForwardsBase(Value val) {
		if (val instanceof ArrayRef) {
			ArrayRef arrayRef = (ArrayRef) val;
			return arrayRef.getBase();
		}
		return val;
	}

	/**
	 * Returns true if an instance of type taintType is assignable to a
	 * declaration of type declaredType.
	 */
	public static boolean isAssignable(Type taintType, Type declaredType) {
		if (taintType instanceof ArrayType)
			taintType = ((ArrayType) taintType).getArrayElementType();
		if (declaredType instanceof ArrayType)
			declaredType = ((ArrayType) declaredType).getArrayElementType();
		if (taintType.equals(declaredType))
			return true;
		if (!(taintType instanceof RefType))
			return false;
		if (!(declaredType instanceof RefType)) {
			return false;
		}
		return isAssignable(((RefType) taintType).getSootClass(), ((RefType) declaredType).getSootClass());
	}

	public static boolean isAssignable(SootClass taintType, SootClass declaredType) {
		if (taintType.equals(declaredType))
			return true;

		if (taintType.hasSuperclass() && isAssignable(taintType.getSuperclass(), declaredType)) {
			return true;
		}
		for (SootClass interf : taintType.getInterfaces()) {
			if (isAssignable(interf, declaredType))
				return true;
		}
		return false;
	}

	public static Set<SootMethod> getInitialDeclaration(SootMethod method) {
		return getInitialDeclaration(method, method.getDeclaringClass());
	}

	// TODO: Consider implementing a cached version
	private static Set<SootMethod> getInitialDeclaration(SootMethod method, SootClass candidate) {
		Set<SootMethod> result = Sets.newHashSet();

		if (candidate.hasSuperclass()) {
			result.addAll(getInitialDeclaration(method, candidate.getSuperclass()));
		}
		for (SootClass intface : candidate.getInterfaces()) {
			result.addAll(getInitialDeclaration(method, intface));
		}

		if (result.isEmpty()) {
			for (SootMethod candidateMethod : candidate.getMethods()) {
				if (compatible(candidateMethod, method)) {
					result.add(candidateMethod);
					break;
				}
			}
		}
		return result;
	}

	/**
	 * Returns true, if subClassMethod could be overriding superClassMethod.
	 * Check only considers the method name and the parameters.
	 */
	public static boolean compatible(SootMethod superClassMethod, SootMethod subClassMethod) {
		if (!superClassMethod.getName().equals(subClassMethod.getName()))
			return false;

		if (superClassMethod.getParameterCount() != subClassMethod.getParameterCount())
			return false;

		boolean paramsMatch = true;
		for (int i = 0; i < superClassMethod.getParameterCount(); i++) {
			Type superType = superClassMethod.getParameterType(i);
			Type subType = superClassMethod.getParameterType(i);
			if (!isAssignable(superType, subType)) {
				paramsMatch = false;
				break;
			}
		}

		return paramsMatch;
	}
}


Croeso, welcome to people who have started on the 1 Welsh sentence challenge. This thread is especially for you, to get to know each other, and to give you your first glimpse of the SSiW forum, where you can find out literally anything you want to know about learning Welsh.
If you're stuck with a certain word, or finding one (or all!) of the practices tough, then you're not alone. Come here to find out how other people have got over the same challenge, and ask people who have already done what you want to do. They'll give you much better advice than I could!
The biggest drawback of learning a language at home is that it can get quite lonely. So here's the community to keep you interested and motivated and learning when things aren't working out - and yes, we all get patches like that!
So, as your first post, let us know something about yourself. What do you think of your 1 Welsh sentence challenge so far? What do you want to do with your Welsh? How did you find your way here? Anything at all - just click on reply in the blue box under this post, and get going!
Hi there, This is my first step into learning Welsh. I admit I am very nervous because i am under pressure to make progress. I have been invited to move from New Zealand to take up a Welsh-speaking job in Wales next September. I'm coming over next week to meet the poeple. They suggested I try saysomethingin website as quite a few of them are second language Welsh speakers and have been helped by you guys. Here we go!
I grew up in New Zealand and now live in Wales, in Llandysul, Ceredigion. I've been speaking Welsh for 10 years now and it really helps you to become part of the community.
Whereabouts are you going to be?
I will be living in Abergele, but the job will take me around Wales. I may have a NZ passport, but originally I'm a Pom from South Yorkshire. So what on earth the locals will makes of me, I dread to think. I fly out on Friday to meet my prospective colleagues next Monday. I hope to be able to manage greetings and please and thank you and such social phrases by then (hopefully in a way that they understand what I'm trying to say!).
If you run through one lesson a day between now and then, without repeating any lessons (which will feel worrying) - and making sure you say something in EVERY gap, while using the pause button as little as possible (but the saying something takes precedence!) - you'll do far more than just a couple of social phrases, and that may well help convince them that you're serious about it… good luck!
Hi there! Dwi isio dysgu siarad Cymraeg achos (wink) I'm a member of the Order of Bards Ovates and Druid's and there is several Welsh words within the workings and I'd like to be able to actually PRONOUNCE them and heck, maybe know what they mean. So far it's fun but I get the brain pain with Dysgu.
I will be living in Abergele, but the job will take me around Wales.
If you get down Llandysul way, let me know. It would be great to catch up for a coffee.
I wanted to learn a language to expand my horizons. At first my thought was I wanted to learn Portuguese or Japanese.
I looked up learning welsh and came across this site. So day 1 and I completed the first days lesson.
I followed the instructions repeated the words after you said it in english. However, I did have to repeat the lesson a few times.
Can't wait to continue learning Welsh.
Well done, and welcome @julia-4 to the Forum!
The normal recommendation is to do a lesson once only (I would say maximum twice) and then go on to the next one, even if you haven't learned all the material in the first lesson, which is normal by the way.
The methodology of the course relies on repetition of the material throughout subsequent lessons. If you keep on repeating a single lesson until you learn it all, you will succeed, but it will be a very, very slow and inefficient way to learn. Best to push on with new lessons and not aim for perfection.
However, I did have to repeat the lesson a few times.
Hi Emily, I'm an Obod member too! I found ssiw from a link on their forum many, many years ago.
Well, I've been away for a while, but ironically because I've been visiting Wales. I spoke my first sentence in Welsh and got a round of applause for it, thanks to this amazing course! I'm now back in New Zealand and will have to get my head down and do some serious learning!
My name is Corina. I live in Canada, west coast. Vancouver area.
I am here because I have been spending time with my 95 year old gram. Our Ancestors were Welsh. My great grandmother Grace Williams spoke, and the kids used to love to hear her speak. But she was apparently very shy to speak it as she said she was taught that it was wrong to do so.
I work at an Indigenous friendship center here. There is a big resurgence in reclaiming language. I thought it may be a good idea to learn the language of my Ancestors.
Hi. I'm American and live in Kansas. My maternal side of the family is Welsh. My great great grandparents settled in Bala, KS in the 1880's. I want to visit Wales one day and have been researching the history and culture of the Welsh people. I love the fact that the language is still alive and well in the present day. I want to be able to converse with with the native speakers when I visit.
Croeso i'r ffrwm (Welcome to the forum) That's a really cool place to work! How many different languages are spoken there? I'm asking as I spent almost all of my childhood and young adult life in Colorado which has a large indigenous population throughout the state. Wondering if there is a large diversity of tribes around Vancouver.
I live in Delaware, United States and I'm learning Welsh for the same reason as you and hopefully in the next two years will be able to take my Family to Wales. Of all the languages I've started learning and mastered none (French, Spanish and Latin), Welsh has been the most fun and challenging. But if you follow the challenges and supplement with additional material, you'll be surprised how quickly you'll be able to have a conversation in Welsh. The tricky part, for those learners not living in Wales, is finding someone to practice with. Fortunately for you there are a couple of Welsh groups around Vancouver.
Croeso i'r ffrwmn, hefyd (Welcome to the forum, too). Learning Welsh is fun and challenging but the SSiW course is structured to get your conversational skills up and running fairly quick. I live in Delaware and my biggest challenge is/was finding people to speak with. SSiW members are amazingly friendly and helpful, but the time difference for me creates issues for me to join online speaking groups. So I did a bit a research, found a local Welsh society, joined it and now host weekly Welsh speaking meet ups. Having someone to talk with, reinforces my language skills and encourages me to learn more. It's too easy to let the early momentum and interest slip away. I had to find reasons to encourage and reinforce my learning. Joining a local group was immensely helpful. Below are groups I have found in Kansas. Not sure how active they are, but it's worth the effort to reach out to them.
Cada Dia Welsh is a unique approach to authentic Welsh conversation, through large group web meetings in "Virtual Immersion." One hour meeting each day - Monday through Friday. We use Project-Based Learning (PBL) which supports independent learning through simple conversational activities to focus on social language exchange. Students and interested adults share stories, listen and learn in large scale online meetings with native or bilingual facilitators. Beginners may just listen, intermediate participants will read for the facilitators and advanced participants may share stories and learning tips. Join us and invite others to learn and speak Welsh. Free Web Meetings.
I liked the opening very much and can appreciate the simplicity and directness of the method.
I am Anglo-Welsh in that my parents were from Gwent but I was born in England. I spent two longish spells in Gwent (Llanhilleth) during early childhood, having been evacuated from London during WW2. I picked up bits and pieces of Welsh at the time, but nothing of permanence because Welsh was not 'on the menu' then the way it is now. So when I resumed my childhood in England my very scrappy bits of Welsh evaporated, even though I returned to Gwent as often as I could. My childhood times in the Western Valley were the very best of my early years.
I now live (officially retired but not really) in SW France with my wife Angela who speaks fluent French and bits of several languages. I speak French reasonably and, due to my working background, used to be able to get by in German. Welsh however has always emotionally called to me across the years and the time has come for me answer the call of the beautiful language from the Land of Song.


text:
Christina Jo Ellertson (; born May 20, 1982) is an American former professional soccer defender and former member of the United States women's national soccer team.

Early life
Ellertson was born and grew up in Vancouver, Washington. The daughter of a Nigerian mother and a Ghanaian father who migrated to the U.S., she played soccer throughout her childhood.

University of Washington
Ellertson originally signed to attend Santa Clara University but instead went to the University of Washington. The decision was hard since, at age 18, she gave birth to her daughter, MacKenzie. She competed in soccer throughout college to become one of UW's most respected forwards. She was named Pacific-10 Conference co-player of the year in 2003 and player of the year in 2004.

Playing career

Club
On September 16, 2008, Ellertson was one of the three players drafted for Saint Louis Athletica in the Women's Professional Soccer allocation of national team members, with the new league starting in April 2009. Ellertson was a consistently solid presence in the Athletica back line, logging 1748 minutes for the season, the most on the team. She played as team captain whenever Lori Chalupny was not on the field, made the All-Star team and was nominated for WPS's Defender of the Year award.

When Saint Louis folded in May 2010, Ellertson moved to Atlanta Beat alongside teammates Hope Solo and Eniola Aluko. After 16 games and two goals for the Beat, Ellertson left by mutual consent in February 2011. She moved to a new franchise, magicJack, and quickly became a cornerstone of the team's defense, producing notable performances against Marta and Kelly Smith.

Ellertson has also played previously for the Seattle Sounders of the W-League.

In February 2013, she was chosen in the first round of the National Women's Soccer League's supplemental draft by Portland Thorns FC, despite having stated that she would not be playing in the league. Nevertheless, she ultimately joined the Thorns a few months later, on July 31, after being repeatedly approached by Coach Cindy Parlow Cone. Ellertson made five appearances for the Thorns, including an appearance as a substitute during the team's victory in the inaugural NWSL Championship match.

In February 2014, Ellertson announced that she was retiring from the Thorns to focus on coaching and her family.

International
After April Heinrichs's reign as coach, Ellertson tried out for the women's national soccer team, and earned her first cap against Ukraine on July 10, 2005. New coach Greg Ryan moved her to defender. She was named to the U.S. roster for the 2007 FIFA Women's World Cup and competed against Nigeria during group stage, against Brazil in the infamous semi-final in which Hope Solo was benched in favor of more experienced Briana Scurry, and against Norway in a 4–1 win in the third-place playoff match.

On December 13, 2008, at the Home Depot Center in Los Angeles, Ellertson scored her only international goal against China in her final USWNT game, and in her only start at forward; a 1–0 game winner.

Personal life
Ellertson married Brad Ellertson, with whom she had two daughters, Mackenzie (born 2000) and Mya (born 2007), and a son Mason (born 2015). Before her marriage, she played under her maiden name, Frimpong. Her twin sister, Crystal Frimpong, played soccer at the University of Florida.

References

External links

 US Soccer player profile
 Saint Louis Athletica player profile
 Washington Huskies player profile

1982 births
Living people
American sportspeople of Ghanaian descent
American sportspeople of Nigerian descent
Sportspeople from Vancouver, Washington
Seattle Sounders Women players
Soccer players from Washington (state)
United States women's international soccer players
Washington Huskies women's soccer players
Saint Louis Athletica players
Atlanta Beat (WPS) players
MagicJack (WPS) players
USL W-League (1995–2015) players
American women's soccer players
Portland Thorns FC players
2007 FIFA Women's World Cup players
Women's association football defenders
National Women's Soccer League players
African-American women's soccer players
21st-century African-American sportspeople
21st-century African-American women
20th-century African-American people
20th-century African-American women
Women's Professional Soccer players
Twin sportspeople


text:
El cangrejo rojo de la isla de Navidad (Gecarcoidea natalis) es una especie de crustáceo decápodo de la familia Gecarcinidae que vive en la isla de Navidad y en las islas Cocos. Presentan en su migración una maravilla en el mundo natural ya que viajan miles al océano a poner sus huevos pero deben superar peligros para llegar al litoral. Aunque la hormiga loca diezma las poblaciones y se encontró una forma de acabarla la hormiga de la isla, a partir de 2018 no ha sido evaluado por la UICN.

Descripción
Los cangrejos rojos son grandes, hasta 16 cm de ancho del caparazón; las hembras son más pequeñas. Viven hasta 3 años; las larvas son más pequeñas que un grano de arroz. Tienen un color rojo brillante de allí viene su nombre, aunque hay raramente de color naranja.

Alimentación
Son omnívoros y carroñeros oportunistas. Comen hojas, frutas, flores y plántulas, pero comen basura. El caracol gigante africano no nativo también es otra opción alimenticia para los cangrejos. Los cangrejos rojos prácticamente no tienen competencia por la comida debido a su dominio del suelo del bosque.

Migración
Los cangrejos muestran una inmensa migración de millones de su clase que llegan desde la montaña hasta el litoral; deben enfrentar muchos peligros. Finalmente, se preparan para el desove en la costa del océano Índico.

Apareamiento y reproducción

La migración comienza en época húmeda como sus parientes americanos deben bajar de la selva hacia el litoral deben aparearse y las hembras deben esperar la luna llena para depositar sus huevos en el mar; después de meses las larvas sobreviven de los depredadores marinos llegan a la tierra, algunos esquivan las hormigas y aves.

Depredadores
Estos cangrejos, en estado de adulto y estado larval, tienen mucho tipos de depredadores como la extinta rata maclear, la hormiga loca, la fragata de la isla de Navidad; las larvas son comidas por los tiburones ballenas y las mantarrayas.

Relación con los humanos
Durante su migración anual de reproducción, los cangrejos rojos a menudo tienen que cruzar caminos, a veces hasta 3 o 4, para llegar a sus zonas de reproducción y luego regresar al bosque. Como resultado, los cangrejos rojos son frecuentemente aplastados por vehículos y a veces causan accidentes debido a sus exoesqueletos resistentes que son capaces de perforar los neumáticos. Para garantizar la seguridad de las poblaciones, los cangrejos y los humanos, los guarda parques locales trabajan arduamente para garantizar que los cangrejos puedan viajar de manera segura desde el centro de la isla hasta el mar; a lo largo de caminos muy transitados, establecieron barreras de aluminio llamadas "cercas de cangrejo", cuyo propósito es canalizar a los cangrejos hacia pequeños pasos subterráneos llamados "rejillas de cangrejo" para que puedan cruzar los caminos debajo con seguridad. En los últimos años, los habitantes humanos de la isla de Navidad se han vuelto más tolerantes y respetuosos con los cangrejos durante su migración anual y ahora son más cautelosos mientras conducen, lo que ayuda a minimizar las bajas de cangrejos. Además, "también se ha construido un puente de cinco metros de altura en un punto a lo largo del camino para ayudar a los cangrejos a cruzar la isla y continuar su migración".

Población
Las encuestas han encontrado una densidad de 0.09-0.57 cangrejos rojos adultos por metro cuadrado, lo que equivale a una población total estimada de 43.7 millones en la isla de Navidad. Hay menos información disponible para la población en las islas Cocos (Keeling) , pero los números son relativamente bajos. Según la evidencia genética, parece que los cangrejos rojos Cocos (Keeling) son inmigrantes relativamente recientes de la isla de Navidad, y para fines de conservación, los dos pueden manejarse como una sola población.

Galería

Véase también
Isla de Navidad
Cangrejo de los cocoteros
Hormiga loca

Referencias

Isla de Navidad
Fauna endémica de la isla de Navidad
Animales descritos en 1888
Fauna de Australia
Gecarcinidae


Ah, house hunting. It can make or break relationships. When facing such a large purchase, emotions can run high. Add the stress of a condensed timeline, geographic distance, and all the other variables of military life, and it can be a recipe for disaster. Step number one is agreeing on some basic criteria for your new home—before you even start searching through home listings.
So what happens when you are dead set on buying a charming historic home, but your spouse has a preference for new construction (and an aversion to home repairs)? You're probably in for some trouble in paradise, that's what. This should be an enjoyable and exciting purchase for both of you! In order to make that happen, here are some practical tips to communicating and finding agreement when it comes to house hunting (and buying) as a couple.
You both need to be sure you're on the same page, literally. Try writing out your separate "must have" lists. Do you want an open floor plan and your spouse has to have a garage? Great! Non-conflicting items are easy to agree on. Decide that you each get one non-negotiable item on the list (And, no that can't be "give mama whatever she wants"). Do your best to go through each item one by one and combine them all on one sheet of paper, in order of agreed-upon priority level. Be sure to clarify wants versus needs!
This will be tremendously helpful in determining what your joint goals are going to be, as well acting as a great tactile exercise in compromise. For better or worse, remember? You can do this!
I will be the first to admit that I have been guilty of falling head-over-heels in love with the wrong house. If you're emotionally attached to a home when it's all gussied up for the showing, you'll be more likely to overlook some of the issues that might be unveiled during the inspection. You have to take emotion out of this transaction!
You also need to be wary of letting your eyes be bigger than your wallet. Go into the home buying process with a clear head and research all of the potential expenses associated with the purchase. You're going to need to look at insurance, taxes, utilities, HOA fees, and a whole host of other monthly expenditures that add up quickly and price you out your "dream" home or neighborhood. If you as a couple can go into the process as a united front, you are less likely to fall for a "siren" home that leads you towards financial disaster.
Sometimes, it may be best to call in objective help. Listen to real estate savvy friends and the professionals advising you through the process. A knowledgeable real estate agent can help give you some perspective and make non-emotional decisions. They also advocate for you and negotiate on your behalf. They'll be the first to tell you if the home you have your heart set on is overpriced for the market or comes with other considerations you may not be clued into.
Remember that list we made at the beginning of the article? Grab that bad boy and show it to your agent. They'll be able to spot things right away that could be utterly unattainable on your budget or for your locale. If you want views of the water and your spouse wants a loft downtown, BUT you can't afford either of those options, then there's no fight worth having! An agent can point out these irregularities quickly and without further argument.
Disagreeing over a home is not worth marital disharmony. And honestly, if you're having a hard time agreeing with each other this early on, the rest of the process could be pure torture. After you agree on the home, you still have to go through the offer, negotiation, contract, lender approval processes and closing! You need to agree on every single one of these items.
If, after all this, you still can't agree, it may be wise to take a step back and hold off on a major purchase. Don't let the pressure of the market, an impending TDY or deployment, or any other life stressor force your hand when you're not ready - and definitely not if it causes discord.
Should Military Families Buy or Rent a Home?


On Wednesday I wrote about how statistical innumeracy has led to way too much being read into Roland Fryer's recently released NBER study. Despite my appalling lack of talent ;^), I feel a little like it's my job to write those kinds of posts in order to help people understand the mechanics of social science. I'm a somewhat unusual planner in that I have spent most of my career in economics before heading into planning and urban studies, and I was fortunate to wind up at USC Price where, though they drive me to drink on a daily basis, I am surrounded by excellent social scientists from both economics and political science. So I'm still learning every day.
That said, I don't think the answer to #BLM advocacy is going to come from social science. Social science is good for many, many things, but with #BLM and the individual cases like Freddie Gray and Sandra Bland, there are two things going on which really have nothing to do with things that social science can detect.
The first are individual injustices: even if we did show, for example, that there were no disparities in police violence by race (which is not the case, but let's say it was), any person unjustly harmed by representatives of the state–police–is a wrong that should be addressed if the system we have set up is functioning in a manner that people consider broadly just. Each individual case, from Freddie Grey to Sandra Bland, has to be correctly adjudicated even if there are no broad social trends that might be detectable with social science.
Fumbling on the adjudication of one wrong now and then does not mean the entire system is terrible; most people who aren't Frederich Hayek understand that there is no perfect justice. A mistake here and there might be the best we can do.
But with Black Lives Matter and the issues they highlight, we aren't talking about a few isolated incidents here and there.That's the second issue. We are talking about multiple wrongs (or harms at the very least) that, over time, have accumulated so that a subgroup within the political community has lost faith in both policing and courts as public institutions. To some degree, we might be able to use social science to inform experiential knowledge of being subjected to policing. Experience matters, however, in how people know and learn, and it is itself a very important component to public policy formation, as well as institutional conduct.
The lack of legitimacy among police in black communities has been a forever problem in the US. What BLM seeks to do is get other parts of the political community to see and experience what they see: That trust is gone, the way they are treated is vastly different than the way others are treated, and that this policing is done under the tacit consent of all of us in the political community. When that trust is broken, then it's gone, and it doesn't come back because of social science. It comes back through governance: by demonstrating trustworthiness through changing behavior and practices.
#BLM advocates are not getting rich doing this. They are not looking for "special rights", whatever that means. They are going to a great deal of trouble–I strongly suspect they would rather be playing Pokemon Go or watching television or painting or gardening or going for a hike than getting arrested and shoved around, don't you? But they don't have that privilege. They are protesting, like all those who protest in majoritarian or elite-dominated systems, because they have, through experience, listening, and observing, identified change they need and they do not have influence through lobbying or other back-door means.
Social science does not really have an answer to any of it, and it's wrong to ask it to, just as it is wrong to try to use social science to undermine the calls for change.


text:
TPS61258 Converter Datasheet
TPS61258 Datasheet, PDF, Equivalent
3.5-MHz High Efficiency Step-Up Converter
etcTI
Datasheet Download TPS61258 Datasheet
Sample &
TPS61253, TPS61254, TPS61256, TPS61258, TPS61259, TPS612592
SLVSAG8G – SEPTEMBER 2011 – REVISED JUNE 2016
TPS6125x 3.5-MHz High Efficiency Step-Up Converter In Chip Scale Packaging
•1 93% Efficiency at 3.5-MHz Operation
• 21-µA Quiescent Current in Standby Mode
• 37-µA Quiescent Current in Normal Operation
• Wide VIN Range From 2.3 V to 5.5 V
• VIN ≥ VOUT Operation
• IOUT ≥ 800 mA at VOUT = 4.5 V, VIN ≥ 2.65 V
• IOUT ≥ 1000 mA at VOUT = 5.0 V, VIN ≥ 3.3 V
• IOUT ≥ 1500 mA (Peak) at VOUT = 5.0 V, VIN ≥ 3.3
• ±2% Total DC Voltage Accuracy
• Light-Load PFM Mode
• Selectable Standby Mode or True Load
Disconnect During Shutdown
• Thermal Shutdown and Overload Protection
• Only Three Surface-Mount External Components
• Total Solution Size < 25 mm2
• 9-Pin NanoFreeTM (CSP) Packaging
• Cell Phones, Smart Phones
• Mono and Stereo APA Applications
• USB Charging Ports (5V)
The TPS6125x operates at a regulated 3.5-MHz
switching frequency and enters power-save mode
operation at light load currents to maintain high
efficiency over the entire load current range. The
PFM mode extends the battery life by reducing the
quiescent current to 37 μA (typ) during light load
In addition, the TPS6125x device can also maintain
its output biased at the input voltage level. In this
mode, the synchronous rectifier is current limited
allowing external load (e.g. audio amplifier) to be
powered with a restricted supply. In this mode, the
quiescent current is reduced to 21 µA. During
shutdown, the load is completely disconnected from
the battery. Input current in shutdown mode is less
than 1 µA (typ), which maximizes battery life.
The TPS6125x offers a very small solution size due
to minimum amount of external components. It allows
the use of small inductors and input capacitors to
achieve a small solution size.
Device Information(1)
BODY SIZE (NOM)
TPS6125x
DSBGA (9)
1.206 mm × 1.306 mm
(1) For all available packages, see the orderable addendum at
the end of the datasheet.
Efficiency vs Load Current
The TPS6125x device provides a power supply
solution for battery-powered portable applications.
Intended for low-power applications, the TPS6125x
supports up to 800-mA load current from a battery
discharged as low as 2.65V and allows the use of low
cost chip inductor and capacitors.
With a wide input voltage range of 2.3 V to 5.5 V, the
device supports applications powered by Li-Ion
batteries with extended voltage range. Different fixed
voltage output versions are available from 3.15 V to
5.0 V.
VI - Input Voltage - V
VO = 5.0 V
I O - Output Current - mA
An IMPORTANT NOTICE at the end of this data sheet addresses availability, warranty, changes, use in safety-critical applications,
intellectual property matters and other important disclaimers. UNLESS OTHERWISE NOTED, this document contains PRODUCTION
www.ti.com
1 Features .................................................................. 1
2 Applications ........................................................... 1
3 Description ............................................................. 1
4 Revision History..................................................... 2
5 Device Options....................................................... 4
6 Pin Configuration and Functions ......................... 4
7 Specifications......................................................... 5
7.1 Absolute Maximum Ratings ...................................... 5
7.2 ESD Ratings.............................................................. 5
7.3 Recommended Operating Conditions....................... 5
7.4 Thermal Information .................................................. 6
7.5 Electrical Characteristics........................................... 6
7.6 Typical Characteristics .............................................. 9
8 Parameter Measurement Information ................ 14
9 Detailed Description ............................................ 15
9.1 Overview ................................................................. 15
9.2 Functional Block Diagram ....................................... 15
9.3 Feature Description................................................. 16
9.4 Device Functional Modes........................................ 17
10 Application and Implementation........................ 19
10.1 Application Information.......................................... 19
10.2 Typical Application ................................................ 19
10.3 System Examples ................................................. 24
11 Power Supply Recommendations ..................... 26
12 Layout................................................................... 26
12.1 Layout Guidelines ................................................. 26
12.2 Layout Example .................................................... 26
12.3 Thermal Considerations ........................................ 27
13 Device and Documentation Support ................. 28
13.1 Device Support...................................................... 28
13.2 Related Links ........................................................ 28
13.3 Receiving Notification of Documentation Updates 28
13.4 Community Resources.......................................... 28
13.5 Trademarks ........................................................... 28
13.6 Electrostatic Discharge Caution ............................ 28
13.7 Glossary ................................................................ 28
14 Mechanical, Packaging, and Orderable
Information ........................................................... 29
14.1 Package Summary................................................ 29
4 Revision History
NOTE: Page numbers for previous revisions may differ from page numbers in the current version.
Changes from Revision F (March 2016) to Revision G
• Changed the Package Dimensions section.......................................................................................................................... 29
Changes from Revision E (March 2015) to Revision F
• Added device TPS612592...................................................................................................................................................... 4
Changes from Revision D (December 2014) to Revision E
• Changed Body Size (NOM) from "1.60 mm × 1. 60" to "1.206 mm × 1. 306" in the Device Information table...................... 1
• Added table note reference to Third-Party Products Disclaimer .......................................................................................... 19
Changes from Revision C (August 2012) to Revision D
• Added ESD Ratings table, Feature Description section, Device Functional Modes, Application and Implementation
section, Power Supply Recommendations section, Layout section, Device and Documentation Support section, and
Mechanical, Packaging, and Orderable Information section .................................................................................................. 1
Changes from Revision B (May 2012) to Revision C
• Added TPS61259 to data sheet header as production device............................................................................................... 1
• Changed device TPS61259 to production status ................................................................................................................... 4
2 Submit Documentation Feedback
Copyright © 2011–2016, Texas Instruments Incorporated
Product Folder Links: TPS61253 TPS61254 TPS61256 TPS61258 TPS61259 TPS612592
Features Product Folder Sample & Buy Technical Documents Tools & Software Support & Community TPS61253, TPS61254, TPS61256 , TPS61258, TPS61259, TPS612592 SLVSAG8 G – SEPTEMBER 2011 – REVISED JUNE 2 016 TPS6125x 3.5-MHz High Efficiency St ep-Up Converter In Chip Scale Packaging 1 Features •1 93% Efficiency at 3.5 -MHz Operation • 21-µA Quiescent Cur rent in Standby Mode • 37-µA Quiesce nt Current in Normal Operation • Wide VIN Range From 2.3 V to 5.5 V • VIN ≥ VOUT Operation • IOUT ≥ 800 mA at VOUT = 4.5 V, VIN ≥ 2.65 V • IOU T ≥ 1000 mA at VOUT = 5.0 V, VIN ≥ 3.3 V • IOUT ≥ 1500 mA (Peak) at VO UT = 5.0 V, VIN ≥ 3.3 V • ±2% Tota l DC Voltage Accuracy • Light-Load PF M Mode • Selectable Standby Mode or T rue Load Disconnect During Shutdown • Thermal Shutdown and Overload Protecti on • Only Three Surface-Mount Externa l Components Required • Total Solutio n Size < 25 mm2 • 9-Pin NanoFreeTM (C SP) Packaging 2 Applications • Cell Phones, Smart Phones • Mono and Stereo APA Applications • USB Charging Ports (.
Keywords TPS61258, datasheet, pdf, etcTI, 3.5-MHz, High, Efficiency, Step-Up, Converter, PS61258, S61258, 61258, TPS6125, TPS612, TPS61, Equivalent, stock, pinout, distributor, price, schematic, inventory, databook, Electronic, Components, Parameters, parts, cross reference, chip, Semiconductor, circuit, Electric, manual, substitute
Related Products Using the Same Datasheet
TPS61258 Recommendation Datasheet
TPS61258 3.5-MHz High Efficiency Step-Up Converter, etcTI
TPS61251 Boost Converter, etcTI
TPS61252 Tiny 1.5-A Boost Converter, etcTI
TPS61253A 5-V / 4-A Boost Converter, etcTI
TPS612592 3.5-MHz High Efficiency Step-Up Converter, etcTI
@ 2014 :: Datasheetspdf.com :: Semiconductors datasheet search & download site (Privacy Policy & Contact)


text:
First Lieutenant Jacob Koogle (December 5, 1841 – March 16, 1915) was an American soldier who fought in the American Civil War. Koogle received his country's highest award for bravery during combat, the Medal of Honor. Koogle's medal was won for capturing the flag at the Battle of Five Forks in Virginia on April 1, 1865. He was honored with the award on May 10, 1865.

Koogle was born in Frederick, Maryland, and was buried in Myersville, Maryland.

Medal of Honor citation

See also
List of American Civil War Medal of Honor recipients: G–L

References

External links

1841 births
1915 deaths
American Civil War recipients of the Medal of Honor
People of Maryland in the American Civil War
Union Army officers
United States Army Medal of Honor recipients