text:
Category Archives: Rittman Mead
Rittman Mead at KScope16
June is the perfect month: summer begins, major football (and futbol) tournaments are in full swing, and of course, KScope16 is on! Rittman Mead have participated in many of the past KScope conferences and will continue that tradition this year with a wide range of presentation and training topics across the Business Intelligence, Data Warehousing, Big Data, and Advanced Analytics subject areas. This year the event is held in Chicago at the Sheraton Grand Chicago, a great location right on the river and a short distance from sights such as the Navy Pier and Magnificent Mile. And, as always, there will be some great networking opportunities throughout the week.
This year, we're pleased to congratulate our own Becky Wagner (of Becky's BI Apps Corner) on her graduation from the ODTUG Leadership Program. This is the third class to complete the program, which aims to build leadership skills, confidence, and work/life balance skills, amongst many other things, throughout the 9 month class duration. Well done, Becky! You'll be able to find her and the rest of the 2016 Leadership class at the Career Community/Leadership Program Information Breakfast – Monday, June 27th 7:30AM at the Sheraton hotel main dining area. They will be kicking off the application season for the 2017 Leadership Program and providing further information about the new ODTUG career program as well.
The rest of the Rittman Mead attendees will be presenting one or more sessions during the week.
The week kicks off with my talk Monday on GoldenGate and Kafka integration using the new Oracle GoldenGate for Big Data release 12.2. The topic of this session, real-time data streaming, provides a great solution for the challenging task of ingesting data from multiple different sources, and different structures, and making that data readily available for others in the organization to use. By combining GoldenGate, Oracle's premier data replication technology, and Apache Kafka, the latest open-source streaming and messaging system for big data, we can implement a fast, durable, and scalable solution.
Tuesday morning, Charles Elliott, Managing Director of Rittman Mead in the US, will begin the first of his two-part hands on lab sessions on Free Form Data Visualizations. This hands-on introduction to all things visual in OBIEE's new Visual Analyzer (VA) will allow attendees to see the top reporting features within the current release while also understanding the core differences between OBIEE's previous reporting platform and what's available now. In addition to creating some of the most eye-catching visualizations the new tool has to offer, this session will highlight new OBIEE 12c features such as mapping, advanced analytics, and an overview of the brand-new web catalog. Whether you are just interested in what's new in free-form Oracle BI visualizations or preparing for an upgrade, this session is for you!
During the lunch and learn sessions you can find me moderating the BI and Data Warehousing panel and Mark Rittman will be moderating the Big Data and Advanced Analytics crew. Grab a lunch and join us!
The remainder of Rittman Mead sessions fall on Wednesday, with some interesting topics around Big Data Discovery, OBIEE branding and Essbase integration, and the Kimball ETL Subsystems. Also, the second day of the Free Form Data Visualizations HOL will be held on Wednesday afternoon.
It all starts with Mark Rittman presenting "OBIEE 12c: What's New for Integration and Reporting Against EPM Sources". He'll dig into interesting new features around OBIEE 12c and Essbase integration, including improvements around using Essbase as a query acceleration layer and general improvements around usability and RPD/Outline integration. Come to this session to see what they are, how they affect OBIEE/Essbase integration, and where this initiative may be going over time.
Following Mark and his dive into OBIEE and Essbase on Wednesday will be my session, "A Walk Through the Kimball ETL Subsystems with Oracle Data Integration", with a focus on how to implement the ETL Subsystems using Oracle Data Integration solutions. As you may know, Ralph Kimball, dimensional modeling and data warehousing expert and founder of The Kimball Group, spent much of his career working to build an enterprise data warehouse methodology that can meet analytical reporting needs. His book, "The Data Warehouse ETL Toolkit," is a guide for many ETL developers. This session will walk you through his ETL Subsystem categories, describing how the Oracle Data Integration products (Oracle Data Integrator, GoldenGate, & Enterprise Data Quality) are perfectly suited for the Kimball approach.
After lunch, Andy Rocha and Pete Tamisin will dive into "How to Brand and Own Your OBIEE Interface: Past, Present, and Future". In this presentation, they will explore the different techniques in branding and customizing your OBIEE environment in different versions: 220.127.116.11, 22.214.171.124, and 12c. What that really means is they will talk about how to brand the interface in a thoughtful way… not just throwing the company's colors on the screen, but thinking about what will actually make the application more attractive and useful for the user community.
Closing out the Rittman Mead Wednesday sessions is Mark Rittman with his unique look at machine learning and advanced visualizations using Oracle Big Data Discovery (BDD). Mark will use the BDD Shell, pySpark, and Jupyter to ingest, process and run machine learning routines on IoT and smart home data, which he has been collecting over the past year. Oracle Big Data Discovery provides a graphical environment for cataloging, searching, and displaying data from Hadoop and other sources along with some basic data wrangling features and display options. In this session, he'll look at how BDD can be extended using the aforementioned APIs to cover more advanced predictive modeling, machine learning, and data science tasks, and how the graphics API can be used to add custom D3 advanced visualizations for your datasets and analyses. I'm definitely looking forward to this one!
We're all looking forward to attending the event in Chicago this year and can't wait for next week! If you'd like to get together to discuss any of the above topics we're presenting, or anything data integration or BI related, feel free to reach out via email (firstname.lastname@example.com), twitter (@mRainey) or drop a note in the comments below. Hope to see you there!
The post Rittman Mead at KScope16 appeared first on Rittman Mead Consulting.
Using Jupyter Notebooks with Big Data Discovery 1.2
New in Big Data Discovery 1.2 is the addition of BDD Shell, an integration point with Python. This exposes the datasets and BDD functionality in a Python and PySpark environment, opening up huge possibilities for advanced data science work on BDD datasets. With the ability to push back to Hive and thus BDD data modified in this environment, this is important functionality that will make BDD even more useful for navigating and exploring big data.
Whilst BDD Shell is command-line based, there's also the option to run Jupyter Notebooks (previous iPython Notebooks) which is a web-based interactive "Notebook". This lets you build up scripts exploring and manipulating the data within BDD, using both Python and Spark. The big advantage of this over the command-line interface is that a 'Notebook' enables you to modify and re-run commands, and then once correct retain them as a fully functioning script for future use.
The Big Data Lite virtual machine is produced by Oracle for demo and development purposes, and hosts all the components that you'd find on the Big Data Appliance, all configured and integrated for use. Version 4.5 was released recently, which included BDD 1.2.
For information how on to set up BDD Shell and Jupyter Notebooks, see this previous post. For the purpose of this article I'm running Jupyter on port 18888 so as not to clash with Hue:
cd /u01/bdd/v1.2.0/BDD-188.8.131.52.813/bdd-shell /u01/anaconda2/bin/jupyter-notebook --port 18888
Important points to note:
- It's important that you run this from the
bdd-shellfolder, otherwise the BDD shell won't initialise properly
- Jupyter by default only listens locally, so you need to use a web browser local to the server, or use port-forwarding if you want to access Jupyter from your local web browser.
Go to
http://localhost:18888 in your web browser, and from the New menu select a Python 2 notebook:
You should then see an empty notebook, ready for use:
The 'cell' (grey box after the
In [ ]:) is where you enter code to run – type in
execfile('ipython/00-bdd-shell-init.py') and press shift-Enter. This will execute it – if you don't press shift you just get a newline. Whilst it's executing you'll notice the line prefix changes from
[ ] to
[*], and in the terminal window from which you launched Jupyter you'll see some output related to the BDD Shell starting
WARNING: User-defined SPARK_HOME (/usr/lib/spark) overrides detected (/usr/lib/spark/). WARNING: Running spark-class from user-defined location. spark.driver.cores is set but does not apply in client mode.
Now back in the Notebook, enter the following – use Enter, not Shift-enter, between lines:
dss = bc.datasets() dss.count
Now press shift-enter to execute it. This uses the pre-defined
bc BDD context to get the datasets object, and return a count from it.
By clicking the + button on the toolbar, using the up and down arrows on the toolbar, and the Code/Markdown dropdown, it's possible to insert "cells" which are not code but instead commentary on what the code is. This way you can produce fully documented, but executable, code objects.
From the File menu give the notebook a name, and then Close and Halt, which destroys the Jupyter process ('kernel') that was executing the BDD Shell session. Back at the Jupyter main page, you'll note that a
ipynb file has been created, which holds the notebook definition and can be downloaded, sent to colleagues, uploaded to blogs to share, saved in source control, and so on. Here's the file for the notebook above – note that it's hosted on gist, which automagically previews it as a Notebook, so click on Raw to see the actual code behind it.
The fantastically powerful thing about the Notebooks is that you can modify and re-run steps as you go — but you never lose the history of how you got somewhere. Most people will be familar with learning or exploring a tool and its capabilities and eventually getting it to work – but no idea how they got there. Even for experienced users of a tool, being able to prove how to replicate a final result is important for (a) showing the evidence for how they got there and (b) enabling others to take that work and build on it.
With an existing notebook file, whether a saved one you created or one that someone sent you, you can reopen it in Jupyter and re-execute it, in order to replicate the results previously seen. This is an important tenet of [data] science in general – show your workings, and it's great that Big Data Discovery supports this option. Obviously, showing the count of datasets is not so interesting or important to replicate. The real point here is being able to take datasets that you've got in BDD, done some joining and wrangling on already taking advantage of the GUI, and then dive deep into the data science and analytics world of things like Spark MLLib, Pandas, and so on. As a simple example, I can use a couple of python libraries (installed by default with Anaconda) to plot a correlation matrix for one of my BDD datasets:
As well as producing visualisations or calculations within BDD shell, the real power comes in being able to push the modified data back into Hive, and thus continue to work with it within BDD.
With Jupyter Notebooks not only can you share the raw notebooks for someone else to execute, you can export the results to HTML, PDF, and so on. Here's the notebook I started above, developed out further and exported to HTML – note how you can see not only the results, but exactly the code that I ran in order to get them. In this I took the dataset from BDD, added a column into it using a pandas windowing function, and then saved it back to a new Hive table:
(you can view the page natively here, and the ipynb here)
Once the data's been written back to Hive from the Python processing, I ran BDD's
data_processing_CLI to add the new table back into BDD
/u01/bdd/v1.2.0/BDD-18.104.22.168.813/dataprocessing/edp_cli/data_processing_CLI --table updated_accident_data
And once that's run, I can then continue working with the data in BDD:
This workflow enables a continual loop of data wrangling, enrichment, advanced processing, and visualisation – all using the most appropriate tools for the job.
You can also use BDD Shell/Jupyter as another route for loading data into BDD. Whilst you can import CSV and XLS files into BDD directly through the web GUI, there are limitations – such as an XLS workbook with multiple sheets has to be imported one sheet at a time. I had a XLS file with over 40 sheets of reference data in it, which was not going to be time-efficient to load one at a time into BDD.
Pandas supports a lot of different input types – including Excel files. So by using Pandas to pull the data in, then convert it to a Spark dataframe I can write it to Hive, from where it can be imported to BDD. As before, the beauty of the Notebook approach is that I could develop and refine the code, and then simply share the Notebook here
The post Using Jupyter Notebooks with Big Data Discovery 1.2 appeared first on Rittman Mead Consulting.
Running Big Data Discovery Shell and Jupyter Notebook on Big Data Lite VM 4.5
New in Big Data Discovery 1.2 is the addition of BDD Shell, an integration point with Python. This exposes the datasets and BDD functionality in a Python and PySpark environment, opening up huge possibilities for advanced data science work on BDD datasets, particularly when used in conjunction with Jupyter Notebooks. With the ability to push back to Hive and thus BDD data modified in this environment, this is important functionality that will make BDD even more useful for navigating and exploring big data.
The Big Data Lite virtual machine is produced by Oracle for demo and development purposes, and hosts all the components that you'd find on the Big Data Appliance, all configured and integrated for use. Version 4.5 was released recently, which included BDD 1.2. In this article we'll see how to configure BDD Shell on Big Data Lite 4.5 (along with Jupyter Notebooks), and in a subsequent post dive into how to actually use them.
Setting up BDD Shell on Big Data Lite
You can find the BDD Shell installation document here.
Login to BigDataLite 4.5 (oracle/welcome1) and open a Terminal window. The first step is to download Anaconda, which is a distribution of Python that also includes "[…] over 100 of the most popular Python, R and Scala packages for data science" as well as Jupyter notebook, which we'll see in a moment.
cd ~/Downloads/ wget http://repo.continuum.io/archive/Anaconda2-4.0.0-Linux-x86_64.sh
Then install it: (n.b.
bash is part of the command to enter)
bash Anaconda2-4.0.0-Linux-x86_64.sh
Accept the licence when prompted, and then select a install location – I used
/u01/anaconda2 where the rest of the BigDataLite installs are
Anaconda2 will now be installed into this location: /home/oracle/anaconda2 - Press ENTER to confirm the location - Press CTRL-C to abort the installation - Or specify a different location below [/home/oracle/anaconda2] >>> /u01/anaconda2
After a few minutes of installation, you'll be prompted to whether you want to prepend Anaconda's location to the
PATH environment variable. I opted not to (which is the default) since Python is used elsewhere on the system and by prepending it it'll take priority and possibly break things.
Do you wish the installer to prepend the Anaconda2 install location to PATH in your /home/oracle/.bashrc ? [yes|no] [no] >>> no
Now edit the BDD Shell configuration file (
/u01/bdd/v1.2.0/BDD-126.96.36.199.813/bdd-shell/bdd-shell.conf) in your favourite text editor to add/amend the following lines:
SPARK_EXECUTOR_PYTHON=/u01/anaconda2/bin/python LOCAL_PYTHON_HOME=/u01/anaconda2
Amend the path if you didn't install Anaconda into
In the same configuration file, add/amend:
SPARK_HOME=/usr/lib/spark/ SPARK_EXTRA_CLASSPATH=/usr/lib/oozie/oozie-sharelib-yarn/lib/spark/spark-avro_2.10-1.1.0-cdh5.7.0.jar
Now run the BDD Shell setup:
This should succeed:
[bigdatalite.localdomain] Validating pre-requisites... [bigdatalite.localdomain] Validation Success [bigdatalite.localdomain] Setting up BDD Shell... [bigdatalite.localdomain] Setup Success [oracle@bigdatalite Downloads]$
Assuming it does, you can now launch the shell
[oracle@bigdatalite Downloads]$ /u01/bdd/v1.2.0/BDD-22.214.171.124.813/bdd-shell/bdd-shell.sh WARNING: User-defined SPARK_HOME (/usr/lib/spark) overrides detected (/usr/lib/spark/). WARNING: Running spark-class from user-defined location. spark.driver.cores is set but does not apply in client mode. Welcome to ___ ___ ___ __ _ ____ _ _ | |_) | | | | ( (` | |_| | |_ | | | | |_|_) |_|_/ |_|_/ _)_) |_| | |_|__ |_|__ |_|__ SparkContext available as sc, HiveContext available as sqlContext. BDD Context available as bc. >>>
From the BDD Shell you can interact with BDD, for example to list out the datasets currently defined in the Catalog:
>>> bc.datasets().count 17 >>> for ds in bc.datasets(): ... print ds ... media_demo_customer edp_cli_edp_2c7f41ee-65bf-43ac-8bb4-5b6b59a55d75 edp_cli_edp_2c7f41ee-65bf-43ac-8bb4-5b6b59a55d75 Hive default.media_demo_customer movie_genre default_edp_7d4c18a5-6f02-4067-9f63-91f950078b1e default_edp_7d4c18a5-6f02-4067-9f63-91f950078b1e Hive default.movie_genre media_demo_customer default_edp_89c616b6-aa10-4827-aa82-1e9c3fcc419e default_edp_89c616b6-aa10-4827-aa82-1e9c3fcc419e Hive default.media_demo_customer
Whilst BDD Shell is command-line based, there's also the option to run Jupyter Notebooks (previous iPython Notebooks) which is a web-based interactive "Notebook". This lets you build up scripts exploring and manipulating the data within BDD, using both Python and Spark. The big advantage of this over the command-line interface is that a 'Notebook' enables you to modify and re-run commands, and then once correct, retain them as a fully functioning script for future use.
To launch it, run:
cd /u01/bdd/v1.2.0/BDD-18.104.22.168.813/bdd-shell /u01/anaconda2/bin/jupyter-notebook --port 18888
Important points to note:
- It's important that you run this from the
bdd-shellfolder, otherwise the BDD shell won't initialise properly
- By default Jupyter uses 8888, which is already in use on BigDataLite by Hue, so use a different one by specifying
- Jupyter by default only listens locally, so you need to either be using BigDataLite desktop to run Firefox, or use port-forwarding if you want to access Jupyter from your local web browser.
Go to
http://localhost:18888 in your web browser, and you should see the default Jupyter screen with a list of files:
In the next article, we'll see how to use Jupyter Notebooks with Big Data Discovery, and get an idea of just how powerful the combination can be.
The post Running Big Data Discovery Shell and Jupyter Notebook on Big Data Lite VM 4.5 appeared first on Rittman Mead Consulting.
OBIEE 12c – Extended Subject Areas (XSA) and the Data Set Service
One of the big changes in OBIEE 12c for end users is the ability to upload their own data sets and start analysing them directly, without needing to go through the traditional data provisioning and modelling process and associated leadtimes. The implementation of this is one of the big architectural changes of OBIEE 12c, introducing the concept of the Extended Subject Areas (XSA), and the Data Set Service (DSS).
In this article we'll see some of how XSA and DSS work behind the scenes, providing an important insight for troubleshooting and performance analysis of this functionality.
What is an XSA?
An Extended Subject Area (XSA) is made up of a dataset, and associated XML data model. It can be used standalone, or "mashed up" in conjunction with a "traditional" subject area on a common field
How is an XSA Created?
At the moment the following methods are available:
- "Add XSA" in Visual Analzyer, to upload an Excel (XLSX) document
CREATE DATASETlogical SQL statement, that can be run through any interface to the BI Server, including 'Issue Raw SQL', nqcmd, JDBC calls, and so on
Add Data Source in Answers. Whilst this option shouldn't actually be present according to a this doc, it will be for any users of 12.2.1 who have uploaded the SampleAppLite BAR file so I'm including it here for completeness.
Under the covers, these all use the same REST API calls directly into
datasetsvc. Note that these are entirely undocumented, and only for internal OBIEE component use. They are not intended nor supported for direct use.
How does an XSA work?
External Subject Areas (XSA) are managed by the Data Set Service (DSS). This is a java deployment (
datasetsvc) running in the Managed Server (bi_server1), providing a RESTful API for the other OBIEE components that use it.
The end-user of the data, whether it's Visual Analyzer or the BI Server, send REST web service calls to DSS, storing and querying datasets within it.
Where is the XSA Stored?
By default, the data for XSA is stored on disk in
SINGLETON_DATA_DIRECTORY/components/DSS/storage/ssi, e.g.
[oracle@demo ssi]$ ls -lrt /app/oracle/biee/user_projects/domains/bi/bidata/components/DSS/storage/ssi|tail -n5 -rw-r----- 1 oracle oinstall 8495 2015-12-02 18:01 7e43a80f-dcf6-4b31-b898-68616a68e7c4.dss -rw-r----- 1 oracle oinstall 593662 2016-05-27 11:00 1beb5e40-a794-4aa9-8c1d-5a1c59888cb4.dss -rw-r----- 1 oracle oinstall 131262 2016-05-27 11:12 53f59d34-2037-40f0-af21-45ac611f01d3.dss -rw-r----- 1 oracle oinstall 1014459 2016-05-27 13:04 a4fc922d-ce0e-479f-97e4-1ddba074f5ac.dss -rw-r----- 1 oracle oinstall 1014459 2016-05-27 13:06 c93aa2bd-857c-4651-bba2-a4f239115189.dss
They're stored using the format in which they were created, which is XLSX (via VA) or CSV (via
[oracle@demo ssi]$ head 53f59d34-2037-40f0-af21-45ac611f01d3.dss "7 Megapixel Digital Camera","2010 Week 27",44761.88 "MicroPod 60Gb","2010 Week 27",36460.0 "MP3 Speakers System","2010 Week 27",36988.86 "MPEG4 Camcorder","2010 Week 28",32409.78 "CompCell RX3","2010 Week 28",33005.91
There's a set of DSS-related tables installed in the RCU schema
BIPLATFORM, which hold information including the XML data model for the XSA, along with metadata such as the user that uploaded the file, when they uploaded, and then name of the file on disk:
How Can the Data Set Service be Configured?
The configuration file, with plenty of inline comments, is at
ORACLE_HOME/bi/endpointmanager/jeemap/dss/DSS_REST_SERVICE.properties. From here you con update settings for the data set service including upload limits as detailed here.
XSA Performance
Since XSA are based on flat files stored in disk, we need to be very careful in their use. Whilst a database may hold billions of rows in a table with with appropriate indexing and partitioning be able to provide sub-second responses, a flat file can quickly become a serious performance bottleneck. Bear in mind that a flat file is just a bunch of data plopped on disk – there is no concept of indices, blocks, partitions — all the good stuff that makes databases able to do responsive ad-hoc querying on selections of data.
If you've got a 100MB Excel file with thousands of cells, and want to report on just a few of them, you might find it laggy – because whether you want to report on them on or not, at some point OBIEE is going to have to read all of them regardless. We can see how OBIEE is handling XSA under the covers by examining the query log. This used to be called
nqquery.log in OBIEE 11g (and before), and in OBIEE 12c has been renamed
In this example here I'm using an Excel worksheet with 140,000 rows and 78 columns. Total filesize of the source XLSX on disk is ~55Mb.
First up, I'll build a query in Answers with a couple of the columns:
The logical query uses the new
XSA syntax:
SELECT 0 s_0, XSA('prodney'.'MOCK_DATA_bigger_55Mb')."Columns"."first_name" s_1, XSA('prodney'.'MOCK_DATA_bigger_55Mb')."Columns"."foo" s_2 FROM XSA('prodney'.'MOCK_DATA_bigger_55Mb') ORDER BY 2 ASC NULLS LAST FETCH FIRST 5000001 ROWS ONLY
The query log shows
Rows 144000, bytes 13824000 retrieved from database query Rows returned to Client 200
So of the 55MB of data, we're pulling all the rows (144,000) back to the BI Server for it to then perform the aggregation on it, resulting in the 200 rows returned to the client (Presentation Services). Note though that the byte count is lower (13Mb) than the total size of the file (55Mb).
As well as aggregation, filtering on XSA data also gets done by the BI Server. Consider this example here, where we add a predicate:
In the query log we can see that all the data has to come back from DSS to the BI Server, in order for it to filter it:
Rows 144000, bytes 23040000 retrieved from database Physical query response time 24.195 (seconds), Rows returned to Client 0
Note the time taken by DSS — nearly 25 seconds. Compare this later on to when we see the XSA data served from a database, via the XSA Cache.
In terms of BI Server (not XSA) caching, the query log shows that a cache entry was written for the above request:
Query Result Cache: [59124] The query for user 'prodney' was inserted into the query result cache. The filename is '/app/oracle/biee/user_projects/domains/bi/servers/obis1/cache/NQS__736113_56359_0.TBL'
If I refresh the query in Answers, the data is fetched anew (per this changed behaviour in OBIEE 12c), and the cache repopulated. If I clear the Presentation Services cache and re-open the analysis, I get the results from the BI Server cache, and it doesn't have to refetch the data from the Data Set Service.
Since the cache has two columns in, an attribute and a measure, I wondered if running a query with just the fact rolled up might hit the cache (since it has all the data there that it needs)
Unfortunately it didn't, and to return a single row of data required BI Server to fetch all the rows again – although looking at the byte count it appears it does prune the columns required since it's now just over 2Mb of data returned this time:
Rows 144000, bytes 2304000 retrieved from database Rows returned to Client 1
Interestingly if I build an analysis with several more of the columns from the file (in this example, ten of a total of 78), the data returned from the DSS to BI Server (167Mb) is greater than that of the original file (55Mb).
Rows 144000, bytes 175104000 Rows returned to Client 1000
And this data coming back from the DSS to the BI Server has to go somewhere – and if it's big enough it'll overflow to disk, as we can see when I run the above:
$ ls -l /app/oracle/biee/user_projects/domains/bi/servers/obis1/tmp/obis_temp [...] -rwxrwx--- 1 oracle oinstall 2910404 2016-06-01 14:08 nQS_AG_22345_7503_7c9c000a_50906091.TMP -rwxrwx--- 1 oracle oinstall 43476 2016-06-01 14:08 nQS_AG_22345_7504_7c9c000a_50906091.TMP -rw------- 1 oracle oinstall 6912000 2016-06-01 14:08 nQS_AG_22345_7508_7c9c000a_50921949.TMP -rw------- 1 oracle oinstall 631375 2016-06-01 14:08 nQS_EX_22345_7506_7c9c000a_50921652.TMP -rw------- 1 oracle oinstall 3670016 2016-06-01 14:08 nQS_EX_22345_7507_7c9c000a_50921673.TMP [...]
You can read more about BI Server's use of temporary files and the impact that it can have on system performance and particularly I/O bandwidth in this OTN article here.
So – as the expression goes – "buyer beware". XSA is an excellent feature, but used in its default configuration with files stored on disk it has the potential to wreak havoc if abused.
XSA Caching
If you're planning to use XSA seriously, you should set up the database-based XSA Cache. This is described in detail in the PDF document attached to My Oracle Support note OBIEE 12c: How To Configure The External Subject Area (XSA) Cache For Data Blending| Mashup And Performance (Doc ID 2087801.1).
In a proper implementation you would follow in full the document, including provisioning a dedicated schema and tablespace for holding the data (to make it easier to manage and segregate from other data), but here I'm just going to use the existing RCU schema (BIPLATFORM), along with the Physical mapping already in the RPD (
10 - System DB (ORCL)):
NQSConfig.INI, under the
XSA_CACHE section, I set:
ENABLE = YES; # The schema and connection pool where the XSA data will be cached. PHYSICAL_SCHEMA = "10 - System DB (ORCL)"."Catalog"."dbo"; CONNECTION_POOL = "10 - System DB (ORCL)"."UT Connection Pool";
And restart the BI Server:
/app/oracle/biee/user_projects/domains/bi/bitools/bin/stop.sh -i obis1 && /app/oracle/biee/user_projects/domains/bi/bitools/bin/start.sh -i obis1
Per the document, note that in the BI Server log there's an entry indicating that the cache has been successfully started:
[101001] External Subject Area cache is started successfully using configuration from the repository with the logical name ssi. [101017] External Subject Area cache has been initialized. Total number of entries: 0 Used space: 0 bytes Maximum space: 107374182400 bytes Remaining space: 107374182400 bytes. Cache table name prefix is XC2875559987.
Now when I re-run the test XSA analysis from above, returning three columns, the BI Server goes off and populates the XSA cache table:
-- Sending query to database named 10 - System DB (ORCL) (id: <<79879>> XSACache Create table Gateway), connection pool named UT Connection Pool, logical request hash b4de812e, physical request hash 5847f2ef: CREATE TABLE dbo.XC2875559987_ZPRODNE1926129021 ( id3209243024 DOUBLE PRECISION, first_n[..]
Or rather, it doesn't, because
PHYSICAL_SCHEMA seems to want the literal physical schema, rather than the logical physical one (?!) that the
USAGE_TRACKING configuration stanza is happy with in referencing the table.
Properties: description=<<79879>> XSACache Create table Exchange; producerID=0x1561aff8; requestID=0xfffe0034; sessionID=0xfffe0000; userName=prodney; [nQSError: 17001] Oracle Error code: 1918, message: ORA-01918: user 'DBO' does not exist
I'm trying to piggyback on SA511's existing configruation, which uses catalog.schema notation:
Instead of the more conventional approach to have the actual physical schema (often used in conjunction with 'Require fully qualified table names' in the connection pool):
So now I'll do it properly, and create a database and schema for the XSA cache – I'm still going to use the BIPLATFORM schema though…
Updated NQSConfig.INI:
[ XSA_CACHE ] ENABLE = YES; # The schema and connection pool where the XSA data will be cached. PHYSICAL_SCHEMA = "XSA Cache"."BIEE_BIPLATFORM"; CONNECTION_POOL = "XSA Cache"."XSA CP";
After refreshing the analysis again, there's a successful creation of the XSA cache table:
-- Sending query to database named XSA Cache (id: <<65685>> XSACache Create table Gateway), connection pool named XSA CP, logical request hash 9a548c60, physical request hash ccc0a410: [[ CREATE TABLE BIEE_BIPLATFORM.XC2875559987_ZPRODNE1645894381 ( id3209243024 DOUBLE PRECISION, first_name2360035083 VARCHAR2(17 CHAR), [...]
as well as a stats gather:
-- Sending query to database named XSA Cache (id: <<65685>> XSACache Collect statistics Gateway), connection pool named XSA CP, logical request hash 9a548c60, physical request hash d73151bb: BEGIN DBMS_STATS.GATHER_TABLE_STATS(ownname => 'BIEE_BIPLATFORM', tabname => 'XC2875559987_ZPRODNE1645894381' , estimate_percent => 5 , method_opt => 'FOR ALL COLUMNS SIZE AUTO' ); END;
Although I do note that it is used a fixed
estimate_percent instead of the recommended
AUTO_SAMPLE_SIZE. The table itself is created with a fixed prefix (as specified in the obis1-diagnostic.log at initialisation), and holds a full copy of the XSA (not just the columns in the query that triggered the cache creation):
With the dataset cached, the query is then run and the query log shows a XSA cache hit
External Subject Area cache hit for 'prodney'.'MOCK_DATA_bigger_55Mb'/Columns : Cache entry shared_cache_key = 'prodney'.'MOCK_DATA_bigger_55Mb', table name = BIEE_BIPLATFORM.XC2875559987_ZPRODNE2128899357, row count = 144000, entry size = 201326592 bytes, creation time = 2016-06-01 20:14:26.829, creation elapsed time = 49779 ms, descriptor ID = /app/oracle/biee/user_projects/domains/bi/servers/obis1/xsacache/NQSXSA_BIEE_BIPLATFORM.XC2875559987_ZPRODNE2128899357_2.CACHE
with the resulting physical query fired at the XSA cache table (replacing what would have gone against the DSS web service):
-- Sending query to database named XSA Cache (id: <<65357>>), connection pool named XSA CP, logical request hash 9a548c60, physical request hash d3ed281d: [[ WITH SAWITH0 AS (select T1000001.first_name2360035083 as c1, T1000001.last_name3826278858 as c2, sum(T1000001.foo2363149668) as c3 from BIEE_BIPLATFORM.XC2875559987_ZPRODNE1645894381 T1000001 group by T1000001.first_name2360035083, T1000001.last_name3826278858) select D1.c1 as c1, D1.c2 as c2, D1.c3 as c3, D1.c4 as c4 from ( select 0 as c1, D102.c1 as c2, D102.c2 as c3, D102.c3 as c4 from SAWITH0 D102 order by c2, c3 ) D1 where rownum <= 5000001
It's important to point out the difference of what's happening here: the aggregation has been pushed down to the database, meaning that the BI Server doesn't have to. In performance terms, this is a Very Good Thing usually.
Rows 988, bytes 165984 retrieved from database query Rows returned to Client 988
Whilst it doesn't seem to be recorded in the query log from what I can see, the data returned from the XSA Cache also gets inserted into the BI Server cache, and if you open an XSA-based analysis that's not in the presentation services cache (a third cache to factor in!) you will get a cache hit on the BI Server cache. As discussed earlier in this article though, if an analysis is built against an XSA for which a BI Server cache entry exists that with manipulation could service it (eg pruning columns or rolling up), it doesn't appear to take advantage of it – but since it's hitting the XSA cache this time, it's less of a concern.
If you change the underlying data in the XSA
The BI Server does pick this up and repopulates the XSA Cache.
The XSA cache entry itself is 192Mb in size – generated from a 55Mb upload file. The difference will be down to data types and storage methods etc. However, that it is larger in the XSA Cache (database) than held natively (flat file) doesn't really matter, particularly if the data is being aggregated and/or filtered, since the performance benefit of pushing this work to the database will outweigh the overhead of storage space. Consider this example here, where I run an analysis pulling back 44 columns (of the 78 in the spreadsheet) and hit the XSA cache, it runs in just over a second, and transfers from the database a total of 5.3Mb (the data is repeated, so rolls up):
Rows 1000, bytes 5576000 retrieved from database Rows returned to Client 1000
If I disable the XSA cache and run the same query, we see this:
Rows 144000, bytes 801792000 Retrieved from database Physical query response time 22.086 (seconds) Rows returned to Client 1000
That's 764Mb being sent back for the BI Server to process, which it does by dumping a whole load to disk in temporary work files:
$ ls -l /app/oracle/biee/user_projects/domains/bi/servers/obis1/tmp/obis_temp [...]] -rwxrwx--- 1 oracle oinstall 10726190 2016-06-01 21:04 nQS_AG_29733_261_ebd70002_75835908.TMP -rwxrwx--- 1 oracle oinstall 153388 2016-06-01 21:04 nQS_AG_29733_262_ebd70002_75835908.TMP -rw------- 1 oracle oinstall 24192000 2016-06-01 21:04 nQS_AG_29733_266_ebd70002_75862509.TMP -rw------- 1 oracle oinstall 4195609 2016-06-01 21:04 nQS_EX_29733_264_ebd70002_75861716.TMP -rw------- 1 oracle oinstall 21430272 2016-06-01 21:04 nQS_EX_29733_265_ebd70002_75861739.TMP
As a reminder – this isn't "Bad", it's just not optimal (response time of 50 seconds vs 1 second), and if you scale that kind of behaviour by many users with many datasets, things could definitely get hairy for all users of the system. Hence – use the XSA Cache.
As a final point, with the XSA Cache being in the database the standard range of performance optimisations are open to us – indexing being the obvious one. No indexes are built against the XSA Cache table by default, which is fair enough since OBIEE has no idea what the key columns on the data are, and the point of mashups is less to model and optimise the data but to just get it up there in front of the user. So you could index the table if you knew the key columns that were going to be filtered against, or you could even put it into memory (assuming you've licensed the option).
The MoS document referenced above also includes further performance recommendations for XSA, including the use of RAM Disk for XSA cache metadata files, as well as the managed server temp folder
External Subject Areas are great functionality, but be aware of the performance implications of not being able to push down common operations such as filtering and aggregation. Set up XSA Caching if you are going to be using XSA properly.
If you're interested in the direction of XSA and the associated Data Set Service, this slide deck from Oracle's Socs Cappas provides some interesting reading. Uploading Excel files into OBIEE looks like just the beginning of what the Data Set Service is going to enable!
The post OBIEE 12c – Extended Subject Areas (XSA) and the Data Set Service appeared first on Rittman Mead Consulting.
Changes in BI Server Cache Behaviour in OBIEE 12c : OBIS_REFRESH_CACHE
The OBIEE BI Server cache can be a great way of providing a performance boost to response times for end users – so long as it's implemented carefully. Done wrong, and you're papering over the cracks and heading for doom; done right, and it's the 'icing on the cake'. You can read more about how to use it properly here, and watch a video I did about it here. In this article we'll see how the BI Server cache has changed in OBIEE 12c in a way that could prove somewhat perplexing to developers used to OBIEE 11g.
The BI Server cache works by inspecting queries as they are sent to the BI Server, and deciding if an existing cache entry can be used to provide the data. This can include direct hits (i.e. the same query being run again), or more advanced cases, where a subset or aggregation of an existing cache entry could be used. If a cache entry is used then a trip to the database is avoided and response times will typically be better – particularly if more than one database query would have been involved, or lots of additional post-processing on the BI Server.
When an analysis or dashboard is run, Presentation Services generates the necessary Logical SQL to return the data needed, and sends this to the BI Server. It's at this point that the cache will, or won't, kick in. The BI Server will accept Logical SQL from other sources than Presentation Services – in fact, any JDBC or ODBC client. This is useful as it enables us to validate behaviour that we're observing and see how it can apply elsewhere.
When you build an Analysis in OBIEE 11g (and before), the cache will be used if applicable. Each time you add a column, or hit refresh, you'll get an entry back from the cache if one exists. This has benefits – speed – but disadvantages too. When the data in the database changes, you will still get a cache hit, regardless. The only way to force OBIEE to show you the latest version of the data is to purge the cache first. You can target cache purges based on databases, tables, or even specific queries – but you do need to purge it.
What's changed in OBIEE 12c is that when you click "Refresh" on an Analysis or Dashboard, the query is re-run against the source and the cache re-populated. Even if you have an existing cache entry, and even if the underlying data has not changed, if you hit Refresh, the cache will not be used. Which kind of makes sense, since "refresh" probably should indeed mean that.
Digging into OBIEE Cache Behaviour
Let's prove this out. I've got SampleApp v506 (OBIEE 188.8.131.52), and SampleApp v511 (OBIEE 12.2.1). First off, I'll clear the cache on each, using
call saPurgeAllCache();, run via Issue SQL:
Then I can use another BI Server procedure call to view the current cache contents (new in 220.127.116.11),
call NQS_GetAllCacheEntries(). For this one particularly make sure you've un-ticked "Use Oracle BI Presentation Services Cache". This is different from the BI Server cache which is the subject of this article, and as the name implies is a cache that Presentation Services keeps.
I've confirmed that the BI Server cache is enabled on both servers, in
############################################################################### # # Query Result Cache Section # ############################################################################### [CACHE] ENABLE = YES; # This Configuration setting is managed by Oracle Enterprise Manager Fusion Middleware Control
Now I create a very simple analysis in both 11g and 12c, showing a list of Airline Carriers and their Codes:
After clicking Results, a cache entry is inserted on each respective system:
Of particular interest is the create time, last used time, and number of times used:
If I now click Refresh in the Analysis window:
We see this happen to the caches:
In OBIEE 11g the cache entry is used – but in OBIEE 12c it's not. The
CreatedTime is evidently not populated correctly, so instead let's dive over to the query log (nqquery/obis1-query in 11g/12c respectively). In OBIEE 11g we've got:
-- SQL Request, logical request hash: 7c365697 SET VARIABLE QUERY_SRC_CD='Report',PREFERRED_CURRENCY='USD';SELECT 0 s_0, "X - Airlines Delay"."Carrier"."Carrier Code" s_1, "X - Airlines Delay"."Carrier"."Carrier" s_2 FROM "X - Airlines Delay" ORDER BY 1, 3 ASC NULLS LAST, 2 ASC NULLS LAST FETCH FIRST 5000001 ROWS ONLY -- Cache Hit on query: [[ Matching Query: SET VARIABLE QUERY_SRC_CD='Report',PREFERRED_CURRENCY='USD';SELECT 0 s_0, "X - Airlines Delay"."Carrier"."Carrier Code" s_1, "X - Airlines Delay"."Carrier"."Carrier" s_2 FROM "X - Airlines Delay" ORDER BY 1, 3 ASC NULLS LAST, 2 ASC NULLS LAST FETCH FIRST 5000001 ROWS ONLY
Whereas 12c is:
-- SQL Request, logical request hash: d53f813c SET VARIABLE OBIS_REFRESH_CACHE=1,QUERY_SRC_CD='Report',PREFERRED_CURRENCY='USD';SELECT 0 s_0, "X - Airlines Delay"."Carrier"."Carrier Code" s_1, "X - Airlines Delay"."Carrier"."Carrier" s_2 FROM "X - Airlines Delay" ORDER BY 3 ASC NULLS LAST, 2 ASC NULLS LAST FETCH FIRST 5000001 ROWS ONLY -- Sending query to database named X0 - Airlines Demo Dbs (ORCL) (id: <<320369>>), connection pool named Aggr Connection, logical request hash d53f813c, physical request hash a46c069c: [[ WITH SAWITH0 AS (select T243.CODE as c1, T243.DESCRIPTION as c2 from BI_AIRLINES.UNIQUE_CARRIERS T243 /* 30 UNIQUE_CARRIERS */ ) select D1.c1 as c1, D1.c2 as c2, D1.c3 as c3 from ( select 0 as c1, D1.c1 as c2, D1.c2 as c3 from SAWITH0 D1 order by c3, c2 ) D1 where rownum <= 5000001 -- Query Result Cache: [59124] The query for user 'prodney' was inserted into the query result cache. The filename is '/app/oracle/biee/user_projects/domains/bi/servers/obis1/cache/NQS__736117_52416_27.TBL'.
Looking closely at the 12c output shows three things:
- OBIEE has run a database query for this request, and not hit the cache
- A cache entry has clearly been created again as a result of this query
- The Logical SQL has a request variable set:
This is evidently added it by Presentation Services at runtime, since the Advanced tab of the analysis shows no such variable being set:
Let's save the analysis, and experiment further. Evidently, the cache is being deliberately bypassed when the Refresh button is clicked when building an analysis – but what about when it is opened from the Catalog? We should see a cache hit here too:
Nope, no hit.
But, in the BI Server query log, no entry either – and the same on 11g. The reason being …. Presentation Service's cache. D'oh!
From Administration > Manage Sessions I select Close All Cursors which forces a purge of the Presentation Services cache. When I reopen the analysis from the Catalog view, now I get a cache hit, in both 11g and 12c:
The same happens (successful cache hit) for the analysis used in a Dashboard being opened, having purged the Presentation Services cache first.
So at this point, we can say that OBIEE 11g and 12c both behave the same with the cache when opening analyses/dashboards, but differ when refreshing the analysis. In OBIEE 12c when an analysis is refreshed the cache is deliberately bypassed. Let's check on refreshing a dashboard:
Same behaviour as with analyses – in 11g the cache is hit, in 12c the cache is bypassed and repopulated
To round this off, let's doublecheck the behaviour of the new request variable that we've found,
OBIS_REFRESH_CACHE. Since it appears that Presentation Services is adding it in at runtime, let's step over to a more basic way of interfacing with the BI Server –
nqcmd. Whilst we could probably use Issue SQL (as we did above for querying the cache) I want to avoid any more behind-the-scenes funny business from Presentation Services.
In OBIEE 12c, I run
/app/oracle/biee/user_projects/domains/bi/bitools/bin/nqcmd.sh -d AnalyticsWeb -u prodney -p Admin123
Enter Q to enter a query, as follows:
SET VARIABLE OBIS_REFRESH_CACHE=1,QUERY_SRC_CD='Report',PREFERRED_CURRENCY='USD';SELECT 0 s_0, "X - Airlines Delay"."Carrier"."Carrier Code" s_1, "X - Airlines Delay"."Carrier"."Carrier" s_2 FROM "X - Airlines Delay" ORDER BY 3 ASC NULLS LAST, 2 ASC NULLS LAST FETCH FIRST 5000001 ROWS ONLY
In `obis1-query.log' there's the cache bypass and populate:
Query Result Cache: [59124] The query for user 'prodney' was inserted into the query result cache. The filename is '/app/oracle/biee/user_projects/domains/bi/servers/obis1/cache/NQS__736117_53779_29.TBL'.
If I run it again without the
OBIS_REFRESH_CACHE variable:
SET VARIABLE QUERY_SRC_CD='Report',PREFERRED_CURRENCY='USD';SELECT 0 s_0, "X - Airlines Delay"."Carrier"."Carrier Code" s_1, "X - Airlines Delay"."Carrier"."Carrier" s_2 FROM "X - Airlines Delay" ORDER BY 3 ASC NULLS LAST, 2 ASC NULLS LAST FETCH FIRST 5000001 ROWS ONLY
We get the cache hit as expected:
-------------------- Cache Hit on query: [[ Matching Query: SET VARIABLE OBIS_REFRESH_CACHE=1,QUERY_SRC_CD='Report',PREFERRED_CURRENCY='USD';SELECT 0 s_0, "X - Airlines Delay"."Carrier"."Carrier Code" s_1, "X - Airlines Delay"."Carrier"."Carrier" s_2 FROM "X - Airlines Delay" ORDER BY 3 ASC NULLS LAST, 2 ASC NULLS LAST FETCH FIRST 5000001 ROWS ONLY Created by: prodney
Out of interest I ran the same two tests on 11g — both resulted in a cache hit, since it presumably ignores the unrecognised variable.
In OBIEE 12c, if you click "Refresh" on an analysis or dashboard, OBIEE Presentation Services forces a cache-bypass and cache-reseed, ensuring that you really do see the latest version of the data from source. It does this using the request variable, new in OBIEE 12c,
The post Changes in BI Server Cache Behaviour in OBIEE 12c : OBIS_REFRESH_CACHE appeared first on Rittman Mead Consulting.


text:
Royal Baby: It's a boy!
The Duchess of Cambridge has given birth to a son.
The Duchess of Cambridge has given birth to a son.
#RoyalBabyBoy :D congratulations!!!
Congratulations to William and Kate !! <3 #ManyBlessings
The cardiac service at Bristol Children's Hospital was blighted by understaffing and poor communication, according to a review out today.
Parents whose children died after heart surgery at Bristol Children's Hospital say they're frustrated by new reports into their cases.
It's clearing up out there but be prepared for more rain into tomorrow

subset: commoncrawl


text:
restaurant manager jobs near Framingham, MA
Refine your searchClear Filters
Date Added
More Filters
Line Cook
North Hill - Needham, MA
Shift – 40 Hours – Non-Exempt – 11:30 am to 8:00 pm (typically) – Weekends are required*. 2 –3 years experience in restaurant and/or hospitality industry....
Restaurant Manager
LongHorn Steakhouse - Marlborough, MA
Stable job history which demonstrates upward career and salary progression. The manager is responsible for leading department-level restaurant operations;...
Tavistock Restaurant Collection-Joe's Framingham - Framingham, MA
The Front of House Manager manages costs, builds Tribe membership and maintains accountability for achieving success in these areas....
Chef de Partie
Dig Inn Seasonal Market - Boston, MA
Our kitchen is designed using the classical Brigade system -- which means no matter where you start out with us, you have a clear career path with mentorship...
Sous Chef/Kitchen Manager
Landry's Inc. - McCormick & Schmick's - Boston, MA
Continued career development and growth opportunities. The company operates more than 500 high-end and casual dining establishments around the world, including...
Restaurant Manager
Ninety Nine Restaurant & Pub - Burlington, MA
99, Ninety Nine, NinetyNine, 99 Restaurant, 99 Restaurants, The 99 Restaurants, Restaurant, restaurant manager, manager, restaurant job, restaurant employment,...
Line Cooks - Interviews This Thursday
Ninety Nine Restaurant & Pub Team Members - Somerville, MA
Ninety Nine Restaurant & Pub is one of the largest full-service casual dining restaurant concepts in the Northeast....
Restaurant Kitchen Manager
Au Bon Pain - Boston, MA
College Degree in hospitality preferred. Demonstrates the ability to lead teams to a positive result. Adheres to standardized recipes, production systems and...
Kitchen Manager
Tilted Kilt Pub & Eatery - Boston, MA
Available to work a variety of shifts, including weekends, holidays, and events. Passionate about food, sports, and entertainment....
Assistant Manager
Jimmy John's Gourmet Sandwiches - Northborough, MA
Our Assistant Managers operate and lead shifts at the store when the General Manager is not on duty. If you think like an entrepreneur and have a strong desire...


text:
Using images on your website? What you need to know
With Google changing its image search parameters to allow you to search for Commercial Use photographs, we sat down with Kelly Thompson, COO of iStockphoto the market leader in royalty free images, to see whether photos on the web really have just become free for all users or whether there are strings attached.
Typically, blogs fall into two categories: editorial and commercial. Blogs considered purely editorial in nature – those that are non-commercial and related to events that are newsworthy or of public interest – have a different set of rules that may apply with respect to model and property releases and licenses.
If your blog has a commercial purpose, ie you are trying to sell stuff against it rather than just talk about your life experiences, here are some things to consider regarding using images on your site:
"Free" License Use
Images licensed using Creative Commons or another "free" license site may be fine for some blogging uses, but you need to be aware of the license limitations. Many of the images, by request of the artist, are available only for non-commercial use. If you are making money from your blog or are using the image in any way to sell something, and the artist has specified that his or her license does not extend to commercial usage, you may be in breach of the license agreement and could face serious legal ramifications. There are other limitations to Creative Commons licenses and it is advisable to confirm that your use is in compliance with the specific license agreement.
Image Inspection
Importantly, there is no inspection process at Creative Commons with respect to trademark, copyright or privacy compliance. As an example, Virgin Mobile Pty Ltd (Australia) found this out the hard way. They used an image of a young girl licensed under Creative Commons in an ad campaign but, unbeknownst to them, that girl had never agreed to allow her likeness to be used by Virgin in the manner that it was used. Virgin used the image as per the Creative Commons license but, because there was no model release by the subject, was sued by the girl's family for libel and invasion of privacy.
Trademarks / Copyright
Pay close attention to images that contain logos or trademarks from other companies. If you're using them for your own gain, you can expect a call, at a minimum, to remove the image. Some companies are very litigious when it comes to trademark issues.
When looking for an image with people or a specific place, you should definitely license the image from a reputable source with an inspection process that looks for copyright, trademark and privacy infringement. Images with identifiable people or places need appropriate releases! Using an image without one is asking for trouble.
What about the images you took yourself for your blog? Are they safe? And what if someone else uses them?
In order to protect yourself, always ensure that if you have recognisable/identifiable people, buildings, restaurants, businesses or logos in images, you have a model or property release.
Check your own work online
Chances are, if you are ripping other people's images to use on your blog, others are doing the same to you. You can find out if your images are being used on the Web without your consent. Try TinEye (http://tineye.com). Submit your photo and it will scan the Web for you. If someone else is using your images without your consent, you may have a right to demand they remove the image, credit your work or pay you damages.
Use a service
Although slightly biased, Thompson says royalty-free microstock sites like iStockphoto are designed to help you find the image you want quickly. Unlike Flickr and Google, a photo uploaded to a microstock site has individual keywords attached to it, describing the subject, composition, elements within and broad ideas associated with the photo (such as an emotion). iStockphoto even goes as far as offering a feature called CopySpace, that allows you to search based on blank areas of the photo available for text or branding.
Kelly Thompson is chief operating officer at iStockphoto.com.
Edit photos like the pros with Adobe Creative Cloud Photography Plan: 1-year Membership
Build a strong IT career with the Linux Complete System Administrator Bundle...
Facebook Slideshow: How to create quick movies from your pics and vids
Twitter Stickers are the hashtags for your photos, only sillier
- Edit photos like the pros with Adobe Creative Cloud Photography Plan: 1-year Membership
- Build a strong IT career with the Linux Complete System Administrator Bundle (over 90 per cent off)
- Facebook Slideshow: How to create quick movies from your pics and vids
- Twitter Stickers are the hashtags for your photos, only sillier
- Get lifetime access to over 500,000 vectors, templates, and more - now 33 per cent off
- Online security for life: Pay what you want for IPinator VPN
- Boston Dynamics' latest robot dog can do your dishes and fetch a soda
- Be warned: Game of Thrones spoiler site is pure evil, will text you spoilers
- Protect your smartphone data with G Cloud Unlimited Backup - now over 90 per cent off
- Learn Apple's coding language with Interactive Swift Programming Exercises
- Samsung Galaxy Note 7: Release date, rumours and everything you need to know
- Best smartphones 2016: The best phones available to buy today
- Microsoft Windows 10 Anniversary Update: New features, release date and everything you need to know
- Apple iPhone 7: Release date, rumours and everything you need to know
- New TouchWiz UI shows off Galaxy Note 7's likely software
- This push-button tracker lets you call and locate your kids in real time
- Sony Xperia X review: Sony in a spin?
- What is HDR, what TVs support HDR, and what HDR content can I watch?
- It looks like BlackBerry Hamburg won't even be made by BlackBerry anymore
- Now TV Smart Box 4K: Release date, price, specs and everything you need to know


text:
technical support supervisor jobs near Salt Lake City, UT
Refine your searchClear Filters
Date Added
More Filters
Supervisor Service Account Management
UnitedHealth Group - West Valley City, UT
Coordinates, supervises and is accountable for the daily activities of business support, technical or production team or unit....
Estimator - Sandy, Utah
SunSteel, LLC - Sandy, UT
Performs other job duties as assigned by supervisor. Or equivalent from two-year college or technical school....
Production Manager
UST MFG LLC - Layton, UT
Directs the efforts of the department supervisors as they manage day-to-day production activities. Support of and involvement in company, department, and/or...
Inside Sales Specialist - Waterworks - West Jordan UT (9629555)
HD Supply - West Jordan, UT
+ Is sought out and/or assigned to provide general guidance/direction, training, and technical assistance to junior level support personnel....
Sr. Application Engineer-Protection Relays-Western US
fulltimeGiGS - United States
Application Engineering Supervisor. Handle correspondence with customers and Sales Representatives on matters relating to applications, technical support, and...
Haul Truck Supervisor
All Resort Group - Salt Lake City, UT
Facilitate a work environment that supports a safe and health culture. Provide technical advice, coaching, guidance, and mentoring to employees on safety...
Operations Asst Store Manager (9642759)
Harbor Freight Tools - Salt Lake City, UT
Technical Duties and Responsibilities:. Promotes and supports workplace diversity initiatives. Technical, Trade, Vocational Degree or 2 years Management •...
Occupational Medicine - Physician
Posterity Group, LLC - Layton, UT
MD or DO Degree (from an approved school) Masters Degree in Public Health Residency in Occupational Medicine Certified by the American Board of Preventive...
Occupational Therapist / OT
Brighton Rehabilitation - Salt Lake City, UT
Date Supervisor Signature Date. Shares knowledge and technical skills with other team members. Recommend, provide, or adapt assistive or orthotic devices to...
Territory Sales Representative
Campbell Soup Company - Salt Lake City, UT
Establish, and maintain, call frequency on major chain supervisors to support sales and service levels. Maintain regular chain supervisor contacts....


text:
Change Location
ACE Fit Share
Add some variety to your fitness routine with these upper and lower leg exercises from The American Council on Exercise. We have a large selection of leg exercises that will will help you strengthen and build muscle throughout your legs including your hamstrings, thighs, shin and calf muscles. Start taking advantage of this free information today! If you are looking for full workout routines that incorporate these leg exercises, check out our Workouts section.
Fit Life Articles
With class schedules expanding at gyms around the country and boutique fitness studios booming, it's clear that people are flocking to group fitness classes—and with good reason. Group fitness classes offer the opportunity to experience movement in positive, memorable, and...
Now is the time to embark on a new journey to live a complete life that maximizes your physical capabilities and wellness. These action strategies will help you achieve a greater level of balance that will contribute significantly to your physical well-being and inspire you...
It can be challenging to eat healthy on vacation, especially if your adventure includes a lot of time spent on the road. But with a little pre-planning and some mindfulness, you can eat healthier on your trip, even when your choices are limited!


text:
John Fogerty, Kip Moore added to Harley-Davidson 110th anniversary lineup; two-day passes added
PLEASE NOTE: A Journal Sentinel subscription is now required to comment. You can read more about that transition in our FAQ. As always, our discussion guidelines and terms of use still apply to all comments and commenters. If you have any issues logging in to or using our commenting system, please let us know.
- You can log in to this system either through Facebook or using your JSOnline public profile. JSOnline public profile. Please note that your public profile login will be different than your JS Everywhere login.
- You can personalize your public profile with a photo. You can also use that profile to sign up for email newsletters and alerts.
- While we strive for a lively and vigorous debate of the issues, we do not tolerate name calling, foul language or other inappropriate behavior. Please see our discussion guidelines and terms of use for more information.
- While we do our best to moderate comments, we do not screen comments before they are posted. If you see a comment that violates our guidelines, please use the "Report Abuse" link to notify us of the issue.
- We reserve the right to close commenting on specific stories.
Also added...Miley Cyrus,Justin Biever, and the Village People. Kid Crock..again????
too bad kid rock is there. would have loved to have seen Fogerty but don't want to deal with all the other rip off garbage that will be played in between.
Awww. Elton John was busy this time?!
ROFLHide replies
This joke wasn't that funny when the Harley Fest lineup was first announced months ago.
Now it's not only lame, but it's tired.
Actually, it's still funny. Are we supposed to pretend it never happened? Mystery performer is Elton 'Like a Candle in the f'n Wind' John? Are you kidding me? Talk about lame.
Well, Saturday Night's Alright For Fighting and something tells me Elton John would just love to take on someone called PushPull.
Just checked Pollstar. The Rolling Stones are available.
Ah, another Harleyfest. Can't wait to see the corporate execs who have their bikes shipped here and then ride around for a few days and pretend to be cool.Hide replies
You just wish you could!
I don't think Reasonable is jealous, Vino. Neither am I. I find all the faux tough-guy posturing among Harley riders laughable. I have nothing against motorcycles, but I find Harleys in particular are, for the most part, unnecessarily and obnoxiously loud. You can pretend to be a person you're not all you want on the weekends. But if people poke fun at you for it, that's part of the package.
Everybody look at me!
Poseur Party!
Chef Jason Tofte to open second restaurant in downtown Waukesha
Theater Review: In Wilder's 'Skin of Our Teeth,' actors keep trying to get it right
Opera Review: In 'Thank You. NEXT?' hopefuls display operatic passion for singing
Summerfest 2016: 35 must-see Summerfest acts
On Tap Today: Egg rolls, landmarks and beer
Summerfest 2016: Be on the lookout for potential bottlenecks at these six shows
Summerfest 2016: Fireworks, parades part of family friendly options at festival
Summerfest 2016: How to get into Summerfest for free
Fourth of July fireworks, parades in the Milwaukee area 2016
Summerfest 2016: Summerfest features lavish new food, including deep-fried old-fashioned
Summerfest 2016: Traditional Firkin, twist on Berliner Weisse some of new brews at fest
Summerfest 2016: What you need to know before heading to Summerfest
'Forget Me Not' play to promote participation in Alzheimer's research
Book Review: Poets find honey in the subject of bees, also worry about losing them
A guide to summer festivals and free concerts
Album Reviews: Blink-182, Kris Kristofferson, Bruce Hornsby, Jake Bugg
Top of the Charts: Drake maintains No. 1 spot
Ben Affleck stands by expletive-filled 'Deflategate' rant
Cravings: Casual Meals: Blue Star Cafe diners find large entrées of Somali comfort food
Entertainment Blogs
Browse our weekly entertainment calendar listings from the Journal Sentinel Cue section, posted every Thursday evening.


text:
...I have a way of taking difficult material and explaining it clearly. I am hardworking and believe in doing my best. Thank you, JanetHello,After 25 years of teaching K-12 all grades and all subjects, I believe I am qualified to tutor any subject in the kindergarten through sixth grade level.
Redwood City, CAView Tutor
...Every time I teach a class, I teach some of my students to use it, because I think it's something that everyone in a scientific field should know. I have taught a college class on mathematics for business majors, which covers most of the topics most students need help with when they seek finite ...
San Francisco, CAView Tutor
...Science has been a lifelong passion of mine and I enjoy helping others learn about science and mathematics. I have many years experience teaching and tutoring and I have references available upon request. Location and scheduling are flexible for me.
Berkeley, CAView Tutor
...In my career I've not only studied physics, mathematics and statistics, but applied them as well as time management and study skills. I can help a student succeed in all these areas. My career has included a PhD in Nuclear Physics, postdoctoral work in nuclear astrophysics and over twenty years...
Castro Valley, CAView Tutor
...With this question, she taught me something about myself. I do indeed love chemistry and take great care to make sure my explanations are understandable and make sense. I've tutored many students in AP Chem and know the curriculum well.
Berkeley, CAView Tutor


text:
Start the first discussion
Help support your Meetup
The New York FileMaker Pro Developers' Group is a collection of FileMaker developers in the tri-state area. We get together monthly to discuss ideas, have presentations of applications, plug-ins, and have round-table discussions.
1,800 Members
2,576 AWS Enthusiasts
5,929 Coders
2,220 Innovators
3,353 Data Scientists
6,933 Data hackers
Meetup members, Log in
By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy


text:
© The Financial Times Ltd 2016 FT and 'Financial Times' are trademarks of The Financial Times Ltd.
March 4, 2013 6:45 pm
Some months ago, I was discussing the euro crisis with a high-ranking US diplomat. "It's back to the 1930s, isn't it?" said my companion with a mixture of gloom and relish. "The extremists are on the rise."
After the Italian elections, these doom-laden predictions are redoubling. The Spectator, a British magazine, has labelled Beppe Grillo as "Italy's new Mussolini". Even some Italian commentators have made the same comparison.
That is not just unfair on Mr Grillo, a comedian whose Five Star Movement has just scooped up 25 per cent of the vote. It is also a misreading of how European politics are likely to develop, under conditions of economic stress. The temptation is to argue that because the Depression of the 1930s led to the rise of fascists and communists, the current economic crisis will provoke a similar flight to the far right and the far left.
There are a few similarities between Europe then and now. As in the 1930s, a financial crash, followed by austerity policies, has led to high unemployment. Once again, new political movements are springing up that heap scorn on the governing class. But dig a little deeper and the comparisons seem superficial. When the Depression arrived in Europe, only 12 years had passed since the continent had suffered the horrors of the first world war. About 40 per cent of French and German men aged 19-21 in 1914 were killed in the next four years. Italy also suffered terrible casualties. Overall, more than 10m soldiers died in Europe. Millions more were mutilated.
Adolf Hitler and Benito Mussolini were both veterans of the war and the movements they led were profoundly shaped by it. Mussolini took power in the 1920s, before the Depression even hit Europe. When it got under way in the 1930s, Europe was ill-prepared. Welfare states were vestigial, so unemployment often spelt destitution and hunger.
By contrast, modern Europe is a much richer and less traumatised continent. Of course, times are tough in countries such as Portugal, where wages and pensions have been cut. Unemployment is high across the eurozone and many people fear for the future. But this is not the 1930s.
The country that looks closest to producing 1930s-style politics is Greece, whose economy has suffered the deepest contraction of any in Europe – shrinking by 25 per cent. That has led to the rise of Golden Dawn, a far-right party that flirts with fascist themes, from ultranationalism to anti-semitism. Golden Dawn is currently at about 10 per cent in the polls and the far-left Syriza party came a close second in the last election. But, for now, an unpopular centrist government continues to hold power.
What is striking about Greece, moreover, is that it remains exceptional in contemporary Europe. If you look at the rest of the continent, the far right and the far left have not yet made dramatic headway – even in countries such as Portugal, Italy and Spain, whose economies are suffering badly.
In Spain, where youth unemployment is now higher than 50 per cent, the big new political development is the rise of Catalan nationalism. This is a serious phenomenon that threatens the unity of the country. But it is not to be confused with a resurgence of Francoism or the anarchist movements of the 1930s.
Italy's regional separatists, the Northern League, emerged well before the economic crisis but did badly in the most recent election. The new force in Italian politics is Mr Grillo and his movement – whose political style is very different from that of the Italian fascists. Mussolini was militaristic and bombastic. Mr Grillo uses humour and informality as his trademarks. It is true that he ridicules the Italian parliament and political class. But he has never rejected democracy as a system.
In fact, modern Europeans seem more likely to react to bad times by voting for a comedian than for a fascist. Mr Grillo is not an isolated example. In Iceland, whose economy was devastated by a financial crisis, the voters elected Jon Gnarr, a stand-up comic, as the mayor of Reykjavik, the capital. Mr Gnarr's political pledges included a drug-free parliament within a decade.
A comic's ability to combine anger and humour works politically, when things look bleak. Comedians can also make unconventional proposals that subvert the pomposity of politics as usual. Mr Grillo has promised to slash the pay of politicians, make the internet faster and create more bicycle lanes.
The difficulty for politicians who make their breakthroughs as truth-telling clowns is that actually wielding power presents them with some distinctly unfunny choices. That may be partly why Mr Grillo is currently rejecting all overtures to form a coalition government.
Where his Five Star Movement has gained power at the local level, it has governed pragmatically. In Parma, Mr Grillo's followers found themselves in charge of a city that was hugely in hock. They responded by refinancing the debt and pushing through spending cuts. Similarly, in Reykjavik, the comedy mayor has had to cut jobs and raise taxes.
By contrast, Mr Grillo's proposals for Italy's national economic crisis hint at much more radical policies. He has talked of stopping payments on Italy's huge national debt – and flirted with the idea of Italy leaving the euro. Most mainstream politicians treat these ideas as a bad joke. But, unless they can find a way forward that looks more attractive than another five years of austerity, Mr Grillo and his imitators could have the last laugh in Italy.
Copyright The Financial Times Limited 2016. You may share using our article tools.
Please don't cut articles from FT.com and redistribute by email or post to the web.


text:
Hotels in Visp, Switzerland
Search & Compare Visp Hotels
Trending now in Visp
Hotels in Visp
- Most bookedHotel Visperhof
7 people looked at this hotel in the last hour
Most recent review
"Couldn't get a room in zermatt for my first night and this was the perfect solution. Up early, a fab breakfast and 5 mins to the station, I was on the slopes bright and early after a ride on the fabulous Swiss railway."
A Traveller, Apr 2016, GB
- Centerpark Apartments
No Guest Reviews yet
Hotels within 5 miles of Visp
99 people looked at this hotel in the last hour
Most recent review
"very nice hotel with great breakfast. very nice staff."
A Traveller, Aug 2015, IL
5 people looked at this hotel in the last hour
Hotels within 10 miles of Visp
104 people looked at this hotel in the last hour
20 people looked at this hotel in the last hour
Most recent review
"The staff was very good and extremely helpful. I would recommend this hotel."
A Traveller, May 2016, US
19 people looked at this hotel in the last hour
Most recent review
"Nice hotel in nice place. Overpriced a little, but all Switzerland the same issue. There is no room for storing ski. Wi-fi was terrible, sometimes good signal with no connection. But those things did not spoil our weekend. So, reccomended!"
A Traveller, Apr 2016, GB
14 people looked at this hotel in the last hour
Most recent review
"The hotel is facing the train station with just 3 mins walk. Host was very friendly and helpful, who asked me the place to go and give me suggestions, and expected weather condition. The room was clean and has a good Wifi connection. Great service with reasonable price."
A Traveller, Aug 2015, AS
10 people looked at this hotel in the last hour
Most recent review
"Its right opposite BRIG Station making it very convenient to move around.... Hotel was good and room was great with nice view of the mountains. Complimentary coffee and WiFi was available. Staff is was very helpful and courteous."
A Traveller, Apr 2015, GB
- Hotel De Londres
No Guest Reviews yet
7 people looked at this hotel in the last hour
Just booked in Visp
- Hotel Touring–Booked 2 hours ago from United Kingdom
- Matterhorn Valley Hotel & Spa Hannigalp–Booked 12 hours ago from United Kingdom
- Good Night Inn–Booked 1 day ago from United Kingdom
- Schlosshotel Art Furrer–Booked 1 day 17 hours ago from United Kingdom
- Hotel Europe Garni–Booked 2 days 6 hours ago from United Kingdom
Best hotels in Visp
If you are looking for Visp hotels in a particular area, you can use the search feature at the top of the page to search by neighborhood, landmark, address or zip code, or you can search by using the built-in map feature. You can also browse hotels in Visp by type, amenities, and star-rating so that you can find the best hotel. Currently, top rated hotels in Visp are:
- Hotel Visperhof
- Centerpark Apartments
- Silence Hotel Buerchnerhof
- Adhhoc Hotel
- Hotel Bahnhof Ausserberg
The location of your Visp hotel is important. If you are traveling to Visp, &StateorCountry for business, you may want to consider getting a hotel close to the airport or near your meeting venue. By doing so, you can really cut down on transportation costs and time. You may also want to book a hotel that offers free wifi just in case you need to get some work done.
If you are traveling for vacation, figure out which attractions or landmarks you want to see and book a hotel that is within close proximity. Although hotels near attractions might cost a little more, you may find that spending those extra few dollars is worth the convenience. You can even find hotels that align with your interests. For example, if you are looking for a relaxing vacation, a spa hotel may be the perfect choice for you.
You'll also want to determine which type of accommodations will suit your needs before booking a hotel in Visp. If you're traveling with the kiddos, a family friendly hotel will offer larger rooms and more sleeping arrangements. For those traveling for an extended period of time, booking a hotel suite with a kitchenette is a smart move and will feel a little more like home. If you are budget conscience and just need a place to rest your head, a hostel or motel may be all you need.
If you are looking to score the best discounts and deals, use the filter to sort by price from low to high. You can book a hotel in Visp for as low as $108 per night. If you are looking to cut down on expenses, look for hotels that include free breakfast and parking. Some hotels even offer free shuttle service to and from nearby places. You can also sort by star rating, proximity, and guest rating.
Before you book, check out user reviews. Hotels.com has 12 reviews in Visp. We show reviews from Expedia and TripAdvisor so you know that you are reading genuine, reliable reviews. Be sure to download the Hotels.com app so you can book your reservations on the go, view amenities, and save the hotels you want to view and compare later.


text:
|Name: _________________________
|Period: ___________________
This test consists of 5 short answer questions, 10 short essay questions, and 1 (of 3) essay topics.
Short Answer Questions
1. What does Richard threaten Addie with at home?
2. Who does Richard persuade to publish his short story?
3. What is Richard able to steal from the next white family he works for?
4. On what level does religion interest Richard?
5. What does Richard typically eat for breakfast?
Short Essay Questions
1. What does Wright think about his writing career in retrospect?
2. Where does Richard first find his love for books?
3. Why does Richard threaten Addie with a knife in Chapter 4?
4. How does Richard's mother punish him for burning down the house?
5. What does the family decide is the best way to care for Richard and his brother?
6. Why does Richard get baptized in Chapter 6?
7. How does Richard's ability to read and write help him in Chapter 3?
8. What does Richard think about the popular contention that black people lead passionate, emotional lives?
9. Why can Richard not keep his promise to his mother not to fight white children?
10. Why does Richard continue working for the second white family, even though he dislikes them?
Essay Topics
Write an essay for ONE of the following topics:
Essay Topic 1
Why did Richard develop sympathies towards the Communist Party? How did Wright view Communist ideas later on in life?
Essay Topic 2
Examine the relationship between education and racist attitudes.
1) How has education played an important part in changing racial attitudes?
2) How did education in the past help to develop racial attitudes?
Essay Topic 3
Discuss the values of early 20th century America
1) How did the whites view blacks in the early 20th century?
2) What significant changes do you think occurred during this period that changed the way whites viewed blacks?
3) Does today's society share any values with early 20th century America?
This section contains 753 words
(approx. 3 pages at 300 words per page)


