Open | CMS Blog Watch

Posts Tagged ‘Open’

OpenText WCM/CMS Acquisition Roadmap

Posted in CMS, Open Text on March 3rd, 2010 by kimberlymccabe – Comments Off

Open Text Corporation (NASDAQ:OTEX) (TSX: OTC) announced on February 22, 2010 they have entered into an agreement to buy Canadian neighbor Nstein Technologies Inc. (TSX-V: EIN).  This brings the total WCM acquisitions for Open Text to 5 (FIVE) over the past several years.  While I am sure Open Text has a solid strategy in mind for their shareholders we have concerns about the underlying roadmap for these products and the potential impact on existing customers of the now acquired WCM frameworks. 

Continue Reading Travis Cole’s (COO of Oshyn, Inc) thoughts on “Open Text WCM/CMS Aquisition Roadmap

5 Template Tips – How to use HTML and CSS within RedDot CMS – Best practice for RedDot Consultants

Posted in Best practice, CMS, JavaScript, RedDot, SmartEdit, Templates, Templating, Tricks, css, html, integration, jquery on March 1st, 2010 by Markus Giesen – Comments Off
Merging HTML, CSS and RedDot templates - How to do it the right way?Merging HTML, CSS and RedDot templates
Read how to do it the right way.

This article covers the key factors for successful CSS and HTML integration into your RedDot CMS Open Text Content Management Server project. This best practice article outlines the major points to pay attention to when implementing your HTML into the CMS.

What you should do when you integrate HTML and CSS into your content class templates

  1. If you can avoid it, do not create templates for your CSS or Javascript files. A detailed post can be found here.
  2. Don’t target HTML elements directly within the CSS. Always use classes. Specifically with anchor, image and span tags. If you target HTML elements directly this might affect the red dots which will be placed inside the templates because they are anchors, images and spans.
  3. Always target the ‘first’ item in a collection of items (lists, repeating blocks, …) by using a CSS class. Within the RedDot CMS you can identify the first item in a list using ASP and PreExecute script blocks but not always can you identify the last item. Especially when the amount of items is varying and you cannot utilize Render Tags.
  4. Ensure dynamic HTML is accessible when switched off. Using Javascript code within the CMS editing view can be problematic because it can hide editable content. Ensure that when using dynamic scripts the content is also visible when Javascript is deactivated. For example when you are using jQuery with tabs and your CMS editor changes content, the page reloads when the element is being saved and the user has to open the tab again. It’s better to deactivate the tabs when the page is ‘open’ and in SmartEdit editing mode.
  5. Files such as background images, styles heets, javascript and others need to be referenced relative (../mystyle.css) rather than root or absolute referencing (/cms/projectfolder/folder-not-working-on-live-site/mystyle.css). RedDot CMS has its own folder and sub folder structure and during editing it can’t use absolute referenced style or JS files and will mix those up.

Summary

RedDot CMS is a fairly easy to use system when it comes down to templating. I am not saying it’s straight forward or a technological top notch solution. It also is not meant to be an IDE. The good thing to say about the CMS is that the elements are modularized to each single HTML object and can be used in an infinite number of ways. Pay attention to the best practice rules above and think about where your files and references will be used. When using the guidance above the HTML of your project will run smoothly on any platform and publishing target.

What is your RedDot CMS Consultant integration experience?
How do you use HTML and CSS within the RedDot CMS?
Have you ever had any trouble or even an “CMS integration epiphany”?

Read more RedDot CMS best practice articles here.

Share and Enjoy:

Print
email
Twitter
Digg
Reddit
StumbleUpon
Google Bookmarks
del.icio.us
MisterWong
Facebook
LinkedIn





Predicting FOSS Fail

Posted in community, open source on March 1st, 2010 by seth – Comments Off

The Open Source Way is a great resource for developers who want to start their own open source project. It is a wiki of lessons learned and best practices gathered primarily from experiences working on the RedHat and Fedora projects. One page that I find particularly interesting is “How to tell if a [...]

Related posts:

  1. Dimensions of Success (or Ways to Fail) While most of my consulting work is in product selection,…
  2. Do you notice anything different? If you use Blogger, you know that they have been…
  3. Interwoven’s FOSS FUD In a throwback to 2003, the Interwoven blog has a…

Related posts brought to you by Yet Another Related Posts Plugin.

