text:
package org.arbeitspferde.groningen.config;

import static com.google.common.base.Preconditions.checkNotNull;

import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;

import org.arbeitspferde.groningen.exceptions.InvalidConfigurationException;
import org.arbeitspferde.groningen.proto.GroningenConfigProto.ProgramConfiguration;
import org.arbeitspferde.groningen.proto.GroningenConfigProto.ProgramConfiguration.JvmSearchSpace;
import org.arbeitspferde.groningen.proto.Params.GroningenParams;

import javax.annotation.Nullable;

import java.util.List;

/**
 * A {@code GroningenConfig} constructed from a protocol buffer.
 *
 *
Does not support in-place updating (i.e. tracking of changes to the underlying
 * configuration data).
 *
 *
NOTE: the {@link GroningenConfig.ClusterConfig}, {@link GroningenConfig.SubjectGroupConfig}, and
 * {@link GroningenConfig.SubjectConfig} subinterfaces are implemented as inner classes here as they
 * depend heavily on the protobuf hierarchy and thus it made sense to keep them together. The
 * other more generic implementations are split out into other class files.
 */
public class ProtoBufConfig implements GroningenConfig {
  // construction factory for objects outside the scope of this class, allows for mocks to be
  // injected
  private static ProtoBufConfigConstructorFactory constructorFactory =
      new ProtoBufConfigConstructorFactory();

  // reference to the top level protobuffer config
  private final ProgramConfiguration protoConfig;

  // map of cluster names to the cluster. Immutable since we don't allow changes to the list
  // we require there to be clusters and since it is immutable, it is also marked final.
  private final ImmutableMap<String, ProtoBufClusterConfig> protoClusterConfigs;

  // cached list of the available clusters
  private final ImmutableList<ClusterConfig> clustersList;

  // optional jvm search space range restrictions
  private GenericSearchSpaceBundle searchSpaceRestriction = null;

  /**
   * Replace the factory to be used to construct classes external to this file with another
   * instance.
   *
   * @param factory new factory object to use when generating objects outside of this class or
   *     its nested classes
   */
  @VisibleForTesting
  static void setConstructorFactory(ProtoBufConfigConstructorFactory factory) {
    constructorFactory = factory;
  }

  /**
   * Verifies an expression is true and throws an exception if it is not.
   *
   * @param expr expression that must be true
   * @param message message to include with the exception if {@code expr} is not true
   * @throws InvalidConfigurationException thrown when {@code expr} is false
   */
  private static void validateItem(boolean expr, String message)
      throws InvalidConfigurationException {
    if (!expr) {
      throw new InvalidConfigurationException(message);
    }
  }

  /**
   * Creates this object from the protocol buffer representation of the configuration essentially
   * gluing the protocol buffer to the {@code GroningenConfig} interface. The constructor validates
   * the fields as it goes such that after successful construction, the object will be valid and
   * fully specified.
   *
   * @param progConfig the protocol buffer representation of the overall configuration
   * @throws InvalidConfigurationException invalid or incomplete configuration was specified
   */
  public ProtoBufConfig(ProgramConfiguration progConfig)
      throws InvalidConfigurationException {

    protoConfig = Preconditions.checkNotNull(progConfig);

    /*
     * Traverse the configuration tree contained within the protocol buffer. Since separating
     * validation and instantiation would require two passes through the tree (and validation
     * of the children of the root would need be validated via a mechanism like static methods)
     * and because configuration churn is expected to very light, do validation and instantiation
     * on the same pass through the tree.
     *
     * Start with verifying all required globals without defaults have values defined.
     */
    validateItem(progConfig.hasParamBlock(), "GroningenParam message omitted in supplied proto");
    validateItem(
        progConfig.hasParamBlock(), "GroningenParam message omitted in supplied proto");
    validateParamBlock(progConfig);

    // pull in the optional search space restriction which can still throw an exception on
    // instantiation
    if (progConfig.hasJvmSearchRestriction()) {
      searchSpaceRestriction =
          constructorFactory.createProtoBufSearchSpaceBundle(
              progConfig.getJvmSearchRestriction(), false);
    } else {
      searchSpaceRestriction = new GenericSearchSpaceBundle();
    }

    // traverse the cluster definitions - we need at least one to have a valid experiment
    validateItem(progConfig.getClusterCount() > 0, "proto definition lacked any clusters");
    ImmutableMap.Builder<String, ProtoBufClusterConfig> buildCluster = ImmutableMap.builder();
    for (ProgramConfiguration.ClusterConfig protoCluster : progConfig.getClusterList()) {
      ProtoBufClusterConfig cluster = new ProtoBufClusterConfig(protoCluster, this);
      buildCluster.put(cluster.getName(), cluster);
    }

    try {
      protoClusterConfigs = buildCluster.build();
    } catch (IllegalArgumentException e) {
      throw new InvalidConfigurationException("duplicate cluster names were included: " + e);
    }

    clustersList = ImmutableList.<ClusterConfig>copyOf(protoClusterConfigs.values());
  }

  /**
   * Validates that all fields in the param block that do not have default values have
   * values supplied.
   */
  private void validateParamBlock(ProgramConfiguration progConfig)
      throws InvalidConfigurationException {
    List<String> missingParams = Lists.newLinkedList();
    GroningenParams protoParams = progConfig.getParamBlock();
    if (!protoParams.hasInputLogName()) {
      missingParams.add("input_log_name");
    }

    if (missingParams.size() > 0) {
      Joiner joiner = Joiner.on(", ");
      throw new InvalidConfigurationException(
          "missing global vars: " + joiner.join(missingParams));
    }
  }

  @Override
  public ProtoBufClusterConfig getClusterConfig(String clusterName) {
    return protoClusterConfigs.get(clusterName);
  }

  @Override
  public ImmutableList<ClusterConfig> getClusterConfigs() {
    return clustersList;
  }

  @Override
  public SearchSpaceBundle getJvmSearchSpaceRestriction() {
    return searchSpaceRestriction;
  }

  @Override
  public GroningenParams getParamBlock() {
    return protoConfig.getParamBlock();
  }

  @Override
  public ProgramConfiguration getProtoConfig() {
    return protoConfig;
  }

  /**
   * Retrieve the user.
   *
   * @return the user entry if it exists (and even if it is null), otherwise null
   */
  @Nullable
  @VisibleForTesting
  String retrieveFirstUser() {
    return protoConfig.hasUser() ? protoConfig.getUser() : null;
  }

  /**
   * Retrieve the numberOfSubject.
   *
   * @return the numberOfSubject entry which should have a default value.
   */
  @VisibleForTesting
  int retrieveFirstNumberOfSubjects() {
    return protoConfig.getNumberOfSubjects();
  }

  /**
   * Retrieve the subjectWarmupTimeout.
   *
   * @return the subjectWarmupTimeout entry.
   */
  @VisibleForTesting
  int retrieveFirstSubjectWarmupTimeout() {
    return protoConfig.getSubjectWarmupTimeout();
  }

  /**
   * A {@link ClusterConfig} that wraps a protobuf based configuration containing all cluster,
   * subject group and subject settings.
   */
  @VisibleForTesting
  static class ProtoBufClusterConfig implements ClusterConfig {
    // backpointer to the overall config for allowing access to the top level proto
    private final ProtoBufConfig parent;

    // the proto for this cluster which contains handy things like the cluster name
    private final ProgramConfiguration.ClusterConfig protoClusterConfig;

    // map of the jobs contained herein
    private final ImmutableMap<String, ProtoSubjectGroupConfig> protosSubjectGroupConfigs;

    // cached list of the available jobs
    private final ImmutableList<SubjectGroupConfig> subjectGroupList;

    /**
     * Constructor for the cluster and everything below it in the configuration tree. Does validation
     * that required fields are included within the protobuf.
     *
     * @param protoConfig the protobuf class representing the cluster
     * @param parent backpointer to the {@code ProtoBufConfig} of which this cluster is a part
     * @throws InvalidConfigurationException required fields were either omitted or had values
     *     outside of acceptable ranges
     */
    public ProtoBufClusterConfig(ProgramConfiguration.ClusterConfig protoConfig,
                              ProtoBufConfig parent) throws InvalidConfigurationException {
      this.parent = checkNotNull(parent);
      this.protoClusterConfig = checkNotNull(protoConfig);

      // at this level, required verification is only that a cluster name and some jobs are present
      validateItem(protoConfig.hasCluster(), "required cluster name was missing");

      // finally make the jobs perform verification as each is instantiated
      validateItem(
          protoConfig.getSubjectGroupCount() > 0, "proto definition lacked any subject group");
      ImmutableMap.Builder<String, ProtoSubjectGroupConfig> builder = ImmutableMap.builder();
      for (ProgramConfiguration.ClusterConfig.SubjectGroupConfig subjectGroupProto : protoConfig.getSubjectGroupList()) {
        ProtoSubjectGroupConfig job = new ProtoSubjectGroupConfig(subjectGroupProto, this);
        builder.put(job.getName(), job);
      }

      try {
        protosSubjectGroupConfigs = builder.build();
      } catch (IllegalArgumentException e) {
        throw new InvalidConfigurationException(
            "duplicate job names were included for cluster " + protoConfig.getCluster() + ": " + e);
      }

      subjectGroupList =
          ImmutableList.<SubjectGroupConfig>copyOf(protosSubjectGroupConfigs.values());
    }

    @Override
    public ProtoSubjectGroupConfig getSubjectGroupConfig(final String subjectGroupName) {
      return protosSubjectGroupConfigs.get(subjectGroupName);
    }

    /**
     * {@inheritDoc}
     *
     * Will not be null.
     */
    @Override
    public ImmutableList<SubjectGroupConfig> getSubjectGroupConfigs() {
      return subjectGroupList;
    }

    /**
     * {@inheritDoc}
     *
     * Will not be null.
     */
    @Override
    public String getName() {
      return protoClusterConfig.getCluster();
    }

    /**
     * {@inheritDoc}
     *
     * Will not be null.
     */
    @Override
    public ProtoBufConfig getParentConfig() {
      return parent;
    }

    @VisibleForTesting
    ProgramConfiguration.ClusterConfig getProtoClusterConfig() {
      return protoClusterConfig;
    }

    /**
     * Retrieve the first definition of the user in the configuration tree starting at the
     * cluster level and looking upward.
     *
     * @return the first user entry found even if this value is null, null if no user
     *     fields were found in the hierarchy.
     */
    @Nullable
    @VisibleForTesting
    String retrieveFirstUser() {
      return protoClusterConfig.hasUser()
          ? protoClusterConfig.getUser() : parent.retrieveFirstUser();
    }

    /**
     * Retrieve the first definition of the numberOfSubjects in the configuration tree starting
     * at the cluster level and looking upward.
     *
     * @return the first number of subjects entry found in the hierarchy
     */
    @Nullable
    @VisibleForTesting
    int retrieveFirstNumberOfSubjects() {
      return protoClusterConfig.hasNumberOfSubjects()
          ? protoClusterConfig.getNumberOfSubjects() : parent.retrieveFirstNumberOfSubjects();
    }

    /**
     * Retrieve the first definition of the subjectWarmupTimeout in the configuration tree starting
     * at the cluster level and looking upward.
     *
     * @return the first subject warmup timeout entry found in the hierarchy
     */
    @Nullable
    @VisibleForTesting
    int retrieveFirstSubjectWarmupTimeout() {
      return protoClusterConfig.hasSubjectWarmupTimeout()
          ? protoClusterConfig.getSubjectWarmupTimeout() :
            parent.retrieveFirstSubjectWarmupTimeout();
    }

    /**
     * Retrieve the first definition of the {@link #numberOfDefaultSubjects} in the configuration
     * tree starting at the cluster level and looking upward.
     *
     * @return the first number of subjects with default settings entry found in the hierarchy
     */
    @Nullable
    @VisibleForTesting
    int retrieveFirstNumberOfDefaultSubjects() {
      return protoClusterConfig.getNumberOfDefaultSubjects();
    }
  }

  /**
   * The job to be experimented upon, some parts of which can be described on a per subject basis.
   */
  @VisibleForTesting
  static class ProtoSubjectGroupConfig implements SubjectGroupConfig {
    // backpointer to the cluster in which this subject group exists
    private final ProtoBufClusterConfig parentCluster;

