text:
The Administration Console is a browser-based tool for administering Enterprise Server. It features an easy-to-navigate interface and online help. Extending the Administration Console enables you to provide a graphical user interface for administering your add-on component. You can use any of the user interface features of the Administration Console, such as tree nodes, links on the Common Tasks page, tabs and sub-tabs, property sheets, and JavaServerTM Faces pages. Your add-on component implements a marker interface and provides a configuration file that describes how your customizations integrate with the Administration Console.
This chapter refers to a simple example called console-sample-ip that illustrates how to provide Administration Console features for a hypothetical add-on component. Instructions for obtaining and using this example are available at the example's project page. When you check out the code, it is placed in a directory named glassfish-samples/v3/plugin/adminconsole/console-sample-ip/ in your current directory. In this chapter, path names for the example files are relative to this directory.
The following topics are addressed here:
The Administration Console is a web application that is composed of OSGi bundles. These bundles provide all the features of the Administration Console, such as the Web Applications, Update Center, and Security content. To provide support for your add-on component, create your own OSGi bundle that implements the parts of the user interface that you need. Place your bundle in the modules directory of your Enterprise Server installation, along with the other Administration Console bundles.
To learn how to package the Administration Console features for an add-on component, go to the modules directory of your Enterprise Server installation and examine the contents of the files named console-componentname-plugin.jar. Place the console-sample-ip project bundle in the same place to deploy it and examine the changes that it makes to the Administration Console.
The Administration Console includes a Console Add-On Component Service. The Console Add-On Component Service is an HK2 service that acts as a façade to all theAdministration Console add-on components. The Console Add-On Component Service queries the various console providers for integration points so that it can perform the actions needed for the integration (adding a tree node or a new tab, for example). The interface name for this service is org.glassfish.api.admingui.ConsolePluginService.
For details about the Hundred-Kilobyte Kernel (HK2) project, see Hundred-Kilobyte Kernel and HK2 Component Model.
Each add-on component must contain a console provider implementation. This is a Java class that implements the org.glassfish.api.admingui.ConsoleProvider interface and uses the HK2 @Service annotation. The console provider allows your add-on component to specify where your integration point configuration file is located. This configuration file communicates to the Console Add-On Component Service the customizations that your add-on component makes to the Administration Console.
The org.glassfish.api.admingui.ConsoleProvider interface has one required method, getConfiguration. The getConfiguration method returns the location of the console-config.xml file as a java.net.URL. If getConfiguration returns null, the default location, META-INF/admingui/console-config.xml, is used. The console-config.xml file is described in About Integration Points.
To implement the console provider for your add-on component, write a Java class that is similar to the following example.
This example shows a simple implementation of the ConsoleProvider interface:
package org.glassfish.admingui.plugin; import org.glassfish.api.admingui.ConsoleProvider; import org.jvnet.hk2.annotations.Service; import java.net.URL; @Service public class SamplePlugin implements ConsoleProvider { public URL getConfiguration() { return null; } }
This implementation of getConfiguration returns null to specify that the configuration file is in the default location. If you place the file in a nonstandard location or give it a name other than console-config.xml, your implementation of getConfiguration must return the URL where the file can be found.
You can find this example code in the file project/src/main/java/org/glassfish/admingui/plugin/SamplePlugin.java.
Enterprise Server includes a set of templates that make it easier to create JavaServer Faces pages for your add-on component. These templates use Templating for JavaServer Faces Technology, which is also known as JSFTemplating.
For more details on the templates, see Appendix B, Template Reference.
Examples of JSFTemplating technology can be found in the following sections of this chapter:
The integration points for your add-on component are the individual Administration Console user interface features that your add-on component will extend. You can implement the following kinds of integration points:
Nodes in the navigation tree
Elements on the Common Tasks page of the Administration Console
JavaServer Faces pages
Tabs and sub-tabs
Specify all the integration points in a file named console-config.xml. In the example, this file is in the directory project/src/main/resources/META-INF/admingui/. The following sections describe how to create this file.
In addition, create JavaServer Faces pages that contain JSF code fragments to implement the integration points. In the example, these files are in the directory project/src/main/resources/. The content of these files depends on the integration point you are implementing. The following sections describe how to create these JavaServer Faces pages.
For reference information on integration points, see Appendix A, Integration Point Reference.
The console-config.xml file consists of a console-config element that encloses a series of integration-point elements. The console-config element has one attribute, id, which specifies a unique name or ID value for the add-on component.
In the example, the element is declared as follows:
<console-config id="sample"> ... </console-config>
You will also specify this ID value when you construct URLs to images, resources and pages in your add-on component. SeeAdding a Node to the Navigation Tree for an example.
For example, a URL to an image named my.gif might look like this:
<sun:image url="/resource/sample/images/my.gif" />
The URL is constructed as follows:
/resource is required to locate any resource URL.
sample is the add-on component ID. You must choose a unique ID value.
images is a folder under the root of the add-on component JAR file.
The integration-point elements in the console-config.xml file specify attributes for the user interface features that you choose to implement. The example file provides examples of most of the available kinds of integration points at this release. Your own add-on component can use some or all of them.
For complete details about the Administration Console user interface features, see the API documentation for Project Woodstock.
For each integration-point element, specify the following attributes.
An identifier for the integration point.
The ID of the integration point's parent.
The type of the integration point.
A numeric value that specifies the relative ordering of integration points for add-on components that specify the same parentId. A lower number specifies a higher priority (for example, 100 represents a higher priority than 400). The integration points for add-on components are always placed after those in the basic Administration Console. You might need to experiment to place the integration point where you want it. This attribute is optional.
The content for the integration point, typically a JavaServer Faces page. In the example, you can find the JavaServer Faces pages in the directory project/src/main/resources/.
The order in which these attributes are specified does not matter, and in the example console-config.xml file the order varies. To improve readability, this chapter uses the same order throughout.
The following topics are addressed here:
You can add a node to the navigation tree, either at the top level or under another node. To add a node, use an integration point of type org.glassfish.admingui:treeNode. Use the parentId attribute to specify where the new node should be placed. Any tree node, including those added by other add-on components, can be specified. Examples include the following:
At the top level
Under the Application Server node
Under the Applications node
Under the Web Applications node
Under the Resources node
Under the Configuration node
Under the Web Container node
Under the HTTP Service node
The webContainer and httpService nodes are available only if you installed the web container module for the Administration Console (the console-web-gui.jar OSGi bundle).
If you do not specify a parentId, the new content is added to the root of the integration point, in this case the top level node, tree.
For example, the following integration-point element uses a parentId of tree to place the new node at the top level.
<integration-point id="sampleNode" parentId="tree" type="org.glassfish.admingui:treeNode" priority="200" content="sampleNode.jsf" />
This example specifies the following values in addition to the parentId:
The id value, sampleNode, specifies the integration point ID.
The type value, org.glassfish.admingui:treeNode, specifies the integration point type as a tree node.
The priority value, 200, specifies the order of the node on the tree.
The content value, sampleNode.jsf, specifies the JavaServer Faces page that displays the node.
The example console-config.xml file provides other examples of tree nodes under the Resources and Configuration nodes.
A JavaServer Faces page for a tree node uses the JSFTemplating tag sun:treeNode. This tag provides all the capabilities of the Project Woodstock tag webuijsf:treeNode.
In the example, the sampleNode.jsf file has the following content:
<sun:treeNode id="treeNode1" text="SampleTop" url="/sample/page/testPage.jsf?name=SampleTop" target="main" imageURL="resource/sample/images/sample.png" > <sun:treeNode id="treeNodeBB" text="SampleBB" url="/sample/page/testPage.jsf?name=SampleBB" target="main" imageURL="resource/sample/images/sample.png" /> </sun:treeNode>
This file uses the sun:treenode tag to specify both a top-level tree node and another node nested beneath it. In your own JavaServer Faces pages, specify the attributes of this tag as follows:
A unique identifier for the tree node.
The node name that appears in the tree.
The location of the JavaServer Faces page that appears when you click the node. In the example, most of the integration points use a very simple JavaServer Faces page called testPage.jsf, which is in the src/main/resources/page/ directory. Specify the integration point id value as the root of the URL; in this case, it is sample (see Specifying the ID of an Add-On Component). The rest of the URL is relative to the src/main/resources/ directory, where sampleNode.jsf resides.
The url tag in this example passes a name parameter to the JavaServer Faces page.
The frame in which to display the JavaServer Faces page specified by the url tag. Normally, the value is main.
The location of a graphic to display next to the node name. In the example, the graphic is always sample.png, which is in the src/main/resources/images/ directory. The URL for the deployed images directory is relative to resource/idval/, where idval is the integration point id value (see Specifying the ID of an Add-On Component).
You can add a tab to an existing tab set, or you can create a tab set for your own page. One way to add a tab or tab set is to use an integration point of type org.glassfish.admingui:serverInstTab, which adds a tab to the tab set on the main Application Server page of the Administration Console. You can also create sub-tabs. Once again, the parentId element specifies where to place the tab or tab set.
In the example, the following integration-point element adds a new tab on the main Application Server page of the Administration Console:
<integration-point id="sampleTab" parentId="serverInstTabs" type="org.glassfish.admingui:serverInstTab" priority="500" content="sampleTab.jsf" />
This example specifies the following values:
The id value, sampleTab, specifies the integration point ID.
The parentId value, serverInstTabs, specifies the tab set associated with the server instance. The Application Server page is the only one of the default Administration Console pages that has a tab set.
The type value, org.glassfish.admingui:serverInstTab, specifies the integration point type as a tab associated with the server instance.
The priority value, 500, specifies the order of the tab within the tab set. This value is optional.
The content value, sampleTab.jsf, specifies the JavaServer Faces page that displays the tab.
The following integration-point elements add a new tab with two sub-tabs, also on the main Application Server page of the Administration Console:
<integration-point id="sampleTabWithSubTab" parentId="serverInstTabs" type="org.glassfish.admingui:serverInstTab" priority="300" content="sampleTabWithSubTab.jsf" /> <integration-point id="sampleSubTab1" parentId="sampleTabWithSubTab" type="org.glassfish.admingui:serverInstTab" priority="300" content="sampleSubTab1.jsf" /> <integration-point id="sampleSubTab2" parentId="sampleTabWithSubTab" type="org.glassfish.admingui:serverInstTab" priority="400" content="sampleSubTab2.jsf" />
These examples specify the following values:
The id values, sampleTabWithSubTab, sampleSubTab1, and sampleSubTab2, specify the integration point IDs for the tab and its sub-tabs.
The parentId of the new tab, serverInstTabs, specifies the tab set associated with the server instance. The parentId of the two sub-tabs, sampleTabWithSubTab, is the id value of this new tab.
The type value, org.glassfish.admingui:serverInstTab, specifies the integration point type for all the tabs as a tab associated with the server instance.
The priority values specify the order of the tabs within the tab set. This value is optional. In this case, the priority value for sampleTabWithSubTab is 300, which is higher than the value for sampleTab. That means that sampleTabWithSubTab appears to the left of sampleTab in the Administration Console. The priority values for sampleSubTab1 and sampleSubTab2 are 300 and 400 respectively, so sampleSubTab1 appears to the left of sampleSubTab2.
The content values, sampleTabWithSubTab.jsf, sampleSubTab1.jsf, and sampleSubTab2.jsf, specify the JavaServer Faces pages that display the tabs.
A JavaServer Faces page for a tab uses the JSFTemplating tag sun:tab. This tag provides all the capabilities of the Project Woodstock tag webuijsf:tab.
In the example, the sampleTab.jsf file has the following content:
<sun:tab id="sampleTab" immediate="true" text="Sample First Tab"> <!command setSessionAttribute(key="serverInstTabs" value="sampleTab"); redirect(page="#{request.contextPath}/page/ tabPage.jsf?name=Sample%20First%20Tab"); /> </sun:tab>
In the actual file there are no line breaks in the redirect value.
In your own JavaServer Faces pages, specify the attributes of this tag as follows:
A unique identifier for the tab, in this case sampleTab.
If set to true, event handling for this component should be handled immediately (in the Apply Request Values phase) rather than waiting until the Invoke Application phase.
The tab name that appears in the tab set.
The JSFTemplating page displays tab content differently from the way the page for a node displays node content. It invokes two handlers for the command event: setSessionAttribute and redirect. The redirect handler has the same effect for a tab that the url attribute has for a node. It invokes a simple JavaServer Faces page called tabPage.jsf, in the src/main/resources/page/ directory, passing the text "Sample First Tab" to the page in a name parameter.
The sampleSubTab1.jsf and sampleSubTab2.jsf files are almost identical to sampleTab.jsf. The most important difference is that each sets the session attribute serverInstTabs to the base name of the JavaServer Faces file that corresponds to that tab:
setSessionAttribute(key="serverInstTabs" value="sampleTab");
setSessionAttribute(key="serverInstTabs" value="sampleSubTab1");
setSessionAttribute(key="serverInstTabs" value="sampleSubTab2");
You can add either a single task or a group of tasks to the Common Tasks page of the Administration Console. To add a task or task group, use an integration point of type org.glassfish.admingui:commonTask. You can add a single task to either the Deployment task group or the Monitoring task group, but not to any other group.
See Adding a Task Group to the Common Tasks Page for information on adding a task group.
In the example console-config.xml file, the following integration-point element adds a task to the Deployment task group:
<integration-point id="sampleCommonTask" parentId="deployment" type="org.glassfish.admingui:commonTask" priority="200" content="sampleCommonTask.jsf" />
This example specifies the following values:
The id value, sampleCommonTask, specifies the integration point ID.
The parentId value, deployment, specifies that the task is to be placed in the Deployment task group.
Specify a value of monitoring to place the task in the Monitoring task group.
The type value, org.glassfish.admingui:commonTask, specifies the integration point type as a common task.
The priority value, 200, specifies the order of the task within the task group.
The content value, sampleCommonTask.jsf, specifies the JavaServer Faces page that displays the task.
A JavaServer Faces page for a task uses the JSFTemplating tag sun:commonTask. This tag provides all the capabilities of the Project Woodstock tag webuijsf:commonTask.
In the example, the sampleCommonTask.jsf file has the following content:
<sun:commonTask text="Sample Application Page" toolTip="Sample Application Page" infoLinkUrl="/com_sun_webui_jsf/help/ helpwindow.jsf?&windowTitle=Help+Window&helpFile=applications.html" onClick="admingui.nav.selectTreeNodeById('form:tree:deployment:ejb'); parent.location='#{facesContext.externalContext.requestContextPath}/sample/ page/testPage.jsf?name=Sample%20Application%20Page'; return false;"> </sun:commonTask>
In the actual file, there are no line breaks in the infoLinkUrl attribute or the parent.location code values.
This file uses the sun:commonTask tag to specify the task. In your own JavaServer Faces pages, specify the attributes of this tag as follows:
The task name that appears on the Common Tasks page.
The text that appears when a user places the mouse cursor over the task name.
The URL for the link that is displayed at the bottom of the task's information panel.
Scripting code that is to be executed when a user clicks the task name. The parent.location value on the next line is part of the onClick code.
You can add a new group of tasks to the Common Tasks page to display the most important tasks for your add-on component. To add a task group, use an integration point of type org.glassfish.admingui:commonTask.
In the example console-config.xml file, the following integration-point element adds a new task group to the Common Tasks page:
<integration-point id="sampleGroup" parentId="commonTasksSection" type="org.glassfish.admingui:commonTask" priority="500" content="sampleTaskGroup.jsf" />
This example specifies the following values:
The id value, sampleGroup, specifies the integration point ID.
The parentId value, commonTasksSection, specifies that the task group is to be placed on the Common Tasks page.
The type value, org.glassfish.admingui:commonTask, specifies the integration point type as a common task.
The priority value, 500, specifies the order of the task group on the Common Tasks page. The low value places it at the end of the page.
The content value, sampleTaskGroup.jsf, specifies the JavaServer Faces page that displays the task.
A JavaServer Faces page for a task group uses the JSFTemplating tag sun:commonTasksGroup. This tag provides all the capabilities of the Project Woodstock tag webuijsf:commonTasksGroup.
In the example, the sampleTaskGroup.jsf file has the following content:
<sun:commonTasksGroup title="My Own Sample Group"> <sun:commonTask text="Go To Sample Resource" toolTip="Go To Sample Resource" infoLinkUrl="/com_sun_webui_jsf/help/ helpwindow.jsf?&windowTitle=Help+Window&helpFile=jdbcconnectionpoolnew1.html" onClick="admingui.nav.selectTreeNodeById('form:tree:resources:treeNode1'); parent.location='#{facesContext.externalContext.requestContextPath}/sample/ page/testPage.jsf?name=name=Sample%20Resource%20Page'; return false;"> </sun:commonTask> <sun:commonTask text="Sample Configuration" toolTip="Go To Sample Configuration" infoLinkUrl="/com_sun_webui_jsf/help/ helpwindow.jsf?&windowTitle=Help+Window&helpFile=jdbcconnectionpoolnew1.html" onClick="admingui.nav.selectTreeNodeById( 'form:tree:configuration:sampleConfigNode'); parent.location='#{facesContext.externalContext.requestContextPath}/sample/ page/testPage.jsf?name=Sample%20Configuration%20Page'; return false;"> </sun:commonTask> </sun:commonTasksGroup>
In the actual file, there are no line breaks in the infoLinkUrl and parent.location attribute values.
This file uses the sun:commonTasksGroup tag to specify the task group, and two sun:commonTask tags to specify the tasks in the task group. The sun:commonTasksGroup tag has only one attribute, title, which specifies the name of the task group.
You can add content for your add-on component to an existing top-level page, such as the Configuration page or the Resources page. To add content to one of these pages, use an integration point of type org.glassfish.admingui:configuration or org.glassfish.admingui:resources.
In the example console-config.xml file, the following integration-point element adds new content to the top-level Resources page:
<integration-point id="sampleResourceLink" parentId="propSheetSection" type="org.glassfish.admingui:resources" priority="100" content="sampleResourceLink.jsf" />
This example specifies the following values:
The id value, sampleResourceLink, specifies the integration point ID.
The parentId value, propSheetSection, specifies that the content is to be a section of a property sheet on the page.
The type value, org.glassfish.admingui:resources, specifies the integration point type as the Resources page.
To add content to the Configuration page, specify the type value as org.glassfish.admingui:configuration.
The priority value, 100, specifies the order of the content on the Resources page. The high value places it at the top of the page.
The content value, sampleResourceLink.jsf, specifies the JavaServer Faces page that displays the new content on the Resources page.
Another integration-point element in the console-config.xml file places similar content on the Configuration page.
A JavaServer Faces page for page content often uses the JSFTemplating tag sun:property to specify a property on a property sheet. This tag provides all the capabilities of the Project Woodstock tag webuijsf:property.
In the example, the sampleResourceLink.jsf file has the following content:
<sun:property> <sun:hyperlink toolTip="Sample Resource" url="/sample/page/testPage.jsf?name=Sample%20Resource%20Page" > <sun:image url="/resource/sample/images/sample.png" /> <sun:staticText text="Sample Resource" /> </sun:hyperlink> </sun:property> <sun:property> <sun:hyperlink toolTip="Another" url="/sample/page/testPage.jsf?name=Another" > <sun:image url="/resource/sample/images/sample.png" /> <sun:staticText text="Another" /> </sun:hyperlink> </sun:property>
The file specifies two simple properties on the property sheet, one above the other. Each consists of a sun:hyperlink element (a link to a URL). Within each sun:hyperlink element is nested a sun:image element, specifying an image, and a sun:staticText element, specifying the text to be placed next to the image.
Each sun:hyperlink element uses a toolTip attribute and a url attribute. Each url attribute references the testPage.jsf file that is used elsewhere in the example, specifying different content for the name parameter.
You can use many other kinds of user interface elements within a sun:property element.
Your add-on component may require new configuration tasks. In addition to implementing commands that accomplish these tasks (see Chapter 4, Extending the asadmin Utility), you can provide property sheets that enable users to configure your component or to perform tasks such as creating and editing resources for it.
Most of the user interface features used in the example reference the file testPage.jsf or (for tabs) the file tabPage.jsf. Both files are in the src/main/resources/page/ directory. The testPage.jsf file looks like this:
<!composition template="/templates/propertySheetTemplate.tpl" pageTitle="TEST Sample Page Title" helpText="Shows you what my page looks like" > <!define name="properties"> <sun:property id="prop1" labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="page Name:" > <sun:staticText text="$pageSession{pageName}" > <!beforeCreate getRequestValue(key="name" value=>$page{pageName}); /> </sun:staticText> </sun:property> </define> </composition>
The page uses the composition directive to specify that the page uses the propertySheetTemplate.tpl template and to specify a page title and inline help text. (See Property Sheet Template for more information about this template and more examples.) The page uses additional directives, events, and tags to specify its content.
To add internationalization support for your add-on component to the Administration Console, use the i18nBundle attribute of the composition directive for your JavaServer Faces page to specify the name of the resource bundle.
For example, in the tabPage.jsf file, the composition directive specifies org.glassfish.admingui.core as the bundle name:
<!composition template="/templates/propertySheetTemplate.tpl" pageTitle="TEST Sample Page Title" helpText="Shows you what my page looks like" i18nBundle="org.glassfish.admingui.core" >
The bundle name specifies the package where the resource files are located.
Alternatively, you can place an event and handler like the following at the top of your page:
<!initPage setResourceBundle(key="yourI18NKey" bundle="bundle.package.BundleName") />
Replace the values yourI18NKey and bundle.package.BundleName with appropriate values for your component.
To change the theme or brand of the Administration Console for your add-on component, use the integration point type org.glassfish.admingui:customtheme. This integration point affects the Cascading Style Sheet (CSS) files and images that are used in the Administration Console.
For example, the following integration point specifies a custom theme:
<integration-point id="myOwnBrand" type="org.glassfish.admingui:customtheme" priority="2" content="myOwnBrand.properties" />
The priority attribute works differently when you specify it in a branding integration point from the way it works in other integration points. You can place multiple branding add-on components in the modules directory, but only one theme can be applied to the Administration Console. The priority attribute determines which theme is used. Specify a value from 1 to 100; the lower the number, the higher the priority. The integration point with the highest priority will be used.
Additional integration point types also affect the theme or brand of the Administration Console:
Specifies the name and location of the include masthead file, which can be customized with a branding image. This include file will be integrated on the masthead of the Administration Console.
Specifies the name and location of the include file containing the branding login image code that will be integrated with the login page of the Administration Console.
Specifies the name and location of the include file containing the customized login form code. This code also contains the login background image used for the login page for the Administration Console.
Specifies the name and location of the include file containing the branding image that will be integrated with the content of the version popup window.
For example, you might specify the following integration points. The content for each integration point is defined in an include file.
<integration-point id="myOwnBrandMast" type="org.glassfish.admingui:masthead" priority="80" content="branding/masthead.inc" /> <integration-point id="myOwnBrandLogImg" type="org.glassfish.admingui:loginimage" priority="80" content="branding/loginimage.inc" /> <integration-point id="myOwnBrandLogFm" type="org.glassfish.admingui:loginform" priority="80" content="branding/loginform.inc" /> <integration-point id="myOwnBrandVersInf" type="org.glassfish.admingui:versioninfo" priority="80" content="branding/versioninfo.inc" />
To provide your own CSS and images to modify the global look and feel of the entire application (not just the Administration Console), use the theming feature of Project Woodstock. Create a theme JAR file with all the CSS properties and image files that are required by your Woodstock component. Use a script provided by the Woodstock project to clone an existing theme, then modify the files and properties as necessary. See Creating a Theme for the Woodstock Components for details. Once you have created the theme JAR file, place it in the WEB-INF/lib directory of the Administration Console so that the Woodstock theme component will load the theme. In addition, edit the properties file specified by your integration point (MyOwnBrand.properties, for example) to specify the name and version of your theme.
If your add-on component provides new content that you would like other people to extend, you may define your own integration point types. For example, if you add a new page that provides tabs of monitoring information, you might want to allow others to add their own tabs to complement your default tabs. This feature enables your page to behave like the existing Administration Console pages that you or others can extend.
Decide on the name of your integration point type.
The integration point type must be a unique identifier. You might use the package name of your integration point, with a meaningful name appended to the end, as in the following example:
When you have an integration point ID, add handlers for the integration point.
Include code like the following below the place in your JavaServer Faces page where you would like to enable others to add their integration point implementations:
<event> <!afterCreate getUIComponent(clientId="clientId:of:root" component=>$attribute{rootComp}); includeIntegrations(type="org.company.project:myMonitoringTabs" root="#{rootComp}"); /> </event>
Change clientId:of:root to match the clientId of the outermost component in which you want others to be able to add their content (in this example, the tab set is the most likely choice). Also include your integration point ID in place of org.company.project:myMonitoringTabs. If you omit the root argument to includeIntegrations, all components on the entire page can be used for the parentId of the integration points.
To enable others to use this integration point, document it at the GlassFish Integration Point wiki page.
Document the integration point only if your content is publicly available.
You or others can now provide an integration point that will be integrated into this page.
For more information about the includeIntegrations and getUIComponent handlers, see the JSFTemplating API documentation.


