Introduction: Go ask a hundred bass anglers if they like frog fishing, and you'll likely get a hundred exuberant answers of �YES.� Frog fishing is unquestionably one of the most fun and exciting ways to catch bass. While it's not normally a technique that works all year on many bodies of water, when the time is right it can be an incredibly effective way to catch quality fish. Despite the popularity of hollow-body frogs, a lot of anglers get frustrated with them at times because they can be difficult to walk. It takes different tackle and a much different cadence to master one of these baits compared to, say, a Zara Spook. Jackall's Iobee frog is made to ease this burden a bit, as it's designed for effortless walking action. So, will the Iobee indeed walk, or flop?
Impressions: Many anglers like to customize their frogs, but Jackall optimized the Iobee's design so that you can literally take it out of the package and go fish it. Its plastic body is quite soft and is specifically made around a sharp double-pronged custom hook for the best shape and weedless characteristics. The belly portion is what really helps the frog walk, as it sports a very pronounced �keel� to enhance the side-to-side action. In the rear, you'll find a water seal around the hooks to keep the H20 out, a tiny drain hole, and a pair of long four-inch legs that are made of a unique, very limp rubber. Indeed, these baits are nicely put together and seemingly encompass most everything you'd look for in a hollow frog.
There are only six colors available, but that's really all you need.
Casting: Hollow frogs are bulky baits that definitely aren't the most aerodynamic around. Thankfully, the Iobee utilizes a small weight near the hook bend for just the right amount of balance and casting ease. With an overall heft of a half ounce, the toad is extremely stable and easy to fling on a very straight, accurate trajectory. In fact, a strong cast will launch this thing a surprising distance. I was able to skip the frog here and there on a backhand cast, but to be quite honest my skipping skills with a baitcaster are sorely lacking so I tend to shy away from the possibility of a braided bird nest!
A small drain hole is located at the rear of the Iobee.
Retrieving: When looking head-on at the Iobee, you'll notice the pronounced v-shaped belly that looks like the hull of a boat. This built-in keel is said to make the frog walk much easier. But, does it actually work? Absolutely! It still takes a touch of skill to get it right, but out of all the frogs I've used it's definitely the easiest one to walk. I have fished the Iobee on 20, 40, and 60-pound braid and didn't have any issues. Even at the end of a long cast I'm still able to walk the frog easily at an extreme distance. Depending on rod tip speed, the frog can softly walk, dart, or bounce its way side-to-side across the surface. Using very subtle movements can also make the frog move back and forth with minimal forward motion�great for a prolonged presentation in a confined space. Whatever the retrieve, the subtle legs move willingly and impart a ton of added attraction.
Here's a look at the water seal (at the base of the hooks) and the small, round weight.
The three baits I had for testing didn't have any issues with taking in abnormal amounts of water. The seal that's used around the hooks kept water out very well�even after modest usage. There is a drain hole located at the rear so the frog can quickly get relief when squeezed.
I have total confidence casting the Iobee over and through thick weed lines.


text:
=head1 NAME

Bio::SeqIO::Handler::GenericRichSeqHandler - Bio::HandlerI-based
data handler for GenBank/EMBL/UniProt (and other) sequence data

=head1 SYNOPSIS

  # MyHandler is a GenericRichSeqHandler object.
  # inside a parser (driver) constructor....

  $self->seq_handler($handler || MyHandler->new(-format => 'genbank'));

  # in next_seq() in driver...

  $hobj = $self->seqhandler();

  # roll data up into hashref chunks, pass off into Handler for processing...

  $hobj->data_handler($data);

  # or retrieve Handler methods and pass data directly to Handler methods...

  my $hmeth = $hobj->handler_methods;

  if ($hmeth->{ $data->{NAME} }) {
      my $mth = $hmeth->{ $data->{NAME} };
      $hobj->$mth($data);
  }

=head1 DESCRIPTION

This is an experimental implementation of a sequence-based HandlerBaseI parser
and may change over time. It is possible (nay, likely) that the way handler
methods are set up will change over development to allow more flexibility.
Release pumpkins, please do not add this to a release until the API has settled.
It is also likely that write_seq() will not work properly for some data.

Standard Developer caveats:

Do not use for production purposes.
Not responsible for destroying (your data|computer|world).
Do not stare directly at GenericRichSeqHandler.
If GenericRichSeqHandler glows, back slowly away and call for help.

Consider yourself warned!

This class acts as a demonstration on how to handle similar data chunks derived
from Bio::SeqIO::gbdriver, Bio::SeqIO::embldriver, and Bio::SeqIO::swissdriver
using similar (or the same) handler methods.

The modules currently pass all previous tests in t/genbank.t, t/embl.t, and
t/swiss.t yet all use the same handler methods (the collected tests for handlers
can be found in t/Handler.t). Some tweaking of the methods themselves is
probably in order over the long run to ensure that data is consistently handled
for each parser.  Round-trip tests are probably in order here...

Though a Bio::Seq::SeqBuilder is employed for building sequence objects no
bypassing of data based on builder slots has been implemented (yet); this is
planned in the near future.

As a reminder: this is the current Annotation data chunk (via Data::Dumper):

  $VAR1 = {
            'NAME' => 'REFERENCE',
            'DATA' => '1  (bases 1 to 10001)'
            'AUTHORS' => 'International Human Genome Sequencing Consortium.'
            'TITLE' => 'The DNA sequence of Homo sapiens'
            'JOURNAL' => 'Unpublished (2003)'
          };
  ...

This is the current SeqFeature data chunk (again via Data::Dumper):

  $VAR1 = {
            'mol_type' => 'genomic DNA',
            'LOCATION' => '<1..>10001',
            'NAME' => 'FEATURES',
            'FEATURE_KEY' => 'source',
            'note' => 'Accession AL451081 sequenced by The Sanger Centre',
            'db_xref' => 'taxon:9606',
            'clone' => 'RP11-302I18',
            'organism' => 'Homo sapiens'
          };

=head1 FEEDBACK

=head2 Mailing Lists

User feedback is an integral part of the evolution of this and other
Bioperl modules. Send your comments and suggestions preferably to one
of the Bioperl mailing lists.  Your participation is much appreciated.

  bioperl-l@bioperl.org                  - General discussion
  http://bioperl.org/wiki/Mailing_lists  - About the mailing lists

=head2 Support

Please direct usage questions or support issues to the mailing list:

I<bioperl-l@bioperl.org>

rather than to the module maintainer directly. Many experienced and
reponsive experts will be able look at the problem and quickly
address it. Please include a thorough description of the problem
with code and data examples if at all possible.

=head2 Reporting Bugs

Report bugs to the Bioperl bug tracking system to help us keep track
the bugs and their resolution.  Bug reports can be submitted via the
web:

  https://redmine.open-bio.org/projects/bioperl/

=head1 AUTHOR - Chris Fields

Email cjfields at bioperl dot org

=head1 APPENDIX

The rest of the documentation details each of the object methods. Internal
methods are usually preceded with a _

=cut

# Let the code begin...

package Bio::SeqIO::Handler::GenericRichSeqHandler;
use strict;
use warnings;

use Bio::SeqIO::FTHelper;
use Bio::Annotation::Collection;
use Bio::Annotation::DBLink;
use Bio::Annotation::Comment;
use Bio::Annotation::Reference;
use Bio::Annotation::Collection;
use Bio::Annotation::SimpleValue;
use Bio::Annotation::TagTree;
use Bio::SeqFeature::Generic;
use Bio::Species;
use Bio::Taxon;
use Bio::DB::Taxonomy;
use Bio::Factory::FTLocationFactory;
use Data::Dumper;

use base qw(Bio::Root::Root Bio::HandlerBaseI);

my %HANDLERS = (
    'genbank'   => {
        'LOCUS'         => \&_genbank_locus,
        'DEFINITION'    => \&_generic_description,
        'ACCESSION'     => \&_generic_accession,
        'VERSION'       => \&_generic_version,
        'KEYWORDS'      => \&_generic_keywords,
        'DBSOURCE'      => \&_genbank_dbsource,
        'DBLINK'        => \&_genbank_dbsource,
        'SOURCE'        => \&_generic_species,
        'REFERENCE'     => \&_generic_reference,
        'COMMENT'       => \&_generic_comment,
        'FEATURES'      => \&_generic_seqfeatures,
        'BASE'          => \&noop,    # this is generated from scratch
        'ORIGIN'        => \&_generic_seq,
        # handles anything else (WGS, WGS_SCAFLD, CONTIG, PROJECT)
        '_DEFAULT_'     => \&_generic_simplevalue,
        },
    'embl'      => {
        'ID'            => \&_embl_id,
        'DT'            => \&_embl_date,
        'DR'            => \&_generic_dbsource,
        'SV'            => \&_generic_version,
        'RN'            => \&_generic_reference,
        'KW'            => \&_generic_keywords,
        'DE'            => \&_generic_description,
        'AC'            => \&_generic_accession,
        #'AH'            => \&noop, # TPA data not dealt with yet...
        #'AS'            => \&noop,
        'SQ'            => \&_generic_seq,
        'OS'            => \&_generic_species,
        'CC'            => \&_generic_comment,
        'FT'            => \&_generic_seqfeatures,
        # handles anything else (WGS, TPA, ANN...)
        '_DEFAULT_'     => \&_generic_simplevalue,
        },
    'swiss'     => {
        'ID'            => \&_swiss_id,
        'DT'            => \&_swiss_date,
        'GN'            => \&_swiss_genename,
        'DR'            => \&_generic_dbsource,
        'RN'            => \&_generic_reference,
        'KW'            => \&_generic_keywords,
        'DE'            => \&_generic_description,
        'AC'            => \&_generic_accession,
        'SQ'            => \&_generic_seq,
        'OS'            => \&_generic_species,
        'CC'            => \&_generic_comment,
        'FT'            => \&_generic_seqfeatures,
        # handles anything else, though I don't know what...
        '_DEFAULT_'     => \&_generic_simplevalue,
        },
    );

# can we do this generically?  Seems like a lot of trouble...
my %DBSOURCE = map {$_ => 1} qw(
    EchoBASE     IntAct    SWISS-2DPAGE    ECO2DBASE    ECOGENE    TIGRFAMs
    TIGR    GO    InterPro    Pfam    PROSITE    SGD    GermOnline
    HSSP    PhosSite    Ensembl    RGD    AGD    ArrayExpress    KEGG
    H-InvDB    HGNC    LinkHub    PANTHER    PRINTS    SMART    SMR
    MGI    MIM    RZPD-ProtExp    ProDom    MEROPS    TRANSFAC    Reactome
    UniGene    GlycoSuiteDB    PIRSF    HSC-2DPAGE    PHCI-2DPAGE
    PMMA-2DPAGE    Siena-2DPAGE    Rat-heart-2DPAGE    Aarhus/Ghent-2DPAGE
    Biocyc    MetaCyc    Biocyc:Metacyc    GenomeReviews    FlyBase
    TMHOBP    COMPLUYEAST-2DPAGE    OGP    DictyBase    HAMAP
    PhotoList    Gramene    WormBase    WormPep    Genew    ZFIN
    PeroxiBase    MaizeDB    TAIR    DrugBank    REBASE    HPA
    swissprot    GenBank    GenPept    REFSEQ    embl    PDB    UniProtKB);

my %NOPROCESS = map {$_ => 1} qw(DBSOURCE ORGANISM FEATURES);

our %VALID_ALPHABET = (
    'bp' => 'dna',
    'aa' => 'protein',
    'rc' => '' # rc = release candidate; file has no sequences
);