    // reference to the underlying protobuf describing the subject group
    private final ProgramConfiguration.ClusterConfig.SubjectGroupConfig protoSubjectGroupConfig;

    // List of any subject-specific configuration
    private final ImmutableList<SubjectConfig> subjectConfigs;

    // Path where per-subject experiment settings for this job will be stored
    private final String expSettingsFilesDir;

    // user to run as
    private final String user;

    // number of subjects in the subject group that we control
    private final int numberOfSubjects;

    // max seconds a subject is allowed to be unhealthy
    private final int subjectWarmupTimeout;

    // Number of subjects within total number of subjects that will keep default settings
    private final int numberOfDefaultSubjects;

    /**
     * Construct and validate a subject group level (and lower) configuration.
     *
     * @param protoSubjectGroup the protobuf class representing the subject group
     * @param parent backpointer to the {@link ProtoBufClusterConfig} in which this subject group
     *               is running
     * @throws InvalidConfigurationException required fields were either omitted or had values
     *     outside of acceptable ranges
     */
    public ProtoSubjectGroupConfig(
        final ProgramConfiguration.ClusterConfig.SubjectGroupConfig protoSubjectGroup,
        final ProtoBufClusterConfig parent) throws InvalidConfigurationException {
      this.parentCluster = checkNotNull(parent);
      this.protoSubjectGroupConfig = checkNotNull(protoSubjectGroup);

      // do verification after we save off the protoConfig and parent so the find methods
      // have what they need to work with
      validateItem(protoSubjectGroup.hasSubjectGroupName(),
          "required subject_group_name was missing");
      String subjectGroupName = protoSubjectGroup.getSubjectGroupName();
      validateItem(protoSubjectGroup.hasExpSettingsFilesDir(),
          "required exp_settings_files_dir was missing");
      validateItem(protoSubjectGroup.getExpSettingsFilesDir().startsWith("/"),
          "exp_settings_files_dir should start with /");
      expSettingsFilesDir = protoSubjectGroup.getExpSettingsFilesDir();

      user = retrieveFirstUser();
      validateItem(user != null,
          "user must be specified as nonnull in config hierarchy for job " + subjectGroupName);

      numberOfSubjects = retrieveFirstNumberOfSubjects();
      validateItem(numberOfSubjects >= 0,
          "numberOfSubjects must be non-negative. 0 means use all subjects in the job");

      subjectWarmupTimeout = retrieveFirstSubjectWarmupTimeout();
      validateItem(subjectWarmupTimeout >= 1,
          "subjectWarmupTimeout must be positive. The vaule is in seconds.");

      numberOfDefaultSubjects = retrieveFirstNumberOfDefaultSubjects();
      validateItem(numberOfDefaultSubjects >= 0 &&
          (numberOfSubjects > 0 ? numberOfDefaultSubjects < numberOfSubjects : true),
          "numberOfDefaultSubjects must be non-negative and be " +
          "less than numberOfSubjects. 0 means no subjects with default settings.");

      // lastly make up any special subject configs verifying as we go - nothing here makes use of
      // the ProtoBufSubjectConfig so we can safely store as a list of {@code SubjectConfig}
      ImmutableList.Builder<SubjectConfig> builder = ImmutableList.builder();
      for (ProgramConfiguration.ClusterConfig.SubjectGroupConfig.ExtendedSubjectConfig subject :
           protoSubjectGroupConfig.getSubjectConfigList()) {
        builder.add(new ProtoBufSubjectConfig(subject, this));
      }
      subjectConfigs = builder.build();
    }

    /**
     * {@inheritDoc}
     *
     * Will not return null.
     */
    @Override
    public String getExperimentSettingsFilesDir() {
      return expSettingsFilesDir;
    }

    /**
     * {@inheritDoc}
     *
     * Will not return null.
     */
    @Override
    public String getName() {
      return protoSubjectGroupConfig.getSubjectGroupName();
    }

    /**
     * {@inheritDoc}
     *
     * Will not return null.
     */
    @Override
    public ImmutableList<SubjectConfig> getSpecialSubjectConfigs() {
      return subjectConfigs;
    }

    /**
     * {@inheritDoc}
     *
     * will not return null.
     */
    @Override
    public String getUser() {
      return user;
    }

    /**
     * {@inheritDoc}
     *
     * will not return null.
     */
    @Override
    public int getNumberOfSubjects() {
      return numberOfSubjects;
    }

    /**
     * {@inheritDoc}
     *
     * will not return null.
     */
    @Override
    public int getSubjectWarmupTimeout() {
      return subjectWarmupTimeout;
    }

    /**
     * {@inheritDoc}
     *
     * will not return null.
     */
    @Override
    public ClusterConfig getParentCluster() {
      return parentCluster;
    }

    @Override
    public boolean hasRestartCommand() {
      return protoSubjectGroupConfig.getRestartCommandList().size() > 0;
    }

    @Override
    public String[] getRestartCommand() {
      return protoSubjectGroupConfig.getRestartCommandList().toArray(new String[0]);
    }

    /**
     * {@inheritDoc}
     *
     * will not return null.
     */
    @Override
    public int getNumberOfDefaultSubjects() {
      return numberOfDefaultSubjects;
    }

    @VisibleForTesting
    ProgramConfiguration.ClusterConfig.SubjectGroupConfig getProtoSubjectGroupConfig() {
      return protoSubjectGroupConfig;
    }

    /**
     * Retrieve the first definition of the user in the configuration tree starting at the
     * subject group level and looking upward.
     *
     * @return the first user entry found even if this value is null, null if no user
     *     fields were found in the hierarchy.
     */
    @Nullable
    @VisibleForTesting
    String retrieveFirstUser() {
      return protoSubjectGroupConfig.hasUser()
          ? protoSubjectGroupConfig.getUser() : parentCluster.retrieveFirstUser();
    }

    /**
     * Retrieve the first definition of the numberOfSubjects in the configuration tree starting at
     * the subject group level and looking upward.
     *
     * @return the first numberOfSubjects entry found even if this value is null, null if no
     *     numberOfSubjects fields were found in the hierarchy.
     */
    @Nullable
    @VisibleForTesting
    int retrieveFirstNumberOfSubjects() {
      return protoSubjectGroupConfig.hasNumberOfSubjects()
          ? protoSubjectGroupConfig.getNumberOfSubjects() :
            parentCluster.retrieveFirstNumberOfSubjects();
    }

    /**
     * Retrieve the first definition of the subjectWarmupTimeout in the configuration tree
     * starting at the subject group level and looking upward.
     *
     * @return the first subjectWarmupTimeout entry found even if this value is null, null if no
     *     subjectWarmupTimeout fields were found in the hierarchy.
     */
    @Nullable
    @VisibleForTesting
    int retrieveFirstSubjectWarmupTimeout() {
      return protoSubjectGroupConfig.hasSubjectWarmupTimeout()
          ? protoSubjectGroupConfig.getSubjectWarmupTimeout() :
            parentCluster.retrieveFirstSubjectWarmupTimeout();
    }

    /**
     * Retrieve the first definition of the {@link numberOfDefaultSubjects} in the
     * configuration tree starting at the subject group level and looking upward.
     *
     * @return the first {@code numberOfSubjects} entry found even if this value is {@code null},
     *         {@code null} if no {@code numberOfSubjects} fields were found in the hierarchy.
     */
    @Nullable
    @VisibleForTesting
    int retrieveFirstNumberOfDefaultSubjects() {
      return protoSubjectGroupConfig.hasNumberOfDefaultSubjects()
          ? protoSubjectGroupConfig.getNumberOfDefaultSubjects()
          : parentCluster.retrieveFirstNumberOfDefaultSubjects();
    }
  }

  /**
   * Subject specific configuration.
   */
  @VisibleForTesting
  static class ProtoBufSubjectConfig implements SubjectConfig {

    protected SubjectGroupConfig parent = null;

    // Null represents no setting
    @Nullable protected Integer subjectIndex = null;

    // This is a strictly defined set of parameters and as such all should be defined
    @Nullable protected ProtoBufSearchSpaceBundle jvmParams = null;

    /**
     * Translate the protobuf's SubjectConfig representation.
     *
     * @param subjectConfig the protobuf representation of the specified subject config
     * @param parent backpointer to the {@code JobConfig} and its parents
     * @throws InvalidConfigurationException fields were malformed
     */
    public ProtoBufSubjectConfig(
        ProgramConfiguration.ClusterConfig.SubjectGroupConfig.ExtendedSubjectConfig subjectConfig,
        SubjectGroupConfig parent) throws InvalidConfigurationException {

      // blindly save off the pointer to the parent
      this.parent = parent;

      if (subjectConfig.hasJvmParameters()) {
        jvmParams =
            constructorFactory.createProtoBufSearchSpaceBundle(
                subjectConfig.getJvmParameters(), true);
      }

      if (subjectConfig.hasSubjectIndex()) {
        // verification
        // the only thing I can think to check is that the subjectIndices are natural numbers
        validateItem(subjectConfig.getSubjectIndex() >= 0,
            "negative subjectIndex supplied: " + subjectConfig.getSubjectIndex());
        subjectIndex = Integer.valueOf(subjectConfig.getSubjectIndex());
      }
    }

    @Override
    @Nullable
    public SearchSpaceBundle getJvmSearchSpaceDefinition() {
      return jvmParams;
    }

    @Override
    @Nullable
    public Integer getSubjectIndex() {
      return subjectIndex;
    }

    @Override
    public SubjectGroupConfig getParentSubjectGroup() {
      return parent;
    }
  }

  /**
   * Factory for objects external to the classes contained in this file.
   */
  @VisibleForTesting
  static class ProtoBufConfigConstructorFactory {
    /**
     * Constructs a {@code ProtoBufSearchSpaceBundle}. See the replaced
     * {@link ProtoBufSearchSpaceBundle#ProtoBufSearchSpaceBundle(JvmSearchSpace, boolean)
     * constructor} for details.
     */
    public ProtoBufSearchSpaceBundle createProtoBufSearchSpaceBundle(JvmSearchSpace proto,
        boolean requireAll) throws InvalidConfigurationException {
      return new ProtoBufSearchSpaceBundle(proto, requireAll);
    }

  }
}

redpajama_set_name: RedPajamaGithub


The sensor of provision of a camshaft develops impulses on a step of compression of the cylinder No. 1 and No. 4 on the basis of which the ESM block calculates sequence of work of system of injection of fuel.