text:
Come and see this BEAUTIFULLY redone ranch with fabulous kitchen! The open feeling you have when you walk in to the Living room and dining is amazing and keeps going through the kitchen and family room. The kitchen has been redone with custom cabinets, gas oven/stove, and u-shaped counters to give the most space! The bathrooms, wood floors and basement have been updated to the fullest and roof and HVAC are only a few years old. The very large basement walks out to the backyard that is fenced in and perfect for kids and/or dogs. In the desired Parkway School district and a stones throw from dining and shopping, this one will go fast!!! UPDATED SELLERS DISCLOSURE
Listings displaying the MARIS logo are courtesy of the participants of Mid America Regional Information Systems Internet Data Exchange. IDX information is provided exclusively for consumers' personal, non-commercial use and may not be used for any purpose other than to identify prospective properties consumers may be interested in purchasing.
Copyright © 2018 Mid America Regional Information Systems.

subset: commoncrawl


text:
Difference between revisions of "AdventureWorks hard questions"
|Line 1:
|Line 1:
{{AdventureWorks Assessment}}
{{AdventureWorks Assessment}}
11
11

Revision as of 06:27, 14 August 2012
For every customer with a 'Main Office' in Dallas show AddressLine1 of the 'Main Office' and AddressLine1 of the 'Shipping' address - if there is no shipping address leave it blank. Use one row per customer.
For each order show the SalesOrderID and SubTotal calculated three ways:
A) From the SalesOrderHeader
B) Sum of OrderQty*UnitPrice
C) Sum of OrderQty*ListPrice
Show the best selling item by value.
Show how many orders are in the following ranges (in $):
RANGE Num Orders Total Value 0- 99 100- 999 1000-9999 10000-
Identify the three most important cities. Show the break down of top level product category against city.