LiveServer Setup Best Practice – How To Tame The OpenText Delivery Server

Posted in Apache, Best practice, Delivery Server, Helicon, IIS, LiveServer, Performance, RedDot, Tomcat, URL Rewriting, seo on February 22nd, 2010 by Markus Giesen – Comments Off

About the Author

This article is based on the blog post here of Danny Baggs. Danny has a strong developer based background and is working for Open Text.

Overview

The way the LiveServer Delivery Server is set up for a development environment usually is as a standalone application without having a front controlling web server. Although this is working for development purposes it doesn’t work within a live environment with several thousand users firing off HTTP requests every hour or minute or even second.
This post discusses the best practice of deploying the Open Text Delivery Server in an optimal way alongside a front controlling web server. This article provides a high-level overview of what to set up and how the necessary components work together. Depending on feedback I may post further posts on the details of each step.

After reading this article you will know

  • How to set up your LiveServer environment properly to ensure it is scalable, reliable and offers high performance
  • Which tools you can use to create dynamic functionality
  • How you can tweak your LiveServer to gain some SEO enhancements

How does Delivery Server work and what should you not do

The Open Text Delivery Server is a dynamic web server component that has strengths in coarse grained personalization and dynamic behaviour as well as system integration. All you need to know is where to get your hands on and what to do and what you better should not do.
The Open Text Delivery Server is housed within a Servlet Container. A Servlet Container is not the ideal location from which to serve static content. It handles requests in a way that limits the amount of concurrent requests. This can lead to severe performance issues.
There are ways to mitigate this but it needs quite a lot of Java experience and is still not recommended. Unless you wish to maintain a level of access control over the static content let’s put it simply like this:
Don’t run the Deliver Server as a standalone web server.

What do you need to get the Delivery Server running?

Leveraging the use of a front controlling Web Server facilitates an optimised site deployment as web servers such as Microsoft’s IIS or Apache’s HTTP Server can be utilised for delivering static content in an optimised way. For example, it is possible to easily configure a far future ‘Expires’ header on a given folder and therefore its content within either Apache or IIS, which promotes the caching of content in a user’s browser, which reduces page load times. Another example is in the use of mature compression features within such web servers to gain performance for your Intranet- or Extranetapplication. Although these examples can be achieved with some Servlet Containers, it is certainly not straight forward and doesn’t necessarily make sense from an architectural perspective.
Use a web server like IIS or Apache as a hatch for your static files or to forward requests that require personalization to the Delivery Server.

2 Components – Which does what?

It is for this architectural reason, that best-practice dictates that we delegate only the relevant HTTP requests to Delivery Server. Your web server should handle the static bulky content and only forward the requests to Delivery Server which require personalization. In most cases, this means that Delivery Server is delegated requests for .htm and .xml resources. The rest such as images, videos, documents, … can be served from the front controlling web server (or better still a CDN).

Delegating HTTP requests from the Web Server to Delivery Server

This step can be easily achieved using the Tomcat Connector for both IIS and Apache. To find out more see the Tomcat Connector documentation here.
This connector uses the Apache JServ Protocol, which connects to port 8009 by default on Tomcat and is optimised to use a single connection between the Web Server and the Delivery Server for many HTTP requests for performance optimization. Therefore, this represents a better option than using reverse proxy functionality within the Web Server which slows down multiple requests fired off at the same period of time.

Typical Delivery Server install – Ports & Parts Getting Together

If we take a typical Delivery Server install (i.e. the reference install using Tomcat),
a page can be accessed with something like the following URL:

http://<host>:8080/cps/rde/xchg/<project>/<xsl_stylesheet>/<resource>
where resource could be any text based file like index.html or action.xml.

The result of correctly installing the Tomcat Connector means that we can access that same resource but through the Web Server on port 80 and not direct to the Tomcat instance on port 8080:

http://<host>/cps/rde/xchg/<project>/<xsl_stylesheet>/<resource>