text:
DAVID STRAUSSER
A Life Transformed...
David was born and raised in Pottsville, Pennsylvania, the heart of coal country. At a young age David realized that the small city life wasn't for him. He yearned for something larger and 6 weeks after the September 11th attacks, while barely 18, he decided to pack up and move to a new life.
"Viva la Mexico". David moved to Tijuana, Baja California, Mexico. Why? Simple. He was able to live in Mexico and then work in San Diego, right across the U.S. / Mexico International Border Crossing at the San Ysidro Port of Entry.
Since his first job at the age of 14, David has always been enthusiastic about sales. He had worked at places like Foot Locker at the age of 15 and then Sears while a young adult. Just like he wanted more while living in Pottsville, he also felt that the retail life was not for him. Yes, he could do it and excelled at it, often being the top sales representative in his store, but he felt he could achieve bigger and better things.
During the economic depression of 2008 – 2010, David found himself searching for answers. He moved to Peru for about a year, where he met his wife, Raquel Strausser. From there David immigrated Raquel to Mexico and they re-established themselves in the Baja Cali Megaregion. Employment was tough and while David could ultimately earn a living that was good enough for living in Mexico, their ultimate goal was to move to San Diego. The current wage environment at that time did not support him being able to make such a move.
That's when David realized that after 10 years of living in Mexico at that point that he had some unique skills. Not only was David fluent in Spanish and had a Mexican legal status as a Residente Permanente (Mexican Legal Permanent Resident), but he had many contacts in business throughout Mexico, Peru, and the rest of Latin America.
Instead of taking a position where he would be grossly underpaid for his skillset out of necessity, David went another route. He started the business "Strausser Consulting Services" and began independent consulting. The goal of the company was to assist American companies trying to find growth throughout Latin America with their products and technologies. The start though wasn't that simple. The very first contract David got was with a Sprint retailer who saw his vast retail experience and hired him as an independent consultant to help turn around 7 of their newly acquired stores in San Diego County. It was a six-month contract but it gave David something solid to run off of if he was successful.
Success happened and from there David acquired separate large contracts over a 6 year period. While many of the projects were fixed-term and project based, some of the contracts were long-term. Some of these contracts were with companies like P.I.N.T., Inc., doing business development to help them break into the Mexican market, Kodenshi AUK, a Japanese and Korean semiconductor manufacturer looking to break into Latin America, TAAG Industries, BorderTraffic / LaLineaEnVivo, and BajaBound. This all was the passion of what David does best, help small to medium size business grow. He was creating new channels and opportunities for these businesses that they did not know how to achieve on their own.
Interestingly enough, because of the unique border situation with the Baja-Cali megaregion of Tijuana and San Diego David was specializing at one point not just in technology, but border crossing technology. This lead to David developing extensive relationships with the Mexican Government, which led to him being contracted as the "Consejero Binacional" (Binational Advisor) to the Secretary of Tourism for Baja, California, Mexico where he worked in making lives easier for American Tourists while visiting Baja, Mexico with the promise of technology. David assisted trying to modernize the Tourist Visa process online for Americans visiting Mexico and even helped transform the fishing permit license so that Americans can obtain the licenses digitally online. All impressive feats at the time with a government that is notoriously slow in adopting new technology. In fact, David is one of the few non-Latino American citizens with a written letter of recommendation from the Mexican Government.
During that time also, David realized that there was a huge education gap in Mexico. Latinas, Mexican women specifically, were behind in their knowledge of how technology works. Although with the younger generation it was getting better, at that time if you were 25 or older and female, your understanding of basic technology was little to none. That's when David and his wife Raquel created a tech blog called TechChicas that was dedicated to helping Latinas around the world understand basic technology that they could access to make their lives easier. The site was a success winning multiple awards including one from Penn State University. That service was sold in 2015 when David took another turn in his career.
As successful as he was, the consulting world was a tiring one for David. Not only was he working 40 to 50 hours a week for clients, but he was also working an addition 20+ hours a week just trying to find new projects and bidding on new work. It was relentless and gave David no work / life balance.
After 6 long years of sacrificing all his time working to give his family the life he felt they deserved, David finally got offered a position that would give him what he was searching for. David and his family moved to Los Angeles in December of 2015 to start with Vision33, Inc.
This brings a brand new chapter. Finally, David was able to use his networking skills, business development skills, sales and marketing strategies for one dedicated company. David was new to the ERP (enterprise resource planning) business but he had a thorough understanding of technology due to his degree from Penn State University in Information Sciences & Technologies with a focus on Business.
David was able to use innovative techniques to turn a barren region of Los Angeles to a powerhouse for Vision33. Creating millions and millions of dollars a year in revenue that Vision33 never saw from that region previously. He did this because of the way he builds personal relationships with his clients and how he manages a sales cycle. There were very few opportunities David lost. In fact, he became the king of creating his own pipeline by doing creative events like his "Executive Luncheon" that had an anti-luncheon type there where desert was served first and used out of the box type of speakers that brought true value to all the businesses that came to learn how to grow their business and breakthrough the barriers preventing growth.
After 4 years, David was given the opportunity to move back home. Vision33 had a new region that needed a General Manager to oversee it and that is the Northeast. Since March of 2018, David has been managing the Northeast from sales, implementations, customer service, everything where he is growing the business at a record pace.
Even with the position that David currently has, he still feels that he has more to offer in order to help businesses grow and therefore on July 6, 2020, David launched the business podcast entitled Shark Bite Biz. This podcast is a discussion with subject matter experts and business owners discussing what works and what doesn't in a global pandemic world.
Overall, David has had a tough, but fun career. It has always focused around one main topic though. Helping small to midsize businesses grow. There are many ways to do this and David uses his outside the box methodology in order to help his clients achieve that growth.
View Blog Posts & Press Releases
© 2020. All rights reserved. All material contained on this site is sole property of David Strausser.

redpajama_set_name: RedPajamaCommonCrawl


I said to my wife tonight that Trump could save time (and thus spend more time POTUS-ing rather than tweeting) by using a Markov chain to generate his tweets based on past data and that they'd likely be just as coherent.
Make Markov chains great again. Sad.
Charles Stanhope, Yutaka Niibe, Tyng-Ruey Chuang, clacke@libranet.de ❌ and 3 others likes this.
"This is your first dent in 5 months? S__.
You should submit that idea for reinventing government. We could layoff a few GS-13 or higher grade people in other agencies who are the official Twitter posters. I kid you not that they get paid that obscenely high.
"Bradley is back! .... I'm glad to see you're back!
I'm here to make identi.ca great again! I'm going to build a wall between Twitter and Facebook and make Google pay for it.
Elena ``of Valhalla'', Stephen Michael Kellat likes this.


text:
ACS Appl Mater Interfaces. 2016 Oct 26;8(42):28566-28573. doi: 10.1021/acsami.6b04270. Epub 2016 Oct 12.
A MnO2/Graphene Oxide/Multi-Walled Carbon Nanotubes-Sulfur Composite with Dual-Efficient Polysulfide Adsorption for Improving Lithium-Sulfur Batteries.
Li Y1, Ye D2, Liu W1, Shi B1, Guo R1, Zhao H3, Pei H1, Xu J3, Xie J1.
State Key Laboratory of Space Power Technology, Shanghai Institute of Space Power Sources , Shanghai 200245, China.
Department of Chemistry and Molecular Biology, University of Gothenburg S-41296, Gothenburg, Sweden.
Department of Chemistry, Institute of Sciences, Shanghai University , Shanghai 200444, China.
Lithium-sulfur batteries can potentially be used as a chemical power source because of their high energy density. However, the sulfur cathode has several shortcomings, including fast capacity attenuation, poor electrochemical activity, and low Coulombic efficiency. Herein, multi-walled carbon nanotubes (CNTs), graphene oxide (GO), and manganese dioxide are introduced to the sulfur cathode. A MnO2/GO/CNTs-S composite with a unique three-dimensional (3D) architecture was synthesized by a one-pot chemical method and heat treatment approach. In this structure, the innermost CNTs work as a conducting additive and backbone to form a conducting network. The MnO2/GO nanosheets anchored on the sidewalls of CNTs have a dual-efficient absorption capability for polysulfide intermediates as well as afford adequate space for sulfur loading. The outmost nanosized sulfur particles are well-distributed on the surface of the MnO2/GO nanosheets and provide a short transmission path for Li+ and the electrons. The sulfur content in the MnO2/GO/CNTs-S composite is as high as 80 wt %, and the as-designed MnO2/GO/CNTs-S cathode displays excellent comprehensive performance. The initial specific capacities are up to 1500, 1300, 1150, 1048, and 960 mAh g-1 at discharging rates of 0.05, 0.1, 0.2, 0.5, and 1 C, respectively. Moreover, the composite cathode shows a good cycle performance: the specific capacity remains at 963.5 mAh g-1 at 0.2 C after 100 cycles when the area density of sulfur is 2.8 mg cm-2.
MnO2; carbon nanotube; graphene oxide; lithium sulfur; polysulfide adsorption


text:
of portal
Ukrzaliznytsia Publishes Timetable for Kyiv-Minsk-Vilnius-Riga Train
News 9 August 2018, 13:40
The train will depart from Kyiv at 14:07.
The Kyiv-Minsk-Vilnius-Riga train will be launched on September 28 this year. The train's timetable is already available on the website of the Ukrainian Railways public joint-stock company (Ukrzaliznytsia), the CFTS portal reports.
The train will depart from Kyiv at 14:07. According to Ukrzaliznytsia, the train's doors will be closed at 13:42, after which passport and customs control will be performed.
The train will arrive in in Minsk at 23:35 and depart from Minsk at 00:02. It will arrive in Vilnius at 04:25 and depart from there at 04:30. It will arrive in Riga at 09:05. The travel time between the final stations on the route will be 19 hours.
The train will pass through Slovechno, Kalinovichi, Zhlobin-Passenger, Molodechno, Smorgon, Gudogai (all in Belarus), Kiana, Siauliai (both in Lithuania), and Jelgava (Latvia).
In the opposite direction, the train will depart from Riga at 11:10 and arrive in Kyiv at 06:42. The travel time will be 19.5 hours.
The train will depart from the Ukrainian capital on September 28, October 4, 12, 18, and 26, November 2, 8, 16, 22, and 30, and December 6. It will depart from Riga on September 29, October 5, 13, 19, and 27, November 3, 9, 17, and 23, and December 1 and 7.
Train tickets should go on sale 45 days before the departure date.
The train was also originally expected to travel to the capital of Estonia, Tallinn. The project was called the "Train of Five Capitals" in 2017. In general, Ukrzaliznytsia has not abandoned this plan.
Tags: Ukrzaliznytsia, train, Latvia
Join us on our Telegram channel, read us on Facebook and Twitter to know first about new articles and key events of the day.
Ukrzaliznytsia To Reduce Staff In 2022
43 Kilometers Of Tracks Electrified On Kovel-Izov-Polish Border Railway Stretc
Ukrzaliznytsia Presents Lounge Area At Kyiv's Central Railway Station
Container Train Sent From Ukraine To China Via New Route
Daugavpils Locomotive Repair Plant Builds 8 Wagons For Transporting Spent Nuclear Fuel For Ukraine's Energoatom
10:12 Kyiv Airport Reports Passenger Traffic Volume For 2021
14:39 Ukrzaliznytsia To Reduce Staff In 2022
10:15 SpaceX Rocket Launches Ukraine's Sich-2-30 Satellite Into Orbit
18:01 Cargo Transportation On River Dnipro Increases By 28% In 2021
14:07 Boryspil Airport Handles Over 9.4 Million Passengers In 2021
Chornobyl 35 Years Later: How to Turn the Exclusion Zone into a Development Territory
Road Construction Supervision: Why Ukravtodor is Introducing Technical Supervision by International Companies Kryklyi's To-Do List: the Infrastructure Ministry's Plans for the Next 5 Years Mail Delivery by Rail: Who Needs Ukrzaliznytsia's New Project
What lies ahead for the transport industry? State managers answer questions from businesses
Will Everyone be Grounded? How Coronavirus Is Affecting Aviation in Europe and Ukraine Everyone in Favor but with Reservations: Businesses and Government Assess New Rail Transport Bill The TEN-T Transport Network: How the European Union Sees Development of Ukraine's Infrastructure
The First Concession Project: How Risoil-Kherson Will Operate the State-Owned Kherson Commercial Seaport
Life after Tokens: What Will Happen to Kyiv Subway Fares What Passengers Do Not See: How Ukrzaliznytsia's High-Speed Trains Are Serviced In Search Of Our Own Locomotive: Can Electric Locomotives Be Manufactured In Ukraine Today?
Reprint of materials allowed only with link to cfts.org.ua.
Reprint, copy, reproduction, or other use of materials containing reference to the "Interfax Ukraine" news agency is expressly prohibited.


text:
About Tracy Campbell
Tracy Campbell is the Director of Production Training & Development for Walt Disney Animation Studios. For over seven years, Tracy has immersed herself in animation production and how great learning content in art, film, storytelling, technology, robots, leadership and magic inspires an artistic community. In addition to WDAS, her experience at Disney also includes over three years at DisneyToon Studios and Disney Consumer Products which rounds out her industry knowledge.
Prior to joining Disney, Tracy spent her first career in theme park production at Universal Studios providing management support for creative development on all properties world-wide. After twelve years, she went back to school where she received her Bachelor's Degree in Creative Writing, a skill best employed in email composition.
In addition to enjoying her work over the past two and half years with WIA, she is a compulsive book buyer who appreciates both the feel of hardbacks and the fact she doesn't have to dust the books on her Kindle. Tracy supports chocolate as a food group, champagne anytime and HouseHunters International as educational television.