text:
WILMINGTON, Mass. — A large chunk of the Bruins' morning practice today at Ristuccia Arena focused on getting through the neutral zone with speed against Buffalo's forecheck for Wednesday night's game.
The Bruins worked on moving the puck from D to D, but also, more importantly, getting it to the forwards in position to get the puck deep into Sabres territory. Boston's defense corps isn't going to execute many end-to-end rushes, so the emphasis is on shorter passes and hitting players in stride.
•Among those on the ice was Adam McQuaid, who was shaken up by the push into the end wall in the second period Saturday night by Philadelphia's Jody Shelley. McQuaid said he was feeling better after taking the last two days, along with his teammates, off from the rink.
"He's a tough kid, a tough individual," said head coach Claude Julien. "I don't think it's going to affect his game."
•The forward lines were the same as they've been, including Daniel Paille and Tyler Seguin both skating alongside Marc Savard and Michael Ryder. Paille filled in for an ill Seguin Saturday night, but Seguin was healthy again today.
•During drills, a few Bruins wingers attempted to drive the net and then pass back to the point while moving forward. In practice, those passes worked. But Boston would be wise to careful making such plays in Buffalo, in order to prevent a situation like the one that ended the Ottawa-Atlanta game last night.


text:
A C++ Program
Budget $10-50 AUD
A C++ Object Oriented Program..... Need it to be done in 24 hours
28 freelancers are bidding on average $43 for this job
Hi there, I would like to do this project if given the opportunity. Let me know if you are interested so I can have further details. Thanks.
Hello I am C++ expert and interested in this project. I have reviewed the details and confident to handle it perfectly. I have a lot of experience in helping in students with assignments, so I will keep codes we More
Hello Sir..! I read your description I can complete your project on time and within your budget I am fully confident about your project. I will receive your best wishes. I am waiting your response thanks you so much More
As per the requirement and time line i am able to do your task , message me Thank ou
I'm computer engineering TA with 10+ years of experience. I'm experienced with data structures and algorithms ,software engineering , programming techniques , STL , Object Oriented Design , computation theory , discr More
Hello Sir, I am very experienced in c++ and I can deliver to your satisfaction. Let us discuss in detail.
Hi, I have a good experience of coding in C,C++. I assure you that your work will be done perfectly and in minimum possible [login to view URL] give me a chance. Thank you.
Hi.I am an experienced C++ developer. I can show you my work in inbox, if you need that. I would love to work with you in this project and I hope you would love the work I'll do for you. Thanks.
We have good knowledge of C++ and experience on it. We can provide you with best work and as soon as possible. Hope to hear from you