=head2 new

 Title   :  new
 Usage   :
 Function:
 Returns :
 Args    :  -format    Sequence format to be mapped for handler methods
            -builder   Bio::Seq::SeqBuilder object (normally defined in
                       SequenceStreamI object implementation constructor)
 Throws  :  On undefined '-format' sequence format parameter
 Note    :  Still under heavy development

=cut

sub new {
    my ($class, @args) = @_;
    my $self = $class->SUPER::new(@args);
    $self = {@args};
    bless $self,$class;
    my ($format, $builder) = $self->_rearrange([qw(FORMAT BUILDER)], @args);
    $self->throw("Must define sequence record format") if !$format;
    $self->format($format);
    $self->handler_methods();
    $builder  &&  $self->seqbuilder($builder);
    $self->location_factory();
    return $self;
}

=head1 L<Bio::HandlerBaseI> implementing methods

=head2 handler_methods

 Title   :  handler_methods
 Usage   :  $handler->handler_methods('GenBank')
            %handlers = $handler->handler_methods();
 Function:  Retrieve the handler methods used for the current format() in
            the handler.  This assumes the handler methods are already
            described in the HandlerI-implementing class.
 Returns :  a hash reference with the data type handled and the code ref
            associated with it.
 Args    :  [optional] String representing the sequence format.  If set here
            this will also set sequence_format()
 Throws  :  On unimplemented sequence format in %HANDLERS

=cut

sub handler_methods {
    my $self = shift;
    if (!($self->{'handlers'})) {
        $self->throw("No handlers defined for seqformat ",$self->format)
            unless exists $HANDLERS{$self->format};
        $self->{'handlers'} = $HANDLERS{$self->format};
    }
    return ($self->{'handlers'});
}

=head2 data_handler

 Title   :  data_handler
 Usage   :  $handler->data_handler($data)
 Function:  Centralized method which accepts all data chunks, then distributes
            to the appropriate methods for processing based on the chunk name
            from within the HandlerBaseI object.

            One can also use
 Returns :  None
 Args    :  an hash ref containing a data chunk.

=cut

sub data_handler {
    my ($self, $data) = @_;
    my $nm = $data->{NAME} || $self->throw("No name tag defined!");

    # this should handle data on the fly w/o caching; any caching should be
    # done in the driver!
    my $method = (exists $self->{'handlers'}->{$nm}) ? ($self->{'handlers'}->{$nm}) :
                (exists $self->{'handlers'}->{'_DEFAULT_'}) ? ($self->{'handlers'}->{'_DEFAULT_'}) :
                undef;
    if (!$method) {
        $self->debug("No handler defined for $nm\n");
        return;
    };
    $self->$method($data);
}

=head2 reset_parameters

 Title   :  reset_parameters
 Usage   :  $handler->reset_parameters()
 Function:  Resets the internal cache of data (normally object parameters for
            a builder or factory)
 Returns :  None
 Args    :  None

=cut

sub reset_parameters {
    my $self = shift;
    $self->{'_params'} = undef;
}

=head2 format

 Title   :  format
 Usage   :  $handler->format('GenBank')
 Function:  Get/Set the format for the report/record being parsed. This can be
            used to set handlers in classes which are capable of processing
            similar data chunks from multiple driver modules.
 Returns :  String with the sequence format
 Args    :  [optional] String with the sequence format
 Note    :  The format may be used to set the handlers (as in the
            current GenericRichSeqHandler implementation)

=cut

sub format {
    my $self = shift;
    return $self->{'_seqformat'} = lc shift if @_;
    return $self->{'_seqformat'};
}

=head2 get_params

 Title   :  get_params
 Usage   :  $handler->get_params('-species')
 Function:  Convenience method used to retrieve the specified
            parameters from the internal parameter cache
 Returns :  Hash ref containing parameters requested and data as
            key-value pairs.  Note that some parameter values may be
            objects, arrays, etc.
 Args    :  List (array) representing the parameters requested

=cut

sub get_params {
    my ($self, @ids) = @_;
    my %data;
    for my $id (@ids) {
        if (!index($id, '-')==0) {
            $id = '-'.$id ;
        }
        $data{$id} = $self->{'_params'}->{$id} if (exists $self->{'_params'}->{$id});
    }
    return \%data;
}