I love using sketchbooks because they are so immediate and informal. I always use a pen in my sketchbooks. I take a variety of pens because it is more spontaneous than a pencil and I like to work quickly.
I like the feeling of an ink line, it is lovely and flowing. I take several Sharpies with me in thick and thin widths - and I even like them using them when they dry out, it give a soft, faded look.
I use concertina sketchbooks now all the time. I was given the first one two years ago when we had just been to India. I put in drawings, small paintings, photographs and things stuck in to remind me of India, which made it quite bulky.
Now, I take a concertina sketchbook with me every time I go away. I have seven or eight of these with drawings of Portugal, India and Italy, and some local visits as well. You can spread them right out across the table and stand them on end in a loop.
My sketchbooks are records of the places I have been to. Sometimes I add comments or a list of food from the menu, and I look around for interesting things to record, and sometimes I draw while we are waiting for food at a restaurant, or travelling on a boat.
I stand up to draw most of the time, unless there happens to be a seat there or we are eating a meal. I think I like to stand drawing because that is also the way I paint, using use my whole arm, rather than wrist movements. Sometimes I put some colour in while I'm there, or add colour afterwards, but the drawing in the sketchbook is always done on the spot.
My sketchbooks are made by Seawhite, measuring 21 x 15 x 3cm, which come in a black cardboard box to hold it together. When I go away, I aim to fill the whole 35 page length for each trip, and sometimes I work on the back of the 35 pages as well.
I use watercolours and white gouache, I prepare my travel palette with fresh tube paint and among my brushes very favourite brush is an old small, wide flat bristle brush.
You can see that in some sketchbooks I have drawn over colour already on the page. I think that gives them an extra depth. Sometimes I add random patches of colour, perhaps paint or pieces of collage glued in with PVA. I use brown paper, pieces of envelopes perhaps with writing on them, all sorts of paper bags with pieces of interesting designs or small features I like. I don't have any particular colour plan, I just use a few colours that I like. I draw in ink over and across the collage, I'm not trying to fill in. It adds another dimension to the drawing. Sometimes I prepare the pages with patches of colour, putting on the paint with sponges, corks and brushes. In one of the sketchbooks my granddaughter Hattie helped by putting down some colours for me, and then I drew over the top.
I don't use these sketchbooks to paint from, they are records of the things that I have seen while I was out and searching for interesting shapes.
Hello, I love your work, and I can learn so much from this blog. I wonder what kind of pen (the black drawing) you us. I bought a lot of them but they are always not working well.


Squeeze juice from 1 clementine into a small bowl. (You should have about 2 tablespoons juice.) Add cider vinegar, Dijon mustard, sorghum syrup, pepper, and 1/2 teaspoon of the salt. Slowly add olive oil, whisking to combine. Set dressing aside.
Place collard greens and shallots in a large bowl. Add 2 tablespoons of the dressing, and gently massage into greens mixture with hands until greens are wilted and tender, about 1 minute, reserving remaining dressing.
Peel and slice remaining 2 clementines into rings and half-moons.
Place 1 1/2 cups collard green mixture onto each of 4 serving plates, and top evenly with chicken, pecans, goat cheese, and clementine slices. Drizzle remaining dressing evenly over each serving, and sprinkle with remaining 1/4 teaspoon salt.


Buy Naruto Shippuden: Ultimate Ninja Storm 4 on Daily Game Sale for just €13.76 EUR.
Below you can find "helpful" reviews from verified owners of Naruto Shippuden: Ultimate Ninja Storm 4 - provided by Steam. You can provide a review for this game on Steam, and it may be added here automatically after a short time.
I bought STORM3 & STORM4 when it was on sale.
Suddenly after some chapters played , I started additcted to Naruto series.
I started watching Naruto series and movies.
BTW THIS IS A GREAT GAME. IT IS FANTASTIC.
I personally recommend this game, it also has a good online feature, fun playing with real people.
The controls on keyboard take a while to get used to playing with, but I would recommend using a controller as it is much easier, but on keyboard is also good just takes time to get the combos.
Covers from the end of Storm 3 to the end of the Story. DLCs were kind of dissapointing since they gave nonsensical charcters and the only way to unlock certain charcters are through pre-order which you can't do anymore obviously. Game runs fine if you have the permitted hardware. You can play at higher resolutions by editing your config file in your game directory. I played the whole story in UHD and it looked fantastic.
I recommend you buy this game if you have a gamepad.
Just a really good game for naruto fans, not so much for people wanting to get innto the story as this basically starts at the end .
What's the fastest way to a girl's heart?
I was going to go to college, now my only goal is to become Hokage.
EDIT: I'm going to college now, but my main goal hasn't changed.
Played it for a minute and Im already into it. Ikuzo!
It's a really good game, especially if you are a Naruto fan.
Summarizing; it's a good game... but not perfect.
+If you want get S rank on every mission you finally have a challange!
+Change your playable Character with your Support Characters.
- I don't really like the +30fps lock.
- The Cutscenes was just a "slideshow" of pictures.
NARUTO SHIPPUDEN: Ultimate Ninja STORM 4.
Share with your friends and earn €1.02 EUR for each purchase they make.


text:
Home » Regional » PRINCE HARRY BEGINS WHIRLWIND ROYAL TOUR OF SEVERAL CARIBBEAN COUNTRIES ON BEHALF OF HER MAJESTY QUEEN ELIZABETH II
PRINCE HARRY BEGINS WHIRLWIND ROYAL TOUR OF SEVERAL CARIBBEAN COUNTRIES ON BEHALF OF HER MAJESTY QUEEN ELIZABETH II
Posted on November 21, 2016 in Regional // 0 Comments
Basseterre, St. Kitts, November 21, 2016 (SKNIS): His Royal Highness Prince Henry (Harry) of Wales touched down to a red carpet welcome on Sunday, November 20, at the VC Bird International Airport in Antigua aboard a British Airways commercial flight as he begins his 15 day Royal Visit of several Caribbean countries, including St. Kitts and Nevis, Saint Lucia, Saint Vincent and the Grenadines, Grenada, Barbados, and Guyana.
Prince Harry (32 yrs.), wearing a navy suit, white shirt and light blue tie, was met and greeted at the VC Bird International Airport by His Excellency the Governor General Sir Rodney Williams and Prime Minister of Antigua and Barbuda, the Honourable Gaston Browne. His welcome included a Caribbean Band and Members of the Antigua and Barbuda Defence Force while he inspected a Guard of Honour.
A highlight of Prince Harry's visit will the participation in the 35th Anniversary of Independence in Antigua and Barbuda and the 50th Anniversary of Independence in Barbados and Guyana.
While in Antigua and Barbuda, His Royal Highness will engage in a Youth Sports Festival at the Sir Vivian Stadium showcasing Antigua and Barbuda's national sports, and how these can empower and engage young people; he will attend an event at Government House highlighting the important work of a number of charities operating within Antigua and Barbuda; he will attend a reception hosted by the Prime Minister and meet a number of young cultural ambassadors from Antigua and Barbuda; he will visit one of the largest colonies of Frigate Birds in the world, which nests in Barbuda's mangroves and will get up close to these impressive birds on a boat tour through the mangroves, learning more about their elaborate courtship rituals and migration patterns, as well as how they form an integral part of the Barbuda eco-tourism industry; he will visit the Holy Trinity Primary School and Nursery and will join the school children busy preparing celebrations for the school's 93rd anniversary of their Founders' Day; he will also visit the Sir McChesney George High School and learn more about the school's agricultural practices, whether it be practicing water harvesting, cultivating crops, or poultry farming; and he will unveil a plaque in dedication to the Queen's Commonwealth Canopy, which will coincide with Antigua's annual Arbour Day Fair at Queen Victoria Park Botanical Gardens.
Prince Harry's next stop will be St. Kitts and Nevis on November 23.
Prince Harry will be welcomed and greeted at the Marina at Port Zante, Basseterre, at 9:00 am, by His Excellency the Governor General, Sir Tapley Seaton. The Royal Party will then proceed to the Port Zante Plaza where the Guard of Honour will be drawn up. His Excellency the Governor General will escort His Royal Highness to the Saluting Dais where he will take the salute and inspect the Guard of Honour. Members of the Cabinet, the Speaker and Deputy Speaker of the National Assembly and the Leader of the Opposition will be presented to Prince Harry and he will greet some members of the public.
Prince Harry will then proceed in convoy to the Brimstone Hill Fortress Park for a Youth Rally to begin at 10:30 am. HRH will watch a number of cultural performances all led by the young people of St. Kitts and Nevis at the Park, A UNESCO World Heritage Site. Representatives of schools and several young people, including Chevening Scholars and Special Olympians will be presented to Prince Harry. HRH will also unveil the St. Kitts and Nevis dedication to the Queen's Commonwealth Canopy Project in the form of a plaque.
Prince Harry's next engagement will be in Nevis, where the Royal Party will arrive by boat at the Charlestown Dock at 2:30 pm where Prince Harry will have the opportunity to meet the Nevis Island Administration (NIA) and local residents. HRH will then proceed to the Four Seasons Hotel for a reception.
Following HRH's reception at the Four Seasons Hotel, he will meet volunteers from a Nevis turtle conservation project on Lover's Beach. Prince Harry will be shown the turtle nesting sites and learn more about Nevis' conservation efforts to protect these endangered species.
The Royal Party will then return to St. Kitts where Prince Harry will be hosted to an invitations only reception by His Excellency the Governor General at Government House at 6:30 pm.
During HRH Prince Harry's visit to St. Kitts, an investiture ceremony will be held in the State Room at Government House where former Governor General of St. Kitts and Nevis, His Excellency Sir Edmund Lawrence, will formally receive his knighthood from Prince Harry acting on behalf of Her Majesty the Queen.
As His Royal Highness moves on to other Caribbean island on his Royal Tour, one of the highlights will be a Golden Anniversary Spectacular Mega Concert in Barbados on November 30, which will feature the best of Barbadian talent, from singers and dancers, to orchestras, icons and celebrated entertainers, one of whom will be Rihanna.
Saint Lucia Records 57 New COVID-19 Cases. Total Now 713 To Date
ST.LUCIA'S DR. GENE LEON ELECTED NEW PRESIDENT OF THE CDB


text:
Živorotke (Poeciliidae), porodica riba iz reda Cyprinodontiformes kojoj pripada 44 roda s ukupno 353 vrste, koje žive i po slatkim, i slanim i bočatim vodama, ali tek je jedna vrsta pravi stanovnik morske vode, to je Poeciliopsis latidens (Garman, 1895.).

U prošlosti su živorotke uvezene u područja koja im inače nisu prirodno stanište, uglavnom kako bi kontrolirale populaciju komaraca. Međutim, zbog visoke stope razmnožavanja, pojedine su vrste postale invazivne, uništavajući razne životinjske vrste u područjima u koje su umjerno unesene.

Živorotke su već desetljećima na vrhu liste najpopularnijih akvarijskih riba. Za ovo su zaslužne živopisne boje i oblik repne peraje, kao i velike mogućnosti križanja.

Razmnožavanje
Glavna i najprepoznatljivija odlika riba ove porodice je unutarnja oplodnja i viviparnost - sposobnost ženke da inkubira ikru u svom trbuhu, nakon čega se rađaju živi mladunci. Oplođenje ikre vrši se izravnim unošenjem spermija u organ ženke preko mužjakovog kopulacijskog organa gonopodija, čiji oblik ovisi o vrsti ribe. Oplođena ženka nosi ikru 20-60 dana, nakon čega slijedi porod. Jednom oplođena ženka prolazi kroz ciklus od 4-5 porođaja godišnje. Ovisno o starosti i općem zdravlju ženke, pri jednom porođaju na svijet može doći do 180 mladunaca. Odmah po dolasku na svijet mlađ pada na dno, a zatim brzo isplivavaju na površinu da bi svoj riblji mjehur napunili zrakom. Od tog trenutka mlađ živorotki je potpuno samostalna i odmah kreće u potragu za hranom, ali i zaklonom od majki sklonih kanibalizmu.

Vrste