text:
As one who is always professing the benefits of social media for company/brand X–when done properly of course–it's always refreshing to come across a company that "gets it."
There is no doubt there are plenty that don't get it, however. Chapstick comes to mind as a brand that doesn't get it, as witnessed by their social-media debacle this past December. Read all about it right here.
But as an example of a company/brand that most assuredly "gets it" when it comes to social media, I give you KLM, Royal Dutch Airlines.
Last year they, as told by Aaron Lee, they actually "made history, by being the first airline to reschedule a flight following a request from a user on Twitter as well as entering the Guinness Book of Records for having the highest altitude dance party."
More recently they announced the creation of a program called "Meet & Seat." The program allows passengers to link their social media profiles to their check-in information and choose a seating partner according to their profile.
"Social media in the sky" is how I heard one person describe it.
It's a fascinating concept and one that could lead to similar programs being adopted not just by other airlines but other industries–cruise lines, for example.
Want a stateroom next to someone you have something in common with based on your LinkedIn profile?
How about sports' teams and tickets? Say you want to buy season tickets for a given team. Want to check the social media profiles of those you may be sitting next to or near?
I wanted to learn more about "Meet & Seat" so I reached out to KLM and was put in touch with Martijn van der Zee, senior VP E-Commerce for Air France-KLM.
What was the genesis behind the "Meet & Seat" program?
KLM is leading and innovative on social media and is always looking for new innovations. M&S fits to the KLM promise of 'a journey of inspiration.' We hope this can be an extra reason for choosing KLM, when price, schedule, etc. make no difference.
How does "Meet & Seat" work?
Log on to Manage my Booking on KLM.com. Go to the Seating tab and click on Meet & Seat. Enter your booking code and last name to start Meet & Seat.Next, import your Facebook or LinkedIn profile details and select the information you want to share. You can also add a comment on your travel plans.
On the seat map you can now view profile details of other passengers on your flight who joined Meet & Seat. You can contact that person or select a seat next to someone. You will receive an e-mail when a new person joins Meet & Seat on your flight. You can login to see the profile of this person and where he has chosen to sit on board.
Are there plans to incorporate additional social media profiles such as Twitter, Google+ and Pinterest into the program?
We don't have those plans yet. First we want to roll out M&S, actual concept, to the rest of intercontinental flights.
What has been the response from passengers?
The concept is for a large target group. Until now we see on all three-pilot routes a balanced participation of business/leisure, male/female. We started our pilot to North and South America, because they use social media a lot. Especially from the U.S. we get very enthusiastic reactions.
Some have referred to this program as a "matchmaking" tool, but do you also see ways businesses can take advantage of it as well?
Yes, we think the tool can be very interesting for business passengers. It can be helpful or interesting for people who like to talk about business opportunities.
You can contact fellow Meet & Seat passengers before the flight to make travel arrangements like sharing a taxi or to meet for a coffee before the flight. You can also choose to sit together on board. With people who speak the same language, or share special interests.
Any final thoughts/comments you want to share on "Meet & Seat?"
After introducing award-winning webcare (answer within the hour, 24/7 in three languages on Facebook/Twitter) and many successful social mediacampaigns, this is the first social integration into our regular business processes. We believe in a vision where we truly start to integrate social into our core business, which is much more difficult than just webcare or running original campaigns.
Our customers react passionately on these efforts and they encourage us to continue our social activities to make the difference. Thanks to social media, we know almost instantly if our new products are appreciated and in which direction we should improve our tools and services.
Ok, so what do you think of the "Meet & Seat" program?
Would you use this type of program if it were available?
Can you see other industries adopting similar programs?
Source: Forbes
Named one of the Top 100 Influencers In Social Media (#41) by Social Technology Review, Steve Olenski is a freelance writer/blogger currently looking for full-time work. He has worked on some of the biggest brands in the world and has over 20 years experience in advertising and marketing. He lives in Philly and can be reached via email, Twitter, LinkedIn or his website.
NOW WATCH: Briefing videos
Business Insider Emails & Alerts
Site highlights each day to your inbox.
Follow Business Insider Australia on Facebook, Twitter, LinkedIn, and Instagram.


text:
The XO 1.5 is now strong enough to be used as a versatile netbook/ebook reader for both students and adults.
With the upcoming new OS release both the XO and XO-1.5 will be able to run both Sugar and Gnome so the XO-1.5 will be absolutely usable as a netbook/ebook reader for adults.
Would be nice to know if OLPC is planning to make them widely available as was planned for the XO-2.
I just hope OLPC never tries a G1G1 again. The last one was an utter failure and there is no hope a new G1G1 would succeed.
At olpcnews forums, everybody agrees that the ideal distribution model would be public sales with some markup which is considered as donation for OLPCs projects and further developments. The XO-1.5 would be successful at USD250 (including the markup). If the production price is now 150 (180 was the XO-1), then 100 for donation and other costs should be enough to sell the XO publicly. Sales activity can be delegated to other organization(s) if OLPC doesn't want to deal with it.
It would be a huge boon for everybody, including educational efforts. It is laughable that OLPC like education programs are now done with Intel Classmates here in Hungary just because they couldn't get XO from OLPC.
OLPC of course can try to fix million unit sales with educational ministries, just make sure that doesn't hurt public sales/distribution.
Also, there should be a project for retrofiting XO-1 units with the baseboard of the XO-1.5.


text:
8 Apr 2018Maratona di Roma 2018
- -- Days : -- Hours : -- Minutes : -- Seconds
Archeo-running, history teachers wear trainers
Ok, you're about to run on one of the world's richest and most beautiful marathon courses. Is your stopwatch all your eyes are really interested in? We've got a better option.
CoopCulture, in cooperation with Timorosi Astenersi and Passo Capponi running clubs, now gives athletes the opportunity to enjoy the Rome Marathon together with a team of "archeo-runners", qualified tourist guides in running shoes, who will tell you interesting facts about the landmarks placed between the Gasometer and St. Peter's Square and between Piazza Navona and Piazza Santi Apostoli. You'll just be amazed by the amount of marvels to discover.
Please note you must be registered to the Rome Marathon (and wear the bib) in order to take advantage of the service.
Registration fee: EUR 16.00 - Whisper Headset rental included.
The service will be available in italian only.
Places are limited. Registration is compulsory. Payment due upon registration. To sign in please call CoopCulture at +39 0639967301.
For more information: firstname.lastname@example.com.


text:
Jaime Hernandez:
The 2011-S Medal of Honor Commemorative Silver Dollar was issued to honor the individuals who have received the Medal of Honor and to celebrate the 150th anniversary of the first time that Medal of Honor was issued in 1861.
Obverse: The obverse of the coin displays the three different Medals of Honor currently being used by the Army, Navy and the Air Force. The obverse has the inscriptions, In God We Trust, Liberty, Medal of Honor 1861-2011.
Reverse: The reverse of the coin features a U.S. soldier carrying another wounded soldier. The reverse has the inscriptions, "United States of America, One Dollar and E Pluribus Unum."
Issue Date: February 25, 2011
Pre-issue Price: $49.95
Regular Issue Price: $54.95
© 1999-2018 Collectors Universe NASDAQ: CLCT


text:
Before & After: A Cheap and Easy Coat Rack
We stumbled awkwardly through last winter's guest visits without a coat rack by stuffing visitors' outerwear in our crowded hall closet, and blaming the fact that we'd only been in our new house for a few months. But, one year and hours of hook researching later, we really have no excuse for draping our coats over the sofa any longer.
While there are plenty of awesome coat racks out there — I'd die for the Eames Hang-It-All in Walnut, for example — I always got hung up on the price tags. So, finally, for $15 we picked up a batch of vintage metal hooks from the thrift store, spray painted them with a glossy red paint and loved the result. The hardest part was spacing them evenly, which required some careful measuring, but other than that the whole project was a cinch.
Images: Sarah Rainwater


text:
Contact details
Slieveardagh Heritage Centre was opened in 1995.Is located in a former Saint Mary's Church of Ireland, now in use as a Heritage centre/interpretative centre.
Read more
Want to know more? Ask a question in our Community, they're the people who know Ireland best.
For more information on travel and accommodation, attractions have a look at our brochures and maps.
If you're a visitor from the island of Ireland you may want to visit one of these sites… Otherwise proceed to Ireland.com
Share this link
Ireland.com uses cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we'll assume that you are happy to receive all cookies from Ireland.com.


text:
APS (Active Phase Switching)
Active Phase Switching, APS, technology is an intelligent design that helps to save energy on MSI's motherboards. The underlying idea is to switch off the power supply as soon as no electricity is needed, and when the system needs more resources again, APS will automatically adjust electricity supply accordingly. APS will automatically detect your processor's loading at any given time and save energy accordingly. This is only possible by means of a very advanced power controlling technology. Other than software-based solutions, APS technology stands out from MSI's own research. The specially developed IC chip can operate automatically depending on the demands of the power supply, which is to reduce the total power usage.
Lossless 24-bit/192KHz HD Audio
Onboard PC audio gets better! MSI is the first to implement the most high-end HD Audio codecs available. Don't be fooled by other inferior audio solutions onboard (sometimes you can't even find the driver!) Only MSI offers the Loss-less 24-bit/192KHz HD Audio function with an incredible 109 SNR dB value to provide the most clear & vivid HD audio quality and support 7.1 channels surround sound playback with a 2-channel independent stereo output (multiple streaming) through the front panel 3.5 inch phone jack.
Unlock CPU Core
MSI's Unlock CPU Core technology, exclusive from MSI, can unlock the hidden cores in the CPU by making a few selections from the BIOS. By unlocking a Phenom II X2 CPU into a Phenom II X4 CPU, users can boost the CPU performance over 104%. In Addition, MSI discovers the ability to unlock Phenom II X4 960T to a 6 core CPU through the same BIOS setting. At same time, MSI was the first who could unlock a 4-core AMD CPU to a 6-core because MSI does not use any "unlock" chip on our motherboards. MSI engineers developed a BIOS technology to unlock cores which can be easy upgraded via new BIOS. Because of this flexible BIOS core unlock feature, MSI can today announce that it made BIOS unlocking easy and accessible for the audience who doesn't know their way around the BIOS. This new MSI software tool allows users to unlock CPU cores from Windows with just a few simple clicks, no need to enter the BIOS.
Easy OC Switch
Every user desires more performance. MSI has special Easy OC Switches to provide that accessibility to all users. This great technology makes it easier to tweak the core clock settings. There's no need to have a detailed understanding; with just a few simple steps, everyone is able to get the most out of their motherboards. With a single click, the whole system will increase by 5%-20% performance, making overclocking a very easy thing to do.
Mobile consumer appliances are getting more and more attention in current day fast moving life style, with smart phones and tablets almost becoming a fashion accessory. However, many ordinary personal computers cannot charge some of these devices, making it difficult to stay connected. The MSI i-Charger is a Windows resident program capable of revising the power supply mode of your USB port to become more powerful. Once your phone or tablet is connected to your USB port, the i-Charger sends a signal to initiate its charging circuit, making it a really smart and convenient charging solution for mobile computing needs.
HDMI v1.3
High-Definition Multimedia Interface (HDMI) is a set of digital video standards that delivers multi-channel audio and uncompressed digital video for full HD 1080p visuals through a single cable. HDMI provides you with the highest-quality home theater experience.
HTPC Ready
With such diversity of display outputs, you are able to choose and upgrade display devices then build up your own home theater.
Live Update 5
MSI Live Update 5 is a powerful and useful application for updating the latest BIOS and Drivers, saving you time and lowers the risk of updating. End-users can install and run the Live Update 5 software on their computers with the companion CD or downloading the app from the MSI website.
Compared to common motherboard which need extra BIOS chips, MSI's M-Flash has a double advantage which doesn't need extra components and secondly, all your BIOS data will be saved in the USB drive. The stored data does not only have backup and upgrade function, moreover it can also be seen as a portable BIOS chip which is actually able to boot up your PC.
All Solid Capacitors on PWM
Capacitors are the most important component for electronic product's power supply. The quality of the capacitors can impact the stability of the entire system and risk of product failure. Currently there are two types of capacitors, electrolytic capacitors and solid capacitors. Compared to electrolytic capacitors, solid capacitors have a longer lifespan, and provide a more stable power under high temperatures. More importantly, solid capacitors do not have any liquid materials inside, and thus will not suffer a leak which would infringe upon the product's stability. With such benefits is it no wonder that solid capacitors are very important for product quality's improvement,
AMD Cool'n'Quiet™ Technology reduces heat and noise so you can experience amazing performance without distraction. Combined with core enhancements, included in the AMD processors, that can improve overall power savings, deliver better multitasking and energy efficiency. Cool'n'Quiet technology can automatically adjust processor ratio to throttle CPU speed with four modes.