=head2 set_params

 Title   :  set_params
 Usage   :  $handler->set_param({'-species')
 Function:  Convenience method used to set specific parameters
 Returns :  None
 Args    :  Hash ref containing the data to be passed as key-value pairs

=cut

sub set_params {
    shift->throw('Not implemented yet!');
}

=head1 Methods unique to this implementation

=head2 seqbuilder

 Title   :  seqbuilder
 Usage   :
 Function:
 Returns :
 Args    :
 Throws  :
 Note    :

=cut

sub seqbuilder {
    my $self = shift;
    return $self->{'_seqbuilder'} = shift if @_;
    return $self->{'_seqbuilder'};
}

=head2 build_sequence

 Title   :  build_sequence
 Usage   :
 Function:
 Returns :
 Args    :
 Throws  :
 Note    :

=cut

sub build_sequence {
    my $self = shift;
    my $builder = $self->seqbuilder();
    my $seq;
    if (defined($self->{'_params'})) {
        $builder->add_slot_value(%{ $self->{'_params'} });
        $seq = $builder->make_object();
        $self->reset_parameters;
    }
    return $seq if $seq;
    return 0;
}

=head2 location_factory

 Title   :  location_factory
 Usage   :
 Function:
 Returns :
 Args    :
 Throws  :
 Note    :

=cut

sub location_factory {
    my ($self, $factory) = @_;
    if ($factory) {
        $self->throw("Must have a Bio::Factory::LocationFactoryI when ".
                     "explicitly setting factory()") unless
             (ref($factory) && $factory->isa('Bio::Factory::LocationFactoryI'));
        $self->{'_locfactory'} = $factory;
    } elsif (!defined($self->{'_locfactory'})) {
        $self->{'_locfactory'} = Bio::Factory::FTLocationFactory->new()
    }
    return $self->{'_locfactory'};
}

=head2 annotation_collection

 Title   :  annotation_collection
 Usage   :
 Function:
 Returns :
 Args    :
 Throws  :
 Note    :

=cut

sub annotation_collection {
    my ($self, $coll) = @_;
    if ($coll) {
        $self->throw("Must have Bio::AnnotationCollectionI ".
                     "when explicitly setting collection()")
            unless (ref($coll) && $coll->isa('Bio::AnnotationCollectionI'));
        $self->{'_params'}->{'-annotation'} = $coll;
    } elsif (!exists($self->{'_params'}->{'-annotation'})) {
        $self->{'_params'}->{'-annotation'} = Bio::Annotation::Collection->new()
    }
    return $self->{'_params'}->{'-annotation'};
}

####################### SEQUENCE HANDLERS #######################

# any sequence data
sub _generic_seq {
    my ($self, $data) = @_;
    $self->{'_params'}->{'-seq'} = $data->{DATA};
}

####################### RAW DATA HANDLERS #######################

# GenBank LOCUS line
sub _genbank_locus {
    my ($self, $data) = @_;
    my (@tokens) = split m{\s+}, $data->{DATA};
    my $display_id = shift @tokens;
    $self->{'_params'}->{'-display_id'} = $display_id;
    my $seqlength = shift @tokens;
    if (exists $VALID_ALPHABET{$seqlength}) {
        # moved one token too far.  No locus name?
        $self->warn("Bad LOCUS name?  Changing [".$self->{'_params'}->{'-display_id'}.
                    "] to 'unknown' and length to ".$self->{'_params'}->{'-display_id'});
        $self->{'_params'}->{'-length'} = $self->{'_params'}->{'-display_id'};
        $self->{'_params'}->{'-display_id'} = 'unknown';
        # add token back...
        unshift @tokens, $seqlength;
    } else {
    	$self->{'_params'}->{'-length'} = $seqlength;
    }
    my $alphabet = lc(shift @tokens);
    $self->{'_params'}->{'-alphabet'} =
        (exists $VALID_ALPHABET{$alphabet}) ? $VALID_ALPHABET{$alphabet} :
                           $self->warn("Unknown alphabet: $alphabet");
    if (($self->{'_params'}->{'-alphabet'} eq 'dna') || (@tokens > 2)) {
	    $self->{'_params'}->{'-molecule'} = shift(@tokens);
	    my $circ = shift(@tokens);
	    if ($circ eq 'circular') {
		$self->{'_params'}->{'-is_circular'} = 1;
		$self->{'_params'}->{'-division'} = shift(@tokens);
	    } else {
				# 'linear' or 'circular' may actually be omitted altogether
		$self->{'_params'}->{'-division'} =
		    (CORE::length($circ) == 3 ) ? $circ : shift(@tokens);
	    }
	} else {
	    $self->{'_params'}->{'-molecule'} = 'PRT' if($self->{'_params'}->{'-alphabet'} eq 'aa');
	    $self->{'_params'}->{'-division'} = shift(@tokens);
	}
    my $date = join(' ', @tokens);
    # maybe use Date::Time for dates?
    if($date && $date =~ s{\s*((\d{1,2})-(\w{3})-(\d{2,4})).*}{$1}) {

	    if( length($date) < 11 ) {
            # improperly formatted date
            # But we'll be nice and fix it for them
            my ($d,$m,$y) = ($2,$3,$4);
            if( length($d) == 1 ) {
                $d = "0$d";
            }
            # guess the century here
            if( length($y) == 2 ) {
                if( $y > 60 ) { # arbitrarily guess that '60' means 1960
                $y = "19$y";
                } else {
                $y = "20$y";
                }
                $self->warn("Date was malformed, guessing the century for $date to be $y\n");
            }
            $self->{'_params'}->{'-dates'} = [join('-',$d,$m,$y)];
	    } else {
            $self->{'_params'}->{'-dates'} = [$date];
	    }
	}
}

# EMBL ID line
sub _embl_id {
    my ($self, $data) = @_;
    my $alphabet;
    my ($name, $sv, $topology, $mol, $div);
    my $line = $data->{DATA};
    #$self->debug("$line\n");
    my ($idtype) = $line =~ tr/;/;/;
    if ( $idtype == 6) {   # New style headers contain exactly six semicolons.
    	# New style header (EMBL Release >= 87, after June 2006)
    	my $topology;
    	my $sv;

    	# ID   DQ299383; SV 1; linear; mRNA; STD; MAM; 431 BP.
		# This regexp comes from the new2old.pl conversion script, from EBI
    	if ($line =~ m/^(\w+);\s+SV (\d+); (\w+); ([^;]+); (\w{3}); (\w{3}); (\d+) \w{2}\./) {
            ($name, $sv, $topology, $mol, $div) = ($1, $2, $3, $4, $6);
        } else {
            $self->throw("Unrecognized EMBL ID line:[$line]");
        }
    	if (defined($sv)) {
            $self->{'_params'}->{'-seq_version'} = $sv;
            $self->{'_params'}->{'-version'} = $sv;
    	}

    	if ($topology eq "circular") {
            $self->{'_params'}->{'-is_circular'} = 1;
    	}

        if (defined $mol ) {
            if ($mol =~ /DNA/) {
                $alphabet='dna';
            }
            elsif ($mol =~ /RNA/) {
                $alphabet='rna';
            }
            elsif ($mol =~ /AA/) {
                $alphabet='protein';
            }
        }
    } elsif ($idtype) { # has internal ';'
    	# Old style header (EMBL Release < 87, before June 2006)
        if ($line =~ m{^(\S+)[^;]*;\s+(\S+)[^;]*;\s+(\S+)[^;]*;}) {
            ($name, $mol, $div) = ($1, $2, $3);
            #$self->debug("[$name][$mol][$div]");
        }

        if($mol) {
            if ( $mol =~ m{circular} ) {
                $self->{'_params'}->{'-is_circular'} = 1;
                $mol =~  s{circular }{};
            }
    	    if (defined $mol ) {
        		if ($mol =~ /DNA/) {
        		    $alphabet='dna';
        		}
        		elsif ($mol =~ /RNA/) {
        		    $alphabet='rna';
        		}
        		elsif ($mol =~ /AA/) {
        		    $alphabet='protein';
        		}
    	    }
    	}
    } else {
        $name = $data->{DATA};
    }
    unless( defined $name && length($name) ) {
        $name = "unknown_id";
    }
    $self->{'_params'}->{'-display_id'} = $name;
    $self->{'_params'}->{'-alphabet'} = $alphabet;
    $self->{'_params'}->{'-division'} = $div if $div;
    $self->{'_params'}->{'-molecule'} = $mol if $mol;
}

# UniProt/SwissProt ID line
sub _swiss_id {
    my ($self, $data) = @_;
    my ($name, $seq_div);
    if($data->{DATA} =~ m{^
                (\S+)           \s+     #  $1  entryname
                ([^\s;]+);      \s+     #  $2  DataClass
                (?:PRT;)?       \s+     #  Molecule Type (optional)
                [0-9]+[ ]AA     \.      #  Sequencelength (capture?)
                $
                }ox ) {
        ($name, $seq_div) = ($1, $2);
        $self->{'_params'}->{'-namespace'} =
          ($seq_div eq 'Reviewed'   || $seq_div eq 'STANDARD')     ? 'Swiss-Prot' :
          ($seq_div eq 'Unreviewed' || $seq_div eq 'PRELIMINARY')  ? 'TrEMBL'     :
           $seq_div;
        # we shouldn't be setting the division, but for now...
        my ($junk, $division) = split q(_), $name;
        $self->{'_params'}->{'-division'} = $division;
        $self->{'_params'}->{'-alphabet'} = 'protein';
        # this is important to have the id for display in e.g. FTHelper, otherwise
        # you won't know which entry caused an error
        $self->{'_params'}->{'-display_id'} = $name;
    } else {
        $self->throw("Unrecognized UniProt/SwissProt ID line:[".$data->{DATA}."]");
    }
}

# UniProt/SwissProt GN line
sub _swiss_genename {
    my ($self, $data) = @_;
    #$self->debug(Dumper($data));
    my $genename = $data->{DATA};
    my $gn;
    if ($genename) {
        my @stags;
        if ($genename =~ /\w=\w/) {
            # new format (e.g., Name=RCHY1; Synonyms=ZNF363, CHIMP)
            for my $n (split(m{\s+and\s+},$genename)) {
                my @genenames;
                for my $section (split(m{\s*;\s*},$n)) {
                    my ($tag, $rest) = split("=",$section);
                    $rest ||= '';
                    for my $val (split(m{\s*,\s*},$rest)) {
                        push @genenames, [$tag => $val];
                    }
                }
                push @stags, ['gene_name' => \@genenames];
            }
        } else {
            # old format
            for my $section (split(/ AND /, $genename)) {
                my @genenames;
                $section =~ s/[\(\)\.]//g;
                my @names = split(m{\s+OR\s+}, $section);
                push @genenames, ['Name' => shift @names];
                push @genenames, map {['Synonyms' => $_]} @names;
                push @stags, ['gene_name' => \@genenames]
            }
        } #use Data::Dumper; print Dumper $gn, $genename;# exit;
        my $gn = Bio::Annotation::TagTree->new(-tagname => 'gene_name',
                                               -value => ['gene_names' => \@stags]);
        $self->annotation_collection->add_Annotation('gene_name', $gn);
    }
}

# GenBank VERSION line
# old EMBL SV line (now obsolete)
# UniProt/SwissProt?
sub _generic_version {
    my ($self, $data) = @_;
    my ($acc,$gi) = split(' ',$data->{DATA});
    if($acc =~ m{^\w+\.(\d+)}xmso) {
        $self->{'_params'}->{'-version'} = $1;
        $self->{'_params'}->{'-seq_version'} = $1;
    }
    if($gi && (index($gi,"GI:") == 0)) {
        $self->{'_params'}->{'-primary_id'} = substr($gi,3);
    }
}

# EMBL DT lines
sub _embl_date {
    my ($self, $data) = @_;
    while ($data->{DATA} =~ m{(\S+)\s\((.*?)\)}g) {
        my ($date, $version) = ($1, $2);
        $date =~ tr{,}{}d; # remove comma if new version
        if ($version =~ m{\(Rel\.\s(\d+),\sCreated\)}xmso ) {
            my $release = Bio::Annotation::SimpleValue->new(
                            -tagname    => 'creation_release',
                            -value      => $1
                            );
            $self->annotation_collection->add_Annotation($release);
        } elsif ($version =~ m{\(Rel\.\s(\d+),\sLast\supdated,\sVersion\s(\d+)\)}xmso ) {
            my $release = Bio::Annotation::SimpleValue->new(
                            -tagname    => 'update_release',
                            -value      => $1
                            );
            $self->annotation_collection->add_Annotation($release);
            my $update = Bio::Annotation::SimpleValue->new(
                           -tagname    => 'update_version',
                           -value      => $2
                           );
            $self->annotation_collection->add_Annotation($update);
        }
        push @{ $self->{'_params'}->{'-dates'} }, $date;
    }
}

# UniProt/SwissProt DT lines
sub _swiss_date {
    my ($self, $data) = @_;
    # swissprot
    my @dls = split m{\n}, $data->{DATA};
    for my $dl (@dls) {
        my ($date, $version) = split(' ', $dl, 2);
        $date =~ tr{,}{}d; # remove comma if new version
        if ($version =~ m{\(Rel\. (\d+), Last sequence update\)} || # old
            $version =~ m{sequence version (\d+)\.}) { #new
        my $update = Bio::Annotation::SimpleValue->new(
                                    -tagname    => 'seq_update',
                                    -value      => $1
                                    );
        $self->annotation_collection->add_Annotation($update);
        } elsif ($version =~ m{\(Rel\. (\d+), Last annotation update\)} || #old
                 $version =~ m{entry version (\d+)\.}) { #new
            $self->{'_params'}->{'-version'} = $1;
            $self->{'_params'}->{'-seq_version'} = $1;
        }
        push @{ $self->{'_params'}->{'-dates'} }, $date;
    }
}

# GenBank KEYWORDS line
# EMBL KW line
# UniProt/SwissProt KW line
sub _generic_keywords {
    my ($self, $data) = @_;
    $data->{DATA} =~ s{\.$}{};
    my @kw = split m{\s*\;\s*}xo ,$data->{DATA};
    $self->{'_params'}->{'-keywords'} = \@kw;
}

# GenBank DEFINITION line
# EMBL DE line
# UniProt/SwissProt DE line
sub _generic_description {
    my ($self, $data) = @_;
    $self->{'_params'}->{'-desc'} = $data->{DATA};
}

# GenBank ACCESSION line
# EMBL AC line
# UniProt/SwissProt AC line
sub _generic_accession {
    my ($self, $data) = @_;
    my @accs = split m{[\s;]+}, $data->{DATA};
    $self->{'_params'}->{'-accession_number'} = shift @accs;
    $self->{'_params'}->{'-secondary_accessions'} = \@accs if @accs;
}

####################### SPECIES HANDLERS #######################

# uses Bio::Species
# GenBank SOURCE, ORGANISM lines
# EMBL O* lines
# UniProt/SwissProt O* lines
sub _generic_species {
    my ($self, $data) = @_;

    my $seqformat = $self->format;
    # if data is coming in from GenBank parser...
    if ($seqformat eq 'genbank' &&
        $data->{ORGANISM} =~ m{(.+?)\s(\S+;[^\n\.]+)}ox) {
        ($data->{ORGANISM}, $data->{CLASSIFICATION}) = ($1, $2);
    }

    # SwissProt stuff...
    # hybrid names in swissprot files are no longer valid per intergration into
    # UniProt. Files containing these have been split into separate entries, so
    # it is probably a good idea to update if one has these lingering around...

    my $taxid;
    if ($seqformat eq 'swiss') {
        if ($data->{DATA} =~ m{^([^,]+)}ox) {
            $data->{DATA} = $1;
        }
        if ($data->{CROSSREF} && $data->{CROSSREF} =~ m{NCBI_TaxID=(\d+)}) {
            $taxid = $1;
        }
    }

    my ($sl, $class, $sci_name) = ($data->{DATA},
                                   $data->{CLASSIFICATION},
                                   $data->{ORGANISM} || '');
    my ($organelle,$abbr_name, $common);
    my @class = reverse split m{\s*;\s*}, $class;
    # have to treat swiss different from everything else...
    if ($sl =~ m{^(mitochondrion|chloroplast|plastid)?   # GenBank format
                \s*(.*?)
                \s*(?: \( (.*?) \) )?\.?$
         }xmso ){
        ($organelle, $abbr_name, $common) = ($1, $2, $3); # optional
    } else {
        $abbr_name = $sl;	# nothing caught; this is a backup!
    }
    # there is no 'abbreviated name' for EMBL
    $sci_name = $abbr_name if $seqformat ne 'genbank';
    $organelle ||= '';
    $common ||= '';
    $sci_name || return;
    unshift @class, $sci_name;
    # no genus/species parsing here; moving to Bio::Taxon-based taxonomy
    my $make = Bio::Species->new();
    $make->scientific_name($sci_name);
    $make->classification(@class) if @class > 0;
    $common    && $make->common_name( $common );
    $abbr_name && $make->name('abbreviated', $abbr_name);
    $organelle && $make->organelle($organelle);
    $taxid     && $make->ncbi_taxid($taxid);
    $self->{'_params'}->{'-species'} = $make;
}

####################### ANNOTATION HANDLERS #######################

# GenBank DBSOURCE line
sub _genbank_dbsource {
    my ($self, $data) = @_;
    my $dbsource = $data->{DATA};
    my $annotation = $self->annotation_collection;
    # deal with swissprot dbsources
    # we could possibly parcel these out to subhandlers...
    if( $dbsource =~ s/(UniProt(?:KB)|swissprot):\s+locus\s+(\S+)\,.+\n// ) {
        $annotation->add_Annotation
            ('dblink',
             Bio::Annotation::DBLink->new
             (-primary_id => $2,
              -database => $1,
              -tagname => 'dblink'));
        if( $dbsource =~ s/\s*created:\s+([^\.]+)\.\n// ) {
            $annotation->add_Annotation
            ('swissprot_dates',
             Bio::Annotation::SimpleValue->new
             (-tagname => 'date_created',
              -value => $1));
        }
        while( $dbsource =~ s/\s*(sequence|annotation)\s+updated:\s+([^\.]+)\.\n//g ) {
            $annotation->add_Annotation
            ('swissprot_dates',
             Bio::Annotation::SimpleValue->new
             (-tagname => 'date_updated',
              -value => $1));
        }
        $dbsource =~ s/\n/ /g;
        if( $dbsource =~ s/\s*xrefs:\s+((?:\S+,\s+)+\S+)\s+xrefs/xrefs/ ) {
            # will use $i to determine even or odd
            # for swissprot the accessions are paired
            my $i = 0;
            for my $dbsrc ( split(/,\s+/,$1) ) {
                if( $dbsrc =~ /(\S+)\.(\d+)/ || $dbsrc =~ /(\S+)/ ) {
                    my ($id,$version) = ($1,$2);
                    $version ='' unless defined $version;
                    my $db;
                    if( $id =~ /^\d\S{3}/) {
                        $db = 'PDB';
                    } else {
                        $db = ($i++ % 2 ) ? 'GenPept' : 'GenBank';
                    }
                    $annotation->add_Annotation
                    ('dblink',
                     Bio::Annotation::DBLink->new
                     (-primary_id => $id,
                      -version => $version,
                      -database => $db,
                      -tagname => 'dblink'));
                }
            }
        } elsif( $dbsource =~ s/\s*xrefs:\s+(.+)\s+xrefs/xrefs/i ) {
            # download screwed up and ncbi didn't put acc in for gi numbers
            my $i = 0;
            for my $id ( split(/\,\s+/,$1) ) {
            my ($acc,$db);
            if( $id =~ /gi:\s+(\d+)/ ) {
                $acc= $1;
                $db = ($i++ % 2 ) ? 'GenPept' : 'GenBank';
            } elsif( $id =~ /pdb\s+accession\s+(\S+)/ ) {
                $acc= $1;
                $db = 'PDB';
            } else {
                $acc= $id;
                $db = '';
            }
            $annotation->add_Annotation
                ('dblink',
                 Bio::Annotation::DBLink->new
                 (-primary_id => $acc,
                  -database => $db,
                  -tagname => 'dblink'));
            }
        } else {
            $self->warn("Cannot match $dbsource\n");
        }
        if( $dbsource =~ s/xrefs\s+\(non\-sequence\s+databases\):\s+
            ((?:\S+,\s+)+\S+)//x ) {
            for my $id ( split(/\,\s+/,$1) ) {
                my $db;
                # this is because GenBank dropped the spaces!!!
                # I'm sure we're not going to get this right
                ##if( $id =~ s/^://i ) {
                ##    $db = $1;
                ##}
                $db = substr($id,0,index($id,':'));
                if (! exists $DBSOURCE{ $db }) {
                    $db = '';   # do we want 'GenBank' here?
                }
                $id = substr($id,index($id,':')+1);
                $annotation->add_Annotation
                    ('dblink',Bio::Annotation::DBLink->new
                     (-primary_id => $id,
                      -database => $db,
                      -tagname => 'dblink'));
            }
        }
    } else {
        if( $dbsource =~ /^(\S*?):?\s*accession\s+(\S+)\.(\d+)/ ) {
            my ($db,$id,$version) = ($1,$2,$3);
            $annotation->add_Annotation
            ('dblink',
             Bio::Annotation::DBLink->new
             (-primary_id => $id,
              -version => $version,
              -database => $db || 'GenBank',
              -tagname => 'dblink'));
        } elsif ( $dbsource =~ /(\S+)([\.:])(\d+)/ ) {
            my ($id, $db, $version);
            if ($2 eq ':') {
                ($db, $id) = ($1, $3);
            } else {
                ($db, $id, $version) = ('GenBank', $1, $3);
            }
            $annotation->add_Annotation('dblink',
                Bio::Annotation::DBLink->new(
                    -primary_id => $id,
                    -version => $version,
                    -database => $db,
                    -tagname => 'dblink')
                );
        } else {
            $self->warn("Unrecognized DBSOURCE data: $dbsource\n");
        }
    }
}

# EMBL DR lines
# UniProt/SwissProt DR lines
sub _generic_dbsource {
    my ($self, $data) = @_;
    #$self->debug(Dumper($data));
    while ($data->{DATA} =~ m{([^\n]+)}og) {
        my $dblink = $1;
        $dblink =~ s{\.$}{};
        my $link;
        my @linkdata = split '; ',$dblink;
        if ( $dblink =~ m{([^\s;]+);\s*([^\s;]+);?\s*([^\s;]+)?}) {
        #if ( $dblink =~ m{([^\s;]+);\s*([^\s;]+);?\s*([^\s;]+)?}) {
            my ($databse, $prim_id, $sec_id) = ($1,$2,$3);
            $link = Bio::Annotation::DBLink->new(-database    => $databse,
                                -primary_id  => $prim_id,
                                -optional_id => $sec_id);
        } else {
            $self->warn("No match for $dblink");
        }
        $self->annotation_collection->add_Annotation('dblink', $link);
    }
}

# GenBank REFERENCE and related lines
# EMBL R* lines
# UniProt/SwissProt R* lines
sub _generic_reference {
    my ($self, $data) = @_;
    my $seqformat = $self->format;
    my ($start, $end);
    # get these in EMBL/Swiss
    if ($data->{CROSSREF}) {
        while ($data->{CROSSREF} =~ m{(pubmed|doi|medline)(?:=|;\s+)(\S+)}oig) {
            my ($db, $ref) = (uc $1, $2);
            $ref =~ s{[;.]+$}{};
            $data->{$db} = $ref;
        }
    }
    # run some cleanup for swissprot
    if ($seqformat eq 'swiss') {
        for my $val (values %{ $data }) {
            $val =~ s{;$}{};
            $val =~ s{(\w-)\s}{$1};
        }
    }
    if ( $data->{POSITION} ) {
        if ($seqformat eq 'embl') {
            ($start, $end) = split '-', $data->{POSITION},2;
        } elsif ($data->{POSITION} =~ m{.+? OF (\d+)-(\d+).*}) { #swiss
            ($start, $end) = ($1, $2);
        }
    }
    if ($data->{DATA} =~ m{^\d+\s+\([a-z]+\s+(\d+)\s+to\s+(\d+)\)}xmso) {
        ($start, $end) = ($1, $2);
    }
    my $ref = Bio::Annotation::Reference->new(
                    -comment    => $data->{REMARK},
                    -location   => $data->{JOURNAL},
                    -pubmed     => $data->{PUBMED},
                    -consortium => $data->{CONSRTM},
                    -title      => $data->{TITLE},
                    -authors    => $data->{AUTHORS},
                    -medline    => $data->{MEDLINE},
                    -doi        => $data->{DOI},
                    -rp         => $data->{POSITION}, # JIC...
                    -start      => $start,
                    -end        => $end,
                    );
    if ($data->{DATA} =~  m{^\d+\s+\((.*)\)}xmso) {
	      $ref->gb_reference($1);
	}
    $self->annotation_collection->add_Annotation('reference', $ref);
}

# GenBank COMMENT lines
# EMBL CC lines
# UniProt/SwissProt CC lines
sub _generic_comment {
    my ($self, $data) = @_;
    $self->annotation_collection->add_Annotation('comment',
        Bio::Annotation::Comment->new( -text => $data->{DATA} ));
}

####################### SEQFEATURE HANDLER #######################

# GenBank Feature Table
sub _generic_seqfeatures {
    my ($self, $data) = @_;
    return if $data->{FEATURE_KEY} eq 'FEATURES';
    my $primary_tag = $data->{FEATURE_KEY};

    # grab the NCBI taxon ID from the source SF
    if ($primary_tag eq 'source' && exists $data->{'db_xref'}) {
        if ( $self->{'_params'}->{'-species'} &&
            $data->{'db_xref'} =~ m{taxon:(\d+)}xmso ) {
            $self->{'_params'}->{'-species'}->ncbi_taxid($1);
        }
    }
    my $source = $self->format;

    my $seqid = ${ $self->get_params('accession_number')  }{'accession_number'};

    my $loc;
    eval {
        $loc = $self->{'_locfactory'}->from_string($data->{'LOCATION'});
    };
    if(! $loc) {
        $self->warn("exception while parsing location line [" .
                    $data->{'LOCATION'} .
                    "] in reading $source, ignoring feature " .
                    $data->{'primary_tag'}.
                    " (seqid=" . $seqid . "): " . $@);
        return;
    }
    if($seqid && (! $loc->is_remote())) {
        $loc->seq_id($seqid); # propagates if it is a split location
    }
    my $sf = Bio::SeqFeature::Generic->direct_new();
    $sf->location($loc);
    $sf->primary_tag($primary_tag);
    $sf->seq_id($seqid);
    $sf->source_tag($source);
    delete $data->{'FEATURE_KEY'};
    delete $data->{'LOCATION'};
    delete $data->{'NAME'};
    delete $data->{'DATA'};
    $sf->set_attributes(-tag => $data);
    push @{ $self->{'_params'}->{'-features'} }, $sf;
}

####################### ODDS AND ENDS #######################

# Those things that don't fit anywhere else.  If a specific name
# maps to the below table, that class and method are used, otherwise
# it goes into a SimpleValue (I think this is a good argument for why
# we need a generic mechanism for storing annotation)

sub _generic_simplevalue {
    my ($self, $data) = @_;
    $self->annotation_collection->add_Annotation(
        Bio::Annotation::SimpleValue->new(-tagname => lc($data->{NAME}),
       -value => $data->{DATA})
        );
}

sub noop {}

sub _debug {
    my ($self, $data) = @_;
    $self->debug(Dumper($data));
}

1;

redpajama_set_name: RedPajamaGithub


text:
package com.my.blog.website.utils.backup;

import java.util.ArrayList;

public class TableCollection extends ArrayList<Table> {

	/**
	 *
	 */
	private static final long serialVersionUID = -5824322959198795936L;

	/**
	 * Sort tables according to constraints
	 */
	public void sort(){
		for(int i = 0 ; i < size(); ){
			boolean corrupted = false;
			for(int j = i + 1; j < size(); j++){
				if(get(i).isReferenced(get(j))){
					Table table = get(i);
					remove(table);
					add(table);
					corrupted = true;
					break;
				}
			}
			if(!corrupted){
				i++;
			}
		}
	}
}


All new this Sunday, Poldark's upcoming episode 2×08 has new promotional pictures that you can see below!
As always, this episode of Poldark has no title and it will air on Sunday, October 23rd on BBC One.
We have several images starring the married couple of Ross and Demelza (Eleanor Tomlinson), although any of them seem very happy, as well as we can see Ross defending himself in a trial (again!).
Meanwhile, there are also photos of Aunt Agatha (Caroline Blakiston) and Elizabeht both shocked about something that we do not what it is… yet! You can read the episode's synopsis below to know more on what's gonna happen!
Make sure to see all our news, photos in HQ and more about Poldark by clicking over here!
Plot summary – Ross (Aidan Turner) and Dwight (Luke Norris) stand trial for their part in the smuggling. A new tin lode gives Ross renewed hope in Wheal Grace, but it is George (Jack Farthing) who is there for Elizabeth (Heida Reed) when her mother falls ill and deals Ross a bitter blow. Original airdate October 23rd, 2016.


Can anybody advise what paint is best for epoxy resin (epoxy paint I guess!). I have a small wooden and epoxy glass fiber auxiliary bracket which I coated in resin to seal but would like to make it look a bit better. It's only small so I reluctant to get a standard tin of paint. A tester pot would do it.
Was it definitely epoxy you used? If it was a fibreglass resin kit that will very likely be polyester which is a different thing.
If it was epoxy then a good key is required then epoxy paint of your choice.
thanks for the info guys. The resin I used is definitely epoxy as I chose it for adhesion to wood. I'll look for some epoxy paint but struggling to get a small enough tin. It isn't worth £50 to me for the bracket to be prettier.


text:
Vaddadi Subbarayudu (1854 – 1938) was a popular Indian Telugu writer and translator. His writing had widespread appeal.

Early life
Subbarayudu was born on 30 July 1860 to a poor Brahmin family in the East Godavari district of India. His father, Suraparaju, was a scholar, poet and teacher. He had no formal schooling but was taught by his relatives.

He began reciting poetry in 1868 at the age of 14.

Career
He translated the bhajagovindam from Sanskrit. In 1874, he translated labdanasana tantra from Sanskrit and named it nyayadarpanam.

He taught Telugu at Innispet High School in Rajahmundry for 10 years.  In 1888, he joined the Government School (later Government Arts College) as a Telugu lecturer.

In 1887, as part of Queen Victoria's Golden Jubilee celebrations, while India was still a British colony, Subbarayudu recited his work alongside other popular poets including Kandukuri Veeresalingam and Vavilala Vasudeva Sastry in Rajahmundry.

Books
 Nandanandana Satakam (1878)
 Sumanognam (1879)
 Venisamharam (1893)
 Vikramorvaseeyam (1889)
 Prabodha Chandrodayam (1893)
 Chandakousikam (1900)
 Suktivasu Prakasika (1882)
 Bhaktachintamani Satakam.
 Meghasndesam (1884)
 Surya Satakam (1888)
 Vaijayanti Bhamini Vilasam (1894)
 Mallika Maruta Prakaranam (1903)
 Satismriti (1896)
 Abhijnyana Sakuntalam (1907)
 Sutasmriti(1907)
 Nrisimhasthavam (1900)
 Viswaroopasthavam (1915)
 Vasurayachatu Prabandham (1925)
 Andhra Kundamala
 Artha Rakshamani

Honours
He was honored with "sukti sudhanidhi" and "kavisekhara" titles.

References

1854 births
1938 deaths
Telugu writers
Telugu poets
People from East Godavari district
Poets from Andhra Pradesh
19th-century Indian poets
20th-century Indian poets

redpajama_set_name: RedPajamaWikipedia


The use of mentoring for staff development is well established within schools and the business sector, yet it has received limited consideration in the higher education literature as an approach to supporting learning for academics. In this study located at one metropolitan university in Australia, an online questionnaire and one-on-one semi-structured interviews were used to explore academics' experiences of mentoring, with a view to understanding the broader benefits mentoring might offer to the academic community. Findings from the study highlight that in an era where change is pervasive tertiary education providers should consider implementing mentoring as a valuable approach for supporting the work of academics. The academics in this research explained that through mentoring, they learnt how to build professional relationships and friendships; it helped them develop a sense of personal satisfaction; acted as a catalyst for career and leadership enhancement; expanded understandings of teaching and research and as a consequence of engaging in self-reflection it opened up new ways of thinking about their work.


I found out about Brain Gym years ago. It's been around since the 80s. Brain Gym exercises were developed by The Educational Kinesiology Foundation and have become well known. This little orange book has all the exercises inside. The teacher's edition has deeper explanations of how each exercise can help in the classroom. I have both books, and have used them for years!
The Brain Gym exercises are designed to activate the brain for learning. There are "crossing the midline" exercises such as Cross Crawl, Lazy 8s, and the Elephant. There are lengthening exercises such as the Owl and the Footflex. Then, there are Energy exercises such as Sipping Water, Brain Buttons, the Thinking Cap and Hook Ups. The children love these exercises, and ask for them during the day. They make great warm ups before lessons, and are great brain breaks when those little ones (or big ones) can't sit still any longer!
Wondering about all these activities? There are videos and explanations all over the internet, just google it!
Here's a video with a few of the exercises.


For there to be a heresy about the cross, there would have to be an orthodoxy about it. Unlike the case with Nicene specifications of christological and trinitarian doctrine, such an orthodoxy is not readily at hand in early Christian tradition or in many Christian traditions since. Early Christians pointed to Jesus, and particularly to his death and resurrection, as the hinge of history and salvation, but they did so with celebration more than with explanation. They may have agreed that Jesus was the messianic anointed One, and they saw no resulting need to edit the wide range of other roles: Teacher, Redeemer, New Adam, Healer, Liberator, Lamb.
Arguments over various atonement theories—moral influence, penal substitution, victory over the powers—are understandable, given this open space. Depending upon who's counting, there may be three, five, eight, or ten atonement theories. But the different views are rarely strict alternatives. Jesus' crucifixion need not be any less a moral influence for being also a victory over death. Recapitulation does not rule out reconciliation; nor does sacrifice preclude ransom. The lack of dogmatic foreclosure encourages a cumulative approach.
Michael Gorman argues that contentions over a single definitive answer to how Jesus' death saves lead to an inadequate grasp of what the passion of Christ means and does. Whichever fragment of the truth wins the argument emerges with an impoverished vision of the gospel: forgiveness but not liberation, say. As a result, the passion comes across as less momentous than it is, and the Christian life as less comprehensive than it should be.
No theory has been named for the foundations all the theories share. Gorman is in search of an encompassing model that integrates the others. As a biblical scholar, he finds the common ground for such a model in the notion that Jesus' death is the birth of the new covenant, that multifaceted eschatological realm of shalom—community and peace. This new covenant is what the cross establishes and the church participates in. Its definition draws on the whole range of biblical tradition, and its realization in Christ is played out in various keys across the breadth of New Testament witness. This model may be the oldest and deepest, but at the same time it is the most invisible, having no name of its own.
In Mark, Matthew, and Luke, covenant is the category Jesus uses at the Last Supper to refer to his death. That emphasis is central in the tradition on the Lord's Supper that Paul received and passed on in 1 Corinthians 11. The covenant is a reality that already has a kaleidoscopic range of features to match the church's many images of the cross. It is a match made in heaven and reflected in scripture.
Gorman points out that each of Jesus' three passion predictions in the synoptic Gospels has the quality of a summons. Each prefigures Jesus' death, is met with misunderstanding or resistance by the disciples, and ends in a prescription for the life of discipleship.
In Mark 8:27–38, Peter's confession that Jesus is the Christ is met with the teaching that Jesus will suffer and be killed, followed by an instruction to those who would follow him: that they must take up their crosses and acknowledge him and his words without shame. Gorman titles this a call to cruciform witness.
In Mark 9:30–37, a second passion prediction occasions a dispute among the disciples about who is the greatest among them. It ends with Jesus teaching that those who position themselves last shall be first. He places a child before them and says that he will welcome all those who treat such a one with the same honor as himself. Gorman names this a call to cruciform hospitality to the weak.
In Mark 10:32–45, a third prediction of the cross is followed by another dispute among the disciples about who will have power in the new realm. It ends with Jesus' teaching that what it means to be last is to devote oneself to the service of others. He equates this directly with the Son of Man coming to give his life as a "ransom for many." This is a call to cruciform power as loving service. The cross is the source but also the shape of salvation, the life that conforms to these calls.
Gorman's book is a refreshing reminder not to miss the forest for the trees. His light but learned touch covers an impressive range, going far to overcome the myopia of the atonement wars. Much that is familiar and much that is not springs into focus in his treatment of covenant. He is sensitive to the supersessionist tendencies that lurk in an emphasis on the new covenant, and he draws out its continuities with Jewish sources and Jewish hope.
Gorman has no desire to supplant atonement theories but seeks only to keep them in perspective. This is well, because his book in many ways sharpens the appetite for them. He repeatedly says that Jesus' death brought about the reality of the new covenant, and the more expansive his description of the covenant created by this single event, the more one wonders how that event works.
I appreciate what Gorman has accomplished and his gracious intent to integrate rather than displace. My hesitation is that I am not sure whether his theological umbrella is large enough. He acknowledges that early Christian theologians tended to use incarnation rather than covenant as their overarching model for understanding Jesus' death: God became as we are in order that we might become as God is and desires us to be. That is both the what and the how of salvation. Jesus' death stands out no less dramatically in that model—as the point where God has become most improbably and miraculously one with us—but it stands less alone alongside the entire incarnate path from Jesus' birth, through his teaching and relationships, and on to his trial and subsequent events.
Equating salvation with the new covenant, and the new covenant's institution with Jesus' death, means that everything about salvation is forced into the shape of the cross: cruciform is Gorman's adjective modifying all the nouns of salvation. It seems that because of this, each reader's chosen atonement theory would—by defining that shape—end up ruling the day after all, which is not Gorman's intent. Gorman has gone out of his way to show how all facets of the cross can relate to most facets of the covenant, but I would lean on the reminder that covenant and incarnation are both broader than the cross.
Particularly in our times, we need to put Jesus' death in the frames of both the covenant, with its stress on salvation history particularity, and the incarnation, and its identification with the human condition. Jesus did say, "This is the blood of the new covenant." Mary could have said the same thing of her own blood at his birth. Christ effectively demonstrated that his teaching, his healing, and his fellowship with the lost are likewise "acts of the new covenant" that have their part in establishing it.
The cross may be integral to salvation. But salvation does not always need to look like the cross.


Continuing on from Tuesday's post, I thought I would continue on with some more photos of our outdoor Orkney escapades. We spent a lot of time walking, mostly on sandy beaches, windbeaten coastal paths, or in the quaint small towns of Stromness and Kirkwall.
You might think this picture above is an alleyway – no, it's the main street in Stromness. You can get one car down here and a pedestrian either side (if you're lucky!) and the shops were further down here. Kirkwall was similar. It was a shock to the system coming back to Inverness and it's dual carriageways and roundabouts after spending almost two weeks in a place where the biggest towns were like this. I liked it a lot!
The first walk we did to explore outdoor Orkney was around the stunning Yesnaby cliffs on the western side of mainland Orkney. Despite being a bit of a cloudy/drizzly afternoon, I'm actually quite pleased with my photos! All of the cliffs had amazing rock faces with different colours that have come out well in this photo below.
The waves were spectacular and I spent ages trying to get a decent shot!
Our walk at the Tomb of the Eagles took us past this sign and along to a whole beach where there were lots of new seal pups!
When we did another walk the following walk on South Ronaldsay, we found even more! And at another beach on South Ronaldsay, we caught the last light of the day for me to snap some candid shots of Mr B and a nice broch at the shore. Our favourite beach walk was at Scapa – it was only a couple of minutes drive from Kirkwall and we caught sight of the distillery there too from the sandy shore. It seemed a very popular place with dog-walkers!
We also found some lovely places for lunch/coffee. One such place was the Birsay Bay Tea Room which was a finalist in the 2016 Scottish Baking Awards, We had a lovely warming lunch there as well as sampling their sweet home bakes – it's gotta be done in the name of research!
We also picked up some pieces of Orkney to take home which included homegrown Birsay tomatoes, and some knitwear which kept my hands and head warm over the course of our holiday!