Prva opisana vrsta u ovoj porodici je Poecilia vivipara  Bloch & Schneider, 1801 koja nastanjuje bočate vode od Venezuele do Argentine, a kako se hrani ličinkama komaraca ponekad se koristi za njihov nadzor u ribnjacima i akumulacijama. Ova spomenuta vrsta koja maksimalno naraste 4 centimetra uvezena je i na otoke Martinik i Portoriko
Njihova je duljina obično su manja od 18 centimetara.

 Alfaro cultratus (Regan, 1908)
 Alfaro huberi (Fowler, 1923)
 Aplocheilichthys antinorii (Vinciguerra, 1883)
 Aplocheilichthys atripinna (Pfeffer, 1896)
 Aplocheilichthys brichardi (Poll, 1971)
 Aplocheilichthys bukobanus (Ahl, 1924)
 Aplocheilichthys centralis Seegers, 1996
 Aplocheilichthys fuelleborni Ahl, 1924
 Aplocheilichthys hutereaui (Boulenger, 1913)
 Aplocheilichthys jeanneli (Pellegrin, 1935)
 Aplocheilichthys johnstoni (Günther, 1894)
 Aplocheilichthys katangae (Boulenger, 1912)
 Aplocheilichthys kingii (Boulenger, 1913)
 Aplocheilichthys kongoranensis (Ahl, 1924)
 Aplocheilichthys lacustris Seegers, 1984
 Aplocheilichthys lualabaensis (Poll, 1938)
 Aplocheilichthys macrurus (Boulenger, 1904)
 Aplocheilichthys mahagiensis David & Poll, 1937
 Aplocheilichthys meyburghi Meinken, 1971
 Aplocheilichthys moeruensis (Boulenger, 1914)
 Aplocheilichthys myaposae (Boulenger, 1908)
 Aplocheilichthys myersi 	Poll, 1952
 Aplocheilichthys pumilus 	(Boulenger, 1906)
 Aplocheilichthys rudolfianus (Worthington, 1932)
 Aplocheilichthys spilauchen (Duméril, 1861)
 Aplocheilichthys vitschumbaensis Ahl, 1924
 Belonesox belizanus Kner, 1860
 Brachyrhaphis cascajalensis (Meek & Hildebrand, 1913)
 Brachyrhaphis episcopi (Steindachner, 1878)
 Brachyrhaphis hartwegi Rosen & Bailey, 1963
 Brachyrhaphis hessfeldi Meyer & Etzel, 2001
 Brachyrhaphis holdridgei Bussing, 1967
 Brachyrhaphis olomina (Meek, 1914)
 Brachyrhaphis parismina (Meek, 1912)
 Brachyrhaphis punctifer (Hubbs, 1926)
 Brachyrhaphis rhabdophora (Regan, 1908)
 Brachyrhaphis roseni Bussing, 1988
 Brachyrhaphis roswithae Meyer & Etzel, 1998
 Brachyrhaphis terrabensis (Regan, 1907)
 Carlhubbsia kidderi (Hubbs, 1936)
 Carlhubbsia stuarti Rosen & Bailey, 1959
 Cnesterodon brevirostratus Rosa & Costa, 1993
 Cnesterodon carnegiei Haseman, 1911
 Cnesterodon decemmaculatus (Jenyns, 1842)
 Cnesterodon holopteros Lucinda, Litz & Recuero, 2006
 Cnesterodon hypselurus Lucinda & Garavello, 2001
 Cnesterodon iguape Lucinda, 2005
 Cnesterodon omorgmatos Lucinda & Garavello, 2001
 Cnesterodon pirai Aguilera, Mirande & Azpelicueta, 2009
 Cnesterodon raddai Meyer & Etzel, 2001
 Cnesterodon septentrionalis Rosa & Costa, 1993
 Fluviphylax obscurus Costa, 1996
 Fluviphylax palikur Costa & Le Bail, 1999
 Fluviphylax pygmaeus (Myers & Carvalho, 1955)
 Fluviphylax simplex Costa, 1996
 Fluviphylax zonatus Costa, 1996
 Gambusia affinis 	(Baird & Girard, 1853)
 Gambusia alvarezi Hubbs & Springer, 1957
 Gambusia amistadensis Peden, 1973
 Gambusia atrora Rosen & Bailey, 1963
 Gambusia aurata Miller & Minckley, 1970
 Gambusia baracoana Rivas, 1944
 Gambusia beebei 	Myers, 1935
 Gambusia bucheri 	Rivas, 1944
 Gambusia clarkhubbsi Garrett & Edwards, 2003
 Gambusia dominicensis Regan, 1913
 Gambusia echeagarayi (Álvarez, 1952)
 Gambusia eurystoma Miller, 1975
 Gambusia gaigei 	Hubbs, 1929
 Gambusia geiseri 	Hubbs & Hubbs, 1957
 Gambusia georgei 	Hubbs & Peden, 1969
 Gambusia heterochir Hubbs, 1957
 Gambusia hispaniolae Fink, 1971
 Gambusia holbrooki Girard, 1859
 Gambusia hurtadoi Hubbs & Springer, 1957
 Gambusia krumholzi Minckley, 1963
 Gambusia lemaitrei Fowler, 1950
 Gambusia longispinis Minckley, 1962
 Gambusia luma Rosen & Bailey, 1963
 Gambusia manni Hubbs, 1927
 Gambusia marshi Minckley & Craddock, 1962
 Gambusia melapleura (Gosse, 1851)
 Gambusia monticola Rivas, 1971
 Gambusia myersi Ahl, 1925
 Gambusia nicaraguensis Günther, 1866
 Gambusia nobilis 	(Baird & Girard, 1853)
 Gambusia panuco Hubbs, 1926
 Gambusia pseudopunctata Rivas, 1969
 Gambusia punctata Poey, 1854
 Gambusia puncticulata Poey, 1854
 Gambusia quadruncus Langerhans, 2012
 Gambusia regani 	Hubbs, 1926
 Gambusia rhizophorae Rivas, 1969
 Gambusia senilis 	Girard, 1859
 Gambusia sexradiata Hubbs, 1936
 Gambusia speciosa Girard, 1859
 Gambusia vittata 	Hubbs, 1926
 Gambusia wrayi Regan, 1913
 Gambusia xanthosoma Greenfield, 1983
 Gambusia yucatana Regan, 1914
 Gambusia zarskei 	Meyer, Schories & Schartl, 2010
 Girardinus creolus Garman, 1895
 Girardinus cubensis (Eigenmann, 1903)
 Girardinus denticulatus 	Garman, 1895
 Girardinus falcatus 	(Eigenmann, 1903)
 Girardinus metallicus 	Poey, 1854
 Girardinus microdactylus 	Rivas, 1944
 Girardinus uninotatus 	Poey, 1860
 Heterandria anzuetoi 	Rosen & Bailey, 1979
 Heterandria attenuata 	Rosen & Bailey, 1979
 Heterandria bimaculata 	(Heckel, 1848)
 Heterandria cataractae 	Rosen, 1979
 Heterandria dirempta 	Rosen, 1979
 Heterandria formosa 	Girard, 1859
 Heterandria jonesii 	(Günther, 1874)
 Heterandria litoperas 	Rosen & Bailey, 1979
 Heterandria tuxtlaensis 	McEachran & Dewitt, 2008
 Heterophallus milleri 	Radda, 1987
 Heterophallus rachovii 	Regan, 1914
 Hylopanchax leki 	van der Zee, Sonnenberg & Schliewen, 2013
 Hylopanchax moke 	van der Zee, Sonnenberg & Schliewen, 2013
 Hylopanchax ndeko 	van der Zee, Sonnenberg & Schliewen, 2013
 Hylopanchax silvestris 	(Poll & Lambert, 1958)
 Hylopanchax stictopleuron 	(Fowler, 1949)
 Hypsopanchax catenatus 	Radda, 1981
 Hypsopanchax deprimozi 	(Pellegrin, 1928)
 Hypsopanchax jobaerti 	Poll & Lambert, 1965
 Hypsopanchax jubbi 	Poll & Lambert, 1965
 Hypsopanchax platysternus (Nichols & Griscom, 1917)
 Hypsopanchax zebra 	(Pellegrin, 1929)
 Lacustricola maculatus (Klausewitz, 1957)
 Lacustricola matthesi 	(Seegers, 1996)
 Lacustricola mediolateralis 	(Poll, 1967)
 Lacustricola nigrolateralis 	(Poll, 1967)
 Lacustricola omoculatus 	(Wildekamp, 1977)
 Lacustricola usanguensis 	(Wildekamp, 1977)
 Lamprichthys tanganicanus 	(Boulenger, 1898)
 Limia caymanensis 	Rivas & Fink, 1970
 Limia dominicensis 	(Valenciennes, 1846)
 Limia fuscomaculata 	Rivas, 1980
 Limia garnieri 	Rivas, 1980
 Limia grossidens 	Rivas, 1980
 Limia heterandria 	Regan, 1913
 Limia immaculata 	Rivas, 1980
 Limia melanogaster 	(Günther, 1866)
 Limia melanonotata 	Nichols & Myers, 1923
 Limia miragoanensis 	Rivas, 1980
 Limia nigrofasciata 	Regan, 1913
 Limia ornata 	Regan, 1913 <small>
 Limia pauciradiata 	Rivas, 1980
 Limia perugiae 	(Evermann & Clark, 1906)
 Limia rivasi 	Franz & Burgess, 1983
 Limia sulphurophila 	Rivas, 1980
 Limia tridens 	(Hilgendorf, 1889)
 Limia versicolor 	(Günther, 1866)
 Limia vittata 	(Guichenot, 1853)
 Limia yaguajali 	Rivas, 1980
 Limia zonata 	(Nichols, 1915)
 Micropanchax bracheti 	(Berkenkamp, 1983)
 Micropanchax camerunensis 	(Radda, 1971)
 Micropanchax ehrichi 	(Berkenkamp & Etzel, 1994)
 Micropanchax keilhacki 	(Ahl, 1928)
 Micropanchax loati 	(Boulenger, 1901)
 Micropanchax macrophthalmus 	(Meinken, 1932)
 Micropanchax pelagicus 	(Worthington, 1932)
 Micropanchax pfaffi 	(Daget, 1954)
 Micropanchax scheeli 	(Roman, 1971)
 Micropoecilia bifurca 	(Eigenmann, 1909)
 Micropoecilia branneri 	(Eigenmann, 1894)
 Micropoecilia minima 	(Costa & Sarraf, 1997)
 Micropoecilia picta 	(Regan, 1913)
 Neoheterandria cana 	(Meek & Hildebrand, 1913)
 Neoheterandria elegans 	Henn, 1916
 Neoheterandria tridentiger 	(Garman, 1895)
 Pamphorichthys araguaiensis 	Costa, 1991
 Pamphorichthys hasemani 	(Henn, 1916)
 Pamphorichthys hollandi 	(Henn, 1916)
 Pamphorichthys minor 	(Garman, 1895)
 Pamphorichthys pertapeh 	Figueiredo, 2008
 Pamphorichthys scalpridens 	(Garman, 1895)
 Pantanodon madagascariensis 	(Arnoult, 1963)
 Pantanodon stuhlmanni 	(Ahl, 1924)
 Phallichthys amates 	(Miller, 1907)
 Phallichthys fairweatheri 	Rosen & Bailey, 1959
 Phallichthys quadripunctatus 	Bussing, 1979
 Phallichthys tico 	Bussing, 1963
 Phalloceros alessandrae 	Lucinda, 2008
 Phalloceros anisophallos 	Lucinda, 2008
 Phalloceros aspilos 	Lucinda, 2008
 Phalloceros buckupi 	Lucinda, 2008
 Phalloceros caudimaculatus 	(Hensel, 1868)
 Phalloceros elachistos 	Lucinda, 2008
 Phalloceros enneaktinos 	Lucinda, 2008
 Phalloceros harpagos 	Lucinda, 2008
 Phalloceros heptaktinos 	Lucinda, 2008
 Phalloceros leptokeras 	Lucinda, 2008
 Phalloceros leticiae 	Lucinda, 2008
 Phalloceros lucenorum 	Lucinda, 2008
 Phalloceros malabarbai 	Lucinda, 2008
 Phalloceros megapolos 	Lucinda, 2008
 Phalloceros mikrommatos 	Lucinda, 2008
 Phalloceros ocellatus 	Lucinda, 2008
 Phalloceros pellos 	Lucinda, 2008
 Phalloceros reisi 	Lucinda, 2008
 Phalloceros spiloura 	Lucinda, 2008
 Phalloceros titthos 	Lucinda, 2008
 Phalloceros tupinamba 	Lucinda, 2008
 Phalloceros uai 	Lucinda, 2008
 Phalloptychus eigenmanni 	Henn, 1916
 Phalloptychus januarius 	(Hensel, 1868)
 Phallotorynus dispilos 	Lucinda, Rosa & Reis, 2005
 Phallotorynus fasciolatus 	Henn, 1916
 Phallotorynus jucundus 	Ihering, 1930
 Phallotorynus pankalos 	Lucinda, Rosa & Reis, 2005
 Phallotorynus psittakos 	Lucinda, Rosa & Reis, 2005
 Phallotorynus victoriae 	Oliveros, 1983
 Plataplochilus cabindae 	(Boulenger, 1911)
 Plataplochilus chalcopyrus 	Lambert, 1963
 Plataplochilus loemensis 	(Pellegrin, 1924)
 Plataplochilus miltotaenia 	Lambert, 1963
 Plataplochilus mimus 	Lambert, 1967
 Plataplochilus ngaensis 	(Ahl, 1924)
 Plataplochilus pulcher 	Lambert, 1967
 Plataplochilus terveri 	(Huber, 1981)
 Platypanchax modestus 	(Pappenheim, 1914)
 Poecilia boesemani 	Poeser, 2003
 Poecilia butleri 	Jordan, 1889
 Poecilia catemaconis 	Miller, 1975
 Poecilia caucana 	(Steindachner, 1880)
 Poecilia caudofasciata 	(Regan, 1913)
 Poecilia chica 	Miller, 1975
 Poecilia dauli 	Meyer & Radda, 2000
 Poecilia dominicensis 	(Evermann & Clark, 1906)
 Poecilia elegans 	(Trewavas, 1948)
 Poecilia formosa 	(Girard, 1859)
 Poecilia gillii 	(Kner, 1863)
 Poecilia hispaniolana 	Rivas, 1978
 Poecilia hondurensis 	Poeser, 2011
 Poecilia kempkesi 	Poeser, 2013
 Poecilia koperi 	Poeser, 2003
 Poecilia kykesis 	Poeser, 2002
 Poecilia latipinna 	(Lesueur, 1821)
 Poecilia latipunctata 	Meek, 1904
 Poecilia marcellinoi 	Poeser, 1995
 Poecilia maylandi 	Meyer, 1983
 Poecilia mechthildae 	Meyer, Etzel & Bork, 2002
 Poecilia mexicana 	Steindachner, 1863
 Poecilia nicholsi 	(Myers, 1931)
 Poecilia obscura 	Schories, Meyer & Schartl, 2009
 Poecilia orri 	Fowler, 1943
 Poecilia parae 	Eigenmann, 1894
 Poecilia petenensis 	Günther, 1866
 Poecilia reticulata 	Peters, 1859
 Poecilia rositae 	Meyer, Schneider, Radda, Wilde & Schartl, 2004
 Poecilia salvatoris 	Regan, 1907
 Poecilia sarrafae 	Bragança & Costa, 2011
 Poecilia sphenops 	Valenciennes, 1846
 Poecilia sulphuraria 	(Álvarez, 1948)
 Poecilia teresae 	Greenfield, 1990
 Poecilia vandepolli 	Van Lidth de Jeude, 1887
 Poecilia velifera 	(Regan, 1914)
 Poecilia vivipara 	Bloch & Schneider, 1801
 Poecilia waiapi 	Bragança, Costa & Gama, 2012
 Poecilia wandae 	Poeser, 2003
 Poecilia wingei 	Poeser, Kempkes & Isbrücker, 2005
 Poeciliopsis baenschi 	Meyer, Radda, Riehl & Feichtinger, 1986
 Poeciliopsis balsas 	Hubbs, 1926
 Poeciliopsis catemaco 	Miller, 1975
 Poeciliopsis elongata 	(Günther, 1866)
 Poeciliopsis fasciata 	(Meek, 1904)
 Poeciliopsis gracilis 	(Heckel, 1848)
 Poeciliopsis hnilickai 	Meyer & Vogel, 1981
 Poeciliopsis infans 	(Woolman, 1894)
 Poeciliopsis latidens 	(Garman, 1895)
 Poeciliopsis lucida 	Miller, 1960
 Poeciliopsis lutzi 	(Meek, 1902)
 Poeciliopsis monacha 	Miller, 1960
 Poeciliopsis occidentalis 	(Baird & Girard, 1853)
 Poeciliopsis paucimaculata 	Bussing, 1967
 Poeciliopsis pleurospilus 	(Günther, 1866)
 Poeciliopsis presidionis 	(Jordan & Culver, 1895)
 Poeciliopsis prolifica 	Miller, 1960
 Poeciliopsis retropinna 	(Regan, 1908)
 Poeciliopsis santaelena 	Bussing, 2008
 Poeciliopsis scarlli 	Meyer, Riehl, Dawes & Dibble, 1985
 Poeciliopsis sonoriensis 	(Girard, 1859)
 Poeciliopsis turneri 	Miller, 1975
 Poeciliopsis turrubarensis 	(Meek, 1912)
 Poeciliopsis viriosa 	Miller, 1960
 Poropanchax hannerzi 	(Scheel, 1968)
 Poropanchax luxophthalmus 	(Brüning, 1929)
 Poropanchax normani 	(Ahl, 1928)
 Poropanchax rancureli 	(Daget, 1965)
 Poropanchax stigmatopygus 	Wildekamp & Malumbres, 2004
 Priapella bonita 	(Meek, 1904)
 Priapella chamulae 	Schartl, Meyer & Wilde, 2006
 Priapella compressa 	Álvarez, 1948
 Priapella intermedia 	Álvarez & Carranza, 1952
 Priapella lacandonae 	Meyer, Schories & Schartl, 2011
 Priapella olmecae 	Meyer & Espinosa Pérez, 1990
 Priapichthys annectens 	(Regan, 1907)
 Priapichthys caliensis 	(Eigenmann & Henn, 1916)
 Priapichthys chocoensis 	(Henn, 1916)
 Priapichthys darienensis 	(Meek & Hildebrand, 1913)
 Priapichthys nigroventralis (Eigenmann & Henn, 1912)
 Priapichthys panamensis Meek & Hildebrand, 1916
 Priapichthys puetzi Meyer & Etzel, 1996
 Procatopus aberrans Ahl, 1927
 Procatopus nototaenia Boulenger, 1904
 Procatopus similis Ahl, 1927
 Procatopus websteri Huber, 2007
 Pseudopoecilia austrocolumbiana 	Radda, 1987
 Pseudopoecilia festae (Boulenger, 1898)
 Pseudopoecilia fria (Eigenmann & Henn, 1914)
 Pseudoxiphophorus obliquus (Rosen, 1979)
 Quintana atrizona Hubbs, 1934
 Rhexipanchax kabae (Daget, 1962)
 Rhexipanchax lamberti (Daget, 1962)
 Rhexipanchax nimbaensis (Daget, 1948)
 Rhexipanchax schioetzi (Scheel, 1968)
 Scolichthys greenwayi Rosen, 1967
 Scolichthys iota 	Rosen, 1967
 Tomeurus gracilis Eigenmann, 1909
 Xenodexia ctenolepis Hubbs, 1950
 Xenophallus umbratilis (Meek, 1912)
 Xiphophorus alvarezi Rosen, 1960
 Xiphophorus andersi Meyer & Schartl, 1980
 Xiphophorus birchmanni Lechner & Radda, 1987
 Xiphophorus clemenciae Álvarez, 1959
 Xiphophorus continens Rauchenberger, Kallman & Morizot, 1990
 Xiphophorus cortezi Rosen, 1960
 Xiphophorus couchianus (Girard, 1859)
 Xiphophorus evelynae Rosen, 1960
 Xiphophorus gordoni Miller & Minckley, 1963
 Xiphophorus hellerii Heckel, 1848
 Xiphophorus kallmani Meyer & Schartl, 2003
 Xiphophorus kosszanderi Meyer & Wischnath, 1981
 Xiphophorus maculatus (Günther, 1866)
 Xiphophorus malinche Rauchenberger, Kallman & Morizot, 1990
 Xiphophorus mayae Meyer & Schartl, 2002
 Xiphophorus meyeri Schartl & Schröder, 1988
 Xiphophorus milleri Rosen, 1960
 Xiphophorus mixei Kallman, Walter, Morizot & Kazianis, 2004
 Xiphophorus montezumae Jordan & Snyder, 1899
 Xiphophorus monticolus Kallman, Walter, Morizot & Kazianis, 2004
 Xiphophorus multilineatus Rauchenberger, Kallman & Morizot, 1990
 Xiphophorus nezahualcoyotl Rauchenberger, Kallman & Morizot, 1990
 Xiphophorus nigrensis Rosen, 1960
 Xiphophorus pygmaeus Hubbs & Gordon, 1943
 Xiphophorus roseni Meyer & Wischnath, 1981
 Xiphophorus signum Rosen & Kallman, 1969
 Xiphophorus variatus (Meek, 1904)
 Xiphophorus xiphidium (Gordon, 1932)