Many confuse this step with URL rewriting or redirecting as the Tomcat Connector is often called the Jakarta Redirector. Therefore, I choose to differentiate by saying that this delegates HTTP requests between the two systems and nothing more.
In every install, I have always used the defaults in the workers.properties file and just used the following rule in the uriworkermap.properties file:
/cps/*=wlb

SEO Tweaks – Some URL Rewriting tricks

Due to the effort of setting up delegation, deciding which HTTP requests should be forwarded to Delivery Server is a simple matter of performing some URL rewrites.
As we have decided to use a mature Web Server, there are best practice ways to achieve this. In IIS6, HeliconTech (Visit HeliconTech website) created a very useful ISAPI filter which ports the widely adopted Apache mod_rewrite (visit Apache mod_rewrite website) functionality. For both of these, the same rewrite rules can be used. The following provides a couple of typical examples:

# Default landing page redirect
RewriteRule ^/$ /cps/rde/xchg/<project>/<xsl_stylesheet>/index.htm [L]
# Rewrite to delegate all *.html or *.htm HTTP requests to Delivery Server
RewriteRule ^/?.*/(.+\.html?)$ /cps/rde/xchg/<project>/<xsl_stylesheet>/$1 [L]
# Rewrite to delegate all *.xml HTTP requests to Delivery Server
RewriteRule ^/?.*/(.+\.xml)$ /cps/rde/xchg/<project>/<xsl_stylesheet>/$1 [L]

Those of you who are well versed in regular expressions will see that the last two rules could be combined but I tend to leave them separate to aid readability.

SEO & mapping subdirectories in LiveServer

The beauty of using regular expressions in this way is that you can actually create useful SEO benefits to your site also. Take for example the following rule:

RewriteRule ^/?.*/([0-9a-zA-Z_]+)$ /cps/rde/xchg/<project>/<xsl_stylesheet>/$1.htm [L]
This rule maps an URL with many apparent subdirectories to the Delivery Server file.

This means that you can publish a page with a “virtual” path within the Management Server which appears to a browser (and search engines) as something like the following:

http://<host>/this/is/a/descriptive/directory/structure/page.htm
and yet this maps to:
/cps/rde/xchg/<project>/<xsl_stylesheet>/page.htm

Some restrictions & tricks for IIS7
Being a Microsoft product, IIS7 has some quirks with regards to the rewriting (of course), which I explained in a previous post here.

Summary

Sharing the required tasks between their appropriate applications gives you a more stable and reliable system with an even better performance. All you have to do is let:

  • Never use the Open Text Delivery Server/RedDot LiveServer as standalone web server on tomcat
  • Any Web Server (i.e. Microsoft IIS or Apache HTTP Server) to answer all requests and then return static content(Use IIS or Apache or any other web server to deliver static pages) or if required forward to
  • Delivery Server for dynamic requests and the personalization bits (Use LiveServer as personalization engine)

This approach has led to many successful installations where sites could additionally be optimised for SEO and page load by using compression techniques and the way a web server actually serves HTTP requests.

About the Author

This article is based on the blog post here of Danny Baggs. Danny has a strong developer based background and is working for Open Text.

Questions & More information about the named components

Although this should give you a fair bit of guidance on how to set up your web server environments to get a high performance solution there are always questions remaining. Feel free to share those questions in the comments below and let us know what you think.

Read more about the components

Questions

  • How do you handle forms in a project, should they be based on LiveServer Dynament code or run in the web server?
  • How do you manage to keep static delivered content index- and searchable by Verity or another search engine on this system?

Hey Mr. and Mrs. Reader! What are your questions?

Share and Enjoy:

Print
email
Twitter
Digg
Reddit
StumbleUpon
Google Bookmarks
del.icio.us
MisterWong
Facebook
LinkedIn





TIKI: One of the most active projects on SourceForge

Posted in CMS, community, open source, tiki, tikiwiki, wiki on February 15th, 2010 by ricks99 – Comments Off