text:
#ifndef _IA_LOGGER_HPP_
#define _IA_LOGGER_HPP_

/**
 * @file
 * @brief IronAutomata --- Logger
 *
 * General purpose logger callback.
 *
 * @sa logger_t
 *
 * @author Christopher Alfeld <calfeld@qualys.com>
 */

#include <boost/function.hpp>

#include <iostream>
#include <string>

namespace IronAutomata {

/**
 * Log message type.
 */
enum log_message_t
{
    /**
     * Informative message.
     *
     * Info messages provide information and are not indicative of any
     * problem.
     */
    IA_LOG_INFO,

    /**
     * Warning message.
     *
     * Warning messages indicate a problem but do not result in inconsistent
     * data, i.e., are recoverable.  However, it is likely that the result of
     * the operation that generated the warning is not what was desired.
     */
    IA_LOG_WARN,

    /**
     * Error message.
     *
     * Error messages indicate problems that will either leave the result in
     * an inconsistent state or one that is minimally useful.  Error messages
     * may or may not abort execution.  Generally, execution continues if it
     * is possible for further meaningful error messages to be generated.  If
     * you want to ensure stopping at the first error message, throw an
     * exception in the logger.
     */
    IA_LOG_ERROR
};

/**
 * Logger callback.
 *
 * Various IronAutomata functions take a logger callback to deliver log
 * messages.  The callback is called with a message type (see log_message_t
 * for type descriptions), a description of where (possibly empty), and a
 * message.
 */
typedef boost::function<
    void(
        log_message_t,
        const std::string&,
        const std::string&
    )
> logger_t;

/**
 * NOP Logger.  Discards all messages.
 *
 * This is the default logger and simply discards messages.
 */
void nop_logger(
    log_message_t message_type,
    const std::string& where,
    const std::string& what
);

/**
 * Ostream Logger.  Log messages to an ostream.
 *
 * This formats messages as strings and writes them to the specified ostream.
 */
class ostream_logger
{
public:
    /**
     * Constructor.
     *
     * @param[in] out Stream to write to.
     */
    explicit
    ostream_logger(std::ostream& out);