Izvori

Cyprinodontiformes

redpajama_set_name: RedPajamaWikipedia


text:
Q: Why won't text-indent work? I want to indent the first line of the text in each paragraph
p3 {
  display: inline;
  text-indent: 50px;
  font-family: Helvetica, serif;
  font-size: 30px;
  font-weight: 100;
  margin-top: 40px;
}

A: if p3 is class (class="p3")  so use .p3 in css
.p3 {
display: inline;
text-indent: 50px;
font-family: Helvetica, serif;
font-size: 30px;
font-weight: 100;
margin-top: 40px;
}

if p3 is id (id="p3") so use #p3 in css
#p3 {
display: inline;
text-indent: 50px;
font-family: Helvetica, serif;
font-size: 30px;
font-weight: 100;
margin-top: 40px;
}

I reccomand you to learn more about selector in css::https://www.w3schools.com/cssref/css_selectors.asp

A: Ignoring the issue with your non-valid selector, I will asume you meant p.
You need to add the text-indent to the wrapper element, not the paragraph itself.

p {
  display: inline;
  font-family: Helvetica, serif;
  font-size: 30px;
  font-weight: 100;
}

div {
  text-indent: 50px;
}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam semper diam at erat pulvinar, at pulvinar felis blandit. Vestibulum volutpat tellus diam, consequat gravida libero rhoncus ut.

redpajama_set_name: RedPajamaStackExchange


text:
Q: use one large external file for many javascript templates with backbone.js? I have two different HTML pages that serve up backbone apps. Up until now, I have put all the js templates inside of each respective HTML file.
Now, I'm refactoring a bit and would like to share some backbone views between files. When loading a view that can't find a js template, the whole app will error out. I know the proper way to merge these two would be to have external js templates, using EJS for example, and have 1 template per file, however, I'd like to just have one huge HTML file with embedded


When the Houston Astros first started nosing around Palm Beach County for a new spring-training site a few years back, the news was met with interest but not the kind that has everybody talking, even the people who don't follow sports.
For a real sensation you'd need the Yankees or Red Sox coming to town, or maybe a return of the Dodgers to Vero Beach. I mean, there's baseball and there's circus.
Anyway, the Washington Nationals and the Astros are coming to a spring facility near 45th Street and Haverhill Road in 2017, if all construction projections are met. That means a ton of new tourism money whether those teams are up or down at a given moment, but there's a bonus in the way the Astros are playing lately.
Houston entered the weekend with the American League's best record, which is difficult enough to get used to since the Astros were in the National League for their first 51 seasons of existence and only made the switch in 2013.
Far more startling is the notion that the team could be much good in any league, including Triple-A.
The Astros haven't had a winning record since 2008. They've either been in rebuilding mode or demolition mode since then, depending on how kind you wish to be about it.
Worst record in the majors in 2011, 2012 and 2013, with an average of 108 losses during that stretch.
Made the Marlins look like kings.
So if the Astros are suddenly going to be contenders, and if Texans go as big in their bandwagon baseball fever as they do with everything else, it looks like West Palm Beach is getting a better deal than anybody knew.
Get this, too. Last summer Sports Illustrated ran a cover story predicting Houston would win the 2017 World Series championship. Whether it was a little tongue-in-cheek or not, the Astros have been stockpiling young talent for years now as a result of their pitiful progress in the standings.
Owner Jim Crane, the guy with the Floridian National Golf Club in Palm City, has plenty of money to spend on locking up that talent and in chasing down some more.
Equally important, Major League Baseball's amateur draft is tonight and the Astros own two of the top five picks.
To recap, in 2017 Palm Beach County will have St. Louis and Miami training in Jupiter plus Washington and Houston training in West Palm Beach. The way things are shaping up, the Marlins are in real danger of being the weakest link.