text:
We're Sorry
The page you're trying to find isn't in that location.
What can I do?
- Use our search tool
- Look in our site map to see if you can find the information, or start from our home page
- Send us a message and let us know if still can't find what you're looking for.


text:
- Home
- The 12
- 2013
- 2012
- Girl of the Day
- Hopefuls
- Casting Calls
- Press
- Store
- Video
Is Lya A Morning Or A Night Person?
Good luck getting Lya up in the morning, because she has been up all night partying!
What Is Shira's Favorite Finger Licking Snack?
Shira's favorite finger licking snack is the very sweet and tasty Reese's Sticks.
What Is Alexa's Favorite Thing About Being A Wildcat?
School: University of Arizona
Hometown: Newport Beach, California
Major: Journalism
Alexa's favorite thing about being a wildcat is just going to U of A, she says all the people are great and super friendly, and she feels bad for people who don't go there!
Is Nicole A Morning Or A Night Person?
Nicole would consider herself to be a bit of a night owl. Good luck getting her to do anything before 9am.
Danielle Paints Us A Picture Of Her Perfect Day
School: University of Arizona
Hometown: San Diego, CA
Major: Education
"It's a Friday, I'm laying out by the pool, getting dinner with friends and going to a party.'


text:
A lot of viewers aren't going to like the military drama "Last Resort" (7 p.m. Thursday, Sept. 27, ABC; 3.5 stars out of 4). They'll probably dismiss it for its crazy premise, its characters' speechifying and its multiple subplots.
It's the season's riskiest new series, but also one of the best.
My biggest problem with the thrilling pilot is that it ended too quickly. It was packed with enough explosive stuff for a two-hour premiere event. Creators Shawn Ryan and Karl Gajdusek masterfully balance the various subplots and character beats while maintaining an electrifying forward momentum.
As the nuclear sub USS Colorado passes the equator, Capt. Marcus Chaplin (Andre Braugher) and his executive officer, Sam Kendal (Scott Speedman), are ordered to fire some of their 18 nukes onboard at Pakistan. They refuse because of the shady way the command was sent. Obviously, something scary and dangerous is happening in Washington and our heroes are going to get to the bottom of the mystery--or the ocean.
Chaplin takes his sub and its 150 crew members, plus a few secretive Special Forces soldiers plucked from the ocean, to an island where he makes a stand: In a worldwide address, he warns of a White House coup and threatens to launch his nukes if the island stronghold is attacked.
No one gives an ultimatum like Braugher. He's riveting as Chaplin, a man who you're not sure is the moral center of the story, or a career sailor finally pushed to his absolute limit. Maybe he's gone a bit bonkers? I don't know, but I can't wait to find out.
I admit that "Last Resort" tells a far-fetched tale, and that maybe the show pushes the button--literally--a little too soon. The second episode, while not as enthralling as the premiere, holds up well. And I trust Ryan, the Rockford, Ill., native who created "The Shield," "Terriers" and "The Chicago Code," to keep things at Defcon 5 without boring viewers to tears.
It may seem like I've explained too much of the plot here, but believe me, so much more happens in the premiere. I'm already dying to know the answers to so many questions it raised.
Obviously, I'm choosing to go with the extraordinary premise. I think most viewers who do so will enjoy this weekly trip to TV's latest island paradise.
Other Sept. 27 premieres: "The Big Bang Theory," 7 p.m. CBS; "Two and a Half Men," 7:30 p.m. CBS; "Person of Interest," 8 p.m. CBS; "Grey's Anatomy," 8 p.m. ABC; "Scandal," 9 p.m. ABC; "Elementary," 9 p.m. CBS.
Want more? Discuss this article and others on Show Patrol's Facebook page.