    /**
     * Call operator.
     *
     * Format message as string and write to ostream.  Messages will be
     * terminated with new lines.
     *
     * @param[in] message_type Message type.
     * @param[in] where        Where event occurred; may be empty.
     * @param[in] what         What occurred.
     */
    void operator()(
        log_message_t message_type,
        const std::string& where,
        const std::string& what
    );

private:
    std::ostream& m_out;
};

} // IronAutomata

#endif


When a storm strikes your region, the tragedy impacts the entire community. You may have debris in your home and the structure itself might be compromised by fallen trees or other unfortunate circumstances. No matter what, one of the first things you need to do after tending to your family is to begin planning your storm damage repair.
Although you might be tempted to handle the problem on your own, that poses a number of problems. The debris and water that has entered your home could be contaminated with chemical and biological agents. Depending on the severity of the storm and what has seeped into the water, you and your household are at risk for illness if you enter before the building has been appropriately secured.
It is important that you find a reliable storm damage repair team to help with your cleanup and repair tasks. Look for a local company that can send out their technicians quickly to begin the clean up process. You will want to take a few minutes to look up their business and reputation on the web, to ensure that they are a legitimate company. Do not use "storm chasing companies", those that come from outside your area looking to benefit from those who have been affected. Doing so will provide you the peace of mind you deserve that you are working with an experienced company.
We are proud to offer our services in order to help families recover after a storm. The sooner you can get your home livable again, the faster you and your loved ones can recover from the event.
Violent storms can leave a host of problems in their aftermath. Getting professional help to restore your home to a safe environment should be one of your top priorities for yourself and the other members of your household.
Give Legacy Restore a call for all your restoration needs. We're here to help when you need us.
After flooding has receded it is extremely important that you work at returning your home to its original condition. The problem with flood damage is that it is often accompanied by a musty odor. It's possible to correct this and get your home smelling clean and fresh again by obtaining advanced antimicrobial and antibacterial treatments from Legacy Restore.
Legacy Restore has many years of experience providing support to owners for their flood damaged properties and helping to restore them. One of the best follow-up services to our removal and restoration process is ideal for removing the smell of dampness, musty, mildew and bacteria from your home.
It can be easy to tell if a home has been water damaged, since the smell often continues to linger long after the water has been dried. However, homes that have been subjected to flooding often have to deal with mold and dampness for many years afterwards unless immediate intervention takes place. With our sanitizing and disinfecting treatments we can work on making your property smell and feel new again.
We have helped hundreds of homes recover from serious water main breaks, flooding, water heater leaks and more. After completing all water removal, restoration and sanitation services a home can nearly look brand-new again. The best part about our odor removal and sanitation processes is that it can be bundled together with other restoration services and coverage for insurance. This is just another step that Legacy Restore takes to bring your property back to its normal again!
If you are tired of nagging odors in your home as a result of dampness, or you would like to use this service to head off any of the potential smells and harmful bacteria that could grow in your home after a flood, contact us today.
We are happy to set up a time for one of our highly trained water detection technicians to come out for a complementary investigation at a time that will work best for your own individual situation.
In the event of a serious flood, clean up efforts need to begin as soon as possible to minimize the damage to your possessions and property. Our staff at Legacy Restore is on call and ready to assist with your disaster restoration needs. Our team of experts can handle both small and large-scale cleanups.
Whatever the cause, we can help you recover your home or business from any type of serious damage.
As soon as it is safe to re-enter the dwelling, you should begin by surveying the damage, taking pictures to forward to your insurance agent when you begin the claims process. Cleanup should begin promptly by removing all water from carpets, padding, rugs and upholstery to avoid mold growth. Legacy Restore has the tools and the training to provide excellent flood restoration service. Depending on the scale of the damage, we have our high-powered vacuums, demolition tools, dumpsters and trucks available to get rid of all the extra waste.
Our staff will work with your insurance to provide options available to suit any budget. If you need to recover your property from a serious flood, we are the experts to get the job done right. With our proven system for eliminating mold and waste from a premises, we can get your life back on track quickly.
Our industrial-strength water vacuums can help you to recover from any size disaster. Through our drying, restoration and odor removal methods, you can get your property back to normal even after the most serious flood damage has taken place.
Contact our staff today if you are looking for the very best flood restoration service and solutions. Legacy Restore has over a decade of experience working in this specific area along with the professional tools to get the job done with confidence and guaranteed results.
Our flood restoration experts can provide you with a full service water removal, restoration and sanitation support to improve your property for the future. A service that we offer to prevent future mold, water damage and odors comes in the form of de-humidification and drying.
Humidity is a factor that many residents face. Whether you have to regularly deal with foggy windows, mold or other factors, humidity can often cause odors and damage throughout your home. With our process we can help you deal with regular day-to-day humidity as well as the humidity that sets in after a serious flood.
Once a home or property has been flooded, it often leads to lingering indoor humidity which can cause serious side effects like mold, odors and bacteria growth. Preventing these serious side effects is absolutely required as a humid home can lead to serious damages for a property owner. With the help of our water drying process we can improve the indoor condition of your home as well as prevent bacteria from growing and detracting from your property value. Our advanced water removal process is proven effective even for very large homes and businesses. We have the staff and we have the resources to recover from nearly any size disaster.
With our help, we can normalize the indoor condition of your property, dry up residual water as well as pair this with some of our other services like sanitizing and restoration. As a leader in water restoration projects, Legacy Restore is a team of experts that are capable of delivering results for home and property owners.
Contact our staff today to learn more about our professional services and how we can help you with your water/humidity problems.
In an emergency, people look for help from those around them. Someone to come to their aid and get them back on their feet. Anyone who has experienced flooding, storm damage, or faulty appliances and plumbing has had that feeling of desperation and the need to get it resolved quickly. Legacy Restore is here for you 24/7 for any emergency restoration services. When combined with our other services, we can perform full repair services for any room in your home and business.
To eliminate structural damage, mold growth and other concerns in a home afflicted with water damage, our team of professionals will come to your property and assess the type of repair needed to minimize cost and your recovery period.
Our crews come fully equipped with all of the tools we need to perform your emergency water cleanup including removal of any remaining standing water, affected drywall, furniture and any other water damaged items. This is essential to prevent mold and future structural damage to your property. With our quick response, we can save you extra repair costs as well as preserve the value of your home or business. Mold can grow quickly in the right environment, so it is imperative to have an experienced technician begin the clean-up process as soon as possible to avoid mildew and mold exposure to your family and pets.
Another important step in your recovery is to contact your insurance provider as soon as possible to alert them to the situation and begin a claim. We are more than happy to work with them directly to help expedite your claims process. With a wide variety of services offered and our always on call repair professional experts, we will get the job done quickly so that your life can get back to normal. Legacy Restore is always on call for you!