text:
Letter reveals how even Lord Nelson suffered from SEASICKNESS
- Admiral Horatio Nelson wrote to the 2nd Earl of Camden in October 1804 to explain why his nephew left the Navy after just a few months
- The Admiral is sympathetic to the Earl's nephew, admitting that he too suffered from seasickness
- The letter has gone on display at the Tunbridge Wells Museum for the first time
Hero: Rear-Admiral Sir Horatio Nelson, who admitted in a letter that he suffered seasickness
Famed for his fearless leadership during the Napoleonic war, Admiral Horatio Nelson is undoubtedly a national hero.
But a letter sent from Nelson's flagship the HMS Victory has revealed that even the inspirational commander occasionally struggled with life at sea.
In the previously unseen letter which has gone on display at the Tunbridge Wells Museum and Art Gallery, Admiral Nelson confesses to being seasick.
Nelson wrote the letter to the 2nd Earl of Camden in October 1804 to explain why his nephew had left the HMS Victory just a few months after joining the Navy.
He wrote: 'I am ill every time it blows hard and nothing but my enthusiastic love for the profession keeps me one hour at sea.'
It was sent to Lord Camden's home at Bayham Abbey estate, near Frant, East Sussex, and Nelson tells Lord Camden that 16-year-old Francis James left HMS Victory because he was not suited to naval life and suffered from seasickness - a condition he could sympathise with.
Now the letter has gone on display at Tunbridge Wells Museum.
In the letter, which was found recently in the Camden family archives, Nelson also discusses the military and political situation with Lord Camden, who was secretary of state for war and the colonies at the time.
A spokeswoman for Tunbridge Wells Museum said the letter was 'hugely important because of its historical context'.
She added 'The letter was written in October 1804 from HMS Victory in the Mediterranean where Nelson was permanently stationed to counter French influence.
'This was just a year before his great victory - and death - at the Battle of Trafalgar.
'The letter links Admiral Horatio Nelson with the local noble Camden family who lived on the Bayham Abbey estate.
Artifact: Written in October 1804, the letter to the 2nd Earl of Camden has gone on public display for the first time
Understanding: The letter sympathetically explains why the Earl's nephew left the Navy just months after joining - because he suffered greatly from seasickness
Iconic warship: The letter was sent from Nelson's flagship HMS Victory which is now docked at Portsmouth Harbour
'It also gives a fascinating insight into the character of this great naval hero.'
In November a letter from Nelson to his lover Lady Emma Hamilton was sold at auction for £20,000.
The Nelson letter has been chosen for display by Mike Bevan, Assistant Archivist at the National Maritime Museum.
Experts there were excited to learn about this new discovery and have helped to put it in its historical context.
The letter is on long-term loan to the museum from the Camden family.
In action: HMS Victory depicted during the Battle of Trafalgar in 1805
Hero: A portrait of Admiral Nelson by Lemuel Francis Abbott (1760-1802). The Naval commander became synonymous with the HMS Victory in 1803
HMS Victory was launched in 1765 at Chatham Dockyard and was used in active duty for 34 years from 1778.
It is the only surviving warship that fought in the American War of Independence, the French Revolutionary War and the Napoleonic Wars.
The first rate 100 gun ship was designed by the Surveyor of the Navy, Sir Thomas Slade.
The famous ship became the fladship of a string of fine Admirals including Admiral Keppel, Admiral Kempenfelt, Admiral Hood and Admiral Sir John Jervis.
But it wasn't until May 1803 that the ship became synonymous with Admiral Horatio Nelson.
With the threat of invasion by Napoleon causing renewed hostility with France, the ship carried the newly appointed Commander in Chief Nelson to the Mediterranean on May 16.
For the next 18 months Nelson blockaded the French fleet in Toulon to prevent them escaping to join forces with other squadrons based on France's Atlantic arsenals.
Its finest hour came at the Battle of trafalgar in 1805. In September 1805, the Victory sailed with Nelson from Portsmouth to join a blockading fleet under Collingwood off Cadiz.
French commander Villeneuve's orders were to take the combined Franco-Spanish fleet into the Mediterranean.
On October 18 1805 frigates signalled that the enemy were weighing anchor. Villeneuve's fleet, now comprising 33 ships of the line, headed for Gibraltar but, unable to shake off the British fleet, turned back for Cadiz and inevitable combat.
As day broke on Monday 21 October 1805, off Cape Trafalgar, Nelson's fleet of 27 ships formed into two columns and sailed towards the enemy. Battle commenced with Collingwood's division breaching the rear of the enemy fleet.
War: 'The Battle of Trafalgar' - as painted by Clarkson Stanfield, 1805
Nelson in Victory followed shortly, driving into the centre and opening a devastating fire into the stern of Villeneuve's flagship Bucentaure.
Victory then engaged and grappled the Redoutable. But when the fighting was at its fiercest, Nelson was shot by a French marksman and taken below where he died at later the same afternoon.
By this time the enemy had been routed and a great victory won.
17 ships had been captured and one, the French Achille, blew up as a finale to the battle. The French battle-fleet was never again a threat.
Much damaged, the Victory was towed to Gibraltar and finally returned to Portsmouth, arriving on December 4 1805, bearing her dead Admiral.
Wounded: The death of Nelson at the Battle of Trafalgar. Painting by Daniel Maclise, Houses of Parliament
After repairs at Chatham, the Victory was recommissioned in March 1808. For the next 4 years she was on active service in the Baltic and off the coasts of Spain.
In 1812, now 47 years old, she finally returned to Portsmouth on December 4 and paid off 16 days later, ending her sea-going life.
For the next 110 years the Victory remained at her moorings in Portsmouth Harbour fulfilling a combination of practical and ceremonial roles.
In 1922, amid fears for her continued survival, the Victory was moved into Portsmouth's Royal Naval Dockyard and placed in No2 Dry Dock. Work then began on restoring the Victory to her 'fighting' 1805 condition and continues today.
Source: www.HMS-victory.com
- Video appears to show gunman being shot then bomb detonated
- CCTV appears to show moment bomb goes off at Istanbul...
- Busted! Dad sends message to teen daughter after finding...
- See the wall Mark Zuckerberg is building at his Hawaii...
- Dramatic motorcycle accident on highway when load detaches
- Kitten climbs out of display and into puppy's pen in pet...
- People run through Ataturk airport moments before explosion
- Shocking video of mistress beaten in street by angry wife
- Super cute video shows dog calming a crying baby by howling
- New ISIS video shows footage of San Fran's Golden Gate...
- Man weilding gun shot by White House Secret Service in May
- 179 Dollar Huffy bike is challenged on an off-road trail
- 'There was blood and body parts everywhere': Terrifying...
- Revealed: ISIS suicide bomber detonated vest causing chaos...
- PIERS MORGAN: How can Kim Kardashian call herself a feminist...
- Now we feast! Michelle Obama and the girls are joined by...
- They're TIED: Trump vs. Clinton is suddenly too close to...
- This amazing ocean view is brought to you by Mark...
- Married TV reporters in Arizona arrested and charged after...
- EXCLUSIVE: Just five weeks until the Olympics and this is...
- Can you spot the ghost in this photo from 1900? Spooky...
- Mark Zuckerberg causes outrage after he starts building a...
- PICTURE EXCLUSIVE: Johnny Manziel puffs on suspicious...
- EXCLUSIVE: Stacey Dash's wage gap gaffe! She told Meredith...
The comments below have not been moderated.
The views expressed in the contents above are those of our users and do not necessarily reflect the views of MailOnline.
We are no longer accepting comments on this article.