text:
Platforms: PC
Developers: Bossa Studios
Originally conceived and then birthed as a GameJam project in the space of 48 hours (which you can play here), Surgeon Simulator 2013 brought the high pressure environment of the OR to life like never before. Forget Operation, Bossa's disgustingly messy, QWOP-esque slice-'em-up was an enormous hit, partly due to the hilarious user vids that hit YouTube in its wake.
It came rocking the Casualty theme tune, with deliciously warped approach to medical simulation, and placed you in the role of Nigel Burke - a man with about as much hand-eye co-ordination as a mop. Floaty physics, combined with a arsenal of tools that might make the Marquis de Sade cry, made for a fiendishly difficult little browser game, as it was originally released, using the Unity engine. A cult following soon followed, a Greenlight push was swift to follow, and now Surgeon Simulator 2013 is available at retail, with some bumped up features.
Firstly, it's clear that the game has had something of a graphical polish. Barnardshire General Hospital gleams in better-looking HD textures than before, and it's clear that Bossa have used the extra time to try and justify the fanfare that swept the game onto Steam. A new reception hub area provides ample opportunity for getting to grips with the controls, not to mention a few little hidden surprises and Easter eggs to reward players who try to interact with everything that they find. Frankly, there's nothing better than a game that gives you a novel interaction mechanism, and then rewards you for playing around with it.
You see, as much as the game has the word 'simulator' in its title, the initial buzz comes from the grotesque absurdity of cracking someone's sternum open with a power drill and flinging their organs about the place like a deranged Harold Shipman. The control scheme - the mouse controls the movement and rotation of the hand, AWER and the SPACE bar controls your fingers and thumb - is almost ludicrously fiddly and requires supreme co-ordination (whether playing alone or with a friend) to achieve your ends, meaning that operations (heart, kidney, and brain transplants all feature now) end in disaster for the patient more often than not. It's a simple juxtaposition between a very serious environment and a very playful control scheme that makes this game such a success.
That and the buckets of gore and deeply unsettling sound effects.
The sound design has changed a little. The music is no longer a litigious clip that got tiring after it looped every 20 seconds, but rather something a little cheesier, with a bit more 80s melodrama to it. The sound effects are brilliant, with the squelches proving to be deliciously offputting, matched by lovely little visual cues like jets of blood when you nick an artery or start butchering an organ, and the chips of bone that issue forth when you start drilling, hammering, or sawing through bits of skeleton. Sadly, however, Nigel's voice seems to have disappeared, so we no longer hear his panicked utterances as he merrily offs another clone. On the flip side, of course, it does allow for a greater sense of immersion, and for users to essentially play through their own stories, which we love!
So it is that your Nigel might be terrifically methodical about removing kidneys or navigating through ribs to get to the heart underneath, making precise movements with a little handheld buzzsaw, whilst mine might very well plug in the Black and Decker and simply go to town. A little tip: don't accidentally stab yourself on the syringes as surgery is significantly harder when you're tripping harder than David Bowie during the Ziggy Stardust era.
As a comedy game, the original worked effortlessly, but Bossa have made strides to ensure that this retail release is worth the small price point. The extra operations are very welcome, and the grading system that evaluates your surgical efforts after a success makes for some replayability. You can unlock a change of locale too, which will have you performing procedures in the back of an ambulance, with tools flying everywhere at each small bump in the road, just to make things even trickier.
However, a few little things have changed in terms of the gameplay itself. The fluidity that the original had has been tuned up and made weightier. The idea, one supposes, has been to allow for an actual degree of simulation, and indeed it's more difficult to crack through bone. Take the heart transplant for example, in the original you could dislodge almost everything in the chest cavity with a flurry from the hammer. Now, however, things are held in place a little firmer. It's a bit more difficult to pick objects up too, and the raw accessibility of the original, at least in comedic terms, has been muted slightly as a result.
Of course, the free version is still out, so Bossa had to differentiate slightly, and making the game a little more about skill than just anarchy makes sense. It's still a lot of fun, though for the first few hours, you'll almost certainly be measuring your scores by how long your patient survived before you eventually murdered him rather than a success grade.
Comedy is a difficult thing to critique and a trickier thing to price, and a "cool" thing can be made significantly less so by slapping a price tag on it. The YouTube rush has already happened, and funny trends on the internet can often pass quickly. But I don't see that necessarily being a problem for Surgeon Simulator 2013. It can be frustrating if you don't have the patience, but marking it down for that would be folly, and the fiddliness is the point. This is Surgeon Simulator after all, not Fish A Coin Out From Down The Back Of The Couch Simulator. If I get stressed during the working week, this has become my instant source of catharsis: get angry, butcher a patient, laugh, continue happily with my day.
There are further things that we could have perhaps hoped for, though. More procedures would have been nice, more ridiculous tools too. The price point is a tricky one at £6.99/$9.99. It's a good looking digital download, but really quite shallow in terms of actual content, and thus might be a hard sell for some. But that's what the free version is for, though I almost wish they'd adopted a little microtransaction model for this, with players paying a couple of quid if they want another procedure type. Personally, I love the extra content, I just really wish there was more of it. The physics tweaks have given the game longevity and even if it eventually stops being amusing to watch another video of hilariously commentated surgical mishaps we'll always have the game itself. It's got enough of that just-one-more-go factor to be worth a punt, whether for the laughs, or to try and beat your friend's grade.
Just one request please Bossa - let's have some Oculus Rift support please!
- Hilarious
- Addictive
- Now actually allows for a certain level of "simulation"
- Could have done with more procedures
- Potentially subject to "fad popularity"
- £6.99 might be too much for some when there's a free version out there
The Short Version: Did Surgeon Simulator 2013 need a retail release? Possibly not, but Bossa's touch-up of their GameJam cult hit is a tighter, more skilful game, with just enough new content to warrant slapping some cash down for it. Plus it's still funny as hell, now with added kidney, brain, and ambulance shenanigans.
Click here to find out more about our review ratings and scores >>>