text:
Paull Hotels
Hotels in Paull, United Kingdom
Search & Compare Paull Hotels
Map of Paull hotels
Best hotels in Paull
What's Paull Like?
If you're looking to discover somewhere new, look no further than Paull. Whether you're planning to stay for a night or for the week, the area around Paull has accommodations to fit every need. Search for hotels in Paull with Hotels.com by checking our online map. Our map displays the areas and neighborhoods around all Paull hotels so you can see how close you are from landmarks and attractions, and then refine your search within the larger area. The best Paull hotel deals are here with our lowest price guarantee.
Where are the Best Places to Stay in Paull?
Below are the number of accommodations by star rating in Paull and the surrounding area:
• 3 2-star accommodations from USD 42 per night
How to Get to Paull
Flights to Paull
• Hull (HUY-Humberside), 10.5 mi (17 km) from central Paull
Things to See and Do in Paull
Things to See near Paull:
• Hull Marina (4.6 mi/7.4 km from the city center)
• University of Hull (6.6 mi/10.6 km from the city center)
• Hull Ice Arena (4.8 mi/7.7 km from the city center)
• Bonus Arena (4.8 mi/7.7 km from the city center)
• Pearson Park (5.7 mi/9.1 km from the city center)
Things to Do near Paull:
• Fort Paull (0.3 mi/0.5 km from the city center)
• The Deep (4.2 mi/6.8 km from the city center)
• Hull New Theatre (4.7 mi/7.6 km from the city center)
• Dinostar (4.4 mi/7.1 km from the city center)
• Hull Maritime Museum (4.7 mi/7.5 km from the city center)

redpajama_set_name: RedPajamaCommonCrawl


Town, Elke. Fiction : Ian Carr-Harris, General Idea, Mary Janitch, Shirley Wiitasalo. Toronto, Ont.: Art Gallery of Ontario/Musée des beaux-arts de l'Ontario, 1982.
Using "Fiction" as a way to approach the artists' work, Town discusses different meanings of the terms "fiction" and "truth" and their place in contemporary art and the work of the artists. Commentaries and documentation present the ideas, themes, and interests of each artist.
Exhibition organized by the Art Gallery of Ontario (Toronto). - Itinerary: 3 Apr. 1982 - 12 Nov. 1983, Art Gallery of Ontario (Toronto) ; Art Gallery of Windsor ; Glenbow Museum (Calgary) ; Mendel Art Gallery (Saskatoon) ; Laurentian University Museum and Arts Centre (Sudbury) ; Agnes Etherington Art Centre (Kingston) ; 49th Parallel, Centre for Contemporary Canadian Art (New York).