text:
18 acts set for Doheny Days music festival
Jane's Addiction and the Flaming Lips will headline as the Doheny Days music festival returns to Dana Point this weekend with 18 acts of various styles playing on three stages at Doheny State Beach.
The festival is produced by Omega Events, which brought it back in 2011 after a seven-year absence, forming a bookend of sorts with the Doheny Blues Festival in May.
Read about it on Soundcheck: The Flaming Lips head to O.C. after nearly a decade away to close out Doheny Days fest this weekend
5 p.m. to midnight: Kickoff party at StillWater, 24701 Del Prado, Dana Point, with bands Oedipus and New Beat Fund
Noon: Doors open
12:30 p.m.: Standing Hawthorn (Wahoo's Stage)
1:15 p.m.: White Buffalo (Sailor Jerry Stage)
2 p.m.: Delta Spirit (Doheny Stage)
2 p.m.: Seedless (Wahoo's Stage)
3:15 p.m.: Beats Antique (Sailor Jerry Stage)
4:45 p.m.: Jimmy Eat World (Doheny Stage)
4:45 p.m.: Mishka (Wahoo's Stage)
6:15 p.m.: Santigold (Sailor Jerry Stage)
7:45 p.m.: Jane's Addiction (Doheny Stage)
Noon: Doors open
12:30 p.m.: Jeramiah Red (Wahoo's Stage)
1:15 p.m.: Anuhea (Sailor Jerry Stage
2 p.m.: Milo Greene (Doheny Stage)
2 p.m.: Midnight Hour (Wahoo's Stage)
3:15 p.m.: Steel Pulse (Sailor Jerry Stage)
4:45 p.m.: Edward Sharpe and the Magnetic Zeros (Doheny Stage)
4:45 p.m.: Aggrolites (Wahoo's Stage)
6:15 p.m.: Rebelution (Sailor Jerry Stage)
7:45 p.m.: Flaming Lips (Doheny Stage)
Single day: $60 for adults, $10 for children ages 6-12 (advance purchase at dohenydays.frontgatetickets.com); $70 for adults on day of show (children 5 and younger admitted free)
Weekend pass: $100 for adults, $15 for children (pass available only in advance)
VIP PASS (includes separate entry, preferred viewing in front of the Doheny Stage and $1 off drinks at the VIP bar):
Single day: $125 for adults, $50 for children (advance purchase); $135 for adults on day of show
Weekend pass: $200 for adults, $75 for children (pass available only in advance)
LOUNGE PASS (includes separate entry, backstage access and preferred viewing at the Doheny Stage, catered lunch, four complimentary beverages at the Backstage Lounge and a festival T-shirt):
Single day: $225 (advance purchase); $235 day of show
Weekend pass: $400 (pass available only in advance)
TICKET OUTLETS: Wahoo's Fish Taco locations and OC One Love at 34255 Pacific Coast Highway, Dana Point, have general-admission tickets; Doheny State Beach Gift Shop, 25300 Dana Point Harbor Drive; and Smokey's House of BBQ, 32860 Pacific Coast Highway, Dana Point, have general-admission tickets and single-day VIP and Lounge passes.
For more information, call the Omega Events box office at 949-360-7800.
Most Popular
- Anaheim short-term rentals owners 'reeling' after Anaheim says they have to shut down
- Costa Mesa police arrest man in Craigslist robbery
- Fan Friday: Rob Rohm's man cave is jam-packed with Angels memories
- California governor denies parole for ex-Mexican Mafia chief
- Philippines' New President, Rodrigo Duterte, Vows Tough Stance on Crime
Related Links
User Agreement
Comments are encouraged, but you must follow our Privacy Policy Policy & Terms of Use
Keep it civil and stay on topic. No profanity, vulgarity, racial slurs or personal attacks. People who harass others or joke about tragedies will be blocked. By posting your comment, you agree to allow Orange County Register Communications, Inc. the right to republish your name and comment in additional Register publications without any notification or payment.


text:
Tom Brady loves Wes Welker, but when it comes to a new deal for WR, 'none of those things are really up to me'
|05.30.12 at 12:29 pm ET
Patriots quarterback Tom Brady gave a very diplomatic response when he was asked Wednesday morning by WEEI about the possibility of wide receiver Wes Welker landing a long-term deal with the team.
'I wish there was an easy answer," Brady said of Welker, who recently signed his one-year franchise tender. "I always support Wes. None of those decisions are up to me, and these things end up working themselves out at some point. I don't know how or when or who or why, but sometimes I get emotionally involved in those types of situations and it doesn't work that well for me so I just try to support him as a friend.
"We're all in this business, and it's a tough business, and you always hope for the best. I don't know what's going to happen. I love Wes, I'd love to have him here for as long as I'm playing. But none of those things are really up to me.'
Regardless of what happens with Welker and the Patriots, it's clear the quarterback and the wide receiver have formed a special bond in their five years as teammates in New England.
"We're two people who spend a lot of time together," said Brady, who was caught by paparazzi on a beach with the wide receiver after the Super Bowl loss to the Giants. "We know what each other is going through. A lot of times your girlfriends or your wives can't really console because they don't truly understand what we put in weekly to try to be at our best. They definitely see from the outside of what we have to do to prepare each week. But no one's really inside of our building in Foxboro and sees the kind of pressure and scrutiny that all those players are out there to perform.
"You go through it and you talk through it and you support each other. Our team has always done a good job of that, every player on our team. Because I think we all do have a closeness about us that we're concerned with how people are mourning a loss or mourning something that may be really important in somebody else's life.
"My teammates are my best friends. That's the way it's always been, that's the way it's always going to be."
Latest from Bleacher Report
- Updates on Patriots Star Danny Amendola's Injuries
- Why Collins Is Patriots' Most Important 2017 Free Agent
- Biggest Issues the Patriots Will Face in 2016 Season
- Super Bowl Odds: Patriots Betting Favorites Despite Brady Suspension
- Position Battles to Watch in Patriots Training Camp
- Does Brissett Have a Chance to Be Patriots Week 1 Starter?
- Brady Is Under Too Much Pressure, and It Could Crush Pats Dynasty


text:
Will Christian Bale Ever Play Batman Again?
10 Celebrities Who Quit Hollywood Forever
Kaley Cuoco Shows Off Her Tennis Skills
20 Movies You Need To Watch At Home This Week
Fear the Walking Dead Characters You Should Know
The 10 Most Promising TV Shows of Fall 2015
The 50 Most Watched TV Shows This Season
7 TV Time Jumps That Were Done Right
Netflix is About to Spend $50 Million On Something Awesome
15 Big Questions Left Unanswered by Star Wars: The Force Awakens
The Best Action Films of 2015
'Saved By The Bell' Star Tiffani Thiessen Makes J.J. Watt's Day
Quentin Tarantino Got Offered The Biggest Movies After His Biggest Flop
6 TV Finales That Failed Spectacularly
Is Avatar Better Than We Remember?
Assassin's Creed and the Promise of the First Great Video Game Movie
Jessica Jones: Marvel's Greatest Risk Or Its Greatest Evolution?
8 Things That Still Bother Me About Back to the Future
The Best Movies of Summer 2015
This Cats vs Zombies Short Film Will Make Your Day
Back to the Future Predicted 9/11
Photo Highlights from the Comic-Con Yacht
10 Movie Characters You Can't Root for Anymore
The 15 Best Horror Films of the Millennium, So Far
The 10 Worst Superhero Movie Supporting Characters
Batgirl: A Matter of Family Trailer Released
Why All Your Heroes Are Also Villains Too
Movies You Didn't Know Were Blatant Rip-Offs
James Cameron Boasts About Avatar 2, 3 and 4
Gods of Egypt Trailer: This Could Have Been the Best Bad Movie of 2016


text:
Propet Men's Blizzard Slip-On Reviews
Rated 3 out of 5 by 2reviewers.
Rated 2 out of 5 by J27YO Too big! The shoes are 1 size or more off. Like in other reviews, the right shoes seemed bigger than the left. I tried to walk in these show and my feet kept coming out of the shoe. Nice shoe otherwise, I wish the sizing was right or that they had the shoe at the store so I could try it on first! This style would sell great here in Oregon, just a thought. December 10, 2012
Rated 4 out of 5 by Josh1 Comofort and dry This is a nice combination of traditional walking shoe and all wheather shoe. Keeps my feet warm and my back healthy while putting in a 12 hour day on my feet. November 13, 2012
1-2 of 2