We strive to provide professional, courteous sales & service. Browse our website to view the wide variety of inventory offered.
At Timo International our top priority is our customers. Please let us know how we can best serve you or your company by contacting us with questions, concerns or suggestions.
Copyright © 2018 Timo International - All Rights Reserved.


text:
William Wilson (21 de julio de 1905 - 1972) fue un artista británico de vitrales, grabador y pintor de acuarelas. Fue miembro de la Real Academia Escocesa. Fue nombrado Oficial de la Orden del Imperio Británico (OBE).

Biografía
Wilson aprendió a hacer vitrales con James Ballantyne, y estudiando con Herbert Hendrie. En 1932 la Real Academia Escocesa le concedió una beca Carnegie Travelling Scholarship, con la que estudió en el Edinburgh College of Art con Adam Bruce Thomson y que le sirvió para viajar por Francia, Alemania, Italia y España. En estos viajes hizo dibujos a pluma y tinta de la ciudad italiana de Venecia, y de las ciudades españolas de Madrid, Granada, Ronda y Toledo. Estudió grabado con Adam Bruce Thomson. En acuarela perteneció a la Escuela de Edimburgo. Estudió además en el Royal College of Art de Londres, produciendo aguafuertes y grabados de temas como "Loch Scavaig, Skye" en la década de 1930. Algunas de sus obras han sido expuestas en la Galería Escocesa de Edimburgo. También participó en las competiciones de arte de los Juegos Olímpicos de 1948.

Wilson enseñó a hacer vitrales en la Escuela de Arte de Edimburgo. Fundó su propio estudio en 1937, haciendo vitrales para la Catedral de Canterbury y varias iglesias escocesas. Lentamente se quedó ciego por la diabetes. Además de los vitrales religiosos, hizo piezas seculares como "The Irish Jig", que instaló originalmente en su casa de Edimburgo.

Trabajos
Wilson realizó las "excepcionales" vidrieras de la iglesia parroquial de Morningside North, Edimburgo, ahora un edificio comunitario. Está disponible un excelente informe detallado de las vidrieras que hizo para la Iglesia Parroquial de Greenbank, Edimburgo. En 1951 completó la vidriera este de la iglesia de St Andrew en Stamford reemplazando a la original que había sido destruida por una V1 durante un bombardeo. Realizó la vidriera este de la iglesia de Ardwell, y en 1953, las vidrieras de la fachada este de la catedral de St Machar, Aberdeen que representan la Natividad, la Última Cena, la Crucifixión y Cristo rodeado de los santos escoceses, y una vidriera de la iglesia de Dunino, Fife. Realizó 16 vidrieras entre 1952 y 1961 para la Catedral de Brechin, Angus, Escocia. También hizo cuatro vidrieras en la capilla de la Universidad de St. Andrews, aunque dada su progresiva ceguera las dos últimas pudieron haber sido en parte obra de sus ayudantes.

St Teresa's Dumfries. Realizó unas vidrieras en 1958 en la recién terminada Iglesia de Santa Teresa, en Dumfries, la ventana del baptisterio que muestra a Nuestro Señor siendo bautizado por San Juan Bautista y la vidriera exterior del Baptisterio que muestra a San José como carpintero en su banco de trabajo con el niño Jesús.

El mayor conjunto de vidrieras sobrevivientes de Wilson está en la iglesia de Craigiebuckler, Aberdeen. Las ventanas forman un solo esquema que cubre el Antiguo Testamento y el Nuevo Testamento de la Biblia. Una de sus últimas vidrieras es su imagen en vidrio de 1965 de San Columba en la Iglesia de la Abadía, Iona

Colecciones permanentes
Algunas de las obras de Wilson están en la colección de las Galerías Nacionales de Escocia. Su "Pescadores Escoceses" está en la Galería de Arte de Aberdeen.

Honores y premios
Wilson fue miembro de la Real Academia Escocesa (RSA). Fue nombrado OBE.

Recepción
La Universidad de St Andrews describe a Wilson como "uno de los grandes artistas de Escocia, un maestro de las artes del grabado, la pintura y el vitral". Bourne Fine Art señala que "en todo lo que hacía, su estilo era muy distintivo".

Referencias

Otras lecturas

 Guichard, Kenneth (1977). Británico Etchers 1850-1940, Robin Garton, Londres.
 Moody, Rona H.(2006). Imágenes de luz rota: William Wilson (1905 - 1972), La Revista de Stained Vaso Vol XXX pp 140 @– 150, Londres,

Enlaces externos

 La caja de chatarra por William Wilson
 William Wilson en la Galería Escocesa

Oficiales de la Orden del Imperio Británico
Pintores de Escocia del siglo XX
Fallecidos en 1972
Nacidos en 1905


text:
Betsy Schiffman
09.04.2008 01:34 PM
It's an ITunes SmackDown Bonanza
When Apple introduced iTunes to the world back in 2001, the music labels didn't say much. Probably because they were quietly weeping over plummeting CD sales. It's a different story now. The iTunes backlash has gained serious momentum. There is no shortage of iTunes critics or competitors now, including TV networks, cable providers, retailers and […]
When Apple introduced iTunes to the world back in 2001, the music labels didn't say much. Probably because they were quietly weeping over plummeting CD sales.
It's a different story now. The iTunes backlash has gained serious momentum. There is no shortage of iTunes critics or competitors now, including TV networks, cable providers, retailers and movie studios, many of which are forging online strategies that conspicuously exclude Apple.
"Frankly, I'm not really sure why [the backlash] didn't start sooner," says KC Blake, director of business development at the University of Southern California's Entertainment Technology Center. "It's not like anyone is making a ton of money off iTunes."
Among the most recent anti-iTunes developments: Amazon rolled out an ad-free television and movie streaming service yesterday that is both Mac- and PC-friendly (unlike Netflix' streaming service). The online retailer also launched a downloading service for rentals or purchase through Sony's Bravia internet video device. Over the weekend, Comcast rolled out a – video download store for movie purchases and rentals, roughly a year after it rolled out a video streaming service.
And the Comcasts and Amazons of the world are probably the least of Apple's worries. Content providers and copyright holders are working furiously to come up with a mainstream alternative to iTunes. Sony is reportedly developing its own digital media platform – which would run on open-source digital-rights management software. NBC ditched iTunes last year, opting instead to launch a digital platform with Fox. And increasing numbers of artists are keeping their music off iTunes. (Kid Rock famously urged listeners to download his music illegally, but his "Rock 'n Roll Jesus" album sold remarkably well, nonetheless.)
The main beef studios have with iTunes is that while Apple controls the pricing, format and experience, they get nothing out of it but a share of the revenue.
"[The studios] want to decide what's being offered and how it's being delivered," says Blake.
Another key reason for the studios' frantic desperation to find or form an alternative platform: The video business isn't toast yet, while the music business is, well, almost toast. And while Apple's iTunes has become a default music app for iPod owners, it isn't an obvious default home for video.
"I don't think iTunes has a huge competitive advantage [over others] just because it's been around awhile. Apple may have an advantage because so many people use iTunes to store their music, but I don't think Apple can maintain that lead in video," says Blake. "Based on our research, we know that people will watch stuff on iTunes on their laptops, but there aren't a whole lot of people using their iPods to watch videos. It's just not a good experience."
Photo: Flickr/Thomas Hawk
Rumor: Studios Teaming Up To Dethrone ITunes?
'ITunes Tax' Back From the Dead in California
ITunes Looks a Little Pricey
Neil Young Is Working on a New and Improved ITunes
TopicsiTunes


text:
Baird praises Abbott's MH17 response
11:51am Jul 26, 2014
NSW Premier Mike Baird has used the NSW Liberal Party annual conference to praise Prime Minister Tony Abbott's handling of the MH17 disaster.
Mr Baird said he was proud of the way Mr Abbott had responded to what he called "an unspeakable horror, an unspeakable tragedy".
"Today we need to pause for family and friends who lost loved ones on MH17," Mr Baird told delegates in Sydney.
"But I also have to say how proud I am of our prime minister.
"He has handled the events of last week like no one else I can imagine. He has responded as a leader, as a father, as a husband, not in response to some cautious diplomatic briefing ... he was responding for our families, for our state, for our country... he is doing an outstanding job and we are very lucky to have him."
Treasurer Joe Hockey was also full of praise.
"The leadership Tony Abbott, (foreign minister) Julie Bishop ... and the entire team has shown over the tragic, heinous event in Ukraine are simply the values of Australia that are embodied in our prime minister," he told the conference.
Two nights without power after Syd storms
Crown inquiry could scupper James Packer's $1.7bn deal
Three people die after their car veers off the road and slams into a tree in Bellingen on the NSW mid-north coast
"It's in moments of adversity that we want strength and the strength displayed by the government reflects the inner strength of the Australian people."
The comments came as Australian politicians and foreign diplomats prepare to attend a memorial service in Canberra to remember victims of the MH17 crash.
The world continues to mourn more than a week after the Malaysia Airlines passenger jet was shot down over eastern Ukraine killing all 298 people on board. Up to 39 Australian residents and citizens are among those killed.
Auto news: Tesla planning to make 'Chinese-style' vehicles - caradvice.com.au


Inspired by the reflected light from shells and pearls, Dawn Pearlised Blackout boasts an added value of keeping the heat out of a room as well as having that beautiful soft shine. Dawn Pearlised Blackout has improved thermal properties – hot sun is reflected back into the window without penetrating the fabric, which keeps the interior cooler and more relaxing. That also means that you will be saving on energy costs in summer. Dawn Pearlised is the number one choice for those wanting a brighter look without compromising style. Now available for both roller and vertical blinds with blades of all widths: 89, 100 and 127 mm. All of that makes this fabric one of the best choices for blackout blinds NZ market has to offer.
Greenguard Gold Certification ensures that Dawn has a low level of chemical emissions which significantly improves the quality of the air.
UltraFresh antimicrobial additives control the growth of unwanted microbes and guarantees continuous odour control and fabric protection against mould, mildew and stain causing bacteria.
The Uniguard fabric protection system improves the durability of our fabrics by making them easier to maintain and clean.
Oeko-Tex accreditation ensures that there are no harmful substances used during the manufacturing process.
Order your blockout roller blinds with Dawn Pearlised and you'll be enjoying your new interior every day!


The Seattle Times reviewed Imagining Gay Paradise, noting that the book "covers more than a century of progress and defeat in the way homosexuals have been treated [in Southeast Asia], skillfully connecting the stories of artists, anthropologists, businessmen and computer experts." Click here to see the full review.
Collett is the author of The Butcher of Amritsar, the acclaimed biography of General Reginald Dyer who, in 1919, marched a squad of soldiers into the holy city of Amritsar, India, and shot more than 200 Indians who had gathered to hear political speeches. The incident would later propel Gandhi's understanding of the inhuman brutality of colonialism.
You can read Nigel Collett's entire review of Imagining Gay Paradise at fridae.asia.
The New Jersey Star-Ledger of Newark, N.J.,has recommended Imagining Gay Paradise as one of five books to buy to kick off Pride Month.
It's a bit of an odd review in that it suggests that one theme of the book is that oppressed gay men in Europe and the U.S. who sought out paradises in Southeast Asia were often tragically disappointed. But that was not true of Walter Spies, the major European character who helped transform the image of Bali into that of an aesthetic paradise, nor of the major American character, Darrell Berrigan, who thoroughly enjoyed Bangkok. Both of their lives did end tragically — Spies died due to an unjust Dutch detention and a Japanese bomb during World War II; Berrigan died at the hands of a gay hustler.
But does that mean the men were tragically disappointed in the paradises they had imagined in Southeast Asia and would have preferred to stay at home? I don't think so. Both in fact successfully re-imagined the meaning of "home" in Southeast Asia.
Read the Star-Ledger review here.


text:
If you spend any amount of time in the town of Wimberly, Texas locals will be sure to mention the flood that happened in 2015. 13 people died and 350 homes were destroyed. However, there was a silver lining to the flood, a large number of fossils, including dinosaur footprints were discovered in the Blanco River. These footprints were discovered when the City of Blanco GIS manager was reviewing aerial photographs. From the photographs, we can clearly see the footprints of a four-legged dinosaur (or sauropod). Based on the distance between the front feet, foot size, time at which the tracks where made, and stride length it's like that the tracks belong to Paluxysaurus Jonesi, or as anyone who has watched the land before time would call it, a longneck. It's actually the state dinosaur of Texas. The footprints are located on federal owned land that you can only access with a ranger and I'm not sure if the public can visit. I was able to visit through the master naturalist program. Here is a link to other dinosaur footprint site in Texas you can visit though.
These footprints were created by a baby little foot, captured by Lauren Schramm
There were a ton of other fossils the rangers pointed out to us as well. The most mind-blowing to me was a microfossil. At one point we were walking in some small gravel and the ranger told us to look down. Turns out we were actually walking on millions of microfossils of a former unicellular organism that lived in the ocean. The sheer number of them was astounding. The concept of microfossils is pretty crazy too. Researchers can actually find microfossils of plankton or pollen and learn a lot about what past environments where like.
Microfossils! Captured by Lauren Schramm
biologyblanco riverdinosaur footprintseducationlauren schrammmicrofossilsnaturalisttexaswhat is a microfossilwhere to see microfossils
Jekyll Island Wildlife species and habitats
The Georgia coast contains many unique habitats. Although the coastline is only 90 miles long it contains a third of all coastal wetlands on the East Coast. Most of these wetlands are found in the region referred to as the Golden Isles which are made up of Brunswick and its four barrier islands; St Simons Island, Jekyll Island, Sea Island and Little St Simons. These islands actually contain 28 percent of the coastal wetlands of the east coast of the united states. Jekyll Island in particular is owned by the State of Georgia, which has created zoning that allows 65 percent of the island to remain in a natural state. I have been fortunate enough to spend some time in this region and it is well worth the 4-hour drive from metro Atlanta to get there.
Driftwood beach. Captured by Lauren Schramm
Driftwood beach on Jekyll Island is among the most well known in the region. Strong currents let to erosion which caused the trees to die, which were then preserved by the salt air. The in the southern part of the beach there are piles of large rocks. In these rocks, you can find sea squirts, blue mussels (Mytilus edulis), and some species of crabs. Be sure to visit the beach at low tide as the critters in these rocks can only be accessed at this time. In addition, as the tide rises most of the beach goes underwater and you will be forced to either walk back in the uplands or in the water. If you walk northward on the beach you can reach a bike path that runs through a salt marsh. If you continue north you will eventually end up in St Simons Sound. This marsh contains a lot of bird species, in fact, e-bird has reports of over 304 species here. If you don't have an e-bird you can view birds that have been seen on the beach on this inaturalist page. This is in part due to the fact that the beach serves as a critical stop-over habitat for migrating shorebirds. Highlights include the threatened birds like the piping plover (Charadrius melodus), wood stork (Mycteria americana), golden-winged warbler (Vermivora chrysoptera), red-cockaded woodpecker (Leuconotopicus borealis), black-capped petrel (Pterodroma hasitata) and Fea's petrel (Pterodroma feae).
A wood stork (Mycteria americana)
American AlligatorDriftwood beacheducationgeorgia coastgeorgia crabsgolden islesJekyll Islandjekyll island alligatorsJekyll island birdsjekyll island crabslauren schrammwhat animals live in Georgia swampswhat animals live on Jekyll island
Wildlife of Okefenokee National Wildlife Refuge
Okefenokee National Wildlife Refuge is located in South Georgia, near the border with Florida. Recently my friend and I visited to paddle around the swamp and drive around swamp island and walk the Chesser Island boardwalk to try and see some wildlife. The refuge is 630 square miles and encompasses nearly all of the swamp and was designated as a refuge in 1937 by President Roosevelt. It is one of the best preserved freshwater ecosystems in the world and some of the swamp is a national wilderness area. In the western part of the refuge there are is a cypress swamp but in the east it opens up to a prairie land. If you rent a kayak from Okefenokee adventures its is a short trip to see both regions of the swamp. The swamp is births the St. Marys river and the Suwannee river. Okefenokee is a native american word which means land of trembling earth. Most of the "solid" ground is actually peat that is floating. This floating peat is called batteries. Overtime the batteries grow larger and area able to support trees and large animals. The swamp was formed in a saucer shaped depression that used to be a part of the ocean floor.
Captured by Lauren Schramm
Many people do not realize that fire plays an important role in the swamp. Without fire the swamp would simple become a hardwood forest. Today prescribed burns reduce the amount of fuel available fire fires. In areas where there is a natural fire regime and humans stop these fires there is a build up of organic materiel. When a fire does break out because there is more fuel, the fire burns hotter than it normally would, damaging the seed bank in the soil. This can permanently damage the ecosystem. One of the most recent fires in Okefenokee occurred in 2011 in the Honey Prairie which burned down the former boardwalk on Chester Island. This was not due to a build up of fuel however, as the parks service lets fires that were caused by lighting burn which maintaining the safety of people and structures inside the park. The new boardwalk has a built in sprinkler system. Over the 7,000 years that the swamp has existed fires occur an average of every 20 years. Currently the swamp is regenerating from the fire. Notable from the young pond cypress trees (Taxodium ascendens) that are sprouting. Trees that sprout from old stumps are common and actually grow faster than seed generated trees. This stump sprouts are called coppices.
American AlligatorbiologyChesser Island boardwalkChesser Island boardwalk fireeducationfire and swampsGeorgia swamplauren schrammLongleaf pinesOkefenokee animalsOkefenokee fireOkefenokee National Wildlife RefugeOkefenokee swampSand hill cranesSwamp Island Drivewhat animals live in Georgia swampswhat animals live in swamps
Animals only found in Georgia
An endemic organism is one that is found only within a certain region. There is a rush that goes along with seeing a species that can be found nowhere else. Georgia is actually home to a handful of endemic species, most of which are aquatic. The Altamaha Spinymussel (Elliptio spinosa) is a freshwater mussel only found in 3 river systems in Georgia. Freshwater mussels are actually the most imperiled group of organisms in North America. There are a large number of reasons why this could be but one thing is for sure, mussels are dying in large numbers. To give you an idea of how rare some species can be, when I worked in a mussel lab we would actually pit tag some species so that we would be able to find them later. In the time span of less than a year, our most productive mussel bed had completely died. For the Altamaha spinymuseel, it is estimated that populations have declined 50-70 percent and it only occurred in 7 sites out of 120 sites that were sampled after 2000. Few juveniles or small individuals were found in these surveys. It used to be found in the Ohoopee River system and Oconee River in addition to the Altamaha River system. In the Ohoopee and Oconee, the mussel is thought to be extirpated or populations are so small it is undetectable. All freshwater mussels, expect the Salamander mussel (Simpsonaias ambigua), have a stage in their life-cycle in which they are fish parasites. The glochidia, or baby mussels, attach to fish gills and develop there until they become juveniles. This is how they expand their range.
The Etowah darter (Etheostoma etowahae) is another species that is only found in the Peachtree state. It is a small fish that is about 2 inches long. The fish occurs a less than 10 locations in the Etowah River system. They prefer swift riffle habitats that have either cobble or gravel. There is likely less than 10,000 adults and at sites sampled the darter represents only a small part of the community. Because of this and the expansion of metro Atlanta into its habitat, the species is protected as an endangered species both federally and at the state level. They look very similar to the closely related greenbreast darter (Etheostoma jordani) and lipstick darter (Etheostoma chuckwachatte). Some scientists say that the Etowah darter and greenbreast darter differ by the red markings the Etowah darter has on its sides. This difference between species has been recently challenged with some saying you can't tell the species apart without genetic testing. The Etowah darter does not co-occur with the lipstick darter so range maps can be used to determine which species you are looking at.
Altamaha SpinymusselbiologyCherokee DarterCumberland Island horseeducationEtowah dartergeorgia endemicsgeorgia nativesgeorgia only specieslauren schrammOconee Burrowing CrayfishPigeon Mountain salamanderwhat animals are only found in Georgia
Birds you can find local in Brookhaven Georgia (Atlanta Area)
Recently I had the joy of going birding with a local group in a small park in Brookhaven, Georgia. We saw over 33 species.
I was surprised that members of the group were excited to see double-crested cormorant (Phalacrocorax auritus). There is a common misconception about them that I have heard mostly due to the increase in their population, particularly on Lake Champlain in Vermont, where I grew up. When DDT was banned in 1972, it opened the door for the cormorant population to expand and it did. On Lake Champlain, the populations went from one breeding pair in 1981 to over 4,500 breeding pairs. Cormorants are piscivorous, meaning that they consume fish. Their population growth raised concerns with fisherman, one of which who told me that cormorants are an invasive species. To further this belief, the state of Vermont in 1999 began to oil the eggs of the birds. This prevents gas exchange and kills the birds in the eggs. The birds prefer to eat fish that are between 3 to 6 inches. On Lake Champlain, it has been shown that most of their diet is yellow perch (Perca flavescens) and alewives (Alosa pseudoharengus). Rarely are trout and salmon found in their stomachs, except when the fish are released annually into the lake from fish stocking facilities.
For more information about Cormorants
We also saw 17 tufted titmouse (Baeolophus bicolor), which I learned to identify by their classic peter-peter-peter call. They are year-round residents of this area and in most of the Eastern United States. They often flock with chickadees, nuthatches, and woodpeckers. Flocking means that predators are less likely to capture one as more birds are on the lookout for them. Food gathering efficiency is also increased by flocking behavior. In addition, there is reduced inter-species aggression which reduces competition. If you would like to attract tufted titmouse to your property they visit bird feeders and also benefit from nesting boxes. It is important to place a guard around nesting boxes to protect from predators and to place the boxes up well before breeding season.
atlanta birdsbiologyBirdsbrookhavenbrookhaven birdsbrookhaven naturedouble-crested cormoranteducationhermit thrushlauren schrammornithologysong sparrowtufted titmouseyellow-bellied sapsuckeryellow-rumped warbler
Stone Mountain- natural wonder of Georgia
Stone Mountain is one of metro Atlanta's most popular hiking spots. It also happens to be one of the 7 natural wonders of Georgia joining the ranks of; Amicalola Falls, Warm Springs, Okefenokee Swamp, Providence Canyon, Radium Springs and Tallulah Gorge. Stone Mountain was formed from an upwelling of magma, about the same time that the Blue Ridge Mountains were formed. Stone Mountain is a giant igneous monolith (meaning it is one continuous rock) that has a circumference of 5 miles at the base above ground but extends further underground. While it is very large it is not the largest piece of granite in the world, and some of the mountain is not composed entirely of granite as composition ranges from quartz monzonite to granite and granodiorite (according to the Georgia Geological Survey Bullet). It is unclear what the largest piece of granite in the world is; I've heard the same claim from the Polar Caves in New Hampshire and from a rock in Yellowstone.
There are many interesting species to observe at Stone Mountain as well. During the rainy season in the pools clam shrimp (Laevicaudata) and fairy shrimp (Anostraca) can be observed. Both of these are orders of small bivalves and crustaceans. The fairy shrimp is most commonly known as the sea monkey or brine shrimp. Clam shrimps are very similar but they have a protective shell around the shrimp. They are both able to enter a state called diapause, in this state the eggs basically dry out and remain that way until it rains again. The eggs can even survive being out in space! Centuries later the eggs are still able to hatch. The species are not mobile unless they are aided by wind, bird's feet, or currents. Fairy shrimp can well found on every single continent, including Antarctica.
Featured Lauren Schramm
7 natural wonders of GeorgiaAtlanta natureAtlanta Rare plantsbiologyclam shrimpConfederate Daisyeducationfairy shrimpGeorgia oakgraniteinvertebrateslauren schrammnaturalistplant identificationPorter's Sunflowerrare animals Stone Mountainshrimp on Stone MountainStone mountainStone Mountain Naturewelcome