text:
Mouvement Réformateur
Financial crimes, tax evasion and tax avoidance Member tax3
Budgets Substitute budg
Human Rights Substitute droi
Development Substitute deve
Immigration Civil Rights, Minority Issues and Civil Liberties Agriculture and Fisheries International Affairs and Foreign Aid Law and Crime Banking, Finance and Internal Trade Space, Science, Technology and Communications Labour and Employment
2018/02/28 Human Rights Situation in Haiti (LGBTI)
2018/02/28 VP/HR - Political situation in Myanmar
2017/12/07 Syria - Human rights violations
2017/09/13 Humanitarian crisis in Myanmar
2017/05/23 Panama Papers - Madeira - administration by a public/private consortium
2017/05/23 Extension of Madeira's Free Trade Zone status in the light of the Panama Papers
2017/05/22 Panama Papers - the situation of Madeira
2016/06/29 Three leading human rights advocates jailed in Turkey
2015/10/30 German car group Volkswagen
2015/09/30 Situation of refugees in camps
2015/09/30 Volkswagen - Emission standards for diesel cars
2015/08/04 VP/HR - Situation of human rights in Bahrain and case of Nabeel Rajab
2015/08/04 Human tragedy in the Mediterranean
2015/07/02 Addressing albinism from the human rights perspective
2015/06/19 Tragedy in the Mediterranean
2015/06/02 FIFA
2015/04/08 The costs of the Russian import ban
2015/04/08 VP/HR - The costs of the Russian import ban
2015/01/12 VP/HR - Harassment of the LGBTI community in Egypt
2018/05/02 Cryptocurrencies
2018/05/02 Afripol
2018/03/28 The Schengen area
2017/11/29 Access to audiovisual media/cross-border area between Switzerland and France
2017/08/31 Posted workers
2017/08/30 Slaughter of pregnant cows
2016/03/30 Tax competition
2015/09/30 Tax fraud
2015/03/05 Operation Triton
2014/10/22 Tax position of cross-border workers
2014/08/04 Abuse of dominant position - distribution of watch parts
2018/05/02 Information sharing: towards greater transparency
2018/03/28 Consumer protection: toys, endocrine disruptors and dangerous substances, in particular phthalates, and safety
2018/02/23 Migration agreement between the EU and Turkey
2018/02/01 Adequate minimum wages
2017/11/07 Madagascar - humanitarian aid
2017/10/23 Consumer protection - labelling
2017/10/23 Consequences of Brexit for all British and Belgian EU officials
2017/10/23 Global gag: consequences
2017/10/16 Fur and consumer information
2017/10/02 Brexit - seats
2017/08/30 Process leading to the development of two global compacts on migration and refugees
2017/08/28 Free movement of information
2017/07/20 Situation of refugees in Turkey
2017/06/23 Development and deforestation
2017/05/23 Social dumping
2017/05/22 Glyphosate
2017/04/11 VP/HR - Turkey - discrimination among nationals
2017/02/22 Endocrine-disrupting chemicals (EDCs)
2016/12/22 Simplification of social security coordination rules
2016/12/01 Refusals to provide information between Member States
2016/11/04 Official development assistance
2016/10/31 8th Review Conference of the BTWC and system of confidence-building measures
2016/10/31 EU-UK agreement of February 2016
2016/10/31 EU reconstruction aid for Haiti in the wake of Hurricane Matthew
2016/10/31 EU reconstruction aid to Haiti in the wake of Hurricane Matthew
2016/09/30 'Organic wine' label - towards greater transparency
2016/08/31 Automation of the Data Exchange Process (ADEP) pilot project
2016/08/23 Return decisions and removal measures: to be registered in SIS or Eurodac?
2016/07/21 PNR data risk analysis
2016/07/20 Exchange of information
2016/06/15 Harmonisation and exchange of information concerning removal measures
2016/02/10 Turkey
2016/01/29 EU-Turkey deal on migration
2015/11/19 Cyber security risk in nuclear power plants
2015/07/02 Cyber security
2015/03/05 Cyber intrusion
2015/01/08 Aid effectiveness
2014/12/03 Legal aid
2014/11/24 Culture as a development tool
2014/10/06 Protection of fingerprints
2014/09/16 Explosion of migration to the EU
2018/05/31 Abatement of agricultural ammonia emissions
2018/05/31 The gambling sector in the EU
2018/02/23 Future of the Schengen area and the temporary reintroduction of internal border controls
2017/12/21 Fruit industry in the ACP countries
2017/10/02 Developing pro-federalism among young Europeans through sport
2017/09/23 Port taxes in three countries: the Netherlands, Belgium and France
2017/09/07 Taxation of the ports of three States: the Netherlands, Belgium and France
2017/07/18 Voluntary commitments following the United Nations Ocean Conference
2017/06/29 Bee population
2017/03/01 Right to abortion in developing countries
2017/02/08 Future of ACP countries' banana production
2017/02/07 Future of trade relations between the EU and the United States - the TTIP
2016/12/22 Reception of returned migrants
2016/11/14 Legal vacuum affecting climate refugees
2016/05/12 TTIP
2016/03/30 Ritual crimes in sub-Saharan African countries
2016/02/10 Alternative to the crushing of chicks on farms
2016/01/27 Control of the acquisition and possession of weapons
2015/12/14 Banana production in ACP countries
2015/07/13 Interoperability and joint acquisition of military equipment
2015/05/19 Migrants and refugees
2015/02/03 Bottling of Scotch whisky
2014/12/10 Plenary sessions of the ACP-EU Joint Parliamentary Assembly
2014/10/17 Impact of climate change on developing countries
2018/05/31 Protecting consumers from obesity
2018/05/02 Anti-money laundering list
2018/03/30 Pollution of the marine environment: plastic waste and fishing equipment abandoned at sea
2018/01/25 Plastic waste in China - recycling
2018/01/18 Presentation of the Muslim Brotherhood organisation in the video 'Jihad', #Spot7 of the Saffron project's #HeartofDarkness campaign
2018/01/03 VP/HR - Latent conflict between Armenia and Azerbaijan - Organisation for Security and Cooperation in Europe (OSCE) investigative mechanism
2017/12/06 Undeclared work
2017/12/01 VP/HR - Burundi - Blue Helmets
2017/10/16 Illegal fishing and the EU-China Blue Partnership
2017/10/02 Youth obesity
2017/03/28 EU-China Blue Partnership
2016/12/22 Albinism in Africa
2016/11/04 Iran - bilateral agreement - economic cooperation
2016/09/30 Food packaging
2016/09/02 Philippines
2016/05/02 Environmental crimes: cooperation with Interpol
2016/05/02 EU-Canada cooperation to tackle illegal, undeclared and unregistered fishing
2016/05/02 Economic Partnership Agreements
2016/03/31 Triangular cooperation between Africa, China and the EU
2015/11/05 Post Ebola
2015/11/04 Food waste: logo concerning 'best before' and 'use by' dates
2015/05/11 Air quality
2015/04/10 EU strategy to tackle brain drain
2015/02/13 Transposition of pre-Lisbon measures in the domains of judicial and police cooperation
2015/01/05 Proposal for a regulation on conflict minerals (COM(2014)0111)
2014/09/12 The outbreak of the Ebola viral disease in Africa
2014/09/03 VP/HR - election observation missions in Africa
2018/02/27 Protecting public health - combating falsified medicines
2018/01/19 Health implications of cheap food
2017/03/08 Combating violence against women
2017/03/08 Combating female genital mutilation
2017/02/28 Fight against female genital mutilation
2017/01/31 VP/HR - Domestic violence in Russia
2016/07/25 Introduction of an EU public warning system
2016/06/17 Promoting the role of women in combating radicalisation and violent extremism
2015/08/04 Domestic burglary
2015/03/25 Justice in response to sexual violence against women
2018/03/28 Accession of the Western Balkans to the European Union
2018/02/28 Erasmus+: access to information
2018/01/03 Erasmus + and the European Union's neighbouring partner countries
2017/12/20 European Solidarity Corps
2017/10/23 Recognition of diplomas at European level
2017/09/20 Developing an 'Introduction to European Institutions' course in primary education for Member States
2017/07/19 European recognition of physiotherapist training
2017/06/23 Application of Directive 2005/36/EC (recognition of professional qualifications)
2017/02/23 ENVI - Animal welfare
2017/02/23 Neonicotinoids
2017/01/31 Establishment of a European Animal Welfare Platform
2016/12/22 Prevention and management of the introduction and spread of invasive alien species
2016/09/26 The situation of Roma people within the European Union
2016/08/23 Presence of terrorist training camps in the Balkans
2016/08/16 ERASMUS+
2015/08/04 Economic Partnership Agreement between West Africa and the European Union
2015/08/04 Dialogue between the European institutions and religions, Churches and communities of conviction (Article 17 of the Treaty on the Functioning of the European Union)
2015/07/13 European defence industry
2015/06/16 Reform of the General Court of the European Union
2015/03/25 Action against corruption in the European Union
2015/02/02 Statute for a European mutual society
2014/11/04 Financing the European Endowment for Democracy
2016/04/22 E-commerce
2015/10/30 VP/HR - Camp Liberty - Attack of 29 October 2015
2014/12/08 Wildlife crime
2014/11/21 'Concertina' barbed wire fences in Ceuta and Melilla
2018/06/01 Respect for the rule of law
2017/12/07 VP/HR - Madagascar - rule of law and respect for democracy
2017/06/23 Clean Vehicles Directive
2017/02/01 EFSA - palm oils
2016/07/12 VP/HR - Australian immigration detention centres on Manus and Nauru islands
2015/11/04 Shark finning
2015/07/13 Common Security and Defence Policy (CSDP)
2015/06/18 Fourth railway package
2015/06/16 Abolition of the Civil Service Tribunal
2015/01/23 Clean Air Policy Package
2015/01/09 e-books
2014/11/04 VP/HR - Cost of non-Europe with regard to the Common Security and Defence Policy (CSDP)
2014/07/23 Attacks on civil liberties and the rule of law in Hungary
2018/05/02 Illegal trafficking of cultural objects
2018/04/18 The role of the EU in the fight against pangolin trafficking
2018/03/30 Gender equality and digital transformation
2018/03/01 Employment
2017/09/13 Gender equality: Istanbul Convention
2017/04/21 Protecting UNESCO sites from illegal activities
2017/02/01 Pesticides
2017/01/03 Illicit financial flows
2016/10/27 Sustainability of phosphorus
2016/06/20 Stage reached in implementing the EU action plan against arms trafficking
2016/05/02 After Cotonou
2015/04/13 Secularity and interculturality
2015/04/08 Poaching in Garamba National Park
2015/04/08 Garamba National Park and armed groups which fund their activities through ivory trafficking


Debbie Gibson recently revealed she has been struggling with Lyme disease after suffering a tick bite.
How is the "Sing Your Face Off" judge feeling now?
There isn't a cure for Lyme disease and Debbie said she will most likely continue to deal with flare-ups in the future.
"It's something that keeps flaring, so…," she said, adding that flare-up symptoms include "wiry nerve pain," and "extreme food sensitivities," as well feeling like she has the flu.
NEWS: Debbie Gibson calls Lyme recovery a "challenge"
« Previous Post NEWS: Crunch time for NY Lyme bill. Use this form to email lawmakers.
Next Post » New Lyme book offers "science plus compassion"


Cambridge University Press in partnership with Discovery Education™ has developed next generation readers with an online environment that will motivate and engage your students with high impact topics and video.
The interactive environment fully engages students in reading. The content can be experienced on computers, netbooks, tablets, and smartphones for maximum flexibility.
For levels A1 to B1+, there are paired readers with interrelated themes that can be used together for greater interaction.
The learning management system - class creation, progress tracking, gradebook, and more - frees teachers from the mundane task of homework correction, and gives students interactive practice anytime, anywhere.


