text:
Table of Contents
The Spring Data Commons project applies core Spring concepts to the development of solutions using many relational and non-relational data stores.
This part of the reference documentation details the ...
The goal of Spring Data repository abstraction is to significantly reduce the amount of boilerplate code required to implement data access layers for various persistence stores.
Spring Data repository documentation and your module
This chapter explains the core concepts and interfaces of Spring Data repositories. The information in this chapter is pulled from the Spring Data Commons module. It uses the configuration and code samples for the Java Persistence API (JPA) module. Adapt the XML namespace declaration and the types to be extended to the equivalents of the particular module that you are using. ??? covers XML configuration which is supported across all Spring Data modules supporting the repository API, ??? covers the query method keywords supported by the repository abstraction in general. For detailed information on the specific features of your module, consult the chapter on that module of this document.
The central interface in Spring Data repository abstraction is
Repository (probably not that much of a
surprise). It takes the domain class to manage as well as the id type of
the domain class as type arguments. This interface acts primarily as a
marker interface to capture the types to work with and to help you to
discover interfaces that extend this one. The
CrudRepository provides sophisticated CRUD
functionality for the entity class that is being managed.
Example 1.1.
CrudRepository interface
public interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> { <S extends T> S save(S entity); T findOne(ID primaryKey); Iterable<T> findAll(); Long count(); void delete(T entity); boolean exists(ID primaryKey); // … more functionality omitted. }
Saves the given entity.
Returns the entity identified by the given id.
Returns all entities.
Returns the number of entities.
Deletes the given entity.
Indicates whether an entity with the given id exists.
We also provide persistence technology-specific abstractions like
On top of the
CrudRepository there is
PagingAndSortingRepository abstraction
that adds additional methods to ease paginated access to entities:
Example 1.2. PagingAndSortingRepository
public interface PagingAndSortingRepository<T, ID extends Serializable> extends CrudRepository<T, ID> { Iterable<T> findAll(Sort sort); Page<T> findAll(Pageable pageable); }
Accessing the second page of
User by a page
size of 20 you could simply do something like this:
PagingAndSortingRepository<User, Long> repository = // … get access to a bean Page<User> users = repository.findAll(new PageRequest(1, 20));
Standard CRUD functionality repositories usually have queries on the underlying datastore. With Spring Data, declaring those queries becomes a four-step process:
Declare an interface extending
Repository or one of its subinterfaces
and type it to the domain class and ID type that it will
public interface PersonRepository extends Repository<User, Long> { … }
Declare query methods on the interface.
List<Person> findByLastname(String lastname);
Set up Spring to create proxy instances for those interfaces. Either via JavaConfig:
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; @EnableJpaRepositories class Config {}
or via XML configuration:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd"> <jpa:repositories base-package="com.acme.repositories"/> </beans>
The JPA namespace is used in this example. If you are using the
repository abstraction for any other store, you need to change this to
the appropriate namespace declaration of your store module which
should be exchanging
jpa in favor of, for example,
mongodb. Also, note that the JavaConfig variant doesn't
configure a package explictly as the package of the annotated class is
used by default. To customize the package to scan
Get the repository instance injected and use it.
public class SomeClient { @Autowired private PersonRepository repository; public void doSomething() { List<Person> persons = repository.findByLastname("Matthews"); } }
The sections that follow explain each step.
As a first step you define a domain class-specific repository
interface. The interface must extend
Repository and be typed to the domain
class and an ID type. If you want to expose CRUD methods for that domain
type, extend
CrudRepository instead of
Typically, your repository interface will extend
CrudRepository or
Alternatively, if you do not want to extend Spring Data interfaces,
you can also annotate your repository interface with
@RepositoryDefinition. Extending
CrudRepository exposes a complete set
of methods to manipulate your entities. If you prefer to be selective
about the methods being exposed, simply copy the ones you want to
expose from
CrudRepository into your
domain repository.
This allows you to define your own abstractions on top of the provided Spring Data Repositories functionality.
Example 1.3. Selectively exposing CRUD methods
@NoRepositoryBean interface MyBaseRepository<T, ID extends Serializable> extends Repository<T, ID> { T findOne(ID id); T save(T entity); } interface UserRepository extends MyBaseRepository<User, Long> { User findByEmailAddress(EmailAddress emailAddress); }
In this first step you defined a common base interface for all
your domain repositories and exposed
findOne(…) as well as
save(…).These methods will be routed into the
base repository implementation of the store of your choice provided by
Spring Data ,e.g. in the case if JPA
SimpleJpaRepository, because they are matching
the method signatures in
CrudRepository. So the
UserRepository will now be able to save
users, and find single ones by id, as well as triggering a query to
Users by their email
Note, that the intermediate repository interface is annotated
The repository proxy has two ways to derive a store-specific query from the method name. It can derive the query from the method name directly, or by using an manually defined query. Available options depend on the actual store. However, there's got to be an strategy that decides what actual query is created. Let's have a look at the available options.
The following strategies are available for the repository
infrastructure to resolve the query. You can configure the strategy at
the namespace through the
query-lookup-strategy attribute
in case of XML configuration or via the
queryLookupStrategy attribute of the
Enable${store}Repositories annotation in case
of Java config. Some strategies may not be supported for particular
CREATE attempts to construct a store-specific
query from the query method name. The general approach is to remove
a given set of well-known prefixes from the method name and parse
the rest of the method. Read more about query construction in the section called "Query creation".
USE_DECLARED_QUERY tries to find a declared query
and will throw an exception in case it can't find one. The query can
be defined by an annotation somewhere or declared by other means.
Consult the documentation of the specific store to find available
options for that store. If the repository infrastructure does not
find a declared query for the method at bootstrap time, it
CREATE_IF_NOT_FOUND combines
USE_DECLARED_QUERY. It looks up a declared query
first, and if no declared query is found, it creates a custom method
name-based query. This is the default lookup strategy and thus will
be used if you do not configure anything explicitly. It allows quick
query definition by method names but also custom-tuning of these
queries by introducing declared queries as needed.
The query builder mechanism built into Spring Data repository
infrastructure is useful for building constraining queries over
entities of the repository. The mechanism strips the prefixes
count…By, and
get…By from the method and
starts parsing the rest of it. The introducing clause can contain
further expressions such as a
Distinct to set a distinct
flag on the query to be created. However, the first
acts as delimiter to indicate the start of the actual criteria. At a
very basic level you can define conditions on entity properties and
concatenate them with
And and
Example 1.4. Query creation from method names
public interface PersonRepository extends Repository<User, Long> { List<Person> findByEmailAddressAndLastname(EmailAddress emailAddress, String lastname); // Enables the distinct flag for the query List<Person> findDistinctPeopleByLastnameOrFirstname(String lastname, String firstname); List<Person> findPeopleDistinctByLastnameOrFirstname(String lastname, String firstname); // Enabling ignoring case for an individual property List<Person> findByLastnameIgnoreCase(String lastname); // Enabling ignoring case for all suitable properties List<Person> findByLastnameAndFirstnameAllIgnoreCase(String lastname, String firstname); // Enabling static ORDER BY for a query List<Person> findByLastnameOrderByFirstnameAsc(String lastname); List<Person> findByLastnameOrderByFirstnameDesc(String lastname); }
The actual result of parsing the method depends on the persistence store for which you create the query. However, there are some general things to notice.
The expressions are usually property traversals combined
with operators that can be concatenated. You can combine
property expressions with
AND and
You also get support for operators such as
Like for the
property expressions. The supported operators can vary by
datastore, so consult the appropriate part of your reference
The method parser supports setting an
IgnoreCase flag for individual properties, for
findByLastnameIgnoreCase(…)) or
for all properties of a type that support ignoring case (usually
Strings, for example,
Whether ignoring cases is supported may vary by store, so
consult the relevant sections in the reference documentation for
the store-specific query method.
You can apply static ordering by appending an
OrderBy clause to the query method that references
a property and by providing a sorting direction
Asc or
Desc). To create a query
method that supports dynamic sorting, see the section called "Special parameter handling".
Property expressions can refer only to a direct property of the
managed entity, as shown in the preceding example. At query creation
time you already make sure that the parsed property is a property of
the managed domain class. However, you can also define constraints by
traversing nested properties. Assume
Addresses with
ZipCodes. In that case a method name of
List<Person> findByAddressZipCode(ZipCode zipCode);
creates the property traversal
The resolution algorithm starts with interpreting the entire part
AddressZipCode) as the property and checks the
domain class for a property with that name (uncapitalized). If the
algorithm succeeds it uses that property. If not, the algorithm splits
up the source at the camel case parts from the right side into a head
and a tail and tries to find the corresponding property, in our
AddressZip and
Code. If
the algorithm finds a property with that head it takes the tail and
continue building the tree down from there, splitting the tail up in
the way just described. If the first split does not match, the
algorithm move the split point to the left
ZipCode) and
Although this should work for most cases, it is possible for the
algorithm to select the wrong property. Suppose the
Person class has an
property as well. The algorithm would match in the first split round
already and essentially choose the wrong
property and finally fail (as the type of
addressZip probably has no code property). To resolve this ambiguity you
can use
_ inside your method name to manually
define traversal points. So our method name would end up like
List<Person> findByAddress_ZipCode(ZipCode zipCode);
To handle parameters in your query you simply define method
parameters as already seen in the examples above. Besides that the
infrastructure will recognize certain specific types like
Pageable and
Sort to apply pagination and sorting to your
queries dynamically.
Example 1.5. Using Pageable and Sort in query methods
Page<User> findByLastname(String lastname, Pageable pageable); List<User> findByLastname(String lastname, Sort sort); List<User> findByLastname(String lastname, Pageable pageable);
The first method allows you to pass an
org.springframework.data.domain.Pageable instance to the
query method to dynamically add paging to your statically defined
query. Sorting options are handled through the
Pageable instance too. If you only need
sorting, simply add an
org.springframework.data.domain.Sort parameter to your
method. As you also can see, simply returning a
List is possible as well. In this case
the additional metadata required to build the actual
Page instance will not be created
(which in turn means that the additional count query that would have
been necessary not being issued) but rather simply restricts the query
to look up only the given range of entities.
To find out how many pages you get for a query entirely you have to trigger an additional count query. By default this query will be derived from the query you actually trigger.
In this section you create instances and bean definitions for the repository interfaces defined. One way to do so is using the Spring namespace that is shipped with each Spring Data module that supports the repository mechanism although we generally recommend to use the Java-Config style configuration.
Each Spring Data module includes a repositories element that allows you to simply define a base package that Spring scans for you.
<?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd"> <repositories base-package="com.acme.repositories" /> </beans:beans>
In the preceding example, Spring is instructed to scan
com.acme.repositories and all its subpackages for
interfaces extending
Repository or one
of its subinterfaces. For each interface found, the infrastructure
registers the persistence technology-specific
FactoryBean to create the appropriate
proxies that handle invocations of the query methods. Each bean is
registered under a bean name that is derived from the interface name,
so an interface of
UserRepository would
be registered under
userRepository. The
base-package attribute allows wildcards, so that you can
define a pattern of scanned packages.
By default the infrastructure picks up every interface
extending the persistence technology-specific
Repository subinterface located under
the configured base package and creates a bean instance for it.
However, you might want more fine-grained control over which
interfaces bean instances get created for. To do this you use
<include-filter /> and
/> elements inside
<repositories />.
The semantics are exactly equivalent to the elements in Spring's
context namespace. For details, see Spring reference documentation on these
For example, to exclude certain interfaces from instantiation as repository, you could use the following configuration:
Example 1.6. Using exclude-filter element
<repositories base-package="com.acme.repositories"> <context:exclude-filter type="regex" expression=".*SomeRepository" /> </repositories>
This example excludes all interfaces ending in
SomeRepository from being
The repository infrastructure can also be triggered using a
@Enable${store}Repositories annotation
on a JavaConfig class. For an introduction into Java-based
configuration of the Spring container, see the reference
A sample configuration to enable Spring Data repositories looks something like this.
Example 1.7. Sample annotation based repository configuration
@Configuration @EnableJpaRepositories("com.acme.repositories") class ApplicationConfiguration { @Bean public EntityManagerFactory entityManagerFactory() { // … } }
The sample uses the JPA-specific annotation, which you would
change according to the store module you actually use. The same
applies to the definition of the
You can also use the repository infrastructure outside of a
Spring container, e.g. in CDI environments. You still need some Spring
libraries in your classpath, but generally you can set up repositories
programmatically as well. The Spring Data modules that provide
repository support ship a persistence technology-specific
RepositoryFactory that you can use as
Example 1.8. Standalone usage of repository factory
RepositoryFactorySupport factory = … // Instantiate factory here UserRepository repository = factory.getRepository(UserRepository.class);
Often it is necessary to provide a custom implementation for a few repository methods. Spring Data repositories easily allow you to provide custom repository code and integrate it with generic CRUD abstraction and query method functionality.
To enrich a repository with custom functionality you first define an interface and an implementation for the custom functionality. Use the repository interface you provided to extend the custom interface.
Example 1.9. Interface for custom repository functionality
interface UserRepositoryCustom { public void someCustomMethod(User user); }
Example 1.10. Implementation of custom repository functionality
class UserRepositoryImpl implements UserRepositoryCustom { public void someCustomMethod(User user) { // Your custom implementation } }
The implementation itself does not depend on Spring Data and
can be a regular Spring bean. So you can use standard dependency
injection behavior to inject references to other beans like a
Example 1.11. Changes to the your basic repository interface
public interface UserRepository extends CrudRepository<User, Long>, UserRepositoryCustom { // Declare query methods here }
Let your standard repository interface extend the custom one. Doing so combines the CRUD and custom functionality and makes it available to clients.
If you use namespace configuration, the repository
infrastructure tries to autodetect custom implementations by scanning
for classes below the package we found a repository in. These classes
need to follow the naming convention of appending the namespace
element's attribute
repository-impl-postfix to the found
repository interface name. This postfix defaults to
Example 1.12. Configuration example
<repositories base-package="com.acme.repository" /> <repositories base-package="com.acme.repository" repository-impl-postfix="FooBar" />
The first configuration example will try to look up a class
com.acme.repository.UserRepositoryImpl to act
as custom repository implementation, whereas the second example will
try to lookup
The preceding approach works well if your custom implementation uses annotation-based configuration and autowiring only, as it will be treated as any other Spring bean. If your custom implementation bean needs special wiring, you simply declare the bean and name it after the conventions just described. The infrastructure will then refer to the manually defined bean definition by name instead of creating one itself.
Example 1.13. Manual wiring of custom implementations (I)
<repositories base-package="com.acme.repository" /> <beans:bean id="userRepositoryImpl" class="…"> <!-- further configuration --> </beans:bean>
The preceding approach is not feasible when you want to add a single method to all your repository interfaces.
To add custom behavior to all repositories, you first add an intermediate interface to declare the shared behavior.
Example 1.14. An interface declaring custom shared behavior
public interface MyRepository<T, ID extends Serializable> extends JpaRepository<T, ID> { void sharedCustomMethod(ID id); }
Now your individual repository interfaces will extend this
intermediate interface instead of the
Repository interface to include the
functionality declared.
Next, create an implementation of the intermediate interface that extends the persistence technology-specific repository base class. This class will then act as a custom base class for the repository proxies.
Example 1.15. Custom repository base class
public class MyRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRepository<T, ID> implements MyRepository<T, ID> { private EntityManager entityManager; // There are two constructors to choose from, either can be used. public MyRepositoryImpl(Class<T> domainClass, EntityManager entityManager) { super(domainClass, entityManager); // This is the recommended method for accessing inherited class dependencies. this.entityManager = entityManager; } public void sharedCustomMethod(ID id) { // implementation goes here } }
The default behavior of the Spring
/> namespace is to provide an implementation for all
interfaces that fall under the
base-package. This means
that if left in its current state, an implementation instance of
MyRepository will be created by
Spring. This is of course not desired as it is just supposed to act
as an intermediary between
and the actual repository interfaces you want to define for each
entity. To exclude an interface that extends
Repository from being instantiated as
a repository instance, you can either annotate it with
@NoRepositoryBean or move it outside
of the configured
Then create a custom repository factory to replace the default
RepositoryFactoryBean that will in turn
produce a custom
RepositoryFactory. The new
repository factory will then provide your
MyRepositoryImpl as the implementation of any
interfaces that extend the
interface, replacing the
implementation you just extended.
Example 1.16. Custom repository factory bean
public class MyRepositoryFactoryBean<R extends JpaRepository<T, I>, T, I extends Serializable> extends JpaRepositoryFactoryBean<R, T, I> { protected RepositoryFactorySupport createRepositoryFactory(EntityManager entityManager) { return new MyRepositoryFactory(entityManager); } private static class MyRepositoryFactory<T, I extends Serializable> extends JpaRepositoryFactory { private EntityManager entityManager; public MyRepositoryFactory(EntityManager entityManager) { super(entityManager); this.entityManager = entityManager; } protected Object getTargetRepository(RepositoryMetadata metadata) { return new MyRepositoryImpl<T, I>((Class<T>) metadata.getDomainClass(), entityManager); } protected Class<?> getRepositoryBaseClass(RepositoryMetadata metadata) { // The RepositoryMetadata can be safely ignored, it is used by the JpaRepositoryFactory //to check for QueryDslJpaRepository's which is out of scope. return MyRepository.class; } } }
Finally, either declare beans of the custom factory directly
or use the
factory-class attribute of the Spring
namespace to tell the repository infrastructure to use your custom
factory implementation.
Example 1.17. Using the custom factory with the namespace
<repositories base-package="com.acme.repository" factory-class="com.acme.MyRepositoryFactoryBean" />
This section documents a set of Spring Data extensions that enable Spring Data usage in a variety of contexts. Currently most of the integration is targeted towards Spring MVC.
This section contains the documentation for the Spring Data web support as it is implemented as of Spring Data Commons in the 1.6 range. As it the newly introduced support changes quite a lot of things we kept the documentation of the former behavior in Section 1.4.3, "Legacy web support".
Also note that the JavaConfig support introduced in Spring Data Commons 1.6 requires Spring 3.2 due to some issues with JavaConfig and overridden methods in Spring 3.1.
Spring Data modules ships with a variety of web support if the module supports the repository programming model. The web related stuff requires Spring MVC JARs on the classpath, some of them even provide integration with Spring HATEOAS.
[2]In general, the integration support is enabled by using the
@EnableSpringDataWebSupport annotation in
your JavaConfig configuration class.
Example 1.18. Enabling Spring Data web support
@Configuration @EnableWebMvc @EnableSpringDataWebSupport class WebConfiguration { }
The @EnableSpringDataWebSupport annotation registers a few components we will discuss in a bit. It will also detect Spring HATEOAS on the classpath and register integration components for it as well if present.
Alternatively, if you are using XML configuration, register either SpringDataWebSupport or HateoasAwareSpringDataWebSupport as Spring beans:
Example 1.19. Enabling Spring Data web support in XML
<bean class="org.springframework.data.web.config.SpringDataWebConfiguration" /> <!-- If you're using Spring HATEOAS as well register this one *instead* of the former --> <bean class="org.springframework.data.web.config.HateoasAwareSpringDataWebConfiguration" />
The configuration setup shown above will register a few basic components:
DomainClassConverter to enable
Spring MVC to resolve instances of repository managed domain
classes from request parameters or path variables.
implementations to let Spring MVC resolve
Pageable and
Sort instances from request
DomainClassConverter allows you to
use domain types in your Spring MVC controller method signatures
directly, so that you don't have to manually lookup the instances
via the repository:
Example 1.20. A Spring MVC controller using domain types in method signatures
public class UserController {
public String showUserForm(@PathVariable("id") User user, Model model) {
model.addAttribute("user", user);
return "userForm";
As you can see the method receives a User instance directly
and no further lookup is necessary. The instance can be resolved by
letting Spring MVC convert the path variable into the id type of the
domain class first and eventually access the instance through
findOne(…) on the repository
instance registered for the domain type.
Currently the repository has to implement
The configuration snippet above also registers a
PageableHandlerMethodArgumentResolver as well
as an instance of
SortHandlerMethodArgumentResolver. The
registration enables
Pageable and
Sort being valid controller method
Example 1.21. Using Pageable as controller method argument
@Controller @RequestMapping("/users") public class UserController { @Autowired UserRepository repository; @RequestMapping public String showUsers(Model model, Pageable pageable) { model.addAttribute("users", repository.findAll(pageable)); return "users"; } }
This method signature will cause Spring MVC try to derive a
Pageable instance from the request
parameters using the following default configuration:
Table 1.1. Request parameters evaluated for Pageable instances
|Page you want to retrieve.
|Size of the page you want to retrieve.
|Properties that should be sorted by in the format
property,property(,ASC|DESC). Default sort
direction is ascending. Use multiple
parameters if you want to switch directions, e.g.
To customize this behavior extend either
SpringDataWebConfiguration or the
HATEOAS-enabled equivalent and override the
pageableResolver() or
sortResolver() methods and import your
customized configuration file instead of using the
In case you need multiple
Pageables or
Sorts to be resolved from the request (for
multiple tables, for example) you can use Spring's
@Qualifier annotation to distinguish
one from another. The request parameters then have to be prefixed
${qualifier}_. So for a method signature like
public String showUsers(Model model,
@Qualifier("foo") Pageable first,
@Qualifier("bar") Pageable second) { … }
you have to populate
foo_page and
bar_page etc.
The default
Pageable handed
into the method is equivalent to a
new PageRequest(0,
20) but can be customized using the
@PageableDefaults annotation on the
Pageable parameter.
Spring HATEOAS ships with a representation model class PagedResources that allows enrichting the content of a Page instance with the necessary Page metadata as well as links to let the clients easily navigate the pages. The conversion of a Page to a PagedResources is done by an implementation of the Spring HATEOAS ResourceAssembler interface, the PagedResourcesAssembler.
Example 1.22. Using a PagedResourcesAssembler as controller method argument
@Controller class PersonController { @Autowired PersonRepository repository; @RequestMapping(value = "/persons", method = RequestMethod.GET) HttpEntity<PagedResources<Person>> persons(Pageable pageable, PagedResourcesAssembler assembler) { Page<Person> persons = repository.findAll(pageable); return new ResponseEntity<>(assembler.toResources(persons), HttpStatus.OK); } }
Enabling the configuration as shown above allows the
PagedResourcesAssembler to be used as
controller method argument. Calling
toResources(…) on it will cause the
The content of the
Page will
become the content of the
PagedResources will get a
PageMetadata instance attached populated
with information form the
Page and
the underlying
PagedResources gets
prev and
next links attached depending
on the page's state. The links will point to the URI the method
invoked is mapped to. The pagination parameters added to the
method will match the setup of the
PageableHandlerMethodArgumentResolver to
make sure the links can be resolved later on.
Assume we have 30
Person instances in the
database. You can now trigger a request
http://localhost:8080/persons and you'll see something similar
to this:
{ "links" : [ { "rel" : "next", "href" : "http://localhost:8080/persons?page=1&size=20 } ], "content" : [ … // 20 Person instances rendered here ], "pageMetadata" : { "size" : 20, "totalElements" : 30, "totalPages" : 2, "number" : 0 } }
You see that the assembler produced the correct URI and also
picks up the default configuration present to resolve the parameters
into a
Pageable for an upcoming
request. This means, if you change that configuration, the links will
automatically adhere to the change. By default the assembler points to
the controller method it was invoked in but that can be customized by
handing in a custom
Link to be used as base to
build the pagination links to overloads of the
PagedResourcesAssembler.toResource(…) method.
If you work with the Spring JDBC module, you probably are familiar
with the support to populate a
using SQL scripts. A similar abstraction is available on the
repositories level, although it does not use SQL as the data definition
language because it must be store-independent. Thus the populators
support XML (through Spring's OXM abstraction) and JSON (through
Jackson) to define data with which to populate the repositories.
Assume you have a file
data.json with the
following content:
Example 1.23. Data defined in JSON
[ { "_class" : "com.acme.Person", "firstname" : "Dave", "lastname" : "Matthews" }, { "_class" : "com.acme.Person", "firstname" : "Carter", "lastname" : "Beauford" } ]
You can easily populate your repositories by using the populator
elements of the repository namespace provided in Spring Data Commons. To
populate the preceding data to your
PersonRepository , do the
Example 1.24. Declaring a Jackson repository populator
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:repository="http://www.springframework.org/schema/data/repository" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository.xsd"> <repository:jackson-populator location="classpath:data.json" /> </beans>
This declaration causes the
data.json file to
be read and deserialized via a Jackson
ObjectMapper. The type to which the JSON object will be unmarshalled to will
be determined by inspecting the
_class attribute of the
JSON document. The infrastructure will eventually select the appropriate
repository to handle the object just deserialized.
To rather use XML to define the data the repositories shall be
populated with, you can use the
element. You configure it to use one of the XML marshaller options
Spring OXM provides you with. See the Spring reference
documentation for details.
Example 1.25. Declaring an unmarshalling repository populator (using JAXB)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:repository="http://www.springframework.org/schema/data/repository" xmlns:oxm="http://www.springframework.org/schema/oxm" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository.xsd http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm.xsd"> <repository:unmarshaller-populator location="classpath:data.json" unmarshaller-ref="unmarshaller" /> <oxm:jaxb2-marshaller contextPath="com.acme" /> </beans>
Given you are developing a Spring MVC web application you typically have to resolve domain class ids from URLs. By default your task is to transform that request parameter or URL part into the domain class to hand it to layers below then or execute business logic on the entities directly. This would look something like this:
@Controller @RequestMapping("/users") public class UserController { private final UserRepository userRepository; @Autowired public UserController(UserRepository userRepository) { Assert.notNull(repository, "Repository must not be null!"); userRepository = userRepository; } @RequestMapping("/{id}") public String showUserForm(@PathVariable("id") Long id, Model model) { // Do null check for id User user = userRepository.findOne(id); // Do null check for user model.addAttribute("user", user); return "user"; } }
First you declare a repository dependency for each controller to
look up the entity managed by the controller or repository
respectively. Looking up the entity is boilerplate as well, as it's
always a
findOne(…) call. Fortunately Spring
provides means to register custom components that allow conversion
between a
String value to an arbitrary
For Spring versions before 3.0 simple Java
PropertyEditors had to be used. To
integrate with that, Spring Data offers a
DomainClassPropertyEditorRegistrar, which
looks up all Spring Data repositories registered in the
ApplicationContext and registers a
PropertyEditor for the managed
domain class.
<bean class="….web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="webBindingInitializer"> <bean class="….web.bind.support.ConfigurableWebBindingInitializer"> <property name="propertyEditorRegistrars"> <bean class="org.springframework.data.repository.support.DomainClassPropertyEditorRegistrar" /> </property> </bean> </property> </bean>
If you have configured Spring MVC as in the preceding example, you can configure your controller as follows, which reduces a lot of the clutter and boilerplate.
public class UserController {
public String showUserForm(@PathVariable("id") User user, Model model) {
model.addAttribute("user", user);
return "userForm";
In Spring 3.0 and later the
PropertyEditor support is superseded
by a new conversion infrastructure that eliminates the drawbacks of
PropertyEditors and uses a stateless
X to Y conversion approach. Spring Data now ships with a
DomainClassConverter that mimics the behavior
DomainClassPropertyEditorRegistrar. To
configure, simply declare a bean instance and pipe the
ConversionService being used into its
<mvc:annotation-driven conversion-service="conversionService" /> <bean class="org.springframework.data.repository.support.DomainClassConverter"> <constructor-arg ref="conversionService" /> </bean>
If you are using JavaConfig, you can simply extend Spring
WebMvcConfigurationSupport and hand the
FormatingConversionService that the
configuration superclass provides into the
DomainClassConverter instance you
class WebConfiguration extends WebMvcConfigurationSupport { // Other configuration omitted @Bean public DomainClassConverter<?> domainClassConverter() { return new DomainClassConverter<FormattingConversionService>(mvcConversionService()); } }
When working with pagination in the web layer you usually have
to write a lot of boilerplate code yourself to extract the necessary
metadata from the request. The less desirable approach shown in the
example below requires the method to contain an
HttpServletRequest parameter that has
to be parsed manually. This example also omits appropriate failure
handling, which would make the code even more verbose.
public class UserController {
// DI code omitted
public String showUsers(Model model, HttpServletRequest request) {
int page = Integer.parseInt(request.getParameter("page"));
int pageSize = Integer.parseInt(request.getParameter("pageSize"));
Pageable pageable = new PageRequest(page, pageSize);
model.addAttribute("users", userService.getUsers(pageable));
return "users";
The bottom line is that the controller should not have to handle
the functionality of extracting pagination information from the
request. So Spring Data ships with a
PageableHandlerArgumentResolver that will do
the work for you. The Spring MVC JavaConfig support exposes a
WebMvcConfigurationSupport helper class to
customize the configuration as follows:
public class WebConfig extends WebMvcConfigurationSupport {
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new PageableHandlerArgumentResolver());
If you're stuck with XML configuration you can register the resolver as follows:
<bean class="….web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="customArgumentResolvers"> <list> <bean class="org.springframework.data.web.PageableHandlerArgumentResolver" /> </list> </property> </bean>
When using Spring 3.0.x versions use the
PageableArgumentResolver instead. Once you've
configured the resolver with Spring MVC it allows you to simplify
controllers down to something like this:
public class UserController {
public String showUsers(Model model, Pageable pageable) {
model.addAttribute("users", userRepository.findAll(pageable));
return "users";
automatically resolves request parameters to build a
PageRequest instance. By default it expects the
following structure for the request parameters.
Table 1.2. Request parameters evaluated by
|Page you want to retrieve.
|Size of the page you want to retrieve.
|Property that should be sorted by.
|Direction that should be used for sorting.
In case you need multiple
Pageables to be resolved from the
request (for multiple tables, for example) you can use Spring's
@Qualifier annotation to distinguish
one from another. The request parameters then have to be prefixed with
${qualifier}_. So for a method signature like
public String showUsers(Model model,
@Qualifier("foo") Pageable first,
@Qualifier("bar") Pageable second) { … }
you have to populate
foo_page and
bar_page and the related subproperties.
PageableArgumentResolver will use a
PageRequest with the first page and a page
size of 10 by default. It will use that value if it cannot resolve a
PageRequest from the request (because of
missing parameters, for example). You can configure a global default
on the bean declaration directly. If you might need controller
method specific defaults for the
Pageable, annotate the method
parameter with
@PageableDefaults and
specify page (through
pageNumber), page size (through
sort (list of properties to sort
by), and
sortDir (the direction to sort by) as
annotation attributes:
public String showUsers(Model model,
@PageableDefaults(pageNumber = 0, value = 30) Pageable pageable) { … }
[1] JavaConfig in the Spring reference documentation - http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/beans.html#beans-java
[2] Spring HATEOAS - https://github.com/SpringSource/spring-hateoas


text:
RECURSOS HUMANOS Y COACHING PROFESIONAL - Selección de personal a través del rostro
Moisés Acedo Codina
La maravilla de averiguar el trabajo IDEAL según el rostro de las personas!Con este simple y [...] See book
We present you the books of Manuals, encyclopedias, dictionaries in Paper tagged in coaching that match your search. In Bubok we have thousands of books that you can not find anywhere else, books by new authors that enrich your books with our works and that we offer you to enjoy.
Do you want to lear more on how to publish your work? Leave us your phone and we call you without obligation.

subset: commoncrawl


text:
Filter by
Sort by (5)
Correcting and protecting - for youthful,
healthy-looking skin at any age.
Every NovAge range is powered by a unique partnership of a highly advanced technology together with a selected plant stem cell extract. The technology is designed to target and correct specific ageing signs, while the plant stem cell extract helps protect the skin against skin-ageing aggressors, like a guardian of your youth - so you can enjoy youthful, healthy-looking skin at any age.
It's not your years, it's how you wear them
When Oriflame's Research Scientists carried out AgeReflectTM, a scientific skin ageing study with almost 1,000 women, we discovered that 4 out of 5 women don't look their age. Researching numerous signs of ageing, we identified the 12 signs that have the greatest negative impact on your perceived age.
NovAge targets and pushes back the signs you have now and helps to delay new signs from forming, through targeted routines. From preventing the first signs of ageing right through to your deepest wrinkles, NovAge is with you all the way on the anti-ageing journey. Every range is driven by innovative science, powered by advanced technologies and natural plant stem cell extracts, and proven by thorough clinical studies.


text:
Happy National Papercrafting Month, everyone! It's that time of year where we have the perfect excuse to celebrate all things paper and we absolutely loooove what we've got for you and your friends to celebrate right along with us. Crafters of all kinds can join in and start the new year full of creative possibilities with our Frame It Up special!
This special features the beautiful Magnolia Frame Kit, designed to create customizable décor for your home, office, or any other space you'd like to brighten up.
Each kit comes with a 16″ x 16″ chipboard frame and backing, one double sided frame overlay that lets you choose what kind of finish you want for your frame, two decorative words, die-cut flowers, leaves, and rose gold foil accents. Use the included step-by-step instructions to get the basic frame and flowers assembled, and then let your creativity guide you through designing the rest!
There are so many different ways to use this versatile frame that you are sure to want more than one, which is precisely why you get 15% off each kit when you buy two, or 30% off when you buy three or more!
And, because it's a new year and we think everyone should have at least one of these gorgeous frames, we are giving away FIVE Magnolia Frame Kits right here, on our blog! You have 24 hours, that's until 4 pm (MST) tomorrow (January 9), to leave us a comment below telling us how or where you would use this frame and become a subscriber, if you aren't already.
National Papercrafting Day is coming up, fast. Celebrated on the fourth Saturday of every January, this year it falls on January 26. Get together with your friends and celebrate by crafting your new Magnolia Frame!


text:
Videographer, composer, film maker.Please Follow me if you like what I do and rate if you buy.
Original Romantic Music:
Let's Go Flying | Love is The Reason | September 29 | November 20 | Rainy June
Stock Footage, Motion Graphics, After Affects Projects:
Bestsellers: (See all AndrVlad's best selling items)
Recent favorites:
Fill free to send me the link where you use my items and I will be glad to put reference into this section.
|New Zealand
North Island
|June (Untitled)
|The Majesty Of Earth
Music by Gareth Coker
|Symphony 1 Trailer
|Vladivostok Night Drive
|Vietnam 2011
|October 16


text:
« SSgt Matt Maupin Remains Found ~ Rest in Peace, Brave Warrior | Main | American Sniper Hung Out To Dry »
March 31, 2008
Obama Survey Says
Interesting article from Capt. ED and Politico
Politico has caught Barack Obama in another misstatement about his past, and this one goes right to the heart of his posing as a New Politics candidate. Working on a tip from opposition sources, Kenneth Vogel found a survey with Obama's handwriting that he had previously denied handling. It shows that Obama himself established much more liberal positions on gun control, abortion, and other issues than he has admitted in his campaign:
During his first run for elected office, Barack Obama played a greater role than his aides now acknowledge in crafting liberal stands on gun control, the death penalty and abortion– positions that appear at odds with the more moderate image he's projected during his presidential campaign.
The evidence comes from an amended version of an Illinois voter group's detailed questionnaire, filed under his name during his 1996 bid for a state Senate seat.
Late last year, in response to a Politico story about Obama's answers to the original questionnaire, his aides said he "never saw or approved" the questionnaire.
They asserted the responses were filled out by a campaign aide who "unintentionally mischaracterize(d) his position."
But a Politico examination determined that Obama was actually interviewed about the issues on the questionnaire by the liberal Chicago non-profit group that issued it. And it found that Obama – the day after sitting for the interview – filed an amended version of the questionnaire, which appears to contain Obama's own handwritten notes adding to one answer.
In 1996, Obama ran as a political unknown, although one with friends in high places — friends like Tony Rezko, William Ayers, and Bernadette Dohrn. He wanted the endorsement of Independent Voters of Illinois, a group in which he and his campaign manager had worked in the past. The survey was an important part of IVI's vetting process, and Obama needed to make sure that it had the answers he needed for the endorsement.
So what were Obama's positions in 1996, according to the questionnaire that bears his handwriting?
* Opposed to parental notification on abortions. He amended this to say that he might possibly support it for 12- or 13-year-olds, but no older.
* Flatly opposed the death penalty, a position he denied ever having.
* Supported bans on the sale, possession, and manufacture of guns, again a position he denied ever taking.
Those positions won't even fly with a large number of Democrats, let alone in a general election. The Hillary Clinton campaign has already begun making the argument to superdelegates that Obama holds extremist views so out of touch with the American electorate that he can't possibly win in November. The questionnaire will bolster that argument, especially on guns, where the Democrats had tried to soften their stance since Al Gore lost his home state of Tennessee in 2000.
The Obama campaign's response to Politico has to be read to be believed:
Through an aide, Obama, who won the group's endorsement as well as the statehouse seat, did not dispute that the handwriting was his. But he contended it doesn't prove he completed, approved – or even read – the latter questionnaire.
"Sen. Obama didn't fill out these state Senate questionnaires – a staffer did – and there are several answers that didn't reflect his views then or now," said Tommy Vietor, a spokesman for Obama's campaign, in an emailed statement. "He may have jotted some notes on the front page of the questionnaire at the meeting, but that doesn't change the fact that some answers didn't reflect his views. His eleven years in public office do."
This makes no sense at all. If Obama's handwriting is on the survey, then he filled it out. If the answers didn't reflect his views, why didn't he change them when he "jotted some notes" on it? If the answers were wrong, Obama would have "jotted some notes" to that effect, rather than allow such mistakes to get transmitted to IVI. And the "eleven years in public office" defense might make sense if Obama hadn't spent much of that time voting "present" instead of taking actual stands.
Once again, we have more evidence that Obama represents nothing more than the political winds. He has zero credibility, zero experience, and a penchant for telling people what they want to hear rather than any truth about what he actually believes. Either he lied to IVI or he's lying now. In either case, it's hardly the New Politics Obama has promised.
Wild Thing's comment........
I agree with Capt. Ed, there are some Democrats that will not lilke Obama's answer on guns.
Obama promises the world to his sheep, but they better wake up and see what they are voting for.
Posted by Wild Thing at March 31, 2008 11:55 AM
Just like a dummycrap--stick your finger in the air and lean the way the wind is blowing.
He's so full of dog doo, it's not funny anymore.
Posted by: Lynn at March 31, 2008 02:44 PM
I guess it's like when Bill Clinton said that, "It depends on what the meaning of the word 'is' is". For Barak Obama, it depends what the meaning of the words "completed, approved – or even read" are.
There is a story at NewsMax about how Barack Obama incorrectly states a Kennedy Connection and a claim on Selma, Alabama. His lies and made up story telling sounds more Clintonian every day.
Posted by: Les at March 31, 2008 04:13 PM
Slowly ever so slowly the truth is coming out about this nincompoop liberal, who can't talk without a Teleprompter in his face.
He is pro UN and very anti American, and is running for the job of the most powerful man in the world. My god, with a beard Hillary could pass for Lincoln when compared to Hussein Obama, if she weren't so Coyote ugly.
Posted by: Mark at March 31, 2008 06:02 PM
The liberal masses LOVE him--here's a little metaphor to that end:
Posted by: Sierrahome at March 31, 2008 07:15 PM
Lynn he is made out of it. heh heh
Posted by: Wild Thing at March 31, 2008 08:05 PM
Les, good grief, he is so awful.
Thanks for the link Les.
Posted by: Wild Thing at March 31, 2008 08:06 PM
Mark, "can't talk without a Teleprompter in his face"....he can't you're so right. He stammers like crazy without his notes. hahaha
Love your comment on Hillary. LMAO
Posted by: Wild Thing at March 31, 2008 08:07 PM
Sierrahome, thank you for the video link. That is GREAT I never saw it before.
Posted by: Wild Thing at March 31, 2008 08:09 PM
Posted by: Jack at March 31, 2008 11:58 PM
Jack thanks for the article/link. Very interesting!
Posted by: Wild Thing at April 1, 2008 12:51 AM


text:
The past few weeks have been full of excitement for Tom Cruise. "Today" host Matt Lauer sat down with the actor and talked about his new love, his new movie, "War of the Worlds," and the recent firestorm he caused when he commented on Brooke Shield's use of therapy and drugs to cure her postpartum depression.
Matt Lauer: Anything at all interesting happening in your life these days?
Tom Cruise: Well, you know, same old, same old.
Lauer: Same old you know what?
Cruise: Same old you know what.
Lauer: How are you handling this? I mean every magazine, every newspaper, and every entertainment show. What's it like for you to be living through this right now?
Cruise: I have to tell you. It's just a great time in my life. I'm really happy. And, you know, I'm engaged. I'm going to be married. I can't restrain myself.
Lauer: It's like you've got two little cords on your mouth and you can't stop smiling. I was thinking about it. On the one hand, it's got to be a little hard to see yourself everywhere, splashed across the pages. Another aspect of this, though, is, how many actors 20-something years into a career can generate this kind of interest still?
Cruise: You know, I just do what I do. I love making movies. And I feel privileged to be able to do that, always. And it's something that — I'm just living my life, you know.
Lauer: We talk about life in a second. Let's talk about the movie, though. Okay, "War of the Worlds." I mean, I've always been fascinated by this whole concept, the "we are not alone in a big way," concept. Do you remember your first exposure to it, to the story?
Cruise: I remember, I was a kid. And I heard about the Orson Wells radio play. It was my first exposure to this story.
Lauer: This is not just an alien movie. The story breaks down on a lot of different levels. And on one of the levels, your character is a father?
Cruise: Mm-hmm.
Lauer: Not the best father in the world.
Cruise: Mm-hmm.
Lauer: Tell me how that plays into this whole scenario.
Cruise: When we were working on this story three years ago, [director] Steven [Spielberg] and I came up with this idea of making it about a family. And so now, he is forced in these circumstances to rise to the occasion. Will he rise to the occasion? And I just think it's very human. I think the — you know, you're a father.Lauer: Sure.
Cruise: I'm a father, you know. I always wanted to be a father. Remember when you first held your child? It's like wow, tremendous sense of responsibility.
Lauer: Life-changing.
Cruise: Yeah. And we talk about it. But not until you experience it can you really know it. We wanted to imbue the story with that journey.
Lauer: Is this a scary movie in the traditional sense of Hollywood scary?
Cruise: I think it's Spielbergian scary.
Lauer: Is that a word?
Cruise: It now is. I think, you know, I tease him. 'Cause I say, I know your movies better than you [do]. You know, I studied his edits so many times. I've studied his movies. And having worked with him, it's not analytical. He's just creating. And he has tremendous power because he understands the medium. And he's just that great, great, great storyteller. I think he's the greatest storyteller cinema has ever known.
Lauer: Let's talk about selling this movie. You've just toured around the world, getting the story of "War of the Worlds" out there. And at the same time, you've got this great thing happening in your personal life that has become the subject of so many headlines and stories.
Cruise: Really?
Lauer: Yeah. From what I've seen. You want to count? Three thousand, four hundred and four.
Cruise: Are you serious?
Lauer: No. Made that up. Is there any fear in your part that what happens personally overshadows the movie?
Cruise: Nah, it never does.
Lauer: Has it helped the movie?
Cruise: I don't know. You know what? It comes down to the movie. It always comes down to the movie.
Lauer: You are being so much more open. You've been on this show in the past at times where you were in other relationships. And I'd kind of broach the subject of a personal life. And you would very gingerly steer it away. That was how we came to know Tom Cruise. And now, you're saying, "You know what? I'm okay with it." So, it does seem like a different guy.
Cruise: Yeah. But they're still writing it. You got to understand. All that stuff, they'd still write it. They'd still talk about it. And the thing is, I still feel I will talk about what I feel, what I want to talk about.
Lauer: Right.
Cruise: And I won't talk about what I don't want to talk about. And it just doesn't matter. It comes down to the movie, you know. And I also feel, Matt, I'm living my life. And I feel fortunate, you know. I feel really fortunate. And I'm excited.
Lauer: You just said something that made me think about something. And if you get out there and talk about it, it kind of takes away a lot of their power to make stuff up. Doesn't it? Because you're telling the real story. Where does it leave them to go?
Cruise: Yeah. But here's the point. I don't even get into that game. I'm just living my life, Matt. It's something that — I mean, I'm living my life. And I'm doing the best that I can, and doing it in a way that I feel is right. I like hearing good news, you know. I like hearing, you know, if something good happens to you, it's nice. I like sitting here talking to you.
Lauer: If you like hearing it, you must want to share it, too.
Cruise: Yeah.
Lauer: So, when you hear the cynics, Mr. Cruise, and you've heard 'em, who say, "This is publicity for a movie, this relationship," or "This is Tom Cruise in his 40s trying to become or stay relevant for a younger audience, and that's why he's out there talking about this relationship with this lovely young lady," who happens to be sitting right over there. How do you respond to that?
Cruise: You know what? There's always cynics. There always has been. There always will be.
Lauer: You laugh about it, or does it just bug you?
Cruise: No. I have never worried, Matt, about what other people think and what other people say.
Lauer: Katie, close your ears for a second, okay? You have said that Katie is the real thing. She is sensational, she is magnificent. Can you explain to me what she's brought to your life that hasn't been brought to your life in the past?
Cruise: I don't want to compare things. I just say—
Lauer: I know—
Cruise: No, no, no. Because, you know, it — but what it is, it's that thing where you just — in life, when it just happens, Matt. You know? It just — you meet someone. And it's — I can't even describe it.
Lauer: Katie has mentioned that she is embracing, or at least exposing herself and opening herself up to, Scientology. At this stage in your life, could you be with someone who doesn't have an interest?
Cruise: You know, Scientology is something that you don't understand. It's like, you could be a Christian and be a Scientologist, okay. Scientology is something—
Lauer: So, it doesn't replace religion.
Cruise: It is a religion. Because it's dealing with the spirit. You as a spiritual being. It gives you tools you can use to apply to your life.
We asked Cruise to explain his recent comments regarding Brooke Shields. Cruise created a firestorm when he criticized Shields for revealing that she went into therapy and took antidepressants to deal with her postpartum depression. Cruise has said that, as a Scientologist, he doesn't believe in psychiatric medicine.
Cruise: I've never agreed with psychiatry, ever. Before I was a Scientologist I never agreed with psychiatry. And when I started studying the history of psychiatry, I understood more and more why I didn't believe in psychology.
And as far as the Brooke Shields thing, look, you got to understand, I really care about Brooke Shields. I think, here's a wonderful and talented woman. And I want to see her do well. And I know that psychiatry is a pseudo science.
Lauer: But Tom, if she said that this particular thing helped her feel better, whether it was the antidepressants or going to a counselor or psychiatrist, isn't that enough?
Cruise: Matt, you have to understand this. Here we are today, where I talk out against drugs and psychiatric abuses of electric shocking people, okay, against their will, of drugging children with them not knowing the effects of these drugs. Do you know what Aderol is? Do you know Ritalin? Do you know now that Ritalin is a street drug? Do you understand that?
Lauer: The difference is —
Cruise: No, no, Matt.
Lauer: This wasn't against her will, though.
Cruise: Matt, Matt, Matt, Matt —
Lauer: But this wasn't against her will.
Cruise: Matt, I'm asking you a question.
Lauer: I understand there's abuse of all of these things.
Cruise: No, you see. Here's the problem. You don't know the history of psychiatry. I do.
Lauer: Aren't there examples, and might not Brooke Shields be an example, of someone who benefited from one of those drugs?
Cruise: All it does is mask the problem, Matt. And if you understand the history of it, it masks the problem. That's what it does. That's all it does. You're not getting to the reason why. There is no such thing as a chemical imbalance.
Lauer: So, postpartum depression to you is kind of a little psychological gobbledygook —
Cruise: No. I did not say that.
Lauer: I'm just asking what you, what would you call it?
Cruise: No. No. Abso— Matt, now you're talking about two different things.
Lauer: But that's what she went on the antidepressant for.
Cruise: But what happens, the antidepressant, all it does is mask the problem. There's ways, [with] vitamins and through exercise and various things... I'm not saying that that isn't real. That's not what I'm saying. That's an alteration of what I'm saying. I'm saying that drugs aren't the answer, these drugs are very dangerous. They're mind-altering, antipsychotic drugs. And there are ways of doing it without that so that we don't end up in a brave new world. The thing that I'm saying about Brooke is that there's misinformation, okay. And she doesn't understand the history of psychiatry. She doesn't understand in the same way that you don't understand it, Matt.
Lauer: But a little bit of what you're saying Tom is, you say you want people to do well. But you want them do to well by taking the road that you approve of, as opposed to a road that may work for them.
Cruise: No, no, I'm not.
Lauer: Well, if antidepressants work for Brooke Shields, why isn't that okay?
Cruise: I disagree with it. And I think that there's a higher and better quality of life. And I think that, promoting — for me personally, see, you're saying what, I can't discuss what I wanna discuss?
Lauer: No. You absolutely can.
Cruise: I know. But Matt, you're going in and saying that, that I can't discuss this.
Lauer: I'm only asking, isn't there a possibility that — do you examine the possibility that these things do work for some people? That yes, there are abuses. And yes, maybe they've gone too far in certain areas. Maybe there are too many kids on Ritalin. Maybe electric shock —
Cruise: Too many kids on Ritalin? Matt.
Lauer: I'm just saying. But aren't there examples where it works?
Cruise: Matt. Matt, Matt, you don't even — you're glib. You don't even know what Ritalin is. If you start talking about chemical imbalance, you have to evaluate and read the research papers on how they came up with these theories, Matt, okay? That's what I've done. Then you go and you say where's the medical test? Where's the blood test that says how much Ritalin you're supposed to get?
Lauer: It's very impressive to listen to you. Because clearly, you've done the homework. And you know the subject.
Cruise: And you should. And you should do that also. Because just knowing people who are on Ritalin isn't enough. You should be a little bit more responsible in knowing really —
Lauer: I'm not prescribing Ritalin, Tom. And I'm not asking anyone else to do it. I'm simply saying, I know some people who seem to have been helped by it.
Cruise: But you're saying this is a very important issue.
Lauer: I couldn't agree more.
Cruise: It's very — and you know what? You're here on the "Today" show.
Lauer: Right.
Cruise: And to talk about it in a way of saying, "Well, isn't it okay," and being reasonable about it when you don't know and I do, I think that you should be a little bit more responsible in knowing what it is.
Lauer: But —
Cruise: Because you communicate to people.
Lauer: But you're now telling me that your experiences with the people I know, which are zero, are more important than my experiences.
Cruise: What do you mean by that?
Lauer: You're telling me what's worked for people I know or hasn't worked for people I know. I'm telling you, I've lived with these people and they're better.
Cruise: So, you're advocating it.
Lauer: I am not. I'm telling you in their case, in their individual case, it worked. I am not gonna go out and say, "Get your kids on Ritalin. It's the cure-all and the end-all."
Cruise: Matt, but here's the point. What is the ideal scene for life? Okay. The ideal scene is someone not having to take antipsychotic drugs.
Lauer: I would agree.
Cruise: Okay. So, now you look at a departure from that ideal scene, is someone taking drugs, okay. And then you go, okay. What is the theory and the science behind that, that justifies that?
Lauer: Let me take this more general, because I think you and I can go around in circles on this for awhile. And I respect your opinion. Do you want more people to understand Scientology? Would that be a goal of yours?
Cruise: You know what? Absolutely. Of course, you know.
Lauer: How do you go about that?
Cruise: You just communicate about it. And the important thing is, like you and I talk about it, whether it's okay, if I want to know something, I go and find out. Because I don't talk about things that I don't understand. I'll say, you know what? I'm not so sure about that. I'll go find more information about it so I can come to an opinion based on the information that I have.
Lauer: You're so passionate about it.
Cruise: I'm passionate about learning. I'm passionate about life, Matt.


text:
Podcast: Baby Boomers Redefining Traditional Retirement
The baby boomers generation, comprised of about 90 million people, are beginning to head in retirement, but where are they headed?
In this week's edition of the AZ Business Magazine's podcasts, we'll take a look at not only where the baby boomers will take up residence, but also how this transition into retirement looks, as well as the economical impact it can have in Arizona.
Starting back on January 1, 2011, 10,000 baby boomers will reach the age 65 every day for the next 19 years.
But the baby boomer generation is beginning to redefine how the public sees traditional retirement. According to a survey from the AARP, about 40 percent of baby boomers plan to continue to work until they drop.
It is evident that this new approach to retirement is filled with a generation of citizens looking to live an active lifestyle, and retirement communities filled with amenities can provide exactly what baby boomers are looking for.
With Arizona's ideal weather and land to build on, new communities will being to take advantage of this new, in-demand market.
But how does this help our economy?
Baby boomers will begin to move to the Valley to call it home for retirement, and while doing so, they will begin to spend money, putting more into our economy; more people equals more demand for businesses and goods.
But what happens when the baby boomer community is gone? Will we still need these communities that were built to meet their needs? Or will businesses and communities have to close up shop once the demand is done?
This week, I spoke with Deborah Blake, vice president of marketing for Robson Resort Communities, about why the baby boomers are so interested in these active, adult living lifestyle communities and what we can expect to see here in Arizona as a result of that.
Also, Joe Scarp, owner and broker of Better Homes and Gardens Real Estate Phoenician Properties, called into the podcast to shed some insight on what kind of real estate trends we can expect here in Arizona and how the baby boomers will provide an impact on the state's economy.
Hit play below to tune into this weeks podcast about the baby boomers generation, and don't forget to leave a comment!


text:
There are a lot of wine grapes that don't get their due but there are five that I think should get some more respect. And I'm going to do something about it by not just pointing them out here but also reviewing wines made from these grapes on the blog and podcast.
The wine world has become so fixated on Cabernet, Pinot Noir and Chardonnay that other grapes that make distinctive wines seem to get lost in the shuffle. Sure, there are hundreds of wine varieties and they can be difficult to remember but by going outside the lines a bit in a good wine store you can find some great wine experences and values.
So here are my top 5 underdog wine varieties for your consideration:
- Aglianico – Italy has hundreds of great wine grapes but it seems only a few make the worldwide stage. And as great as Nebbiolo and Sangiovese are, there are equally interesting wines made from many other grapes in the country. One of my favorites is Aglianico grown mostly in the Basilicata and Campania regions (a few are also growing this variety in California). This is an ancient grape prized in Roman times as Falernian, their equivalent to First Growth wines of France today. And it's easy to see why this was so popular back then as the wine today is very fragrant and earthy with plum and chocolate flavors, supple tannins and plenty of acidity to match with food.
- Torrontés – The white signature grape of Argentina, this variety is set to do for whites what Malbec did for reds in that country. A fusion of the characteristics of Viognier, Muscat and Gewürtztraminer, Torrontés makes a statement all it's own. The dry and aromatic wines made from this grape in Argentina make a great pairing with spicy Asian foods and seafood. I really think this is a breakout variety that could develop a mainstream following soon.
- Charbono – A variety with a bit of an identity problem, this grape grown in California is not related to the variety grown in Italy of the same name (which is actually Dolcetto). But it is the same grape known as Bonarda grown in Argentina. DNA testing confirmed it was actually the obscure Corbeau grape found in Savoie. Whatever it's called, the wines made are big, tannic and fruit-forward similar to Barbera with a bit more earthiness and acidity.
- Palomino – The white grape of Sherry, Palomino can be made in many styles from the fresh Fino, to nutty Amontillado to rich and dry Oloroso. It can also be sweetened to make those Cream Sherries that used to be so popular back in the day. Sherry seems to be mired in the "acquired taste" category here in the U.S. but I'm hoping to find some examples to review here that might change your mind.
- Carignan – Probably the most popular grape in my roundup, Carignan (also spelled Carignane) is grown around the world and makes hearty, tannic wines of deep color. A classic workhouse grape, Carignan gets little respect on it's own but when blended can produce wines of great distinction. There are several styles of these blends but the most successful seems to be the Rhône style with Syrah, Grenache and Mourvèdre or the "Mixed Blacks" style popular in California where Zinfandel and Petite Sirah are often included and co-fermented.
So there you have it, five grapes that deserve more respect. I'll be featuring these in reviews and podcasts over the next several months. And be sure to add your own underdog wine varieties in the comments.


text:
Via The Economist, a report on Somalia:
A SOOTY new shadow has been cast over Somalia's port city of Kismayo since the militias of the violent Islamist movement, the Shabab, were chased out two months ago. Piled up all over the quay and at the entrances to the city, which is the economic hub of southern Somalia, are dark towers of sacks that locals are calling "skyscrapers of charcoal".
For the past seven months the UN has banned the export of the black stuff. Its trade was an economic mainstay of the Shabab when it controlled Kismayo, earning as much as $50m a year in the taxes levied by the militia, according to the UN. The charcoal business has in any case devastated Somalia's mangrove forests. During the embargo, the kilns kept burning and a vast stockpile was amassed. Since the end of September, when Kenyan forces under the banner of the African Union Mission in Somalia (Amisom) took control of the city, local pressure to lift the ban has grown.
The question of what to do with the charcoal, perhaps worth $40m, could affect the fate of Somalia's new government. Somali businessmen, who want to load the sacks onto waiting ships and sell them in the Gulf states, argue that "you can't turn charcoal back into trees". Others say the traders will turn back to Shabab if they cannot sell their wares. Indeed, quite a few of them still support the Islamists anyway.
Somalia's new president, Hassan Sheikh Mohamud, a civil-rights man whose election has prompted hopeful talk of a "Somali spring", is trying to stop the export. He wants time to put in place and bolster new port authorities to channel revenues back to the central bank that was emptied by the outgone corrupt regime. If the new man cannot extend his writ to Somalia's second city and his opponents get fresh funds, his government will lose authority almost before its reign has begun.
With a coastline of 2,500km (1,553 miles) enwrapping the Horn of Africa, any effective Somali government needs to control its ports, which served as entry points for the weapons and contraband that sustained both the warlords and the Shabab. Under their rule, Kismayo traders bought sugar, which was smuggled into northern Kenya, and sold charcoal. But this lucrative contraband trade was shut down by an international blockade of the port during the battle with the Shabab.
Influential Kenyans now want to reopen it. Kenya's intervention in Somalia has been fostered by two prominent ethnic-Somali Kenyans, Farah Maalim Mohamed, now deputy speaker of Kenya's parliament, and Mohamed Yusuf Haji, Kenya's defence minister. Their allies in Somalia's Ogadeni clan ran the Ras Kamboni militia that played a big part in pushing out the Shabab. The militia's leader, Ahmed Mohamed Islaam (known as "Madobe"), now expects his pay-off with charcoal, cash and control of a new semi-autonomous state to be called Jubaland. "Promises have been made," says a diplomat in Kenya's capital, Nairobi. A dozen ships laden with charcoal have already sailed, according to sources in Kismayo's port.
At present the port is run by a chaotic security committee on which Kenyans, Ethiopians and several competing Somali clan factions all joust. A presidential delegation from Mogadishu, Somalia's capital, up the coast from Kismayo, was turned away when it tried to visit. At a recent meeting of the UN Security Council, Kenya, along with other governments from the region, argued in vain for the arms and charcoal embargoes to be lifted.
The two main taps that have fed corruption in Somalia have been smuggling and foreign aid. For the first time in many years an administration in Mogadishu seems willing to let foreign donors have a measure of joint control over spending. The new government also wants America and Britain, which have paid for much of Amisom's war on the Shabab, to use their influence to restrain the charcoal-trading Kenyans. "If they're going to allow it all to go back to business as usual," says a member of Somalia's fragile new government, "what have they done all this for?"


text:
University of California President Mark Yudof announced Friday that he is retiring in August after five years at the helm of the school system.
Yudof, who cited health issues and the need for "fresh leadership" as reasons for his decision, said he was stepping down effective Aug. 31 and plans to teach law on the UC Berkeley campus.
"The prior 18 months brought a spate of taxing health issues," Yudof said in a statement today. "Though these challenges have been largely overcome, I feel it is time to make a change in my professional lifestyle."
When Yudof took his position as president in March 2008, the university and state were faced with a major budget crisis due to a declining economy. His tenure has been marked by staff and faculty furloughs, rising tuition and budget cuts.
Yudof said that while the university is not entirely in the clear, it now appears to have "weathered the storm."
Among other improvements, voters passed Proposition 30 last November, a temporary tax increase on higher earners to fund education.
"It is important to note that we–members of the entire UC community–have made it through this rough passage with our fundamental attributes intact," Yudof said.
Yudof, a Philadelphia native, previously served as chancellor of the University of Texas system and as president of the University of Minnesota system. Before that he was a faculty member and administrator at the University of Texas for 26 years.
Yudof's departure drew criicism from at least one source–state Sen. Leland Yee, D-San Francisco/San Mateo.
"Unfortunately, under President Yudof's leadership, students and workers unfairly suffered while top executives got wealthier," Yee said in a statement. "To make matters worse, Yudof leaves the university with a $1 million pension that will be paid on the backs of students and taxpayers."
Yee called for the university's Board of Regents to make a transparent search for the new UC president with the input of students, faculty and workers, and to find a candidate who wants to "give back to the people of California" rather than demand "an extravagant salary and retirement package."
According to university officials, Yudof earns a base annual salary of $591,084. At the time of his appointment in 2008, his salary was below the midpoint salary set for the position by the Board of Regents and below the median salary for similar positions nationwide, officials said.
Yudof has not had a salary increase since his appointment, university officials said.
Want more news, sent to your inbox every day? Then how about subscribing to our email newsletter? Here's why we think you should. Come on, give it a try.


text:
From Design to Approval
Will your pressure equipment be able to stand up to the operating conditions it will face in the future? Take advantage of our experts' know-how in calculations and analytical expertise – ranging from design and production to conformity assessment. We support you with our extensive experience and state-of-the-art methods and tools. In addition, as a certified body for testing pressure equipment and simple pressure vessels, we are authorized to administer final acceptance and model type approvals on individual pieces of equipment.
Benefits at a Glance
When you choose TÜV Rheinland as your partner for the calculation and testing of pressure equipment, you can:
- Optimize your processes
- Guarantee reliable operation of your products
- Ensure that your products comply with regulatory requirements
Our Range of Services
Our experts in plant equipment and steam and pressure vessel engineering support you across the full range of activities, from design to assessing the conformity of your pressure equipment with applicable regulations. Our services include:
- Needs-based calculation and analysis during the design phase
- Strength calculations and verification analyses in accordance with Simple Pressure Vessels 87/404/EEC
Our Services to Test and Approve Pressure Equipment
As a body officially certified to test and approve pressure equipment and simple pressure vessels, we offer the following services:
- Preliminary computational checks
- EC design proposal reviews, EC model type reviews, and acceptance of individual pieces of equipment
- Certification of quality assurance systems in compliance with the Pressure Equipment Directive
- Conformity certification and CE stamp of approval
- Combined final acceptance as an authorized inspection agency in compliance with the European Pressure Equipment Directive, including inspection prior to commissioning
- Final acceptance and inspection of components
- Construction monitoring
- Project management


text:
Rep. Darrell Issa blasted President Barack Obama's nomination of B. Todd Jones to head the Bureau of Alcohol, Tobacco, Firearms and Explosives as a "slap in the face" on Jan. 18 — less than a month after Issa appeared to endorse Jones for the job.
Issa, chairman of the House Oversight and Government Reform Committee, said in a statement Jan. 18 that Jones' nomination is "saddled by a string of bad decisions related to the agency's greatest recent failure," a reference to the botched "Fast and Furious" operation in which the ATF lost track of thousands of guns it had sought to trace to Mexican drug cartels. Two of those guns later turned up at the murder scene of Border Patrol agent Brian Terry in Arizona.
Jones, who has been the agency's acting director since August 2011, "was at the helm of ATF as many troubling problems from the fallout of Operation Fast and Furious festered," said Issa, who has led the long-running congressional investigation into the operation. "His specific decisions on a number of Fast and Furious related issues raise concerns about his judgment and ability to lead the agency."
"Because of the numerous ATF mistakes during his tenure as acting director pertaining to Fast and Furious," the California Republican added, "his nomination is a slap in the face to the family of fallen Border Patrol agent Brian Terry, Mexican citizens whose murder has been linked to Fast and Furious weapons and ATF whistleblowers whom he failed to support."
Issa's statement, however, is a departure from comments he made in an interview with CQ Roll Call on Dec. 20, when he was asked about Obama's call for a permanent director for the agency as part of a broader series of gun control efforts. The ATF has not had a permanent director in the six years that the position has required Senate confirmation. But the Dec. 14 Connecticut school shooting has refocused attention on the beleaguered federal agency charged with regulating and inspecting firearms dealers.
During the Dec. 20 interview, Issa said that questions about Fast and Furious are interwoven with the agency's leadership, particularly after Obama claimed executive privilege to withhold documents related to the operation that Issa's committee has been seeking. But Issa also indicated that Jones — who simultaneously works as a U.S. attorney in Minnesota — should devote more time to leading the agency.
"As long as the president asserts executive privilege to cloud the whole question of failures at the ATF, I don't think he stands on high ground to have a Senate-confirmed permanent director," Issa said. "Ultimately, he should have the U.S. attorney who is acting [director] quit his day job back home and work 100 percent on the ATF."
Becca Glover Watkins, deputy communications director for the Oversight and Government Reform Committee, said Jan. 18 that Issa's earlier comment was not intended to be a "broad, sweeping" statement about the agency's leadership and that the chairman instead was drawing attention to the fact that Jones now performs two demanding jobs simultaneously.
"Whoever is at the head of the ATF needs to be doing it full time," she said.
Issa is not the only influential member of Congress who has concerns about Jones' nomination to the ATF. Sen. Charles E. Grassley of Iowa, the top Republican on the Senate Judiciary Committee, raised questions about Jones' ties to Fast and Furious after Obama announced the nomination as part of the gun control proposals he outlined Jan. 16. In selecting Jones, Obama abandoned his previous choice for the job, Andrew L. Traver, whose nomination languished in the Judiciary Committee for more than two years.
"The new nominee, B. Todd Jones, is a familiar face to the committee, but his ties to the Fast and Furious scandal raise serious questions," Grassley said in a statement.
The Fast and Furious operation has been a confrontation point between the Obama administration and the Republican-led House, which voted June 28 to hold Attorney General Eric H. Holder Jr. in contempt of Congress for failing to turn over documents Issa has sought. Issa's committee is suing Holder in federal court in the District of Columbia to obtain a judicial order forcing the administration to release the documents.
In his statement Jan. 18, Issa identified six specific concerns that he has about Jones as a result of Fast and Furious. He accused Jones of failing to hold responsible officials accountable for the operation; failing to express support for whistle-blowers who called attention to it; demonstrating a "perceived hostility" to those whistle-blowers; "affording special treatment" to a supervisor involved in the operation; showing an "unwillingness to engage Congress"; and failing to "apply lessons" from the scandal.


text:
Rangers LW Nash not feeling heat of NY spotlight
If going from being a Columbus Blue Jacket to a Broadway Blueshirt carries a whole lot of pressure, Rick Nash isn't feeling it on his broad shoulders.
Welcome to New York, Rick. You're not in Ohio anymore.
The long sought-after Nash finally was corralled by the Rangers in a big offseason trade. New York is coming off a season in which it finished first in the Eastern Conference, but the Rangers fell short of the Stanley Cup finals with a conference finals loss to the rival New Jersey Devils.
Expectations were already high for this season that will finally get going Saturday night when the Rangers visit the Bruins in Boston.
Throw the 6-foot-4 Nash into a forward mix that also features high-scorers Marian Gaborik and Brad Richards, and it's hard not to view the Rangers as being as serious a Stanley Cup threat as there is out there.
''I couldn't think of a better situation than to come here for my career,'' said Nash, who spent his first nine NHL seasons with Columbus. ''I'm looking at it now and I'm happy I got the chance to do it and I didn't spend the time in one place my whole career.''
Especially in the shadows of Columbus.
During his time with the Blue Jackets, Nash reached the playoffs only once - a quick, four-game appearance in 2009 when he put up one goal and two assists in a sweep at the hands of the eventual Western Conference-champion Detroit Red Wings.
Nash can hardly be blamed for the Blue Jackets' failures. He put up 289 goals and 547 points in 674 games - including two 40-goal seasons and five others in which he netted at least 30.
New York gave up key forwards Artem Anisimov, Brandon Dubinsky, two other players and a first-round pick to bring the five-time All-Star to the Rangers.
The move from Columbus to the spotlight of the Big Apple hasn't rattled the Ontario native a bit during the abbreviated one-week training camp.
''This is great,'' Nash said. ''This is what I grew up with in Toronto, where hockey is a big deal. It's a top-four major sport, and this is what I love. This is what I dreamed of when I dreamed of playing in the NHL. The only time I got that was when I went back to Canada six times to play those teams, or play in the Olympics.
''I'm embracing it all. This is what I feel is hockey. This is part of it. It makes the game that much more special.''
That is exactly what the Rangers are counting on.
Certainly Nash is looked upon as a missing piece to a club that also boasts Henrik Lundqvist, the reigning Vezina Trophy winner as the NHL's top goalie last season, but he doesn't have to carry the burden of success alone.
That wasn't the case when he was captain of the Blue Jackets.
''As a Ranger you don't have to worry about 22 other guys,'' Nash said. ''I felt like I had a lot of weight on my shoulders to do that. Here, there are so many leaders, so many guys who have been captains or assistant captains with other clubs, and young guys who are respected in the dressing room.''
Throw in Richards' readying for his second season with the Rangers, a healthy Gaborik and defenseman Marc Staal, and solid captain Ryan Callahan, and New York seemingly has the pieces for another deep playoff run.
The trick is maneuvering through the lockout-shortened, 48-game season over 99 days and being in prime shape once the postseason arrives.
Richards is expected to center a line between Nash and speedy Carl Hagelin.
''I think it's a good pressure for us to realize that we have some things to accomplish,'' said Richards, who missed the first three days of training camp because of the flu. ''We're not just out here to try to make the playoffs or stay in the middle of the pack. We do want to push ourselves to be up top again.
''We have to realize everybody knows who we are and knows the expectations. We're not surprising anybody. We're going to have to play better than we did last year to even have a chance to have that record.''
New York went 51-24-7 last season, finishing just two points shy of Vancouver, which held the league's best record.
Lundqvist was stellar in going 39-18-5 with a minuscule 1.97 goals-against average in 62 regular-season games and then 10-10 with a 1.82 GAA in the Rangers' run to the NHL's final four.
While the Rangers have a strong backup goalie in veteran Martin Biron, clearly their fortunes rest on Lundqvist's shoulders more than anyone. The plan is for Lundqvist to again start about 75 percent of this season's games.
The Rangers are scheduled to have six sets of games on back-to-back days.
''It's back to routine,'' said Lundqvist, who didn't play in Europe during the lockout. ''It's almost like your life slowly starts to come back to you. It's been missing for a long time, but it's fun to be back, and start to feel the adrenaline and start to feel the pressure of performing and go out and try to reach your top level. It's a great challenge.
''I think everybody is enjoying themselves. We all missed this, you know? It's our lives. I miss everything about it, not only being on the ice. I miss being here, I miss being on the road, getting ready for games. It's just a big part of my life that's been missing. Now it's back.''
Every team will face the challenge of how to play a condensed season, one of which hasn't been seen since 1995 after another long lockout.
''To me there's no blueprint,'' Rangers coach John Tortorella said. ''I think the most important thing for the coaches is to have a really good pulse of the team and how they feel. Recovery is huge, and we've gone through the schedule three separate times as far as recovery time. So I'm going to take it day-by-day and see how our team is.''
The 30-year-old Gaborik could be primed for a big year after surgery to repair a tear in his right shoulder that hindered him during last season's playoffs. Gaborik played all 82 regular-season games last season - his third with New York - and scored 41 goals.
''I haven't been in a game situation, but it feels good,'' Gaborik said. ''This contact should get me ready. I don't have any hesitation; I'm not scared to get into battles or anything like that. Every year is different, but it's a short season, so you really have to start right from the blocks and maintain your body and focus in preparation for games and after games to recover yourself.''
The Rangers made other offseason moves in addition to Nash, losing rugged forward Brandon Prust but adding physical forward Arron Asham, along with Micheal Haley, Taylor Pyatt and Jeff Halpern.
''They're going to add a lot to this team in a lot of key areas,'' forward Derek Stepan said.
None more important than landing the super prize of Nash.
''The big kid on the block,'' Stepan said, ''he brings so much to the table.''


text:
Comic book series : Top hats and flappers
Top hats and flappers
In the 1920s there was a group of popular, irreverent illustrators/cartoonists who worked for the emerging humor magazines Judge, College Humor, Ballyhoo and Life. These artists attempted to capture the verve and excitement of their times with an energetic line and frenzied pen and ink panels containing multitudes with the settings and dress — downtown speakeasy or uptown Stork Club, hot jazz bands or windy jump seats, slinky dresses set against top hat and tails — just as revealing as the lost souls of the Lost Generation. Of these young ink-slingers, the one who came closest to capturing this white-hot age was a handsome man out of Omaha and Chicago named Russell Patterson. Unlike most of his contemporaries, Patterson didn't vanish after the Stock Market Crash in 1929. He just found new ways to keep his high style in front of a public desperate for light entertainment — in newspaper strips, magazine covers, posters, costumes and set designs for Hollywood and Broadway, amusement parks to WAC uniforms, all the way to the Atomic Age. One of the most influential artists of his generation, Patterson's impact spanned decades. Along with an introductory essay by illustration art historian Armando Mendez, this volume showcases Patterson at his pinnacle, featuring many of his most important and dynamic magazine covers and illustrations.


text:
Cirilia took some intriguing shots at our recent Knitbits photo shoot.
3 thoughts on "forward glance"
Great pictures! Love love love the curlers! Where is that beautiful location you used? Lovely gardens and buildings!
Just wanted to let you know how much I enjoy your blog. Also, I look forward to getting my "KnitBits" every Friday!! Please don' t stop them. Nora and Cirilia are just meant to be together and I can't wait to see what you two have in store for me each week. Thank you so much for taking the time out of your busy work weeks to share with us.
I'm guessing Slater Mills in Pawtucket, RI, was the photo shoot site. Thanks–these were fun to see.


text: You can almost hear the hint of desperation in Matt Holton's voice.\n\n\nHolton, senior vice president and group head for digital architecture at MasterCard, is speaking to a roomful of marketers at GrowthBeat, a tech marketing conference in San Francisco this week. He's on a breakout panel entitled, "1,400 marketing tech vendors! How to select technology without dying trying."\n\n\n"It's better if you bring [IT] in early, at the beginning," Holton says.\n\n\nHolton's words bespeak a power shift in the executive suite, from the CIO to the CMO. Today, CMOs are next in line for the CEO post. A Forrester survey shows companies going all out driving revenue and improving the customer experience, and the CMO is the tip of the spear. Marketing has never been closer to the revenue pipeline or product development.\n\n\nIf marketing needs some cutting-edge technology, the CMO will probably get it.\n\n\n[ More on the CMO Role ]\n\n\n[ More on the CIO Role ]\n\n\nAnd there won't be a lack of marketing tech vendors to choose from, either. As the title of the panel says, there are 1,400 marketing tech vendors. Anywhere from 300 to 500 marketing tech startups jump on the scene every year, says Travis Wright, a business journalist at Technorati and the panel moderator. The handful of acquisitions and annual die-offs pale in comparison to the number of new marketing tech vendors.\n\nVendors Sidestepping the CIO\n\nTaking advantage of the CMO's tech buying power, most of these vendors pitch marketing pros directly. Only a few years ago, tech vendors would have been blackballed for doing an end-run around the CIO. Now IT executives like Holton are in the unenviable position of pleading with vendors and marketers to involve them in the sales process.\n\n\nYet marketers would be wise to involve IT when purchasing and using tech, says Rebekhah King, director of customer engagement at Cox Media Group and a panel speaker.\n\n\nKing's opinions carry exceptional weight. She spent many years in marketing and admits marketing is where her heart lies. Only recently has King joined the techie ranks, at one point joking that she watches Star Trek: The Next Generation reruns to up her tech cred.\n\n\n[ Related: CIOs and CMOs Suffer From Failure to Communicate ]\n\n\nA technology architect like Holton can be a marketer's best friend, King says. An architect will know how new technology will impact other parts of the company and can warn of impending disasters. Tech brought on without IT's stamp of approval can cause huge problems later, in the form of rip-out-and-replace migrations, integration headaches and wasted dollars.\n\n\n"Both sides of the conference table burn on that," King says.\n\nSometimes Rogue Works\n\nOn the other hand, King understands that marketing and IT often operate under different timetables. Marketers must seize opportunities in a constantly shifting market landscape and need new technology to do it, while IT is more conservative and takes a long-term approach to tech projects. This has led to marketers making tech purchases behind IT's back, known as rogue or stealth tech.\n\n\n[ Slideshow: 10 Biggest CIO-CMO Relationship Hurdles ]\n\n\n"There's a time and place for rogue," King says.\n\n\nBut King quickly points out that "rogue" isn't necessarily a bad thing. CIOs can foster innovation by giving a rogue a place to live, she says. The middle ground just might be traditional pilot projects that IT uses to test technology before rolling it out en masse. Marketers can use the pilot project model to get their new marketing tech up and running quickly.\n\n\nWhile the CIO and CMO tend to operate with different speeds, King says, "It doesn't always have to be that way."


text:
Collection: Xti
Founded in Spain in 2000, Xti is now one of the most influential players in the field of women's footwear. With a background in production of footwear and accessories, the brand is growing rapidly, going from strength to strength every year. Xti's goal is to always be in line with the needs of the clients by designing shoes for young fashion fans that are ahead of the changing trends, at very competitive prices. Xti is the accomplice of fashionistas who like to look glamorous, urban and trendy ...without having to make the choice!
0 products
Sorry, there are no products in this collection