TikiWiki CMS/Groupware (http://tikiwiki.org), the open source, wiki-based content management system continues to be one of the most active projects on SourceForge, consistently ranking in the top 15 in terms of SVN code commits (http://sourceforge.net/project/stats/ran…).

According to Ohloh.net, Tiki is “one of the largest open-source teams in the world, and is in the top 2% of all project teams on Ohloh.” (http://www.ohloh.net/p/tikiwiki/factoids/). This diverse and extensive community effort has fueled more than 800,000 downloads (http://sourceforge.net/project/stats/det…) plus countless one-click installations through control panel applications such as Fantastico.

TikiFests
This activity and growth comes on the heels of the recent TikiFest held in New York, NY, USA (http://tikiwiki.org/tikifest). TikiFests are a tradition of the TikiWiki community in which Tiki contributors who usually collaborate online, get an opportunity to meet in person. Future TikiFests are scheduled in Canada, Poland, Brazil, Germany, and the United States. Over 35 TikiFests have been held.

read more

RedDot CMS Consultant & LiveServer Consultants for Open Text Products

Posted in Asides, CMS, Contracting, Freelancing, Jobs, LiveServer, RedDot CMS Consultant, RedDot CMS Experts, RedDot Liveserver consultant on February 2nd, 2010 by Markus Giesen – Comments Off
Reddot CMS Consultant / RedDot LiveServer Consultant - RedDot beadsReddot CMS Consultants / RedDot LiveServer Consultants
RedDot beads – Where else would you find them?

This is a non-technical article, you can skip it or skim it to get an idea how to get experienced RedDot staff and/or more traction for your RedDot business. Beside these facts this site is a big teaser page to our job and RedDot project work section.

You might have come across the RedDot CMS consultant corner we’ve set up here a few months ago.

Have you seen the RedDot Consultant job corner?

If you are looking for a LiveServer consultant, a RedDot Contractor to solve your CMS project tasks or a worldwide group of Open Text Partners you wish to respond to your Request for Proposal then the job section is the right place for you.

Are you a RedDot CMS Consultant looking for work?

If you are a RedDot CMS consultant and want to upload your profile fee free to do so. There are plenty of new project out there waiting to get done. Why not publishing your CV and your RedDot CMS consultant eperience and get more job enquiries? Every you will get people visiting this site. Placing your Reddot Consultant profile up here is the next logical step to push your reputation.

Do you need a RedDot LiveServer Consultants?

If you are looking for a RedDot LiveServer consultant and want to advertise your job you can easily do that too. LiveServer experience is rare these days and there are a few chosen RedDot CMS and LiveServer experts out there able to help you. If you can’t find them here it is unlikely you will find them somewhere else.

Open Text RedDot Web Solutions Experts find and search projects here

Are you looking for the right ressource to complement your team? Do you have project work?
Would like to get an overview which capable RedDot agencies and consultants are out there and available for you?

Our visitors are the elite of Open Text consultants. They are exchanging ideas, solutions, tipps and tricks every day on this site from all over the world. This gives you the opportunity to find the matching development and consulting ressource in your country but also compare worldwide market rates.

RedDot CMS consultant work can often be done remotely and doesn’t necessarily require onsite work during the whole project cycle. A project can be set up and tested locally, then being imported to your UAT environment. You can have a RedDot consultant working for you from everywhere on this planet. All you need to do is find them.

Oh and yes, it’s free. Uploading your profile, adding a RFP(Request For Proposal) or entering any sort of RedDot job description is generally free of charge. You can get your own login and participate on the forum. You also can get us to do the work for you and it is still free.
Have a look at it, now.

Share and Enjoy:

Print
email
Twitter
Digg
Reddit
StumbleUpon
Google Bookmarks
del.icio.us
MisterWong
Facebook
LinkedIn





Extending Open Text Delivery Server with your own Java Classes

Posted in Best practice, Delivery Server, Featured, Java, Java Classes, LiveServer, Open Text Delivery Server, RedDot on February 1st, 2010 by Markus Giesen – Comments Off

Guest writer Marek Korch, RedDot/Open Text Consultant at infinity-group.pl in Poland and working for clients like BNP Paribas Fortis, Dan-wood, Allianz and Nordea. He enjoys new challenges in Open Texts Management / Delivery Server systems and learning new things around the ECM world and how to improve them. He also just started writing on this blog.

In this article we will show you how to find the right files to extend Open Texts Delivery Server (formerly known as RedDot LiveServer) with your own Java classes.

You might have worked with LiveServer DynaMents before and sometimes you just wish you would have that special method or a nicer way to process this bit of information but the existing set of Delivery Server DynaMents just doesn’t exactly fit your needs. Therefore here comes your LiveServer tutorial for including your own Dynaments inside of LiveServer.

If you want to start your own adventure with DynaMents and inline Java functions which will extend the DynaMents functionality, you’ll need to go through the following steps:

  1. Prepare the LiveServer (Delivery Server) environment
  2. Prepare the java package and the java class files
  3. Create your own class which you want to use to extend the built-in java classes

Prepare the LiveServer Delivery Server environment

First of all check your Delivery Server version and build. I was working on LiveServer (Delivery Server) build 4.0.0.8 but it’s recommended to upgrade it to LiveServer 4 SP1. Of course it is not necessary to upgrade your LiveServerS/Delivery Server, but it makes things easier if you are able to go with the upgrade as you will see below. (Always keep in mind to check the release notes and check issues affecting your environment. LS 4 for example has a known defect with updating/connecting to Active Directory which is yet about to get fixed)

Prepare the java package and the java class files

Finding the classes on your LiveServer environment can be a bit tricky, to create your own Java class file you will have to import one very important class package which is built in the LS. The class is called:
de.reddot.xmaps.dynament.DefaultInlineFunctions;
There are two ways to find it and to import into your class package during the compilation process:

A) Especially recommended to use if you have LiveServer without SP1, is to import the above mentioned class into your java project in which you will compile your own class. To accomplish that, simply import the JAR file with the necessary class which is located in
<LiveServer_Install_Directory>\\tomcat\\webapps\\cps\\WEB-INF\\lib\\rdls-rde-x.x.x.x.jar

x.x.x.x corresponds to a build version of LS. In my case it was rdls-rde-4.0.0.8.jar.

B) If you already have LiveServer running with the SP1 updgrade, you can find the necessary class in
<LiveServer_Install_Directory>\\tomcat\\webapps\\cps\\WEB-INF\\classes\\de\\reddot\\xmaps\\dynament\\DefaultInlineFunctions.class

Create your own class which you want to use to extend the built-in java classes

The Next step is to prepare a definition of your own class. It should looks like this:

// ############################
package com.company.package;
import de.reddot.xmaps.dynament.DefaultInlineFunctions;
public class ExtendedInlineFunctionsClassName extends DefaultInlineFunctions{
         public String function(String value, ...ANY OTHER VARS DESIRED){
                   String mustReturnAString=value;
                   return mustReturnAString;
         }
         //called inline like [#source:attribute#].function(...ANY OTHER VARS DESIRED)
}
// ############################

After that, all you have to do is to compile your own class file with your function(s) and then copying it to to the classes folder on your LiveServer directory:
<LiveServer_Install_Directory>\\tomcat\\webapps\\cps\\WEB-INF\\classes

And Voila! Based on that you are ready to go. Create your own Java methods and use the according DynaMents in your LiveServer project.
Questions? Ideas? More LiveServer enhancements? Use the comment box below!

Share and Enjoy:

Print
email
Twitter
Digg
Reddit
StumbleUpon
Google Bookmarks
del.icio.us
MisterWong
Facebook
LinkedIn





Why the iPad Makes Murdoch Right

Posted in Apple Inc., Ramblings, flash, iPad, iPhone, murdoch, newscorp, paywall, publishing on January 27th, 2010 by Jon Marks – Comments Off

Where were you when it started
Do you want it for free
What was it you wanted
Are you talking to me?
- WHAT WAS IT YOU WANTED?

Right. It’s the iPad and, obvious jokes aside, I think the device is going to revolutionise more than just reading on the toilet.

Here’s the thing – the iPad is just too damn beautiful for shit content. I think this is the best thing that has happened to publishing for a long long time. People will pay for content on this baby, and on other devices that follow. Be assured, they will follow, just like they followed the iPhone. I wouldn’t disrespect my iPad (that someone is sure to send me as a gift) by reading machine-generated advertorial crap on it. I want to read good content written by people that are paid to write. And I’d be happy to pay a small fee for this – for books, newspapers, magazines, video and the hybrids of these that are going to emerge.

We recently saw a lot of people paying for the Guardian iPhone App, although I don’t understand how a one-off payment for content is sustainable. We need a way to do in-app recurring payments, which should be relatively easy. Murdoch’s threat to remove News Corp content from Google and start charging for it makes more and more sense. And all you people that scream about content being free – consider the BBC web site for a second. They produce wonderful content, which is paid for by every citizen in the UK as part of our taxes, and I don’t think many people begrudge them this.

There will also be people that scream “Damn You, @McBoof. How could you write about the joys Open Data and Open Standards then embrace a Paywall. Judas!”. To those I say, “Trust Me, Open does not always mean Free”. More on this another time.

A last thought on the iPad. The fact that it doesn’t have a camera doesn’t bother me at all. The lack of Flash is a small issue, but I don’t like Flash much. No USB port sadly – the device is still too closed for me. And it needs to multitask, and I got the impression from what I’ve seen so far that it doesn’t. That sucks a bit. Still, I want one.

Let’s close on a video from 2006 (thanks to @halvorson):

RSS Feed tutorial template in PHP for RedDot CMS

Posted in CMS, Newsfeed, PHP, Plugins / Extensions, Podcast, RSS, RSS Feed, RedDot, RedDot templates, XML Feed, website management on January 25th, 2010 by Markus Giesen – Comments Off

One of the most requested solutions for a Open Text RedDot CMS project is a template for RSS feeds. And because many customers use PHP on their live sites it would be nice to already have it written in PHP. Hence today a solution for you based on PHP, brought to you by a German RedDot Developer. There is also a ASP version which you can find here.

Download the template here and before you use it donate $1 to keep this site up and running.

This template is a nice piece of work from the German RedDot Developer Ingo Hillebrand, also known as shift8.de. Simply insert the guids where required or replace them with your placeholder. Links to the specific page the feed points to have been realized with a dynamic list element because Render Tags can’t reference pages within a target container setup.

Share and Enjoy:

Print
email
Twitter
Digg
Reddit
StumbleUpon
Google Bookmarks
del.icio.us
MisterWong
Facebook
LinkedIn





Open source: What does it mean in 2010?

Posted in Blogpost, Open, bcsositpf, open source, ukgovOSS on January 10th, 2010 by Janus Boye – Comments Off

Open source has been hailed as the obvious solution for saving money, being flexible, more transparent and avoiding project failures. After attending a recent open source event in London, I came away confused and it made me think about what open source actually means here in 2010. Source code access hardly seems either relevant or valuable to most online professionals. In addition, many commercial proprietary vendors, e.g. IBM, Microsoft, Oracle have bigger and more vibrant communities than most open source projects. That’s being the case, what’s the real benefit of open source?

The event was called: Public Funds in the UK: Open Source for Document and Content Management? Let me start with an excellent quote from the day:

Bernard Woolley: “Well, yes, Sir…I mean, it [open government] is the Minister’s policy after all.”

Sir Arnold: “My dear boy, it is a contradiction in terms: you can be open or you can have government.”

Yes minister - Open governmentIt was Ovum analyst Mike Davis who cited the very first episode of the BBC comedy series Yes Minister first broadcast 30 years ago in order to very eloquently express his view on the state of open source adoption in the UK government.

My talk was based on last week’s commentary on Open source doesn’t always represent best value and I covered the confusion and several issues with open source, including support, risks, requirements, implementation and community. Illustrated with a few case studies from our European members, I tried to look beyond the hype and shared my recommendation regarding open source. You can download a copy of my slides below.

As mentioned initially, I came away confused. The event was interesting and organized by UK project management guru Graham Oakes and run by the British Computer Society. The event was free to attend and there was a good mix of speakers, including vendor, agency and user perspectives. Moreover the BCS served a great lunch. I learned that when digital agencies respond to a technology selection tender, they tend to avoid open source unless the tender explicitly states anything about open source or typical open source requirements, such as active number of contributors or source code access. If in doubt, they’ll suggest a proprietary commercial alternative thinking that the customer might have reservations about open source.

Dear reader, perhaps you can help me out? Am I am the only one thinking that:

  • open source has lost its meaning and moved far beyond source code access to either a way of life for some very transparent vendors, or a new way to capitalize on software and attract snazzy investors
  • open source does not have any real benefits for the buyers
  • open source does not equal open standards. And, by the way, which open standards (except those from the W3c, e.g. HTML and XML) are used and referred to by all the analysts and vendors?

Here’s another relevant and great quote on the law of inverse relevance from the same Yes Minister episode:

The less you intend to do about something, the more you have to keep talking about it.

This certainly seems to be a very valid statement about open source adoption in 2010. As long as the real open source benefits remain unclear, at least from the buyer perspective, my message to both government and private buyers is: Don’t rush into open source.

Thank you to the many members and other peers who contributed with helpful feedback to my talk. Download slides: Open source doesn’t always represent best value (PDF, 1 Mb)

Other perspectives from the day: