text:
Introducing: Restful Objects
- Share
- |
Read later
Reading List
Restful Objects is a public specification of a hypermedia API for domain object models. Version 1.0.0 of the specification has just been released and may be downloaded from here, and there are already two open source frameworks that implement the specification - one for the Java platform and one for .NET.
How does Restful Objects differ from other RESTful standards or frameworks - such as the JAX-RS (JSR311) for the Java platform, or Microsoft's Web API for .NET? While such frameworks typically help in abstracting away pure network issues, they don't ensure any uniformity in the structure of the resources defined to interact with different types of domain object. And they provide little or no support for what is arguably the most important principle of RESTful systems: "hypertext as the engine of application state", or HATEOAS. In plain language this means that it should be possible to access the entire functionality of the system just by following hypermedia controls (links) from a home resource. Perhaps the closest match to what Restful Objects is attempting is OData. However, the big difference is that while Odata is really targeted to CRUD (Create, Read, Update, Delete) functionality, Restful Objects provides access to the full behaviour (the methods) of the objects.
The new frameworks that implement the Restful Objects spec don't just make the task of writing a HATEOAS-conformant API to a domain object model easier - they actually eliminate the work altogether! You can literally take a domain object model - written as plain-old Java objects or plain-old C# objects respectively - and create the complete RESTful API to them in minutes.
Moreover because the resources and representations provided by these frameworks conform to the public specification, it means that a client written to work with a server running one framework will work with the other also. Our hope is that over the next few months we will see more server-side implementations of the Restful Objects specification (we know of at least one other party planning to do so). We're also starting to see the emergence of standard client-side frameworks to consume a Restful Objects API; more on that later.
Applicability and benefits
The Restful Objects specification is most likely to appeal to developers who use domain-driven development (DDD) and who therefore already have or are developing a domain object model, and who also want to provide some sort of RESTful API to this model. Our own experience of DDD involves very large scale domain object modeling [1, 4, 5], with the majority of the behaviour encapsulated as methods on the domain entities. We are looking forward to using Restful Objects to further leverage such domain model assets.
Apart from the enormous savings in effort, there are a couple of other benefits to be gained from using a framework that implements the Restful Objects spec:
- Testing. Since all business logic is expressed only in domain classes, such business logic may be tested using fast and cheap in-memory unit tests. In contrast, if a RESTful API is custom-written and tuned to specific use cases, then it can only be effectively tested through (slower) integration tests running across a webserver.
- Documentation. Because Restful Objects is driven from a domain object model, it can be documented using established techniques (eg UML, or simply Javadoc/Sandcastle). This is far preferable to inventing some new notation to explicitly document a hand-crafted RESTful API.
Before we go on, we should also say that Restful Objects is agnostic with respect to the semantics of the domain object model. So, whether you believe that domain objects should represent the entities of the business, or whether you believe that there should be a separate 'resource model' representing instances of use-cases, say - the Restful Objects specification is equally applicable. For simplicity, in this article we'll predominantly use examples that assume the former (domain objects as entities), but we'll revisit this topic later on in the article.
In the Restful Objects specification each domain object is a resource; for example the following URI addresses a customer with the Id of 31:
where ~ is the server address (such as
customers defines the type of object and
31 is the 'instance identifier' of that type. The spec doesn't define the format of this identifier; any unique string will do. Why the need for
/objects? This is to distinguish the resource from other top-level resources, including
services (singleton objects such as repositories and factories that have methods but no properties) and
domain-types (type metadata); each of these top-level resources has their own sub-resource structure.
Each object resource will have a number of sub-resources representing members of that object. So:
addresses a particular Customer's date of birth, while:
addresses the collection of Orders associated with the Customer. The table below shows the object, property, and collection resources mapped against the HTTP methods used to access them. Where no useful meaning could be assigned to a particular HTTP method then a 405 error is specified.
Object summary
Property details and value
Collection details and content
update or clear multiple property values
update or clear value
add object (if collection has Set semantics)
Delete object
clear value
remove object from collection
n/a - 405
n/a - 405
add object (if collection has List semantics)
The above analysis is hardly innovative - many bespoke RESTful APIs feature something similar. The Restful Objects specification breaks new ground, though, in applying the same approach to object 'actions' - meaning those of an object's methods that are to be accessible through the RESTful interface. To the extent that this is tackled at all in other designs (for example in [2]), it is usually to map an action's invocation to HTTP POST. Our objectives led us to distinguish between providing information about an object action - such the set of parameters required - and actually invoking the action. Thus, the URL:
describes an action that will retrieve the last order for customer 31, while:
is the resource to invoke this action.
We also realised that requiring all actions to be invoked with a POST was not making correct use of HTTP: what about idempotent actions, or query actions that just retrieve other objects (sometimes described as 'side-effect free')? The table below shows how we resolved this:
Object Action resource
Object Action Invoke resource
action prompt containing details such as parameters and HTTP method for invocation
Invoke - if the action is known to be query-only (side-effect free)
n/a - 405
invoke - if the action is known to be idempotent, but not query-only
n/a - 405
n/a - 405
n/a - 405
Invoke an action that is not known to be query only nor idempotent
In some domain models, most of the behaviour (business logic) is implemented on services, with domain entities acting as little more than data structures passed to and from the service actions. The Restful Objects specification copes well with this pattern; the only difference is that the URL would identify a service instance rather than a domain object instance. However, the spec copes equally well with a pattern where most of the behaviour is implemented as methods on 'behaviourally-rich' domain objects; services then play the much more minor role of providing access to objects (finding existing objects, or creating new ones).
Each resource returns a representation; the Restful Objects spec defines that these representations are in JSON (JavaScript Object Notation). For resources called with a PUT or POST method, a representation must also be provided as a body to the request, describing how the resource is to be modified.
The specification defines a few primary representations:
object(which represents any domain object or service)
list(of links to other objects)
action result(typically containing either an
objector a
list, or just feedback messages)
and it also describes a small number of secondary representations such as
home, and
user. Each of these representations has a formal media type, exposed in the HTTP
Content-Type header. For domain objects, this takes the form:
application/json;profile="urn:org.restfulobjects:repr-types/object"; x-ro-domain-type="http://~/domain-types/customer"
Formally, this is of type
application/json, with two optional parameters:
profile, and
x-ro-domain-type. These two parameters provide additional semantics to the consuming client, and can be thought of as layered one on top of another. At the lowest level,
application/json tells the client merely that the payload is JSON. For some clients, such as developer plug-ins to browsers, this is all the information that is required. On top of this, the
profile parameter indicates that the representation is of a domain object. Finally, the
x-ro-domain-type parameter indicates the type of the object: in this case a
Customer. A client might use this to customize the user interface, or just to verify that the representation returned is the one expected. Incidentally, the specification uses the
.x-ro- prefix to minimize namespace conflicts whenever there is no existing or draft standard that can be leveraged. This necessarily gives rise to a number of custom parameters and query strings; Restful Objects defines no custom HTTP headers, however.
In line with the HATEOAS principle, each representation contains links to other resources, and each of these links has a
rel parameter defining the nature of the relationship. The specification re-uses several IANA-defined
rel values (for example,
self, up, describedby), plus some custom ones. For example:
defines a link from an object representation to a resource for an action on that object. The prefix:
is sufficient for a generic client, while the additional parameter action - indicating in this case that this link is for the
placeOrder action - may be of use to a bespoke client.
Putting all the above together, the table below shows a typical flow through a set of resources to accomplish some user goal.
Go to the home resource
Home Page
Follow link to list of Services available
List (of links to Services)
Follow link to the ProductRepository service
Follow link to 'Find By Name' action
Action (to be rendered in the UI as a dialog)
Invoke this (query only) action with "cycle" as the parameter
Action result in-lining list of links to matching Product objects
Follow the link to one of the Product objects in the collection
Object (representing a Product)
Invoke the (zero parameter) action 'AddToBasket' on this object
Invoke the action 'ViewBasket...' on the BasketService
Action result in-lining list of links to Item objects
Modify the Quantity property on the item just added
Property repres'n with value=3
Delete a (previously added) item from the Basket
Server implementations
Earlier we mentioned two separate open source frameworks that implement the Restful Objects specification. Restful Objects for .NET is a complete implementation of the specification, in beta only because it makes use of the Microsoft Web API framework (part of ASP.NET MVC4 - in 'RC' stage at the time of writing). The second framework, Restful Objects for Isis runs on the Java platform; this framework is working, but currently implements an earlier draft of the specification and needs further development and testing before release. We are actively involved in the development of these frameworks.
With each of these frameworks, it is possible to take a domain object model, written as POCOs and POJOs respectively, and create a complete RESTful API conforming to the Restful Objects specification, without writing any further code. An online video recording (using the .NET framework) shows this being done in just a few minutes.
This is possible because both of the frameworks build upon existing frameworks that implement the naked objects pattern - whereby an object-oriented user interface is created automatically from a domain object model using reflection, with public methods made available (by default) as user actions. The new Restful Objects frameworks reflect over a domain object model in a similar fashion, but render the objects' capabilities as a RESTful API rather than a user interface. In both cases, they delegate to the existing frameworks (Naked Objects for .NET, and Apache Isis respectively) the responsibility for reflection, for object persistence, and other cross-cutting concerns.
The new frameworks both recognise some simple domain object coding conventions, and annotations ('attributes' in .NET). Any public method on an object, for example, will by default be made available as an action in the Restful Objects API, but this may be overridden by annotating the method as
Hidden. If an object defines a public method
foo([params]) and also a public method
validateFoo([params]), the latter will be recognised as providing logic for validating parameters supplied to the former before it is executed.
Both frameworks also provide fine-grained authorization based on the user's identity and/or roles. If, for a given domain type, the user is not authorized to view a given property, collection or action, then in the corresponding representations the links to that object member will never be rendered for that user. Were the user to attempt to gain access by constructing the URL for the resource directly, they would be returned a 404 error; if the user has permissions to view the object member, but not to modify it, then attempting the latter would return a 403.
The source code for Restful Objects for .NET can be downloaded from Codeplex or the framework may be installed as a NuGet package; Restful Objects for Isis may be downloaded as source code or installed through a Maven archetype.
For any developer already using Naked Objects for .NET or Apache Isis, the new frameworks mean that they can create a RESTful API to their existing domain models with literally minutes of effort. But our intent was always to appeal to developers with no knowledge of, nor interest in, the naked objects pattern, and we are indeed seeing interest from such developers.
Most of our development effort to date has been focused on the server side - the code that generates a Restful Objects API from a domain object model. We have also done some limited work on client applications that consume such APIs.
In one example, the client is a conventional web application (written using ASP.NET MVC), where the controller methods make calls to a Restful Objects API implemented on another server. We hope in future to develop a small client-side application library for making the calls to the Restful Objects server and for transforming the returned JSON representations into objects that can be manipulated by C# or Java, say.
The generic nature of the Restful Objects specification suggests another possibility: generic clients that can work, unmodified, with any domain model via the RESTful API. We are aware of three different open source generic clients already under development, and these are listed on the Restful Objects website. All of them are single-page apps, written in JavaScript and using existing libraries. The JavaScript code within of these generic clients could also be used as the basis for creating one or more custom clients also. The three generic clients have very different styles of user interaction. A screenshot from one of them - A Restful Objects Workspace (AROW), being developed by Adam Howard, is shown below:
(Click on the image to enlarge it)
Counter arguments
The idea of exposing domain entities via a Restful API is controversial. Some commentators have suggested that it is a bad idea; or that it creates security holes; others have even suggested that it is not possible to create a true Restful API that way. Let's look at those arguments in detail.
Rickard Öberg has asserted that exposing domain entities as resources "cannot be HATEOAS because there is no sensible way to create links between resources that expose the application state" [3]. But this is plainly not true: Restful Objects exposes entities as resources; is fully HATEOAS; and has very clear rationales for the links.
Jim Webber has asserted that even if is possible, it is a bad idea because this results in a tight coupling of client and server, whereas in a Restful system client and server should be able to evolve independently [6]. He and others argue that you should expose only ViewModels and/or objects representing use-cases, both of which should be versioned, and which effectively insulate the client from underlying changes in the domain model.
We suggest that this argument, while not totally wrong, is being applied indiscriminately. The truth, we believe, is much more nuanced: there are situations where this line of argument is valid, but many where it is not. Two factors need to be considered.
The first is whether the client and server are both under the control of the same party. For a publicly-accessible Restful API - such as one operated by Twitter or Amazon - then the server and clients are owned by (many) separate parties and here, we agree, that exposing domain entities is not a good approach. Restful Objects, however, can work perfectly well with view models and/or use-case objects in this case, and these patterns are discussed in more detail in the specification.
However, there are a great many potential uses of Restful APIs where client and server evolution are controlled by the same party - in the form of enterprise applications for primarily internal use. Here, exposing domain entities is not only safe, it is actually a good idea. Such applications, which fall into the category of 'sovereign' systems (as defined by Alan Cooper), typically need to give the user access to a much broader range of data and functionality than in a public-facing (or 'transient') application.
The second factor is whether the client is 'bespoke' (written specifically to work with a particular domain model) or 'generic' (capable of working, unmodified, with any domain model). To date, almost all clients consuming Restful APIs, whether for intranet or public internet, are bespoke - so there is a need to insulate them from changes to the domain model. But that is not true of a generic client, which will respond automatically to changes in the domain model. To date, few people have considered the possibility of generic clients, though, because there was no comprehensive standard against which they could be written. We suggest that the concept of a generic client is actually more in-line with the spirit of REST (and the letter of it too) than a bespoke client. After all, at one level, a web browser is just a generic client to a restful interface, operating at a document level. Restful Objects enables the idea of a generic client operating at a higher level of abstraction: that of a domain object model.
Portraying these two factors as a 2x2, as shown below, we can see that if you are dealing with an intranet application and/or a generic client, then exposing domain entities through a RESTful API is both safe and effective. Only where you are working on a public internet application and with bespoke clients is it necessary to heed the advice that domain entities should be entirely masked by ViewModels and/or use-case objects, to insulate clients from server changes.
Exposing domain entities is fine
Exposing domain entities is fine
Exposing domain entities is fine
Expose only versioned ViewModels and/or use-case objects
To reiterate: Restful Objects is equally applicable to all positions on this grid. The fact that the bottom-right corner has received most attention to date is, we suggest, more a reflection of the difficulties of building bespoke Restful APIs than an inherent limitation. Another common nostrum - that Restful APIs can only be built for applications that have a small, tightly-defined, state-transition diagram - is further evidence of people thinking only in that box.
Öberg has further suggested that exposing the domain entities as a RESTful API cannot work for a public application because of authorization issues, citing the example where access to a ResetPassword action may be regulated by role, but access to a ChangePassword action must be restricted to a specific user. This particular example is actually trivial to code in both of the Restful Objects framework implementations described above. We suggest that a better example for the point that he is trying to make would be access to a specific object instance, rather than a method. This is a common need in public-facing systems: for example where a user must be able to access their own ShoppingBasket, but not be able to access anyone else's ShoppingBasket just by guessing at the URL.
While neither of the two Restful Objects implementations currently support instance-based authorization per se, there is another perfectly viable solution to this problem. As we mentioned earlier, the form of instance identifiers in URLs is not prescribed in the Restful Objects spec. It follows that this part of the URL may be encrypted by the server, for example using a session-generated private key. Invoking a service action resource to return MyShoppingBasket might then return an object representation whose "self" link was:
The URL for the Total property on that shopping basket would therefore be:
So parsing of resource identifiers remains straightforward, but it would be effectively impossible to retrieve another Basket directly. Certainly this is less pretty, but it is worth pointing out that REST is not about creating 'pretty' URLs. As Tim Berners-Lee has stressed, apart from the server address, URLs should be treated as opaque; it's the "rel" value that matters. That's part of the point of HATEOAS.
In both of the two Restful Objects frameworks described in this paper we plan to make session-key encrypted instance identifiers as a configurable option..
Creating a RESTful API to a large enterprise system has, to date, been a very expensive exercise in development terms - requiring huge resources in design, development, testing and documentation. Using a framework that implements the Restful Objects specification means that the whole exercise becomes almost trivial - leaving the developers to concentrate their efforts where it is most needed - on the domain object model.
Moreover, the standardization of resources and representations encouraged by the Restful Objects spec opens up a huge opportunity for client-side libraries, that will work with any Restful Objects server, and even for completely generic clients, that will work for any application coded to the standard.
We hope you'll explore the Restful Objects specification and the framework implementations, and we'd be delighted to hear from anyone interested in writing a new open source framework or library designed to conform to the Restful Objects spec.
[1] Haywood, D, "Domain-driven design using Naked Objects", 2009, Pragmatic Bookshelf
[2] Masse, M. "REST API Design Rulebook", 2011, O'Reilly
[3] Öberg, R, "The Domain Model as REST Anti-pattern"
[4] Pawson, R. "Case Study: Large-scale pure OO at the Irish Government", QCon London 2011 presentation
[5] Pawson, R, "Naked Objects", 2004, PhD thesis, Trinity College, Dublin.
[6] Webber, J, "Rest and DDD".
About the Authors
|Richard Pawson has worked in IT for 35 years - claiming to have been the very first person in Europe to write and run a program in a Microsoft language. As well as periods spent in advanced robotics, toy design, and technology journalism, he was 14 years with Computer Sciences Corporation as Director of Research. His 2004 PhD thesis is the definitive reference on the 'Naked Objects' architectural pattern, and since then he has been Managing Director of Naked Objects Group. He lives in Henley-on-Thames, UK, in a house that he designed using Christopher Alexander's A Pattern Language.
Dan Haywood is a freelance consultant, developer, writer and trainer, specializing in domain-driven design, agile development, and enterprise architecture on the Java and .NET platforms. He's a well-known advocate of Naked Objects, and a leading committer on the Apache Isis project. Dan is the author of the Restful Objects spec, and has also written a number of books on DDD and OO. He lives near Oxford, UK.
Rate this Article
Hello stranger!You need to Register an InfoQ account or Login or login to post comments. But there's so much more behind being registered.
Get the most out of the InfoQ experience.
Tell us what you think
My humble opinion on the topic.
Alexandre Roba
Re: My humble opinion on the topic.
Richard Pawson
Very Cool
Adam Bell
Handling concurrency issues
Dan Haywood
Mark Davidson
No, RO is not an RPC system
Dan Haywood
Moreover, the way that you get to that URL is by following links, with the appropriate "rel" attribute (2.7 of the spec). In this way the spec defines a fully HATEOAS API.
Re: No, RO is not an RPC system
Mark Davidson
Re: No, RO is not an RPC system
Ryan Riley
RO only exposes the public properties of an object
Richard Pawson
Spiro - Single Page Interface for Restful Objects
Stefano Cascarini
Spiro will function as a generic client for any domain object model with a Restful Objects 1.0 API. The models (spiro-models.js) can also be used as the basis for building a completely custom UI - using standard backbone.js patterns.
This is a work in progress - it is far from complete - but the parts that are implemented work quite well. You can find the code and more details here: restfulobjects.codeplex.com/wikipage?title=Spir...
(If you are on the .NET platform, you can also install it as a 'pre-release' NuGet package: nuget.org/packages/RestfulObjects.Spiro/0.2.0-beta
Any information that can be named can be a resource
Dan Haywood
By that definition there's nothing wrong with the spec defining "the first name of a customer" as a resource, nor "the contents of a basket", nor, indeed "add to basket".
Re: RO only exposes the public properties of an object
Ryan Riley
Re: Any information that can be named can be a resource
Ryan Riley
The spec doesn't mandate that you expose a fine-grained domain model
Dan Haywood
As we discuss briefly in the article and the spec discusses in more depth (section 29, 33.3, 33.4, 33.5), there will be cases (internet, bespoke clients) when what should be exposed is a resource model that mediates to but does not expose an underlying domain object model. This is much closer to the style advocated by Oberg and Webber.
Even here, though, RO offers benefit: you can develop your resource models as pojos/pocos, which mediates to/from the underlying domain model. This resource model can be tested outside of a big web stack, and you save yourself having to ever go down to the lower level of abstraction (of JSON, HTTP headers etc etc). And, the REST API you get is going to be much more uniform than if you coded it up yourself.
Very Cool indeed
Jeroen van der Wal
From a RestfulObjects consumer
Adam Howard
The javascript frontend I'm working on needs to know one uri: the homepage resource. From there I can operate solely on rels and the defined media types[1].
So to take the table under the Links section (read .../services as urn:org.restfulobject:rels/services):
var ro = new RO.Client("/");
var services = ro.findLinkByRel(".../services").follow(); // follow() figures out the correct HTTP method
displayAsMenu will loop over each of the services and for each service it's member actions. Each action becomes a link in the menu that binds onclick to follow the .../invoke rel.
The user may decide to click on the "Find by Name" link under the Products menu. The representation of that action tells me I need to ask the user for a name.
After requesting the .../invoke rel with the name parameter (the invoke link has told me I can do a GET meaning that the operation is safe) it returns a representation of product 8071 in this case.
var result = anAction.findLinkByRel(".../invoke").follow(args);
The Content-Type of the response is application/json;profile="urn:org.restfulobjects:repr-types/object" so I know I should display the result as a domain object.
I'm not going to go through the whole table but you should get the idea. While the URI hierarchy may be important to providers of a RestfulObjects API, as a client developer I can happily live in HATEOAS land.
[1] roy.gbiv.com/untangled/2008/rest-apis-must-be-h...
Re: Any information that can be named can be a resource
Mark Davidson
Domain action resources are a more general abstracion
Dan Haywood
At the other extreme, there is advice to map everything in terms of state transitions of resource models (eg Webber's Restbucks article here on InfoQ). Nothing wrong with that for a public web api. The resources that represent these state transitions are much more akin to domain actions.
RO aims to support both of these approaches, to make it easy to expose either your domain objects, or domain services that act as a resource model in front of a hidden domain model. Either domain objects or services can expose arbitrary business logic through their actions, and these actions can have arbitrary pre- and post-conditions.
Re: From a RestfulObjects consumer
Dan Haywood
Re: My humble opinion on the topic.
Alexandre Roba
Valuable approach to exposing Domain Objects
Pedro J. Molina
The capability of consume data and use a generic client to render the UI is also a great feature, useful for some kinds of applications.
I have been working several years with object models and code generation to create server components and client ones. I have been exploring Web Services, REST, OData and different as ways of communicating service consumer with service producers. See InfoQ Multichannel UserInterfaces.
So, definitely, I am going to explore the applicability of Restful Objects to our domain. I see a great potential in Restful Objects for simplifying integration between systems, in the way it standardizes many aspects.
I have some questions about using RO in production systems:
- 1. How authentication is handled in/(hooked with) RO? Standard HTTP/S authentication?
- 2. When retrieving an object, all properties are returned always? Is there any mechanism available to limit or customize the amount of data (properties to be retrieved)? Different cases of use will have different information needs (aka DTO)
- 3. Is there a way to retrieve a direct object subgraph (sample: Invoice, Customer, Invoice Lines and related Products) (in order to avoid 1+N calls over the wire)?
- 4. When retrieving let's say "Country.Customers" is there any protection like a paging scheme to protect us from directly getting 1 million of objects and therefore degrade the performance of the system?
- 5. There are plans for advanced/dynamic queries over collection of objects? E.g: return the customers in Spain that have bought a given product X in the last 3 years.
I think that addressing these concerns enables RO to be used in production systems.
Stefano Cascarini
Re: Valuable approach to exposing Domain Objects
Richard Pawson
"1. How authentication is handled in/(hooked with) RO? Standard HTTP/S authentication?"
The RO spec does not mandate/assume any particular flavour of authentication - you can use whatever you would for any RESTful API.
"2. When retrieving an object, all properties are returned always? Is there any mechanism available to limit or customize the amount of data (properties to be retrieved)? Different cases of use will have different information needs (aka DTO)"
The domain object representation returns all properties that the given user is authorized to see. If you want to limit what is actually returned then you can simply return a 'view model', specific to that context. There is quite a bit on this within the spec. That said, though View Models can certainly be useful, the need for them is commonly overstated. Provided you can be sure that the representation only returns data that the user is authorized to see (which is the case) then in many cases, it may be much simpler just to customize which properties are actually displayed in the client.
"3. Is there a way to retrieve a direct object subgraph (sample: Invoice, Customer, Invoice Lines and related Products) (in order to avoid 1+N calls over the wire)?"
The Restful Objects 1.0 spec does not explicitly provide for eager loading, but there is a substantial discussion of the recognised need for this at the back of the spec, and it will almost certainly be added in v1.1.
"4. When retrieving let's say "Country.Customers" is there any protection like a paging scheme to protect us from directly getting 1 million of objects and therefore degrade the performance of the system?"
For the Restful Objects for .NET implementation, there is now such a guard. The default is 20, but you can override this globally. Right now if you want paging, you need to write actions that support it. But, again, it is likely that the next version of the RO spec will support paging explicitly - there is again a sketch of this in the last section of the spec.
"5. There are plans for advanced/dynamic queries over collection of objects? E.g: return the customers in Spain that have bought a given product X in the last 3 years."
Again, a likely future extension to the spec. You can certainly do such queries in the RO.NET implementation (using dynamic LINQ) - but it's not yet defined at spec level.
Re: Concurrency
Alexandre Roba
Earlier discussions illustrate the 2x2 in the article
Richard Pawson
Ryan makes the point that for the domain models he designs would not be suitable to be exposed as a Restful API - he wants a custom-defined Restful API - and so the value of Restful Objects is much lower. I think it would be fair to say that Ryan is describing is in the bottom-right hand corner of the 2x2 in the article - a potentially public-facing API where you don't have control of the client.
Dan makes the point that Restful Objects still works for this, and still adds value, even though that value might is not as great as in the other three. We know from personal experience that even with a 'dream team' of REST-heads and the best current tooling - writing custom RESTful APIs is extraordinarily labour intensive.
But what does concern me is that so many RESTful practitioners seem unable to imagine the other three spaces on that 2x2. There is huge potential out there for REST - much more than the narrow concept of REST that most practitioners advocate right now. But the reality is that it would be almost impossible to work in those spaces without something broadly like the Restful Objects spec and frameworks that implement it automatically.
Pedro (in another thread) has picked up on this. Organisations that do have good domain models (and, admitedly, that's not all that common) now have the potential to make those models accessible *within the intranet* via a RESTful API - both to facilitate integration between disparate systems, and to facilitate development of new clients. We know large organisations interested in RO on both counts. The point is that they could never consider doing this using a custom RESTful API - there would simply be too much effort involved in defining it, implementing it, and testing it.
Great stuff - possible application scenario?
Enrique Albert
Congratulations on the new API, it is great news to see the NO continuously adapting new features.
Can you indicate scenarios where you believe the Restful Objects API would be useful? If I have to develop an intranet solution, I can currently use the NO MVC, I can see the benefit of using the Restful Objects, for example, in system integration cases or if I had to develop a desktop client for example; that is, solutions that we normally use WCF services and DTOs; but, are there any other obvious scenarios besides those ones?
Other application scenarios
Dan Haywood
You mentioned system integration from a desktop client, which I'd see that more as two parts of the same app (with the client app being either bespoke or generic as fits). In domain-driven design (DDD) terms, that's one bounded context. But there's also system integration across bounded contexts. For example, one government department could invoke an RO API exposed by another government department. This would be a case where accessing the API through a resource model (bottom left of the 2x2) would be advisable.
Another obvious case is using the RO API to support multiple client apps, eg a desktop app, a mobile app, etc. Here we are back into one bounded context (both the clients and server are owned by one team), and so could expose the underlying domain model directly.
A slightly less obvious case is in migrating data; as Jeroen (above) mentioned, we're taking advantage of the RO API to start trial migrations of data from an existing system into a new Isis-based system. The RO API itself is throw-away, but the point is that it delegates to the main domain logic that we're building out. There's a bunch of benefits: the users get to validate the new system using data that is familiar to them, we get to validate our business logic, and we also get some stress testing for free.
One final use case is in supporting phased migration from an existing system to a new system, which might take a number of years. We can wrap the existing system in an RO API, and put an RO API around the new system also. Clients written to the RO API can then access either the old system or new; 301 redirects can be used to hide the fact as to where the business logic invoked is being accessed from: existing system or new.
Here's a few application scenarios
Richard Pawson
Here's a couple of application scenarios that I'm personally interested in - but I'm hoping others might contribute more:
1. As a lingua-franca for integration between multiple systems within an intranet. Great thing is these can be on different technology platforms and with different concepts of a domain model: one might be strongly object-oriented, one might be strongly service-oriented, and one might be little more than a wrapper onto a database.
2. As a way to facilitate the development of new single-page apps for a single server. I'm astonished at how easy this is now proving to be once you have a comprehensive Restful API that delivers a consistent (small) set of JSON representations. Stef's work on the Spiro viewer (see earlier posting) shows this: he has a small set of backbone.js model objects that correspond to the RO representations, and that can form the basis of either a generic client or a bespoke client.
3. Combination of 1&2. Dan proposed a very interesting pattern for this, described in the spec, and we have spiked it.
4. Your own point about building desktop clients. I know of one organisation looking to use RO as the basis for communications between its WPF rich client and the server.
Let's here some other ideas ...
Re: Here's a few application scenarios
Jacques Bosch
>4. Your own point about building desktop clients. I know of one organisation looking to use RO as the basis for communications between its WPF rich client and the server.
Perhaps there is another also, but I think we are the client that Richard is referring to. :)
We are in the early phases of building a complex enterprise system that will consist of many different projects. The core of this system is built on Naked Objects MVC. We have a WPF desktop application that forms part of the same domain. We are going to do a spike to let this application work with the same core domain exposed via RO and auto generated C# proxies, although the WPF UI will be bespoke, not generic. I'll report back when we have actually tried this.
We will also use RO to expose an API for our business partners to integrate with us.
So far we have found NO MVC extremely beneficial and I think the extra power and flexibility that RO for .Net will add to the toolbox is very exciting.
Thanks for the pioneering work!
Re: Any information that can be named can be a resource
Adam Howard
So, .../customers/31 is a thing, a .../repr-types/object. And .../customers/31/actions/lastOrder is a thing, a .../repr-types/action.
An action like lastOrder, or addToBasket, has a representation with information like it's returntype and required parameters. It can also tell us where to go when we want to know the result of invoking the action, which will be a noun, as well as which HTTP method is appropriate. In that case we follow the .../rels/invoke link. I wonder if changing the name of the rel to something more noun-like, .../rels/invocation or .../rels/action-result, would make it clearer of the difference between action metadata (.../repr-types/action) and the value of the invoked action (.../repr-types/action-result). I wasn't involved in the development of the spec but came to it recently and the community has been very receptive to input about changes and future needs to support client side applications. So maybe this is something that can be discussed more.
In the case of the other member types an object has: value properties, like a customer's name, reference properties, like a customer's billing address, or collections, like a customer's payment methods, they are all public getter methods on the domain object and getters share the semantics of being side-effect free and taking zero arguments. This means we know we can access their return value through a GET. It also means that in some cases we can even safely inline the value into the domain object representation. The RestfulObjects spec currently only defines this inlining for the simple value properties, but has a proposal (section 34.4) for extending the spec to allow inlining of references and collections, on demand.
The reality is that all of this data is the result of invoking methods. The customer representation having a "name" property means there was a public getName method and the value is the result of invoking that method. The extra step that RestfulObjects took was to figure out how we can reason about accessing the result of any public method on an object, not just those with getter semantics. If other APIs do handle this they almost always hard-code the HTTP method to POST, which violates [1].
[1] www.w3.org/DesignIssues/Axioms.html
Re: Earlier discussions illustrate the 2x2 in the article
Adam Howard
Suppose you walk into your favorite coffee shop and the line is long. You pull out your smartphone and go to the coffee shop's app, you tap the order button. You're then asked to choose what drink you want from a menu, then what extras you want in it, what size. You confirm your order, your credit card is charged, and in a few minutes your name is called out and you pick up your drink. The process you went through to order was very scripted: step 1, 2, 3, confirm.
Now suppose you're not sure what you want to drink, so you wait in line. When you get to the register you ask: what has more calories, a shot of caramel or a shot of chocolate? The employee doesn't know but they can look it up on their computer. Caramel has 250, chocolate has 200. Yikes. Now you ask, what extras do you have that are under 100 calories? Back to the computer. Cinammon and fat-free milk. Ok, I'll have a fat-free latte with extra cinammon. I have $1.27 on this gift card. Put the rest on my credit card.
The first scenario is a highly-scripted interaction that wants to guide the customer into placing their order as quickly as possible. This is a place where exposing a separate resource model is essential. The client may not be under your control and they don't fully understand your domain.
POST .../MobileOrder
"DrinkName":"Mocha Frappacino",
The second scenario, however, requires the cashier to navigate around the domain of coffee ordering to answer the customer's questions and charge their credit card correctly. Having access to the full glory of the domain model allows the cashier, who understands the domain, to navigate directly to the answer. The coffee shop will probably build both the client and server and they will evolve together.
GET .../extras/FindByName/invoke?Name=Caramel
GET .../extras/FindByName/invoke?Name=Chocolate
GET .../extras/FindByMaxCalories/invoke?Calories=100
"elements": [
"Name":"Fat-free milk",
I left out all of the hypermedia to make the above easier to read.
Richard Pawson
Re: No, RO is not an RPC system
Roberto Calero
~/objects/customers/31/actions/lastOrder/invoke => MVC'ish
Before arguing anything else... what's the 1st class citizen object for the above? Customer or Order?
Assuming it's Order then the url should be
which effectively identifies the last order for customer = 31. The resource as such is uniquely identified. You can apply a POST, PUT, GET etc to the above and it'll be the actual operation (not the url) the one providing the context.
~/x/y/action/sub-action/etc are MVC standards in the other hand used to identify which controller/action/etc is running a given piece of logic. MVC is not REST of course.
REST is nothing to do with pretty URLs
Dan Haywood
But if you did want a URL to be surfaced that looked similar to ~/objects/customers/31/lastOrder, you could model this responsibility (of a Customer knowing how to obtain its last Order) as a property rather than an action. In this case its URL would be ~/objects/customers/31/properties/lastOrder rather than ~/objects/customers/31/actions/lastOrder.
The consequence of modelling things this way is that the property would be eagerly evaluated (when returning the representation of the customer) rather than lazily evaluated (when invoking the action).
The Restful Objects spec is not based on MVC
Richard Pawson
the 'actions/lastOrder' is not specifying a controller action, it is specifying an action (i.e. a method) on a domain object (customers/31).
As it happens, the 'Restful Objects for .NET' implementation of the standard, as described in the article, does make use of ASP.NET MVC (in order to access the Web API framework), but it has just a single controller with a handful of generic methods - not a method for each of the actions that the domain model provides as you are inferring. The Restful Objects for Isis implementation is not, I think based on an MVC framework (though I'm not familiar with its internals and Dan might correct me on that).
Re: The Restful Objects spec is not based on MVC
Dan Haywood
The Restful Objects for Isis implementation is not, I think based on an MVC framework (though I'm not familiar with its internals and Dan might correct me on that).
You are correct: RO on Isis uses a JSR-311 framework (JBoss RestEasy).
Re: The Restful Objects spec is not based on MVC
Roberto Calero
Just to add to Dan's comments, Robert, the Restful Objects spec is not based on the MVC pattern - it makes no assumptions about the architecture of the server that implements the API.
Nobody has argued otherwise.
In the URL:
the 'actions/lastOrder' is not specifying a controller action, it is specifying an action (i.e. a method) on a domain object (customers/31).
There is not such a thing (in REST) like an action on a domain object. Furthermore, REST does not make any reference to "domain objects" but "resources" and the URL (actually URI) is the identifier for such resource. A REST operation (i.e. GET, POST, OPTIONS, etc) is performed on an URI and it's the operation the one providing context to it and not the URI.
In your example, ~/objects/customers/31/actions/lastOrder/invoke is MVC-ish (at best) since it makes a reference to a "hard-action" in the URI to provide context. Moreover, it IS NOT the identifier for the resource you're working on (LastOrder? customer?) since what you're identifying is the action (but again) not the resource. Identifying actions/operations is not REST.
It's not a discussion of pretty urls but just abiding to the concept of resource which is pivotal for REST.
Restful Objects spec defines resources for domain objects and their members
Dan Haywood
Per 184.108.40.206 of Fielding's dissertation, "any information that can be named can be a resource [such as] a temporal service (e.g. "today's weather in Los Angeles"). Our action resources are exactly the same thing.
Adam Howard made the observation that we ought to have used "/invocation" in the URL rather than "/invoke". We agree with that; it might have prevented some confusion.
With respect to "~/objects/customers/31/actions/lastOrder/invoke" having a reference to a "hard-action" to provide context, that isn't true. The context comes from the representation from which this link was obtained (and the "rel" of that link). The fact that "lastOrder" is part of URL is convenient for those who might want to build clients using templated URLs rather than using HATEOAS, but one can also write clients that strictly follow HATEOAS and treat the URLs as entirely opaque.
Re: Restful Objects spec defines resources for domain objects and their mem
Roberto Calero
Trust us, we *do* understand that REST relates to resources and representations.
I trust specs :-) RFC's are very trust-able. Humans sometimes aren't.
Restful Objects provides an automatic binding of these to an underlying domain model. When Richard says ".../actions/lastOrder/invoke" specifies an action, it's just shorthand for saying that it is a resource which addresses the result of invoking the lastOrder action on the underlying domain object.
That's cool for your framework and the compromises you've made for it. My discussion is not about your framework in specific but REST as purely described in the spec.
Per 126.96.36.199 of Fielding's dissertation, "any information that can be named can be a resource [such as] a temporal service (e.g. "today's weather in Los Angeles"). Our action resources are exactly the same thing.
Some agree, some do not.
Adam Howard made the observation that we ought to have used "/invocation" in the URL rather than "/invoke". We agree with that; it might have prevented some confusion.
Semantics really.
With respect to "~/objects/customers/31/actions/lastOrder/invoke" having a reference to a "hard-action" to provide context, that isn't true. The context comes from the representation from which this link was obtained (and the "rel" of that link). The fact that "lastOrder" is part of URL is convenient for those who might want to build clients using templated URLs rather than using HATEOAS, but one can also write clients that strictly follow HATEOAS and treat the URLs as entirely opaque.
IF the context comes from the representation or the "rel" of the link then you have a situation where your above uri just becomes inconsistent and confusing. .../invoke with OPTIONS? That'd be plain confusing. Using templated urls is just an implementation issue and URL's indeed should be opaque. In the above url, what's .../invoke doing? updating the last order? retrieving it? deleting it? Even if you change "invoke" by "invocation" the situation does not get any clearer and that's just a result of trying to make the url to identify the operation rather than the resource.
Re: Restful Objects spec defines resources for domain objects and their mem
Dan Haywood
you have a situation where your uri ["~/objects/customers/31/actions/lastOrder/invoke"] just becomes inconsistent and confusing. .../invoke with OPTIONS? That'd be plain confusing
I did consider using OPTIONS on "~/objects/customers/31/actions/lastOrder" as a way of obtaining the action "prompt" representation, such that GET/PUT/POST could be used against that same URI in order to invoke the action...
Even if you change "invoke" by "invocation" the situation does not get any clearer and that's just a result of trying to make the url to identify the operation rather than the resource.
... but it would seem that your point isn't specifically to do with how the RO spec defines its bindings from the domain model to RESTful resources, but rather the more fundamental question that as to whether an operation/action can be made available as a resource.
On that, I don't think we're ever likely to agree. As is clear from the article, RO came out of the naked objects movement, a principle being its support for behaviourally-complete objects, rather than simple CRUD systems. The key to that is exposing domain object behaviour through actions.
But I do thank you for your comments here. I'll also look into OPTIONS again. The RO spec is v1.0, but we will continue to evolve it based on feedback from implementors, users and from commentators such as yourself.


text:
The Columbia in Paris program located at Reid Hall, Columbia's Global Center in Europe, offers students an incredible opportunity to master French language skills by engaging in immersive academic coursework in a variety of majors while integrating into French culture. There are NEW opportunities to take Art or Music Humanities at Reid Hall starting Spring 2015. The equivalent of at least two years of college- level French is required to participate in the program.
At the recommendation of President Bollinger, the UCGT is pleased to add a teaching component to the World Leaders Forum available exclusively to undergraduate students. As part of this special initiative, the UCGT is hosting two pre-event workshops with faculty experts TODAY Friday, September 19th.
In This Issue: Sept. 15-19
- CCE Employer News - Learn more about our collaboration with the digital advertising and marketing company DigitasLBi.
- Announcements - Prepare for the CCE Fall Career Fair on Tuesday, and attend the fair on Friday.
- Calendar at a Glance: Sept. 15-19 - Hone your interviewing skills by scheduling a mock interview on Sept. 17, Sept. 23, or Oct. 1.
- LionSHARE Opportunities - Apply to work at the NBA, intern with an advertising agency, interview with The Boeing Company, and more.
President Lee C. Bollinger invites you to join him in welcoming global leaders to the 12th annual World Leaders Forum.
Please note the following:
Scientific Research Workshops
- Part I: What is Science Research?
- Friday Sept. 26th, 1:00-2:30 p.m., 401 Lerner – flyer can be found here.
- Part II: Research at Columbia: the What, When and How
- Friday Oct. 10th, 1:00–2:00 p.m., 401 Lerner
New Study Abroad Program in Istanbul Info Sessions Columbia Global Seminar: Byzantine and Modern Greek Encounters (9/18)
Columbia has launched a new spring semester study abroad program in Istanbul, building upon existing relationships with Boğaziçi University and the Columbia Global Center in Turkey. The program is anchored by two seminars, taught by Columbia Professors Martha Howell and Karen Van Dyck, that address the question of how, from the Middle Ages to the present, westerners have interpreted and incorporated features of Greek culture in Istanbul.
Come learn more about studying abroad in Kyoto! Students on the program Take advanced coursework in Japanese language at the 3rd, 4th & 5th year levels plus courses in Japanese studies. Additionally, students participate in a Community Involvement Project (do volunteer work, join a student club, or study a Japanese art with a mentor) and live with a homestay family. Need-based Scholarships available and vary between $500-$5,000.

subset: commoncrawl


text:
As the holiday season kicks off, it appears there will be no manger in Palisades Park, on the bluff overlooking the ocean in Santa Monica. But there also won't be anything else in the way of religious or anti-religious offerings for the holidays.
For six decades, the city had allowed an elaborate panorama of Nativity scenes to line Ocean Avenue. Last year, atheists insisted on equal access. Because the city was legally obligated not to consider content when it apportioned space -- even for the purpose of doling it out equally among applicants of different beliefs -- city officials resorted to a lottery. Atheists won 18 spots, Christians two, a Jewish group one. Christians, who for years had used 14 spots, were left unhappily to squeeze their display into two spots.
Not wanting to endure another controversial and costly lottery this year, the Santa Monica City Council voted in June to ban all displays in the park. But the Santa Monica Nativity Scenes Committee filed suit in federal court asking that the Christmas displays be allowed. A judge ruled Monday that the group could not install its display while the case is pending. (So possibly next year, depending on how the lawsuit is finally resolved.)


text:
"Flight," starring Denzel Washington as a pilot who saves almost all his passengers after a nearly miraculous crash landing, will be the closing night film at the New York Film Festival, organizers announced Thursday.
Directed by Robert Zemeckis, the Paramount Pictures film's supporting cast includes Melissa Leo, Kelly Reilly, John Goodman and Don Cheadle. It will screen at the New York festival on Oct. 14, and open in general release Nov. 2.
"Flight" marks Zemeckis' return to directing live-action films after a number of years on animated projects like "Mars Needs Moms" and "Polar Express." Previously, Zemeckis had hits with films including "Cast Away," "Forrest Gump" and "Back to the Future."
The New York Film Festival runs Sept. 28 – Oct. 14 at Lincoln Center. Organizers expect to announce more titles in the coming days.


text:
IT Management Slideshow: Social Media And Employee Recruitment: A Good Idea or A Waste of Time?
By Don Reisinger | Posted 05-02-2012
Social media sites serve many purposes. Your employees go onto sites such as Facebook and Twitter to communicate with friends. Your company may use to the sites for brand promotion and marketing, as well as to gather customer data. Like it or not, social media has become an integral part of our lives. Still, there are some uses for social networks that many companies look past. For example, CareerBuilder recently enlisted the help of Harris Interactive to poll more than 2,000 hiring managers and human resources professionals to find out how they might be using social media in the workplace to hire new employees. And although many of don't access the social Web for finding employees, those who do can gather serious insight into candidates. As a CIO who is likely faced with doing a fair share of IT hiring throughout the year, social media afford you opportunities to learn about job candidates before they even step in your door. You might even be surprised to find out what folks are sharing on social networks behind their employers' back.
Loading Comments...


text:
We all remember the book Sybil, right? I call this recipe "Chicken Sybil" because it's the "multiple personality" chicken, made in so very many different ways, all wonderful. It's so easy to make, the chicken turns out moist and juicy in the center, slightly crispy at the edges. The sauce is so variable, it starts with a creamy-mustard sauce then adds on-hand ingredients. I think you'll love Chicken Sybil, it's the "one way" I make chicken again and again, yet it never turns out the same twice.
"This sounds silly ... but ... [this recipe] changed my life!!" ~ Angela
"Chicken Sybil is pure genius." ~ Roberta
"I loved Chicken Sybil." ~ Colleen
"... absolutely delicious, elegant, and so easy." ~ Barbara
"My husband ... is so excited every time I make it. " ~ Dee
"This is my husband's new fave." ~ Cathy
"... to die for..." ~ Barbara
"... such a nice dinner. Delicious, company worthy sauce." ~ Julie
"It was delicious!" ~ LindaRuthC
"... tonight I made it with flounder. T'was wonderful!" ~ Ann
(Y-chromosomed readers: Skip straight to the recipe. This first bit requires X chromosomes for full comprehension.) Can a closet breed shoes at a rate challenging gravid guppies?
Think pumps and sling-backs and slides and mules and slip-ons and peep toes and lace-ups and ankle straps and monk straps along with flats, loafers, oxfords, kilties, tassels that sit beside ballerina shoes, Mary Janes and moccasins and high heels, tippy-toe heels, strappy heels, stilettos and kitten heels, dancing shoes, airport-friendly shoes, Saturday-morning errand shoes and clogs and crocks and platforms and wedges and espadrilles and that's before the racks of thongs and sandals and flip flops, ankle boots, snowboots, dressboots, cowboy boots, steel toes and sneakers, high tops, boat shoes, golf shoes, running shoes, walking shoes, hiking boots and beach shoes. And lest we forget, the comfy house slipper. Whew.
What does it say that we women recognize so many shoe designs, even without owning a pair? Can we list as many authors, composers or poets? What's so important about shoes that our brains catalog them?
So goes Chicken Sybil, the quick supper with multiple personalities and a variation for every occasion. It may be the most flexible, easy and delicious chicken supper, ever.
Time-to-table: 20 minutes
Serves 4 (easily adjusts to 1 or 2 servings)
- 1 tablespoon unsalted butter
- 4 boneless, skinless chicken breasts, about ¼ pound each
- Salt & pepper
- Handful of capers, sliced mushrooms, diced tomato, green onion, frozen peas, cooked bacon or your choice
- 1/4 cup chicken broth
- 1/4 cup cream or sour cream or fat-free half 'n' half
- 2 tablespoons good mustard
- 2 tablespoons orange juice concentrate (my favorite) or maple syrup, marmalade, tomato paste, salsa (pictured), barbecue sauce or your choice
CHICKEN Melt the butter in a large skillet on MEDIUM HIGH. (You may need two skillets to cook four servings at once.) Between two sheets of waxed paper, pound the chicken breasts with a rolling pin until about a half-inch thick. Season one side with salt and pepper, transfer to the skillet seasoned-side down (the meat should sizzle), then season the top side. Reduce the heat to MEDIUM, cook for 4 minutes on one side, then 3 – 4 minutes on the other side. Transfer to warm plates and cover with foil.
ADD-IN's Add the add-in ingredients (if any) to the skillet and stir 1 – 2 minutes until warm.
THE BASE SAUCE + SAUCE ADD-IN'S Add sauce and optional sauce add-in ingredients (if any) to the hot skillet, stirring to incorporate bits of chicken left in the pan. Let thicken slightly. Pour sauce over chicken. Serve and enjoy!
GET CREATIVE! Be creative with the variations. I've made this 20 times in a year, never once, twice, just by scrounging in the fridge beforehand. One summer, I taught a class where each of us cooked our own skillets of Chicken Sybil with a variety of ingredients. Favorite Add-In's and Sauce Add-In's included sun-dried tomatoes, frozen peas, fresh mushrooms, black bean sauce and fresh basil, also garlic and rhubarb jam. What variations have you tried? Leave a comment to inspire others!
More Quick 'n' Easy Chicken Recipes
More "Concept" Recipes to Make Again and Again, One Recipe, Many Variations
© Copyright Kitchen Parade 2007, 2012 (repub), 2013, 2014 (repub), 2015 & 2016
:-) Genie
I am a vegetarian and have been for most of my adult life. My husband and our young toddler are meat eaters. Whereas my husband had been content to eat meatless dinners most nights, we felt it was important when [the baby] came along to have meat much more often. I had been struggling to find meat recipes that would please both of them, with minimal luck, and then along comes Chicken Sybil. I have to tell you that both of them love it! I have prepared it at least once a week since it was featured in the Webster-Kirkwood Times, and each time they both clean their plates! I have varied it using the various optional ingredients that you suggested, and every time it has been a success. I have branched out as well with my own variations, such as some of the Penzey Spices blends (my husband's favorite is the Ozark Seasonings blend followed by the Bicentennial Rub), and feel so confident now in being able to prepare a delicious, quick, and healthy chicken dinner that has limitless possibilities. Thank you so so much for this.
I'm sooo glad that Chicken Sybil's making such a big difference in your life. It's my favorite recipe in almost five years of writing Kitchen Parade, a combination of speed, easy to cook for one or two, easy adaptability, healthfulness - and complete deliciousness!
Thanks so much for taking the time to write, truly.
Thank you for Kitchen Parade and for sharing all of your recipes and thoughts. It's my daily retreat!
Next time I think I'll use a little more cider and let it cook down, plus add the juices from the pork chops.
It's an idea I wouldn't have come up with if not for reading Kitchen Parade and A Veggie Venture. Thanks!
FYI, these are the ingredients I had on hand and chose:
minced onion and fresh sliced mushrooms sauteed for the first sauce
Second sauce:
home made chicken broth, frozen cranberries, lite sour cream, grainy mustard, BBQ sauce, orange marmalade, chutney, sf syrup
Post a Comment
Thank you for taking a moment to write! I read each and every comment, for each and every recipe. If you have a specific question, it's nearly always answered quick-quick. But I also love hearing your reactions, your curiosity, even your concerns! When you've made a recipe, I especially love to know how it turned out, what variations you made, what you'll do differently the next time. ~ Alanna


text:
OT: Reason(s) we hate Pam Ward
As we have all heard by now, Pam Ward will be calling the Michigan @ IU game this Saturday on ESPNU. I can't stand this women for many reasons so I thought it would be fun to see why everyone else also severely dislikes her.
I can't stand her because she totally kills the players names and couldn't diagnose a play if it was right in front of her face.
How about the mgocommunity?


text:
Scopolamine (Transderm Scop) is a patch
placed on the skin behind the ear. The medicine is absorbed from the patch
through the skin.
The action of scopolamine is not
completely understood. It is believed that scopolamine blocks signals from the inner ear to the brain. This reduces motion sickness, nausea, and
the urge to vomit.
Scopolamine is prescribed to prevent
nausea and vomiting caused by
motion sickness and vertigo.
Scopolamine can help prevent
vomiting caused by vertigo in most people.
Scopolamine can also reduce symptoms of motion sickness.1
All medicines have side effects. But many people don't feel the side effects, or they are able to deal with them. Ask your pharmacist about the side effects of each medicine you take. Side effects are also listed in the information that comes with your medicine.
Here are some important things to think about:
Call 911 or other emergency services right away if you have:
Call your doctor if you have:
Common side effects of this medicine include:
See Drug Reference for a full list of side
effects. (Drug Reference is not available in all systems.)
Dry mouth is common with this medicine. To help with dry mouth, you can chew sugarless gum, suck on sugarless candy, or melt ice in your mouth. If you continue to have problems with dry mouth after a couple of weeks, call your doctor. Dry mouth can lead to tooth decay and gum disease.
It is important to wash your hands with soap and water after placing or removing the patch. Otherwise, you might rub your eyes and get medicine in them, increasing the risk of side effects such as blurry vision.
Medicine is one of the many tools your doctor has to treat a health problem. Taking medicine as your doctor suggests will improve your health and may prevent future problems. If you don't take your medicines properly, you may be putting your health (and perhaps your life) at risk.
There are many reasons why people have trouble taking their medicine. But in most cases, there is something you can do. For suggestions on how to work around common problems, see the topic Taking Medicines as Prescribed.
If you are pregnant, breast-feeding, or planning to get pregnant, do not use any medicines unless your doctor tells you to. Some medicines can harm your baby. This includes prescription and over-the-counter medicines, vitamins, herbs, and supplements. And make sure that all your doctors know that you are pregnant, breast-feeding, or planning to get pregnant.
Follow-up care is a key part of your treatment and safety. Be sure to make and go to all appointments, and call your doctor if you are having problems. It's also a good idea to know your test results and keep a list of the medicines you take.
Complete the new medication information form (PDF)(What is a PDF document?) to help you understand this medication.
CitationsAdvice for travelers (2012). Treatment Guidelines From The Medical Letter, 10(118): 45–56.
Last Revised:
December 19, 2012
Healthwise Staff
Medical Review:
Anne C. Poinier, MD - Internal Medicine & E. Gregory Thompson, MD - Internal Medicine
This information does not replace the advice of a doctor. Healthwise, Incorporated disclaims any warranty or liability for your use of this information. Your use of this information means that you agree to the Terms of Use. How this information was developed to help you make better health decisions.
To learn more visit Healthwise.org
© 1995-2012 Healthwise, Incorporated. Healthwise, Healthwise for every health decision, and the Healthwise logo are trademarks of Healthwise, Incorporated.


text:
Hellboy: Sword of Storms (US - DVD R1)
Gabe Powers reviews the first animated instalment of Mike Mignola's Hellboy...
A folklore professor collects an ancient Japanese scroll and is unwittingly possessed by the ancient demons of Thunder and Lightning. When the possessed professor attacks an antique sword collector the Bureau of Paranormal Research & Defence quickly dispatches a team of agents to investigate. Team leader Hellboy (Ron Perlman) finds the cursed samurai sword the demons seek, and is transported to a supernatural dimension of ghosts, monsters and feudal mayhem. Now, while pyrokinetic Liz Sherman (Selma Blair) and aquatic man Abe Sapien (Doug Jones) search in vain for their friend, a lost and cranky Hellboy must find his way home, and stop the demons from escaping into our dimension.
Apparently it was animation week at the Powers homestead. After viewing some sub par animation ( The Invincible Iron Man), and some great animation ( Avatar: The Last Airbender), it's time for some slightly above average animation. In a happy little piece of happenstance (and a short tale entirely unrelated to the criticism of this film), I found this DVD on my doorstep (in the snow again) on the very Friday I was on my way to see Pan's Labyrinth. Inside the curiously lumpy envelope was a little Abe Sapien toy. Those living in the Twin Cities of Minnesota might know that this was significant because the man who played Abe Sapien (physically at least), Doug Jones, was in town to introduce Pan's Labyrinth, in which he played the title character. Isn't that cool? No, not so much? Well I thought it was pretty cool.
Hellboy is a great comic book character. Created by master and entirely original comic artist Mike Mignola, the character and his environment was really just an excuse for the man to tell stories in a pulp/mythological setting. Once the character found his voice (a grumpy one), the stage was set for one of modern comicdom's most unlikely success stories.
The recent theatrically released film, staring Ron Pearlman as the title character, and directed by the maestro of pulp imagery Guillermo del Toro (who also directed Pan's Labyrinth), by all logical means shouldn't have even been made by a major studio. Never the less, it was a modest financial success, and a sequel is now in pre-production. I reviewed the giant director's cut DVD as one of my first pieces for this site, and I like the film a bit more every time I see it.
There are so many adventures in the realms of pulp fiction, pop culture, and ancient mythology for Hellboy and the BPRD, that two theatrical films just weren't going to be enough, so Cartoon Network and a collection of other studios decided to hire the character's creator and the minds behind Jackie Chan Adventures (a surprisingly entertaining series), and Buzz Lightyear to make a few feature length animated adaptations. Hellboy: Sword of Storms is the first of these adaptations, and the creative team is off to a decent start.
The film's style reminds me of The Batman (not to be confused with Batman: The Animated Series) and Jackie Chan Adventures, both of which the production crew here had a stake in. Both series feature character designs by Jeff Matsuda, and Hellboy Animated designer Sean Galloway's style is similar, only texturally softer. The creative folks behind the show, including Mike Mignola, wanted the Hellboy animated universe to look very different from those of the comic and film universes. Mignola's style bares some influence on the show, and it would be cool to see his style animated (hold that thought, readers), but I have to agree with the redesign here.
The animation budget has some obvious limits, and the animation itself varies throughout, but the strong designs and art direction make up for a few recycled or skipped frames here and there. I can't fault the production on shortcomings because I know from the disc's extras that they didn't have the time or money to make a Disney level release.
The acting is unsurprisingly strong all around. Animation fans should know to expect good voice work from the likes of Ron Perlman, Peri Gilpin, and Phil LaMarr (though I bet no one will be able to guess what character he voices without checking the credits), and these standbys do not disappoint. The wildcards here are the live action film's actors Selma Blair and Doug Jones. Poor Doug Jones didn't get to voice his performance as Abe Sapien in the live action film (that job was handled by David Hyde Pierce, minus a credit). Jones proves here that he has a warm and amusing presence (he gets all the best lines) even when his lanky, real life frame is hidden from the camera. Blair has always been a decent actress, but has no inflection in her voice, and her performances really must be seen to be appreciated. Her attempts at adding life to her monotone are admirable, but the character ends up sounding as if she's being voiced by an entirely different actress.
The writing is where the problems come in. According to the commentary, the film was originally written to be much shorter. Entire subplots were added late in the game, and unfortunately it shows. Some of these 'additional scenes', most of which feature characters that aren't bright red, are actually the best in the film, but others are inorganic, and often these additional plotlines go nowhere. The films end is clumsy, sluggish and unsatisfying, and it loses so much of the essence of what makes the characters and universe so special.
All these shortcomings are forgivable because this is the first episode, time was short, and most animated good series tend to go through similar growing pains. I believe that time and practice will be good for these films (the second one is coming out pretty soon). Negative forces obviously hurt this one, but it still manages to be genuinely funny and original piece of entertainment. It's not too adult, not like the comic, but isn't insulting to adults either. There's some minor language here and there that makes the film more 'realistic' (honestly, when the end of the world is neigh, 'Darn it' doesn't quite cut it).
This appears to be an interlaced transfer, which means there is some combing, but it's kept to an even minimum. The overall clarity of the image is sharp, and the film is free of the edge enhancement that plagues other lower budget animated features. Depending on the brightness of a character in relation to its background, there is some occasional edge noise, mostly in cases of light on light. Hellboy's colour, red, varies throughout (on purpose, as red is a hard colour to set composition with), but is often blocky and noisy depending on brightness and frequency. The anamorphic enhancement is a big plus though, and generally speaking this is a very 'theatrical' presentation.
Hellboy: Sword of Storms comes outfitted with a very large Dolby Digital 5.1 soundtrack. There aren't too many overt moving sound effects, but all the channels are busy throughout. Dialogue is centred and clear, and Ron Perlman's gravely voice will give your subwoofer a decent workout. Monster noises and sound effects are of the sound bank variety, and cheapen the overall presentation a smidgen. The music is huge for being entirely keyboard based, and even strikes some original notes when not using the memorable Hellboy live action film's cues.
This is one of the more loaded single disc sets I've come across in a while, and probably the best treatment of an original TV animation on DVD I've ever seen. I recommend starting with the audio commentary, which features the film's two directors and creator Mignola. Tad Stones, the supervising director/producer rules the track, but is a joy to listen too. Stones is full of funs facts on the production, as is the other director Phil Weinstein, and both are not afraid to point out their shortcomings. It is this insistence on making the films missteps clear that convinces me that the next feature will be a step up. Mignola is mostly just funny, and spends a lot of time simply marvelling at the finished film, but is nice to have on hand for the greater questions about the character.
While watching the commentary the 'follow the fox' option is a nice edition, especially if you haven't watched all the behind the scenes footage already. Like the 'follow the white rabbit' option on the old Matrix DVD, a cartoon fox will appear in the lower right hand corner at key areas of the film. If the enter button is pressed the viewer will be treated to a pertinent piece of behind the scenes information about the film. The problem is that this footage can be found elsewhere on the disc, but it's still a nice feature, and the segments are mostly worth your time.
There is a featurette about the genesis of the Hellboy character and his world called 'To Hell And Back: How Mike Mignola Created Hellboy (Part I)'. If you have the director's cut release of del Toro's Hellboy movie, this feature is not necessary. It's an entertaining little slice of Mignola's mind, but doesn't get into any of the depth del Toro does on the aforementioned director's cut's commentary. Think of it as the cliff's notes version of the character history, though the mysterious Part I seems to indicate further info on future releases.
'A New Breed: Creating The New Hellboy' is a crash course on the design and structure behind the scenes of this animated film. The commentary track gives a bit more info, but this is accompanied by the words of more than just the producer, director, and creator. The follow-up, 'Hellboy Goes East' is the stuff linked to the follow the fox feature. These are more specific to this particular film over facts about the animated universe in general.
'Conquering Hellboy: The Actor's Role' is short, but briefly covers the three main actors, Perlman, Blair and Jones. Unfortunately the actors aren't given much time to speak for themselves, as the producer/director is again our guide.
'A View From The Top: The Heads Sequence' is also linked to the feature with the follow the fox feature, but can be seen on it's own as well. This featurette covers a single scene of the film which is based very specifically on a real Japanese folk tale, and was featured in one of the original Hellboy comics. The comic to film comparison is a nice touch.
Next to the commentary, the coolest extra is the 'Keepers of Hellboy: A Comic Con 2006 Panel Discussion'. This features all the major players, director, creator, conceptual artist, writers, even producer del Toro (who shows up a little late. There's a lot of content overlap, but the footage isn't nearly as raw as this kind of footage often is, and the presentation slides are enlarged for us, the viewing audience. Q and A sessions and discussions can go on way to long, but this one is just right. Tad Stones keeps things moving and answers pretty much every question the audience could've thought of on the spot. We even get a rough animatic version of the opening sequence.
This impressive little collection is ended with an art gallery and a series of Stars Entertainment trailers, including one for the next Hellboy animated adventure (and in this universe John Hurt's character is still alive).
The film itself has some structural defects, and the animation is a little bit cheap, but I can really see this as the pilot episode of a very lucrative series of animated films. There's a lot of material around the world for these creative minds to explore, and the relatively affordable realms of animation seem a good outlet. The DVD can't compare with some multi-disc collections on the market, but features just about as many extras as one could possibly want from the material. I recommend a purchase for fans (it's got an attractive price), and a rent for the curious who missed the Cartoon Network début.
For kids, this is a heavy PG or very light PG-13, there's a lot of minor curse words ('crap', 'pissed off', 'damn it'), some bloodless violence, and some disturbing images (like severed heads trying to eat Hellboy). Cartoon Network played it pretty late when it aired, but before the Adult Swim block.
Review by Gabriel Powers
Dustin Member Join Date: March 2006 Location: United States Posts: 553
Nice review, Gabe. I think I'll pick this one up... so long as it's better than Iron Man.
mikey mike Member Join Date: March 2006 Location: Yemen Posts: 256
it looks interesting so I rent it. great to hear that there are using Beltrami's themes. I think it's the first time that has happened in his amazing career
and I hope you loved "Pan's Labyrnth" as much as I did. hope it gets a great DVD and not a lame one disc one with a badly edited 12 minutes of behind the scenes features
and I hope you loved "Pan's Labyrnth" as much as I did. hope it gets a great DVD and not a lame one disc one with a badly edited 12 minutes of behind the scenes features
Blue-Kal-El Member Join Date: October 2006 Location: United States Posts: 602
Promising indeed, specially when people involved with the Jackie Chan Adventures (which I really like) are involved with it. Let's hope for an animated series, or at least some more animated movies til the next sequel comes!
Pan's Labyrinth is one of the most beautiful movies out there, and of the past years...enjoyable to the last; its one of those movies that show the purpose of a story...
Pan's Labyrinth is one of the most beautiful movies out there, and of the past years...enjoyable to the last; its one of those movies that show the purpose of a story...
Gabe Powers Editor Join Date: September 2004 Location: United States Posts: 4,721
Indeed, I loved Pan's Labyrinth. I expected to love it though, which made it a tiny bit less special. Great film, but only the second best of the year.
JckRbbitSlim Member Join Date: May 2006 Location: United States Posts: 280
Good point, the only reason I didn't enjoy it as much as I thought I'd would, is because I expected way way too much. It still was one of the best movies of the year though. Good choice with Children of Men, the one shot scene towards the end is the stuff of legend.
David Blackwell Senior Member Join Date: February 2004 Location: United States Posts: 2,831
I need to see this one. I missed it airing on Cartoon Network (which might be good since CN does censor cartoons including the Adult Swim stuff).
El Mariachi Member Join Date: September 2004 Location: Canada Posts: 460
This was pretty good, and I agree with you on Selma Blairs voice work.
This product has not been rated
Disc Details
Release Date: 6th February 2006
Discs: 1
Disc Type: Single side, dual layer
RCE: No
Video: NTSC
Aspect: 1.78:1
Anamorphic: Yes
Colour: Yes
Audio: Dolby Digital 5.1 English , Dolby Digital 2.0 English, Dolby Digital 2.0 Spanish
Subtitles: English, Spanish
Extras: Director/Creator Commentary, To Hell and Back: How Mike Mignola Created Hellboy (Part I), A New Breed: Creating the New Hellboy, Hellboy Goes East, Follow the Fox Option, Conquering Hellboy: The Actor's Role, A View from the Top: The Heads Sequence, Keepers of Hellboy: A Comic Con 2006 Panel Discussion, Trailers, Art Galleries, DVD-ROM
Easter Egg: No
Feature Details
Director: Phil Weinstein, Tad Stones
Cast: Ron Perlman, Selma Blair, Doug Jones
Genre: Action, Adventure, Animation, Comedy, Fantasy and Horror
Length: 0 minutes
7Review Guide
Follow our updates
Reviewer Agony
Taxi UK - DVD R2 Anacondas: The Hunt for the Blood Orchid US - DVD R1 Sharktopus UK - DVD R2 Paramount Blu-ray Wrap Up US - BD In-Laws, The AU - DVD R4
Latest Reviews
Perversion Story US - BD RA Fog, The UK - BD RB Batman: The Complete Animated Series US - BD RA Sorry to Bother You US - BD RA Torso US - BD RA
Released Soon
Kin US - DVD R1 | BD RA Luciferina US - DVD R1 | BD RA Crazy Rich Asians US - DVD R1 | BD RA Blindspotting US - DVD R1 | BD RA Pioneers: First Women Filmmakers US - DVD R1 | BD RA
Most Talked About
A Simple Favor US - DVD R1 | BD RA All the Colors of the Dark US - DVD R1 | BD RA Reign of the Supermen US - DVD R1 | BD RA Kino Lorber Studio Classics January US - DVD R1 | BD RA Columbo Season 1 UK - BD RB


text:
Suspect Shoots into House While 4-year old Sits in Getaway Car
August 2nd, 2012 by milwaukeepolice
On July 31, 2012 just before noon, the Shotspotter gunshot locator system and witnesses reported shots fired into a residence in the 600 block of W. Chambers St.
Witnesses gave a description of a female fleeing in a green pickup truck. Officers Rebecca Carpenter and Dennie Sanchez responded to the scene. While enroute, Officer Carpenter observed a matching vehicle westbound on W. Chambers St. Officers Carpenter and Sanchez conducted a traffic stop in the 2000 block of W. Hopkins. There were two suspects in the pickup and the driver's 4-year-old daughter was in the back seat.
Investigation revealed that the passenger, a female, had fired a shot into an occupied residence in the 600 block of W. Chambers, got in the pickup that the child's father was driving and fled the scene. The driver is a felon on parole for robbery and had hiden the handgun under the driver's seat. Both are in custody; the child was returned to family members.
Excellent work by these two officers in taking two armed felons off the streets – along with a gun. The man was arrested for felon in possession of a firearm, felony violation of parole and recklessly endangering safety. The woman was arrested for recklessly endangering safety and felony theft.


text:
I've heard of this before. They truck the wort out of state and add yeast where it will be sold to avoid paying taxes on the alcohol transport between states. It's not beer until there is yeast added. Very tricky! At least, that's the story I've heard about Granite City.
It would probably save some cost by not having a fully operational brewery at each individual pub.
I wonder if you'd risk oxidation by shipping the wort?
I'd be more concerned about contamination, unless they boil and hop it at the other facility.


text:
Friendly Neighborhood Map
Posted by Ta-metru_defender , Apr 16 2013 · 175 views
Jump to content
You have clicked an external link, proceed at your own caution. External sites are not moderated by BZPower and may contain content inappropriate for minors.
grew up on a ship
lives in new york
frequently found writing in a coffee shop, behind a camera, or mixing alcohol and video games


text:
- Indiana
- Indianapolis
- Fishers
- The Haven
- Sonoma Cove
Sonoma Cove
Sonoma Cove's one-of-a-kind layout gives the kitchen a commanding central location – with easy access to the formal dining room and the family-friendly gathering room. Two secondary common areas offer warm, well-defined spaces for reading alone, or sharing a laugh in small groups. A guest suite and spacious Owner's Suite both offer privacy, natural light and backyard views.
Home Features
- 1 Duplex Cat 6 / RG6 Cable Outlet in Gathering Room
- 2 Cat 6 Home Runs from Low Voltage Panel to predetermined locations on 1st Floor and 2nd Floor Ceiling for Wireless Access Point Prewires
- 4-1/4" Base Board and 2-3/4" Casing first floor. 3-1/4" Base Board and 2-1/4" Casing second floor.
- 9' ceilings on first floor
- Aristokraft® Sinclair Birch cabinets throughout home. Kitchen 42" with crown standard layout.
- Emser® ceramic floors in All baths and Laundry
- Engineered floor joist system
- Flexible 1" Conduit from Exterior to Low Voltage Panel
- Gerber – Elongated Toilets and pedestal in powder bath
- Glued and screwed 3/4" tongue and groove (OSB) oriented strand board floor decking
- Granite kitchen countertop with Stainless Sink 8" deep kitchen sink and 1/3 HP disposal
- Kohler – Master bath includes a Vikrell shower only
- Kohler – Secondary baths include a Vikrell tub/shower unit per plan
- Low Voltage Panel in Laundry Room
- Moen® Brantford Chrome fixtures in baths
- Moen® Integra Chrome kitchen faucet with pullout sprayer
- Mohawk® stain resistant, wall to wall carpeting with rebond 5.5 lb. pad
- Pulte exclusive Kichler® light fixtures throughout
- Schlage® brushed nickel lever handles
- Shaw® Luxe Plank flooring in Foyer, Kitchen, Pantry, Powder, Entry
- Sherwin Williams® Natural Choice Paint
- Spindle rail included on 1st Floor (Bourges)
- Two panel provincial doors
- Venetian Marble Bath Tops
- Whirlpool® Stainless Steel appliances. Electric double oven range, microwave, dishwasher.
- Window sills with casing apron
- Extra storage space in garage
- Second bedroom with in-suite bath
- Pro-style kitchen adjacent to dining room and gathering room
- Bradford White® 50 Gallon Electric water heater
- Lennox® 93% gas furnace with 13 SEER air conditioner
- Outside air induction on all furnace systems
- Simonton® Vinyl Low "E" windows
- Structural sheathing board with TYPAR® house wrap and R-15 fiberglass batt insulation exterior wall system
- Two-step energy seal process through-out entire home to reduce air infiltration
- Blown fiberglass insulation in all heated ceiling areas
- Fiberglass batt insulation in all cantilevers and bays
- Ridge and soffit vent system for maximum attic ventilation
- 2 Hose bibs
- Allura® Fiber Cement Siding
- Asphalt 30 year dimensional roof shingles limited warranty
- Firetape Drywall and Insulation Common Wall Only.
- Front Elevations vary by plan ( Brick, Stone, Allura® Siding)
- Garage Door Opener Included
- Masonite® Insulated fiberglass entry door with full weather stripping and dead bolt
- Sectional Clopay® Gallery overhead garage door with Windows. GFI Outlet (in garage)
- Side and Rear Overhangs
- Simonton® Dual glazed vinyl windows front elevation decorative window grids
- 2-5-10 year limited warranty
- Five key building completion Quality checkpoints throughout process: Build Quality Foundation Inspection, Build Quality Frame Inspection, Build Quality Pre-drywall Inspection, Build Quality Inspection, Build Quality Confirmation
- Front lawn sod
- Rear & side lawn seed and straw
Homesite Map
Pulte Energy Advantage
Many of our homes offer energy-efficient features that can help reduce your home's energy consumption while maintaining everything you want in a new home. That's the Pulte Energy Advantage®.
Request Info
Interested in living here? Tell us how to reach you, and we'll be in touch. We look forward to answering any questions you may have about building with us and living in our homes.
Thanks for your interest. You'll be receiving communications from us shortly.
Inspired By You
Build With Confidence
From understanding the stages of construction to choosing the right Pulte partner, we are here for you throughout the build process.Learn More
Distinctive Design
Create the home you've always wanted with inspirational design ideas and thoughtful home solutions for your new Pulte home.Get Inspired


text:
PA Gov. Tom Corbett & Cohorts Want Names Removed From Same-Sex Marriage Lawsuit
Hmm...they have no problem actively fighting against same-sex marriage, but it looks like Pennsylvania Governor Tom Corbett and his cohorts don't want their names linked to the lawsuit that could decide whether or not same-sex marriage is legal in the state.
Afraid of going on legal record as being on the wrong side of history?
Pennsylvania's governor, its chief legal officer and its health secretary are asking to be released as defendants in a federal lawsuit seeking to overturn the state's gay-marriage ban.
In papers filed Monday in U.S. District Court in Harrisburg, Gov. Tom Corbett's legal team argued that the U.S. Constitution provides state officials immunity from being sued in federal court without their consent. The governor's lawyers also contend that Corbett and Health Secretary Michael Wolf should be dismissed as defendants because of a 1972 Supreme Court ruling that says the federal courts lack jurisdiction over state marriage laws.
In a separate filing, lawyers for state Attorney General Kathleen Kane argued that she should not be a defendant because she is not enforcing the law.
In addition to Corbett, Kane and Wolf, two county officials are named in the lawsuit.
Lawyers in the case are scheduled to meet Wednesday with Judge John E. Jones III to discuss scheduling matters, including the timing of a trial.
We sympathize with Attorney General Kathleen Kane, who's been very vocal in her opposition to Pennsylvania's same-sex marriage ban and has refused to defend it. She shouldn't be lumped in with the others.
As for those that are actively working to deny gays and lesbians their rights? Stand proud in your bigotry or give up.


text:
OMG – I have just eaten the best thing ever! I got the suggestion from watching the food network and made it my own. This is so easy, so healthy, and so tasty – you have to try it!
Freeze a few bananas – I tend to have a bunch in the freezer anyway because I always buy them with the intentions of eating one a day but then they turn brown. Anyway, take out 2-3 and cut them up. Put into your food processor (a blender would probably work just as well) and pulse until they are almost chopped up. This by itself is totally yummy! Frozen whipped bananas have the same texture as ice cream – seriously!!
I like to add a spoonful of peanut butter and a drizzle of honey and whip a bit more. Peanut butter – try to choose a natural kind – is very good for you and honey is a great natural sweetener. And you get a yummy PB and banana concoction that is a GREAT substitution for ice cream! You can even make a big batch and put back in the freezer to pull out anytime.
My fiancé tried this and instead of peanut butter, he added some chocolate syrup – you don't need too much so it's still pretty healthy. And we discussed trying strawberries or blueberries in the future.
The next time you have a craving for ice cream – try this banana treat. It tastes great and is a lot better for your body and skin than ice cream. Try your own favorite flavors and share with us in the comments what your favorite additions are.


text:
George Harrison's 'Concert for Bangladesh' Released Digitally on 40th Anniversary With Bonus Extras
This coming Monday, August 1, marks 40 years since George Harrison and some famous friends performed the Concert for Bangladesh, and the anniversary is being celebrated with digital downloads, a month dedicated to charitable giving and free streams of the 'Concert for Bangladesh' movie.
The 1971 concert, held at New York's Madison Square Garden, raised money for the people of Bangladesh ravaged by floods, famine and civil war. The bill included Bob Dylan, Eric Clapton, Ravi Shankar, Leon Russell, Billy Preston and Harrison's former Beatles bandmate Ringo Starr.
The 'Concert for Bangladesh' album just debuted on iTunes with some extras — the 1971 single "Bangla Desh" is a bonus track, and a video trailer for the album and a radio show about the concert are both available as free streams. The 'Concert for Bangladesh' movie will stream free in its entirety this Saturday through Monday via iTunes, GeorgeHarrison.com and TheConcertForBangladesh.com.
UNICEF is marking the anniversary by declaring August as a "Month of Giving." All month long, donations to the George Harrison Fund for UNICEF will benefit children in the Horn of Africa suffering from drought and famine. Itunes will donate after-tax proceeds from the sale of the 'Concert for Bangladesh' album to the fund.
Track Listing
Introduction – George Harrison & Ravi Shankar
Ravi Shankar – 'Bangla Dhun'
George Harrison – 'Wah-Wah'
George Harrison – 'My Sweet Lord'
George Harrison – 'Awaiting On You All'
Billy Preston – 'That's The Way God Planned It'
Ringo Starr – 'It Don't Come Easy'
George Harrison feat. Leon Russell – 'Beware Of Darkness'
Band introduction – George Harrison
George Harrison – 'While My Guitar Gently Weeps'
Leon Russell – 'Jumpin' Jack Flash/Youngblood (Medley)'
George Harrison – 'Here Comes The Sun'
Bob Dylan – 'A Hard Rain's A-Gonna Fall'
Bob Dylan – 'It Takes A Lot To Laugh, It Takes A Train To Cry'
Bob Dylan – 'Blowin' In The Wind'
Bob Dylan – 'Mr. Tambourine Man'
Bob Dylan – 'Just Like A Woman'
George Harrison – 'Something'
George Harrison – 'Bangla Desh'
Bob Dylan – 'Love Minus Zero/No Limit'
George Harrison – 'Bangla Desh single' (bonus track)


text:
Fort Hays State University > Online Learners > Virtual College > Military > Coast
Virtual CollegeHammond Hall 201600 Park Street
Hays, KS 67601
Phone: 785-628-4291
Toll Free: 800-628-FHSU
Fax: 785-628-4037Email: firstname.lastname@example.com Request Information
The United States Coast Guard's unique mission is incredibly complex and diverse. As such, Fort Hays State University is proud to serve this nations Coast Guard population as they brave both known and unknown waters. The pursuance of your degree is no small matter and one that Fort Hays State University does not take lightly. Therefore, Fort Hays State University has positioned itself as a leading Military Friendly institution, to help Coast Guard personnel further their respective educations. With many degree options to choose from, Fort Hays State University is committed to working with you as you pursue your educational goals. Will you dare such currents?
Get Started Today.