text:
I guess so. I learned Latin with a book that used v and u, but no j's, and hardly any macrons (only on the penultimate if it was long by nature only). I do write macrons now when doing the exercises, as an extra drill on the vowel length, as I'm trying to focus on pronunciation now (I've found out that I put the accent at the wrong place in quite a lot of words . But they are the IPA* of Latin, as it were.

Ingrid

* International phonetic alphabet, indispensible for English as a Foreign Language learners .[quote author=Milito

 I suppose it all boils down to what you get used to. I don't use the macrons at all, and the books I've been using for the last while don't have them either. I've gotten well away from using 'j' in Latin, but I'm now back to using a 'v', because the book I'm reading at present uses it....

Kilmeny

I'm not sure I follow this. The genitive of "Janus" would be "Janï", right?
So you replace the first letter 'J' with an 'I': Ianï
How did you come up with the 'V' between 'n' and 'i'?

Thus, in the genitive the name of the god we refer to as Janus would have been written IANVI.


text:
Chapel Hill, North Carolina is an excellent place visit, and an even better place to live. One of the things that makes it such a desirable location is the fact that you'll never run out of things to do.
UNC basketball fans (and basketball fans in general) will love the North Carolina Basketball Museum. Exhibits commemorate Michael Jordan and other notable former alumni, and guests are treated to the inside scoop on Tarheels history, legendary winning shots, and the team's rich championship heritage. Best of all, it's free.
Chapel Hill's Morehead Planetarium immerses visitors in the wonders of the cosmos. Educational and fun, the planetarium's Magic Tree House show is a hit among the little astronomers and their parents. A visit there is a great time for the whole family.
Audience members rave about the top-notch performances, stellar set design, and relatively reasonable admission prices. The company puts on plays of all types, from dramatic to comedic to experimental, and there's not a bad seat in the house.
Visitors to this peaceful oasis love the trails, the sights and sounds of the creek, and the fairies hidden among the flora. Of course, the carnivorous plants and giant chess set are hits, too.
Hearing the call of the fairway? Head over to Chapel Hill's Finley Golf Course. This public course is among the area's best, and an excellent value, to boot. The staff here always keeps the fairways and greens ship-shape, and the layout is excellent.


text:
Mitch Albom hopes latest novel is 'Heaven'-sent
HIGHLAND PARK, Michigan (AP) — Mitch Albom's best-selling memoir, "Tuesdays with Morrie," gave him the literary chops to try his hand at fiction, so it's fitting that he returns to the book's central theme — the struggle to understand one's own mortality — for his fourth novel.
"The First Phone Call From Heaven," which came out Tuesday, mines the same death-and-afterlife material that transformed Albom 16 years ago from an award-winning sports columnist into a best-selling author.
A closer look, though, shows it isn't quite like his other novels.
At 323 pages, it's about 100 pages longer than his other fictional works, and he devotes the extra space to fuller character development.
Plus, "it's a bit of a thriller," according to Albom, who said some people close to him expressed surprise he had a mystery novel in him, but he realized: "I've been writing sports my whole life, and sports is exactly that."
The book follows several residents of a fictional northern Michigan town, Coldwater, who start receiving regular Friday phone calls from deceased loved ones. (There is a real Coldwater, Mich., but it's in the south of the state.) Soon, the town is overrun by out-of-towners dead-set on getting the story (media), celebrating the phenomenon (religious zealots) or disproving it (skeptics).
"There's a fundamental question: Did this really happen or not? At the core of that question is belief," Albom said. "The book to me, if you had to pick a one-word theme, it's 'belief.'"
Albom said belief is "what gets us through life" and "carries us through terrible situations when they happen to us."
Much like the one that happened to him. A series of strokes robbed his mother of the ability to speak.
"I've not heard her voice since 2010, basically. I miss her voice something terribly," Albom said.
Morrie Schwartz's voice also is one of those Albom has lost over the years.
The 1997 chronicle of his mentor's deathbed seminars provided Albom with the springboard he has used to delve into the world of fiction.
Albom said Schwartz asked him to visit his grave periodically to continue their conversations.
"He said, 'When I'm dead, you talk. I'll listen,'" Albom said, referring to his friend's request that, despite an initial reluctance, Albom has honored.
"There's nothing creepy about it," he said of his visits to Schwartz's final resting place in Massachusetts. "I have conversations with people who have passed all the time. They don't talk back, but I sit and I talk to them myself."
Schwartz also challenged Albom to do more charitable work.
"Anybody can write a check," Albom remembers him saying.
As with the graveside chats, Albom has honored Schwartz's call for charity.
He has founded six charities in his hometown of Detroit, and since the devastating 2010 earthquake in Haiti, he has operated an orphanage in Port-Au-Prince that he visits monthly.
"I do the charity work because I should, because I can," he told The Associated Press during an interview at the medical clinic for homeless children and their mothers that he set up in the Detroit enclave of Highland Park.
Moments earlier, Albom strolled through the S.A.Y. Detroit Family Health Clinic greeting patients, doctors, nurses and others with hugs and handshakes.
One of those who received an embrace from Albom was Dr. Chad Audi, the president and CEO of Detroit Rescue Mission Ministries and a frequent partner of Albom's on various charitable endeavors.
Despite Albom shooing him away, Audi refused to stop singing the praises of his friend, who he said is much more hands-on than many believe.
"You will see him painting on his knees. You will see him cleaning, cuddling with the homeless people," Audi said. "He slept in their bed, literally. If it wasn't for him, we wouldn't be able to raise the funds ... to help those guys."
"OK, OK. Now go away," said Albom, whose critics have derisively dubbed him the "king of hope" because of the syrupy-sweet nature of his books.
Albom embraces the nickname.
"I'll take that any day," he said. "I just try to tell stories that when you're done, you feel a little hopeful.
"It's really not any more complicated than that."
Mike Householder can be reached at email@example.com and http://twitter.com/mikehouseholder


text:
Our CrackBerry Tip box was flooded this morning by happy canuks letting us know that the Telus BlackBerry Storm2 9550 is available on Telus' website. It's kind of interesting to see a carrier offering both GSM and CDMA-based smartphones... Storm2, Tour 9630... Bold 9700?? Tough Decision!
The Telus BlackBerry Storm2 9550 sells for $199.99 on a three-year contract, $499.99 on a two-year contract, $549.99 on a one-year contract or you can pick it up for $599.99 off contract. If you're not yet familiar with the BlackBerry Storm2, you'll want to check out our BlackBerry Storm2 Review and BlackBerry Storm2 Features and Specifications page.
This post may contain affiliate links. See our disclosure policy for more details.


text:
SOURCE: Research Driven Investing
February 14, 2013 08:20 ET
RDInvesting Provides Stock Research on Advanced Energy Industries and MEMC Electronic Materials
RDInvesting Provides Stock Research on Advanced Energy Industries and MEMC Electronic Materials
NEW YORK, NY--(Marketwire - Feb 14, 2013) - After struggling through most of 2012, the solar industry has started 2013 on an impressive run. Both the Market Vectors Solar Energy ETF (KWT) and the Guggenheim Solar ETF (TAN) have gained nearly 20 percent year-to-date. Research Driven Investing examines investing opportunities in the Solar Industry and provides equity research on Advanced Energy Industries, Inc. (NASDAQ: AEIS) and MEMC Electronic Materials, Inc. (NYSE: WFR).
Access to the full company reports can be found at:
Solar companies received a boost last week after analysts from Citigroup's global solar sector research team initiated coverage on several companies in the industry. First Solar, Inc. and SunPower Corp. were the biggest gainers after receiving an initial "buy" rating from Citi, while Trina Solar Ltd. and Yingli Green Energy Holding Co. Ltd. benefited from a "neutral" rating.
"The upstream segment of the solar value chain is going through a permanent structural shift -- mainly the commoditization of the panel manufacturing business," wrote Citigroup analyst Shahriar Pourreza.
Research Driven Investing releases regular market updates on the Solar Industry so investors can stay ahead of the crowd and make the best investment decisions to maximize their returns. Take a few minutes to register with us free at www.RDInvesting.com and get exclusive access to our numerous stock reports and industry newsletters.
Advanced Energy is a global leader in reliable power conversion solutions used in thin-film plasma manufacturing processes and solar energy generation. The company reported sales in the fourth quarter increased slightly year-over-year to $113.0 million in the fourth quarter. Citigroup has recently initiated coverage on the company with a "buy" rating. Shares of Advanced Energy have gained over 25 percent year-to-date.
With R&D and manufacturing facilities in the U.S., Europe and Asia, MEMC enables the next generation of high performance semiconductor devices and solar cells. Through its SunEdison subsidiary, MEMC is also a developer of solar power projects and a worldwide leader in solar energy services. The company reported its net loss shrunk to $11.8 million in the fourth quarter, compared to a net loss of $1.48 billion a year ago.
Research Driven Investing has not been compensated by any of the above-mentioned publicly traded companies. Paragon Report is compensated by other third party organizations for advertising services. We act as an independent research portal and are aware that all investment entails inherent risks. Please view the full disclaimer at:
See all RSS Newsfeeds