text:
Jed Hoyer Squashes a Specific, But Persistent, Part of the Cubs-Carlos Correa Rumors
Earlier this year, a national report indicated that the Chicago Cubs' pursuit of shortstop Carlos Correa was quite serious over the offseason. The report indicated that the Cubs had made a "huge" offer to Correa, but a deal wasn't ultimately worked out because of "representation issues."
We had to do some extrapolating from there to try to suss out what that meant, but we do know that Correa switched agents during the lockout (to Scott Boras), and there were rumors that the Cubs tried to seriously engage Correa before the lockout began. So you could connect the dots and jump to an assumption that the Cubs were heavy on Correa pre-lockout, made a big offer, it didn't get done, and then after after the lockout ended, something didn't quite click anymore because of the new agent.
Some very-attenuated version of that timeline might be the reality, but Cubs President Jed Hoyer wanted to squash a specific take on those rumors: it wasn't as if the Cubs were about to sign Correa before the lockout, then Correa changed agents to Boras, and everything fell apart.
From his appearance on 670 The Score:
The Cubs made Correa a "huge offer" this past offseason, Nelson said on 670 The Score in early April, but their progress was stalled because of "some representation issues." Correa ended up joining the Twins on a three-year, $105-million deal that includes opt-outs after each of the first two seasons.
"It's a slippery slope and I don't like commenting on stuff like this, but I can tell you that that's not accurate," Hoyer said on the Parkins & Spiegel Show. "There was nothing that changed based on the agent changing."
It's not hard to imagine why Hoyer would want to squash that part of the rumor: (1) he doesn't want it seeming like the Cubs can't work with Boras, and (2) he doesn't want Cubs fans thinking they were so close to landing Correa and it *only* fell through because of the change in agents.
What's far more likely is that the Cubs had a very specific idea for a deal on Correa (reports had it that they were looking to do a seven-year, high-AAV deal), and Correa and his camp were not into it. Ultimately, it seemed like Correa and Boras were looking only for either a 10+ year deal that beat Corey Seager's $325 million deal, or a very short-term, highly-flexible deal like the one he got from the Twins.
That deal, nominally a three-year deal, comes with opt outs after this year and after next year, so he can pretty much decide when he wants to hit free agency again. It was not a deal – especially with draft-pick compensation attached – that would've made any sense for this year's Cubs, so nothing happened.
In other words, while it's possible that the change in agency – together with the lockout, itself – may have altered Correa's thinking and approach to free agency (and perhaps openness to that short-term deal, rather than taking the best "long"-term deal he could get), that's not quite the same thing as saying it was "representation issues" that made a deal with the Cubs fall apart.
Will the sides re-approach after this season, if Correa is healthy and effective from here? I could certainly see it, and nothing about Correa's current representation would be the reason not to.
Previous PostPrevious post:Hicks Remembers, Explosive Offenses, Raiders Swipe a Nerd From Chicago, and Other Bears Bullets
Next Post Next post:Blackhawks' Division Rivals Also Have Big Free Agent Questions Ahead


Hikesmith is your hiking companion. Use hikesmith to plan routes, get maps, and navigate. Download maps for offline use. Import GPX files. Sync with the cloud and share routes with friends.
Import GPX files, or create your own hikes on hikesmith.com.
Hikesmith uses high-quality outdoor maps, showing topological features and rights of way.
Going to the wilderness? Download maps and routes and use them offline, where you don't have a data signal.
Hikesmith syncs your hikes with the cloud at hikesmith.com. Use hikesmith.com to take notes, share hikes with friends and more.


text:
Tourist Spots in Cebu
Cebu City is situated on the eastern shore of Cebu Island, which is also the city capital of the island. Cebu is one of the largest islands in the Philippine Archipelago. It is considered as the "Queen City of the South" because of its economic stability and other factors. So in terms of Philippine history, this province can contribute more, especially in religion.
Fort San Pedro or Fuerza de San Pedro is a military defense structure built by the Spanish and locals of Cebu under Miguel Lopez de Legazpi's (Spanish conquistador) command, but the date of the construction wasn't sure. There were claims that Jesuit Antonio Campioni built the fort in 1630. But, there were a lot of major renovations in the 19th century for the structural improvements of Cebu. More photos, Click Here >>>
Yap Sandiego Ancestral House was originally owned by Chinese merchant, Don Juan Yap and Doña Maria Florido. It is one of the oldest residential house in the Philippines. It was built between 1675-1700 and was made from Coral stones, used egg whites as glue and "Tigas" or clay for the roof. The wooden pats of the house were made of "balayong" and "tugas" or molave which is the hardest woods in the country. More photos, Click Here >>>
Heritage of Cebu Monument is situated at the original Plaza Parian. It occupies a triangular portion near the end of Colon Street. This Monument showcases the significance and symbolic events in history of Cebu during the reign of Rajah Humabon. It was a work of art by the National Artist Edgardo Castrillo on July 1997 in cooperation with Mayor Alvin Garcia and was inaugurated in December 8, 2000. More photos, Click Here >>>
Check my Cebu Solo-Backpacking Itinerary, Continue Reading >>>
Hotels resorts, cafes, restaurants, and other businesses, Be Featured on our next travel, I am just an email away -> darwinfdalisay@gmail.com or Click Here >>>
Labels: heritage sites, Places to Visit
Walking at the Chinese Garden
National Museum Planetarium
Second Visit to Jose Rizal Monument
Kalamansi for Pimples?
Requesting for NBI Clearance the Fastest Way
Benefits of Getting a Beep Card
The Venice Grand Canal in McKinley Hill
Azure | White Sand in Manila
Manila Cathedral After Dark
Cucumber Benefits | Now I Know
Inside Fort Santiago
Mt. Talamitam | BHM on 3rd
Mt. Maculot: Hiking Guide
Faces of Mt. Apo
The Sides of Ortigas Center
Getting a Copy of NSO Birth Certificate at SM
Places to Visit in Palawan


text:
Laura Pigossi Herrmann de Andrade, née le  à São Paulo, est une joueuse de tennis brésilienne, professionnelle depuis 2012.

Carrière

Elle fait partie de l'équipe du Brésil de Fed Cup depuis 2013.

Lauréate de sept tournois ITF en simple, elle remporte ses plus gros titres à Pune et à Guayaquil en 2021. En double, elle totalise 39 titres dont le 60 000 $ de Rome remporté en 2018 avec Renata Zarazúa.

Bien qu'elle ne soit classée que  mondiale, elle est sélectionnée en double après plusieurs forfaits pour participer aux Jeux olympiques de Tokyo avec Luisa Stefani. Le duo crée la surprise en atteignant les demi-finales après des succès sur les paires canadiennes, tchèques et américaines. Battues par Belinda Bencic et Viktorija Golubic, elle décrochent la médaille de bronze en venant à bout des Russes Veronika Kudermetova et Elena Vesnina après avoir sauvé quatre balles de match consécutives dans le super tie-break.

En 2022, issue des qualifications, elle accède à la finale du tournoi de Bogota après avoir battu la tenante du titre Camila Osorio.

Palmarès

Titre en simple dames
Aucun

Finale en simple dames

Parcours en Grand Chelem

En simple dames

|-
|2022
|
|
|
|
|-
|2023
|
|colspan=2|
|colspan=2|
|colspan=2|

Parcours en WTA 1000
Les tournois WTA 1000 constituent les catégories d'épreuves les plus prestigieuses, après les quatre levées du Grand Chelem.

En simple dames

Parcours aux Jeux olympiques

En double dames

Classements en fin de saison

Références

Liens externes

Joueuse brésilienne de tennis
Joueuse de tennis aux Jeux olympiques d'été de 2020
Naissance en août 1994
Naissance à São Paulo
Médaillée de bronze olympique brésilienne


text:
Acalypha ostryifolia är en törelväxtart som beskrevs av John Leonard Riddell och John Merle Coulter. Acalypha ostryifolia ingår i släktet akalyfor, och familjen törelväxter. Inga underarter finns listade i Catalogue of Life.

Källor

Externa länkar

Akalyfor
ostryifolia


Computer Repairs Manly West. Mobile or Workshop.
Computer Repairs Manly West – There must be a shortage of good computer repair services in the bayside suburbs as we obtain many customers from this area including Manly West. We do repairs on and offsite for Manly West businesses and residents. Click Here for more information about our mobile computer repair service.
If you wish to bring your machine to our workshop for repairs, we are based in Coorparoo. We are approximately 15 from minutes from Manly West.
We know that it is always difficult to know which business to trust with your valuable computer and invaluable files and photos – please read the reviews written by some of our past and current customers and this should provide you with some peace of mind in trusting us to do an expert, honest and cost-effective repair, upgrade or installation for your computer.
Affordable rates of $125 per hour, most jobs are completed within one to two hours, we never charge over three hours and would always inform you before hand if this was likely to be the case. Replacement hardware components are an additional cost – we would never purchase any parts without your approval.
We are open 6 days a week, Monday to Saturday from eight in the morning to six at night. We will also make ourselves available out of these hours if you are unable to deliver or collect your machine during this time.
Please give us a call on 33971215 and we will assist in solving your computer issue.


A nice flag from our Fall In Love collection. The flag is 28" x 132" with a pole sleeve on the side to fit in the mounting hardware. The flags are 200 denier nylon with digital graphics. Each flag will have your special message. So let us know what you want to say and we will email art for your approval when you place the order.


text:
Q: How to open a XAML file outside of VS2010 with a XAML editor? I am having errors loading a xaml file into workflow designer, I read somewhere that if I open this XAML file in the XAML editor the ~ squigly signs might help debug the issue.  However my XAML file is not included in any project or solution file within VS2010.  I can't find XAMLPAD anywhere on my system although I have VS2010.   I just need to be able to open my XAML file outside the VS2010. How do I that? There should be a xaml editor somewhere on Windows7. Right?
Please HELP.

A: XamlPad doesn't necessarily come with Visual Studio, it comes with version 6.0A of the Windows SDK. A quick google for XamlPad will give you the following link with all the information you need:
http://msdn.microsoft.com/en-us/library/vstudio/ms742398(v=vs.90).aspx
EDIT
It turns out that it is really hard to get hold of the Windows SDK 6.0A unless you have an MSDN subscription. It also turns out that XamlPad has been discontinued after .NET 3.5.
A quick google turns up a few results... this one looks quite good, but results may vary:
http://kaxaml.com/

redpajama_set_name: RedPajamaStackExchange


text:
washingtonpost.com > Metro > Special Reports > Virginia Politics
Webb, Allen Race Too Close to Call
By Timothy Dwyer
Wednesday, November 8, 2006; 2:30 AM
Democratic challenger James H. Webb and Republican incumbent George F. Allen were locked in a dead heat in the race to represent Virginia in the U.S. Senate. The race remains too close to call and appears headed for a recount.
At 2 a.m., according to unofficial results tallied by the state of Virginia, Webb had a lead of 4,745 votes over Allen. With 2,433 out of 2,443 precincts reporting Webb had 1,162,004 votes and Allen had 1,157,259 votes.
The race may be decided by absentee ballots. More than 130,000 absentee ballots were requested in the state and some of those votes were still being counted early this morning.
Just after 1 a.m., Webb claimed victory. "The votes are in and we won," he told his supporters. Webb had appeared before his supportes about two hours earlier and predicted he would win.
"We've been following this in great detail," Webb said, "It looks very, very good for our side." He said he expected to pick up votes in the 11th Congressional District in Northern Virginia and that his campaign was confident that he'd do very well when the absentee ballots were counted.
"It's going to take a while, but at some point soon, I think we are going to be on top," Webb said.
Allen spoke to his supporters just after 12:30 a.m. and told them that the outcome of the election would not be known until later today. He said some precincts in the state had shut down for the night and would resumed counting votes after the sun comes up.
"This has been an interesting election and the election continues," Allen said. "I know the counting will continue through the night and on through tomorrow."
The ban on same-sex marriage won approval by a substantial margin. With 87.3 percent of the precincts reporting, the amendment had the support of 58.4 percent of voters.
Exit polls conducted for the Associated Press found that Allen drew strong support from religious voters, those who served in the armed forces and from voters who said terrorism was extremely important. Webb was favored by traditional Democratic voting blocs such as women and blacks and by those who believe the Iraq war is an important issue.
The exit polls also showed that the majority of voters disapproved of the war in Iraq and that the U.S. should withdraw some or all troops. Of those voters, the majority favored Webb. Webb also was supported by those who said the war in Iraq was extremely important in their choice for Senate.
The majority of voters said in exit polls that they disapproved of the way President Bush is running the country, and of those, eight of 10 voted for Webb. Four out of 10 voters said Bush was not a factor in how they voted, and the majority of those chose Allen.