SEAFDEC/AQD participated in this year's World Food Day celebrated every 16 October. For this occasion, AQD and the South East Asia Fish for Justice Network (SEAFISH) conducted a Training course on capacity building on good aquaculture practices from 11 to 15 October at AQD Iloilo station in the Philippines. In addition, AQD held a lecture on Nitrogen dynamics in shrimp and pond and environmental improvement ability of sandfish delivered by Dr. Masashi Kodama of National Research Institute of Fisheries Science, Fisheries Research Agency in Japan on 13 October.
SEAFDEC/AQD will convene the International workshop on fish health management, with the theme: Accelerating awareness and capacity building in Southeast Asia, on 1-2 March 2012 in Iloilo City, Philippines. The call for papers is on these topics: (1) Accelerating awareness in fish health management through capacity building, and (2) Innovative research & novel diagnostic techniques for fish pathogens. Deadline of abstracts: 1 December 2011.
The latest to train at SEAFDEC/AQD are two government officers from Kiribati, an island-nation in the Pacific Ocean. They are at AQD's Iloilo station for the course on milkfish farming, 26 Sept to 10 Oct 2011.
SEAFDEC/AQD and Japanese universities work together in training young researchers on sustainable aquaculture. Recently, fifteen students from Tokai University and Hiroshima University in Japan visited AQD for study tour and internship while AQD researchers set out to Japan to participate in a training program on sustainable fisheries science.
SEAFDEC/AQD advocates skip-feeding for tilapia as a good fish cage management as this cuts feed cost by half. This is the result of the collaborative 2006-2009 study among AQD, Australian Centre for International Agricultural Research (ACIAR), and Department of Agriculture's Bureau of Fisheries and Aquatic Resources (BFAR).
SEAFDEC/AQD ironed out the list of studies, proponents and activities for 2012 and a broad plan for 2013-2016 that will address the goals of its five thematic R&D programs. This was done 15-26 August at AQD's main station in Iloilo, Philippines.
SEAFDEC/AQD and Taytay sa Kauswagan Inc. (TSKI) are working together as the technical assistance team for the Sustainable mariculture investment program that is funded by the Development Bank of the Philippines (DBP) from a grant by the Norwegian Agency for Development Cooperation (NORAD). Stakeholder consultations have been conducted in Panabo City (Davao del Norte) from 17 June to 2 July and in Digos City & Sta Cruz (Davao del Sur) from 8 to 13 August.
SEAFDEC/AQD teams up with the village resource management council of Molocaboc in Sagay, Negros Island, Philippines for a new project on the culture of abalone (Haliotis asinina) and seaweed (Gracilaria). AQD was also on hand at the launching of 12 marine sanctuaries in San Joaquin, Iloilo, Philippines on 16 August 2011 where AQD and LGU-San Joaquin collaborate on studies on giant clam and coral growth vis-à-vis climate change.
Freshwater prawn training, enroll now!
Five training courses for the staff of BFAR-RFTC have been completed by AQD this year. These courses are sandfish, abalone, seaweeds, mudcrab, and marine fish hatchery and/or grow-out culture.


We live in an increasingly pluralistic society. Pluralism is the philosophy that holds that no single explanation or view of reality can account for all the phenomena of life. As a result, most issues are considered "neutral" (neither right nor wrong) and can be determined by the individual as he or she sees fit.
The problem for the Christian Church because of pluralism is that the Christian Church becomes only one of many possibilities for how to look at the world, and, therefore, any standard of truth or conduct is diminished or often even disregarded.
Pluralism leads to a kind of chaos of thought in which nothing is agreed upon and there are no set rules for anything. It's about your truth and my truth and their truth and all are considered okay in this framework.
Ideologies of the world often clash with the theology of Christianity, and the ideology of consumerism is one of them.
Consumerism says, "I will pick and choose what I want." In the mentality of consumerism, which is one of the most pervasive approaches in our society today, life is all about making choices. We choose what to buy, where to shop, where to live, what career to follow, what job to take, etc.
The problem comes when that approach leaks into spiritual life and the same principle is applied to what people believe and where they go to church. In this model, "the church becomes just another retail outlet, faith just another commodity. People change congregations and preachers and even denominations as readily and they change banks and grocery stores" (Colson, Chuck, The Body).
In the May 2017 issue of Living Lutheran, the cover included 16 images of the face of Christ from different artists. Editor Jennifer Younker noted, "When I look at the cover I'm amazed that, even though all the images are very different, I instantly recognize them as the face of Christ. Although each individual visual is influenced by its regional, ethnic and cultural lenses, the cover evokes the freedom and salvation we receive from Jesus Christ and shows that Christ's love transcends all perceived physical differences" (Editor's Note, Living Lutheran, May 2017, p. 4).
This cover and these comments got me to thinking about how I personally envision the face of Christ. For me, I picture a warm, loving, kind face smiling back at me with a look that says everything will be fine because he loves me.
Functional atheism is a term that is being used in theological circles that refers to the practice of those who profess to believe in Christ, but behave as if he does not exist.
One problem with this practice, of course, is that it does not acknowledge the very real impact that Christ has on our everyday lives.
The other problem is that it perpetuates the falsehood that we are in control of our lives and we can do what we want apart from Christ and our beliefs.
In the May 2017 issue of Living Lutheran, President of Bread for the World David Beckmann talked about the role of the Church in combating hunger.
In the article he noted, "God did not send Moses to Pharaoh to take up a collection of canned goods, but rather to insist that he let the slaves go free" (Living Lutheran, May 2017, p. 12).
I found that interesting and motivating. Sometimes we as the Church are called to stand up for the rights of the hungry, the thirsty, the downtrodden. We must do what we can to get to the root of the problem and not just put a Band-Aid on it.
In the Church in the time of Martin Luther, there was a stark division between the sacred and the secular. Only the priest could do the "holy" things. The laity went about their tasks disconnected from any tie to their faith.
But Martin Luther brought the sacred and the secular back together. He pointed out that the tasks of the laity were just a holy as the tasks of the priests and reintroduced the concept of the priesthood of all believers.
…the works of monks and priests, however holy and arduous they may be, do not differ on whit in the sight of God from the works of the rustic laborer in the field or the woman going about her household tasks…all works are measured before God by faith alone. (The Babylonian Captivity of the Church).
Dr. Erik Hermann in his "Reformation Reverberations: The Lasting Impact of Martin Luther's Reforms" presentation at Concordia Seminary-St. Louis, referred to this the sacralization of the secular.


text:
Mr. Dar and the Inception of Navayug School: Some Reflections
- By Mrs. Leela Prasad Feb 15, 2020
In the month of June 1974, I arrived in Delhi. My husband had been transferred to Delhi, and I had to give up my lectureship at Patna College. One fine morning, as I was having my cup of tea, I saw an ad in the newspaper: Navayug Public School vacancy for PGT English, with the same pay scale as a college lecturer. The school was in Netaji Nagar, not far from where we were staying.
It was a strangely shaped red brick building with a banner, NAVAYUG PUBLIC SCHOOL. "My God!" I thought, "What kind of a public school is this?" It did not look impressive at all. I went in to give my application, and that was when I first met Mr. Dar. I saw a fair, bald-headed elderly man with a serene and gentle expression on his face. I didn't know his name, and in fact, I thought he was British until the peon told me his name: Mr. J.N. Dar. I left my resume and came away a little disappointed at my first sight of the school – such a small, unimpressive building!
Then I got called for an interview. I was ushered into a tiny office, with the members of the selection committee, which included Mr. Dar, Mr. M.N. Kapoor, the principal of Modern School, and Mrs. Uma Sinha, a senior education officer of Bihar who had the reputation of being a strict disciplinarian. When I saw her I felt very nervous and self-conscious, but she never asked any questions. Mr. Kapoor asked me about my career and college life. Mr. Dar told me that the school had started with only class VI. I was shocked. Class VI! And they wanted a first or second class PG teacher with three to five years teaching at the PG level! I wondered what such a teacher would do for Class VI, and that too, in Hindi medium. I told the committee I had no experience teaching such junior classes. Then Mr. Kapoor asked if I would like to teach in Modern School. That sounded like a dream come true. The school had a very good reputation and Mr. Kapoor had obtained a Padmashree for his excellent Principalship. The school provided free education for the children of the staff, and for me an additional incentive was the accommodation of teachers in the school campus.
Mr. Dar did not complain or get angry, but spoke in a gentle, bantering tone to Mr. Kapoor: "Why are you taking my teacher away?" As a result of the interview, I joined Modern School and started teaching there. But gradually I realized that the school catered mostly to the children of the rich business community and politicians. These children would get rupees five hundred for pocket money and spend it too. Most of them were not interested in studies, and my sincere efforts fell on deaf ears. I also found out that campus accommodation was not given to lady teachers. So when Mr. Kapoor told me that Mr. Dar had rung him up and asked if I would consider teaching at Navayug, I decided it was time to say yes.
The next day I went to see Mr. Dar in the red brick building in Netaji Nagar. Dressed in immaculate white bushirt and trousers, he greeted me with a gentle smile and offered me a chair. We had a great chat about the school, and about the philosophy behind its establishment, which was a blend of the ancient gurukul system and modern education. A day boarding school with facilities for breakfast and lunch to build a strong body for a strong mind to flourish, to empower children to become responsible, skilled and innovative citizens of India, to enthuse them through music, art and drama to widen their mind and heart without boundaries. I was awestruck! I realized I was before a great educationist. His sincere concern, his earnest desire to ameliorate the lives of children coming from underprivileged segments of society, and his unreserved enthusiasm for the school's mission began to manifest layer by layer. And thus started my association with Navayug school.
There were only 90 students in class VI, divided into 3 sections of 30 students each. It was a long day boarding school, from 8 to 5 pm. The children were given breakfast, lunch and tiffin. Mr. Dar believed that learning can't be done on an empty stomach. The children were divided into groups of ten each, with one teacher, to have their meals. To Mr. Dar this enabled the children to learn the art of community living and sharing with others.
One of Mr. Dar's great qualities was his genuine compassionate nature; he never denied leave to any staff member if she or he was in real need. On many occasions he would even allow them to swap their class with another colleague so that they could run home if their children's wellbeing was of concern.
When the number of students increased, the school shifted to a big primary school in Sarojini Nagar. He was very fond of long assembly where he would encourage the students to overcome their shyness and participate in extracurricular activities. Every student was given an opportunity to participate by turn. They were supposed to keep a small comb and clean handkerchief. If anyone turned up with unkempt hair he would be sent to the barber at the school.
Another aspect of his character was his sanguine belief in high thinking and simple living which he not only propagated but also implemented in his own life. He never made any demands from the authorities for himself. He happily settled in two tiny classrooms which was given to him by the authorities as accommodation for his family. Mataji, his wife, was a gem of a person, very affectionate and hospitable. Whenever we visited her, either to invite her to a school function or for a festive occasion, she would not let us go without offering us tea and homemade cookies.
The school bell had its own character. The number of peals would indicate the periods, which were eight in number. A long peal was meant for lunch break or for an emergency meeting. In the new building in Sarojini Nagar we initially had no dining hall for students to sit with teachers. The kitchen was in a makeshift tent. These facilities were under construction.
One incident I vividly remember: just after lunch, when we had settled down to our classes, the school bell started ringing – a long peal. We all got alarmed. Some emergency! A fire, a death of a VIP, a mishap with students or a member of staff? With thudding hearts we all rushed to the meeting ground. There Mr. Dar stood, holding a plate containing half eaten food. Anger and hurt were writ large on his face. Our hearts filled with apprehension. Was there poison in the food? Was a dead creature found in it? "Who is the prince or princess here who had the audacity to leave so much food on the plate?" he said angrily. He reminded us of the sin of wasting food when thousands of children were starving in the world. It was a lesson to us to value food and not to waste it.
It isn't an exaggeration to say that Mr. Dar was a paragon of motivation and positivity. Once a few of us complained to him that some children that the NCERT had selected were below average. I have never forgotten what he said. He said that a teacher should never say to any child that he or she was good for nothing, and that such a statement would have a very damaging effect on the personality of the child. Every child had got potential. He or she might not be good at English or maths, but could have talent in other fields like music, painting, dramatics etc., and it was the duty of a good teacher to inspire the child to develop that potential to the utmost level. Once the confidence was built up he or she was bound to excel in life. I learned a major lesson that day. At many critical junctures in my teaching life, his words stood before me as a guideline.
In a few years the school earned an excellent reputation under the guidance of Mr. Dar, and the devoted teaching faculty that he had selected. It then became clear to me why he wanted such qualified and experienced teachers. The base, the foundation has to be strong. Then only can one build the edifice.
As a result of the school's success, Mr. Dar started getting a lot of pressure to admit children from affluent families and officials of NDMC. The responsibility of selecting children was given to the NCERT. About 1200 to 1500 children had to take a test conducted by NCERT, and only 90 were selected on merit for admission to class VI. No other admission was allowed in any other class. Mr. Dar did not admit his own grandson when he did not qualify for the merit list by a very nominal margin. This kind of honesty is very rare in today's world. This was another aspect of his character which I admired.
Mr. Dar had a great deal of energy despite his age. He would seldom be sitting in his office. Most of the time he would be everywhere else – with children in the dining hall, or playing football with children in the playground, or as a substitute teacher in a classroom if the teacher was absent.
The national education policy does not allow people to work after retirement age, and Mr. Dar was already nearing seventy, so he had to leave Navayug. I must say his departure ended a golden era of Navayug school. By laying a strong foundation he brought the school to a level that nobody would have imagined when it first began, and the school continues its proud tradition today.

redpajama_set_name: RedPajamaCommonCrawl


text:
Natalie Macmaster & Donnell Leahy at Northern Alberta Jubilee Auditorium
Natalie Macmaster & Donnell Leahy Tickets
The power couple and master musicians Natalie MacMaster and Donnell Leahy will be taking the Northern Alberta Jubilee Auditorium by storm this November 26. Be enthralled as these skilled violinists bring a fresh take to their traditional Celtic roots while still commanding the stage. Fans will get to experience the same rave-ups, ballads, and step dancing that have had people up and dancing all around the world. Get your tickets for the show and prepare to be awed by their incredible performances in an evening of genuine music and incredible stories of love and family. Reserve your tickets now by clicking the "Get Tickets" link on this site.
Natalie Macmaster and Donell Leahy are two of the most exceptional fiddlers of today's time. When they married in 2002, their musical dynamics reached new heights. "The fiddle was definitely common ground for us when we first got together," MacMaster said. The couple's first collaboration was their 2015 album "One," produced by Bob Ezrin. This was continued with the 2016 album "A Celtic Family Christmas." Both works secured their respected spot in the music industry, with sales reaching a million. The two have also been known to work with musical legends such as cellist Yo-Yo Ma, bluegrass-country singer Alison Krauss, banjo instrumentalist Bela Fleck, and superstar Shania Twain.
Apart from Natalie and Donell, their children are the highlight of their live performances. The six equally musically inclined children are great performers and are well-loved by their fans.
The couple is also recipients of multiple awards and distinctions, including an Honorary Doctorate from Trent University in Peterborough, which they received in 2008; a Canadian Folk Music Award for the category Instrumental Group of the Year in 2015; East Coast Music Awards' Fan's Choice Entertainer of the Year and Instrumental Recording of the Year in 2016.
Come jive with them at The Northern Alberta Jubilee Auditorium on Saturday, November 26. Tickets are now available. Get yours now by clicking the "Get Tickets" link.


text: Adam SMITH is Chief Scientific Officer of the Nobel Foundation's media company, Nobel Media AB. After Fellowships in molecular biology, neuroscience and physiology in Oxford, Harvard and Heidelberg he pursued research in developmental neuroscience at Oxford University before moving into science publishing. At Nature Publishing Group he launched Nature Reviews Drug Discovery as Chief Editor and then, as Publisher, ran Nature's Biopharma portfolio of journals. In his current role, his projects include recording an archive of interviews with all living Nobel Laureates, running an educational programme that takes Laureates to meet and inspire scientists around the world, and creating the programmes of Nobel Media's global science & society meeting series, the Nobel Prize Dialogues.


NEW DELHI: The National Consumer Disputes Redressal Commission (NCDRC) has directed a private hospital in Indore and two of its doctors to pay Rs. 15 lakh as compensation to a child who suffered deformity due to medical negligence during her mother's pregnancy.
NCDRC bench headed by Justice JM Malik ordered Vishesh Hospital and two of its doctors to pay the amount to the seven-year-old girl, who was represented by her mother, as she was born without her left hand and a kidney due to "negligent and casual approach" of the doctors in analysing the growth of the foetus through ultrasonography (USG).
"As per their own submissions, if opposite parties 2 and 3 (doctors), because of tucked position of the foetus, have not seen the limbs, then how both opined in their reports as 'Foetal Spine, Trunk and amp; Limbs are Normal'. Thus, it proves the negligent and casual approach of OP 2 and 3 while performing USG. It was a dereliction of duty of care," the bench, also comprising member SM Kantikar, said.
According to the father of the child, the USG, which is conducted to examine the well-being of a foetus, was not done properly and alleged that the medical practitioners gave a report, saying "no abnormal findings".
The complainant alleged that both the radiologists, due to their casual approach, negligence and lack of care towards the patient, gave wrong reports on two occasions, which resulted in serious consequences.
After perusing the medical reports, the bench observed that "the foetal USG is the most important tool to provide prenatal diagnosis of foetal anomalies".
"Had the anomaly been detected the parents would have been referred to a tertiary foetal medicine unit for further investigations which would have revealed the presence of other anomalies in addition to the abnormalities of foetal limbs. The existence of two serious anomalies would have resulted in the pregnancy being terminated," the commission said.
"The doctor is bound by ethical obligations to examine patients thoroughly with all his competence. Therefore, the radiologists should not shirk away from their responsibility and professional obligations," it said.


The Unidata 6527 Starflow QSD SDI-12 Instrument is used to measure water velocity, depth and temperature of water flowing in rivers, streams, open channels and large pipes.
When used with a companion Unidata IP data logger, flow rate and total flow can also be calculated.
6527 Starflow QSD SDI-12 Instrument is robust, reliable and easy to use. It is completely sealed against water ingress, low maintenance – no calibration, low power – no fussy power arrangements needed.
Ultrasonic Doppler Principle in Quadrature Sampling Mode is utilised to measure water velocity. 6527 transmits ultrasonic energy through its epoxy casing into the water. Suspended sediment particles, or small gas bubbles in the water reflect some of the transmitted ultrasonic energy back to 6527 instrument's ultrasonic receiver. instrument than processes this received signal and calculates the water velocity.
Water depth is also measured with an ultrasonic depth sensor. This technology enables the Starflow QSD SDI-12 Instrument to be completely sealed; potted in a solid block of 'ultrasonic-transparent' epoxy and free from any potential leaks that might otherwise occur.
Using an ultrasonic depth sensor also avoids the vulnerability of conventional pressure sensors to damage from water-borne debris and avoids the need for frequent recalibration to maintain accuracy.
6527 instrument is suitable for use in a wide range of water qualities, from sewage to potable water including sea water. However, it may not be as effective in clean, gas-free water.
6527 instrument measures velocity in both directions. With a companion Unidata Starlog datalogger or Neon Remote Terminal the instrument can be programmed to compute flow rate and total flow in pipes and open channels of known dimensions.
Simply mount it on, or near the bottom of the water channel. Starflow QSD SDI 12 Instrument's low-profile form-factor minimises disturbance to the flow it's measuring.
* Range is above sensor and up to 2000mm in water with heavy sediment and up to 5000mm in water with medium sediment.
Q: Does the velocity measurement has a 'dead band' close to the ultrasonic eyes and if so, what is the dead band distance?
A: The QSD has a half power beam width of 2.8 deg which means the transmitter & receiver beams begin to intersect about 100mm from the face of the instrument. However this is the half power width; lower power intersection occurs closer than 100mm and given the receiver sensitivity will contribute to the velocity detection. Suspended particles reflect the signal at many angles, so even before the beams intersect there will be high angle Doppler reflections that are received.
Also, the beams will be internally reflected off a shallow water surface and mix further "upstream" so it is difficult to determine where the maximum signal is coming from and even more difficult to say if there is a dead band and how large it is.
Hence, the zone of maximum sensitivity lies from 100mm to 300mm from the instrument but it depends on water level (reflection) and quality (number of reflectors). Instrument will detect velocities from 25mm onwards.
A: We have been testing the operation of QSD's in a 150mm pipe for some months now.
The performance of QSD's in this arrangement is good. Just watch for turbulence and if you plan to use a dam, watch for standing waves.
We have a small pipes test tank here at Unidata. It consists of a 150mm PVC pipe and submersible pump etc.
We have been running these QSD's down to a depth of about 60mm in this arrangement with no real problem.
Q: What is the angle of the ultrasonic beam when using Starflow QSD to measure water level?
Q: What is the angle of acoustic beam with or spread when using Starflow QSD to measure the flow rate?
What is the angle of the centreline of acoustic beam?
Q: Will water level measurements be affected if ultrasonic touches the wall of the pipe?
A: The Starflow QSD should not be affected by the depth signal reflecting of the tube wall. This will cause a "smudging" of the return signal, but Starflow QSD detects first pulse and ignores subsequent returns due to multi-path reflection.
Q: The Starflow QSD is used in the water channel. The water level and flow rates can suddenly change.
What is response time to depth change?
A: Response time to depth change is controlled by the amount of the filtering/averaging being used. If no averaging is used, the depth measurement will be immediate depth value at the time of measurement. The response time is then determined by the rate of SDI-12 interrogation.
Averaging is used in open water conditions to smooth out the effect of surface ripples/waves.


Guy specialises in high-value commercial litigation often with multi-jurisdictional aspects. His experience includes cases in the Commercial Court, Chancery Court, Court of Appeal as well as LCIA arbitrations. Guy is a solicitor-advocate with Rights of Audience in the Higher Courts of England and Wales.
Guy has advised large corporates and global financial institutions in relation to issues arising from the challenging regulatory and commercial environment in which they operate. He has a critical understanding of the interplay between civil litigation, contentious regulatory investigations and criminal investigations.
Prior to joining Signature Litigation, Guy was an associate at Magic Circle law firm Freshfields Bruckhaus Deringer. While at Freshfields, Guy was seconded to the Litigation and Regulatory team of a major US bank and the Litigation team of a global bank. Guy also undertook secondments to the firms' offices in Milan, Berlin and Brussels.
Representing a major natural resources conglomerate in respect of LCIA proceedings brought by a syndicate of lenders.
Successfully representing a global bank against a multi-million dollar mis-selling claim brought by a high net-worth individual. Guy worked on all phases of these proceedings through trial in the Commercial Court and on to appeal before the Court of Appeal. The case is a leading authority in its area.
Advising a major plc in respect of a claim for professional negligence in relation to advice given in connection with a large corporate transaction.
Advising an international bank in proceedings brought before the Italian and English courts in relation to derivative swaps. This matter raised complex jurisdictional issues.
Defending claims by a litigant against the administrators of an insolvent financial institution, including advising about managing negative publicity and defamatory statements.
Advising a US financial institution in respect of a wide-ranging fraud and corruption investigation into hidden transaction charges applied to client orders.
Representing individual members of an international bank's in-house legal department in relation to wide-ranging criminal and civil investigations.


In this episode we chat with Jordan Syatt, owner of SyattFitness and personal trainer for Gary Vaynerchuk, on how he has built his brand from the ground up. Jordan has over 7 years of entrepreneurship under his belt, multiple powerlifting world records, and has had his writing posted in a variety of publications. Take a listen and discover the significance of brand strategy.


text:
package org.apache.sling.testing.clients;

import org.apache.http.*;
import org.apache.http.annotation.Immutable;
import org.apache.http.client.*;
import org.apache.http.client.methods.*;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.message.BasicHttpRequest;
import org.apache.http.protocol.HttpContext;
import org.apache.sling.testing.clients.util.HttpUtils;
import org.slf4j.LoggerFactory;

import java.io.Closeable;
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;

/**
 * The abstract base client for all implementing integration test clients.
 */
@Immutable
public class AbstractSlingClient implements HttpClient, Closeable {

    private final org.slf4j.Logger log = LoggerFactory.getLogger(getClass());

    private final static URI slash = URI.create("/");

    /**
     * The clientId for the client, generated automatically during instantiation of client.
     */
    private final String clientId;

    /**
     * The HttpClient object to which http calls are delegated.
     * It can be shared across multiple AbstractSlingClients (by using adaptTo())
     */
    private final CloseableHttpClient http;

    /**
     * A wrapper object containing the sling config for this client.
     * It can be shared across multiple AbstractSlingClients (by using adaptTo())
     */
    private final SlingClientConfig config;

    /**
     * Constructor used by Builders and adaptTo(). Should never be called directly from the code.
     *
     * @param http http client to handle the delegated calls
     * @param config immutable object holding the config
     * @throws ClientException if the client could not be initialized
     */
    AbstractSlingClient(CloseableHttpClient http, SlingClientConfig config) throws ClientException {
        // Generate client ID
        this.clientId = this.getClass() + "-" + UUID.randomUUID().toString();
        this.http = http;
        this.config = config;
    }

    /**
     * Returns the unique id for this client, generated automatically during instantiation.

     *
     * @return client's unique id
     */
    protected String getClientId() {
        return clientId;
    }

    /**
     *
Base HTTP URI of the server under test. It includes the context path, if present, and always ends with a slash

     *
Example: {@code http://localhost:8080/a/}

     *
     * @return the server's URL
     */
    public URI getUrl() {
        return config.getUrl();
    }

    /**
     * Returns the name of the user that will be used to authenticate the requests (by basic auth, if not replaced).
     *
     * @return user's name
     */
    public String getUser() {
        return config.getUser();
    }

    /**
     * Returns the password of the user that will be used to authenticate the requests (by basic auth, if not replaced).
     *
     * @return user's password
     */
    public String getPassword() {
        return config.getPassword();
    }

    /**
     *
Gets the full URL for a given path.

     *
     *
The input path is considered relative to server url path ("/" or context path), even though it starts with a slash.
     * The path is relativized and appended to the {@code server url}.

     *
     *
Note: in the case of a server url with context path - the input path should not contain the context path, otherwise
     * it will be duplicated in the resulting url

     *
     * @param path the relative path
     * @return the absolute URI
     * @throws IllegalArgumentException if path cannot be parsed into an URI
     * @throws NullPointerException if path is null
     */
    public URI getUrl(String path) {
        try {
            URI pathUri = slash.relativize(new URI(path));
            return getUrl().resolve(pathUri);
        } catch (URISyntaxException e) {
            throw new IllegalArgumentException(e);
        }
    }

    /**
     * Creates a full URL for a given path with additional parameters. Same as {@link #getUrl(String)}, but adds the parameters in the URI.
     *
     * @param path path relative to server url; can start with / but should not include the server context path
     * @param parameters url parameters to be added to the url
     * @return full url as URI
     * @throws IllegalArgumentException if path or parameters cannot be parsed into an URI
     * @throws NullPointerException if path is null
     */
    public URI getUrl(String path, List<NameValuePair> parameters) {
        // add server url and path
        URIBuilder uriBuilder = new URIBuilder(getUrl(path));
        // add parameters
        parameters = (parameters != null) ? parameters : new ArrayList<NameValuePair>(0);
        uriBuilder.addParameters(parameters);

        try {
            return uriBuilder.build();
        } catch (URISyntaxException e) {
            throw new IllegalArgumentException(e);
        }
    }

    /**
     *
Transforms an external {@code url} into a sling path, by subtracting the {@code server url} (incl. contextPath).
     * The returned path will not contain the context path, so it can be used with {@link #getUrl(String)}

     *
     *
The url can be absolute (incl. hostname) or relative to root (starts with "/").

     *
     *
If the server url is not a prefix of the given url, it returns the given url

     *
     *
If the url is just a path, it returns the path (with leading slash if not already present)

     *
     * @param url full url
     * @return sling path
     */
    public URI getPath(URI url) {
        // special case for urls that are server urls, but without trailing slash
        if (url.relativize(getUrl()).equals(URI.create(""))) {
            return slash;
        }

        URI contextPath = URI.create(getUrl().getPath());
        URI relativeUrl = contextPath.relativize(slash.resolve(url));

        if (relativeUrl.relativize(contextPath).equals(URI.create(""))) {
            return slash;
        }

        return slash.resolve(getUrl().relativize(relativeUrl));
    }

    /**
     * Extracts the relative sling path (to server url) from an url. Identical to {@link AbstractSlingClient#getPath(URI)},
     * except that it also parses the String int URI
     *
     * @param url string containing the full url
     * @return relative path as URI
     * @throws IllegalArgumentException if the parameter cannot be parsed
     * @throws NullPointerException if url is null
     */
    public URI getPath(String url) {
        try {
            return getPath(new URI(url));
        } catch (URISyntaxException e) {
            throw new IllegalArgumentException(e);
        }
    }

    /**
     *
Returns an instance of any class extending the AbstractSlingClient. The new client will
     * use the the same {@link HttpClient} and {@link SlingClientConfig}

     *
     * @param clientClass the type of client requested, identified by its Class
     * @param <T>         any class extending the AbstractSlingClient
     * @return instance of a class extending the AbstractSlingClient
     * @throws ClientException if client can't be instantiated
     */
    @SuppressWarnings("unchecked")
    public <T extends AbstractSlingClient> T adaptTo(Class<T> clientClass) throws ClientException {
        T client;
        try {
            Constructor cons = clientClass.getConstructor(CloseableHttpClient.class, SlingClientConfig.class);
            client = (T) cons.newInstance(this.http, this.config);
        } catch (Exception e) {
            throw new ClientException("Could not initialize client: '" + clientClass.getCanonicalName() + "'.", e);
        }
        return client;
    }

    /**
     * Gets the value for {@code key} from the generic values
     *
     * @param key the key
     * @return the value
     */
    public String getValue(String key) {
        return this.config.getValues().get(key);
    }

    /**
     * Adds the extra {@code key, value} to the generic values
     *
     * @param key the key for witch to add a value
     * @param value the value
     */
    public void addValue(String key, String value) {
        this.config.getValues().put(key, value);
    }

    /**
     * Checks whether the handler has the given generic value
     *
     * @param key the key
     * @return true if the value was found
     */
    public boolean hasValue(String key) {
        return config.getValues().containsKey(key);
    }

    /**
     * Returns the extra values map
     *
     * @return the map of values
     */
    public Map<String, String> getValues() {
        return config.getValues();
    }

    /**
     * @return the cookie store reference
     */
    public CookieStore getCookieStore() {
        return config.getCookieStore();
    }

    /**
     * @return the credentials provider
     */
    public CredentialsProvider getCredentialsProvider() {
        return config.getCredsProvider();
    }

    //
    // HTTP convenience methods
    //

    /**
     *
Executes an HTTP request, WITHOUT consuming the entity in the response. The caller is responsible for consuming the entity or
     * closing the response's InputStream in order to release the connection.
     * Otherwise, the client might run out of connections and will block

     *
     *
Use this with caution and only if necessary for streaming, otherwise use the safe method
     * {@link #doRequest(HttpUriRequest, List, int...)}

     *
     *
Adds the headers and checks the response against expected status

     *
     * @param request the request to be executed
     * @param headers optional headers to be added to the request
     * @param expectedStatus if passed, the response status is checked against it/them, and has to match at least one of them
     * @return the response, with the entity not consumed
     * @throws ClientException if the request could not be executed
     */
    public SlingHttpResponse doStreamRequest(HttpUriRequest request, List headers, int... expectedStatus)
            throws ClientException {
        // create context from config
        HttpClientContext context = createHttpClientContextFromConfig();

        // add headers
        if (headers != null) {
            request.setHeaders(headers.toArray(new Header[headers.size()]));
        }

        try {
            log.debug("request {} {}", request.getMethod(), request.getURI());
            SlingHttpResponse response = new SlingHttpResponse(this.execute(request, context));
            log.debug("response {}", HttpUtils.getHttpStatus(response));
            // Check the status and throw a ClientException if it doesn't match expectedStatus, but close the entity before
            if (expectedStatus != null && expectedStatus.length > 0) {
                try {
                    HttpUtils.verifyHttpStatus(response, expectedStatus);
                } catch (ClientException e) {
                    // catch the exception to make sure we close the entity before re-throwing it
                    response.close();
                    throw e;
                }
            }

            return response;
        } catch (IOException e) {
            throw new ClientException("Could not execute http request", e);
        }
    }

    /**
     *
Executes a raw HTTP request, WITHOUT consuming the entity in the response. The caller is responsible for consuming the entity or
     * closing the response's InputStream in order to release the connection.
     * Otherwise, the client might run out of connections and will block

     *
     *
Use this with caution and only if necessary for custom methods or for paths that must not be encoded,
     * otherwise use the safe method {@link #doRequest(HttpUriRequest, List, int...)}

     *
     *
It behaves as {@link #doStreamRequest(HttpUriRequest, List, int...)}, so the entity is not consumed.

     *
Adds the headers and checks the response against expected status

     *
     * @param method the request to be executed
     * @param uri the uri to be sent as it is (will not prepend the context path)
     * @param headers optional headers to be added to the request
     * @param expectedStatus if passed, the response status is checked against it/them, and has to match at least one of them
     * @return the response, with the entity not consumed
     * @throws ClientException if the request could not be executed
     */
    public SlingHttpResponse doRawRequest(String method, String uri, List headers, int... expectedStatus)
            throws ClientException {
        // create context from config
        HttpClientContext context = createHttpClientContextFromConfig();

        HttpHost host = new HttpHost(getUrl().getHost(), getUrl().getPort(), getUrl().getScheme());
        HttpRequest request = new BasicHttpRequest(method, uri);

        // add headers
        if (headers != null) {
            request.setHeaders(headers.toArray(new Header[headers.size()]));
        }

        try {
            log.debug("request {} {}", method, uri);
            SlingHttpResponse response = new SlingHttpResponse(this.execute(host, request, context));
            log.debug("response {}", HttpUtils.getHttpStatus(response));
            // Check the status and throw a ClientException if it doesn't match expectedStatus, but close the entity before
            if (expectedStatus != null && expectedStatus.length > 0) {
                try {
                    HttpUtils.verifyHttpStatus(response, expectedStatus);
                } catch (ClientException e) {
                    // catch the exception to make sure we close the entity before re-throwing it
                    response.close();
                    throw e;
                }
            }

            return response;
        } catch (IOException e) {
            throw new ClientException("Could not execute http request", e);
        }
    }

    private HttpClientContext createHttpClientContextFromConfig() {
        // create context from config
        HttpClientContext context = HttpClientContext.create();

        if (config.getCookieStore() != null) {
            context.setCookieStore(config.getCookieStore());
        }

        if (config.getCredsProvider() != null) {
            context.setCredentialsProvider(config.getCredsProvider());
        }

        if (config.getAuthCache() != null) {
            context.setAuthCache(config.getAuthCache());
        }

        return context;
    }

    /**
     *
Executes a GET request WITHOUT consuming the entity in the response. The caller is responsible to close the connection.
     * Otherwise, the client might run out of connections and will block

     *
     *
Use this with caution and only if necessary for streaming, otherwise use the safe method
     * {@link #doGet(String, List, List, int...)}

     *
     *
Adds the given parameters and headers and checks the response against expected status

     * @param requestPath path relative to client url
     * @param parameters optional url parameters to be added
     * @param headers optional headers to be added
     * @param expectedStatus if passed, the response status will have to match one of them
     * @return the response with the entity not consumed
     * @throws ClientException if the request could not be executed
     */
    public SlingHttpResponse doStreamGet(String requestPath, List<NameValuePair> parameters, List headers, int... expectedStatus)
            throws ClientException {
        // create full uri, including server url, given path and given parameters
        URI uri = getUrl(requestPath, parameters);
        // execute request
        HttpUriRequest request = new HttpGet(uri);
        return doStreamRequest(request, headers, expectedStatus);
    }

    /**
     *
Executes a POST request WITHOUT consuming the entity in the response. The caller is responsible to close the connection

     *
     *
Use this with caution and only if necessary for streaming, otherwise use the safe method
     * {@link #doPost(String, HttpEntity, List, int...)}

     *
     *
Adds the headers and checks the response against expected status

     * @param requestPath path relative to client url
     * @param entity http entity to be sent by POST
     * @param headers optional headers to be added
     * @param expectedStatus if passed, the response status will have to match one of them
     * @return the response with the entity not consumed
     * @throws ClientException if the request could not be executed
     */
    public SlingHttpResponse doStreamPost(String requestPath, HttpEntity entity, List headers, int... expectedStatus)
            throws ClientException {
        HttpEntityEnclosingRequestBase request = new HttpPost(getUrl(requestPath));
        if (entity != null) {
            request.setEntity(entity);
        }
        return doStreamRequest(request, headers, expectedStatus);
    }

    /**
     *
Execute an HTTP request and consumes the entity in the response. The content is cached and can be retrieved using
     * {@code response.getContent()}.
     * This method is safe to use because it closes the entity so the caller has no responsibility.

     *
     *
This means the response entity SHOULD NOT BE USED to read the content, e.g. {@code response.getEntity().getContent()}

     *
     * @param request the request to be executed
     * @param headers optional headers to be added to the request
     * @param expectedStatus if passed, the response status will have to match one of them
     * @return the response with the entity consumed and the content cached
     * @throws ClientException if the request could not be executed
     */
    public  SlingHttpResponse doRequest(HttpUriRequest request, List headers, int... expectedStatus) throws ClientException {
        SlingHttpResponse response = doStreamRequest(request, headers, expectedStatus);

        // Consume entity and cache the content so the connection is closed
        response.getContent();

        return response;
    }

    /**
     *
Executes a GET request and consumes the entity in the response (so the connection is closed immediately)
     * The content is cached and can be retrieved using {@code response.getContent()}.

     *
     *
Adds the passed parameters and headers and checks the expected status

     *
     * @param requestPath path relative to client url
     * @param parameters optional url parameters to be added
     * @param headers optional headers to be added
     * @param expectedStatus if passed, the response status will have to match one of them
     * @return the response with the entity consumed amd the content cached
     * @throws ClientException if the request could not be executed
     */
    public SlingHttpResponse doGet(String requestPath, List<NameValuePair> parameters, List headers, int... expectedStatus)
            throws ClientException {
        SlingHttpResponse response = doStreamGet(requestPath, parameters, headers, expectedStatus);

        // Consume entity and cache the content so the connection is closed
        response.getContent();

        return response;
    }

    /**
     *
Executes a GET request and consumes the entity in the response (so the connection is closed immediately)
     * The content is cached and can be retrieved using {@code response.getContent()}.

     *
     *
Adds the passed parameters and checks the expected status

     *
     * @param requestPath path relative to client url
     * @param parameters optional url parameters to be added
     * @param expectedStatus if passed, the response status will have to match one of them
     * @return the response with the entity consumed amd the content cached
     * @throws ClientException if the request could not be executed
     */
    public SlingHttpResponse doGet(String requestPath, List<NameValuePair> parameters, int... expectedStatus)
            throws ClientException {
        return doGet(requestPath, parameters, null, expectedStatus);
    }

    /**
     *
Executes a GET request and consumes the entity in the response (so the connection is closed immediately)
     * The content is cached and can be retrieved using {@code response.getContent()}.

     *
     * @param requestPath path relative to client url
     * @param expectedStatus if passed, the response status will have to match one of them
     * @return the response with the entity consumed amd the content cached
     * @throws ClientException if the request could not be executed
     */
    public SlingHttpResponse doGet(String requestPath, int... expectedStatus)
            throws ClientException {
        return doGet(requestPath, null, null, expectedStatus);
    }

    /**
     *
Executes a HEAD request

     *
     *
Adds the passed parameters and headers and checks the expected status

     *
     * @param requestPath path relative to client url
     * @param parameters optional url parameters to be added
     * @param headers optional headers to be added
     * @param expectedStatus if passed, the response status will have to match one of them
     * @return the response
     * @throws ClientException if the request could not be executed
     */
    public SlingHttpResponse doHead(String requestPath, List<NameValuePair> parameters, List headers, int... expectedStatus)
            throws ClientException {
        HttpUriRequest request = new HttpHead(getUrl(requestPath, parameters));
        return doRequest(request, headers, expectedStatus);
    }

    /**
     *
Executes a POST request and consumes the entity in the response. The content is cached and be retrieved by calling
     * {@code response.getContent()}

     *
     *
Adds the passed entity and headers and checks the expected status

     *
     * @param requestPath path relative to client url
     * @param entity the entity to be added to request
     * @param headers optional headers to be added
     * @param expectedStatus if passed, the response status will have to match one of them
     * @return the response with the entity consumed and the content cached
     * @throws ClientException if the request could not be executed
     */
    public SlingHttpResponse doPost(String requestPath, HttpEntity entity, List headers, int... expectedStatus)
            throws ClientException {
        HttpEntityEnclosingRequestBase request = new HttpPost(getUrl(requestPath));
        if (entity != null) {
            request.setEntity(entity);
        }
        return doRequest(request, headers, expectedStatus);
    }

    /**
     *
Executes a POST request and consumes the entity in the response. The content is cached and be retrieved by calling
     * {@code response.getContent()}

     *
     *
Adds the passed entity and checks the expected status

     *
     * @param requestPath path relative to client url
     * @param entity the entity to be added to request
     * @param expectedStatus if passed, the response status will have to match one of them
     * @return the response with the entity consumed and the content cached
     * @throws ClientException if the request could not be executed
     */
    public SlingHttpResponse doPost(String requestPath, HttpEntity entity, int... expectedStatus)
            throws ClientException {
        return doPost(requestPath, entity, null, expectedStatus);
    }

    /**
     *
Executes a PUT request and consumes the entity in the response. The content is cached and be retrieved by calling
     * {@code response.getContent()}

     *
     *
Adds the passed entity and headers and checks the expected status

     *
     * @param requestPath path relative to client url
     * @param entity the entity to be added to request
     * @param headers optional url parameters to be added
     * @param expectedStatus if passed, the response status will have to match one of them
     * @return the response with the entity consumed and the content cached
     * @throws ClientException if the request could not be executed
     */
    public SlingHttpResponse doPut(String requestPath, HttpEntity entity, List headers, int... expectedStatus)
            throws ClientException {
        HttpEntityEnclosingRequestBase request = new HttpPut(getUrl(requestPath));
        if (entity != null) {
            request.setEntity(entity);
        }
        return doRequest(request, headers, expectedStatus);
    }

    /**
     *
Executes a PATCH request and consumes the entity in the response. The content is cached and be retrieved by calling
     * {@code response.getContent()}

     *
     *
Adds the passed entity and headers and checks the expected status

     *
     * @param requestPath path relative to client url
     * @param entity the entity to be added to request
     * @param headers optional url parameters to be added
     * @param expectedStatus if passed, the response status will have to match one of them
     * @return the response with the entity consumed and the content cached
     * @throws ClientException if the request could not be executed
     */
    public SlingHttpResponse doPatch(String requestPath, HttpEntity entity, List headers, int... expectedStatus)
            throws ClientException {
        HttpEntityEnclosingRequestBase request = new HttpPatch(getUrl(requestPath));
        if (entity != null) {
            request.setEntity(entity);
        }
        return doRequest(request, headers, expectedStatus);
    }

    /**
     *
Executes a DELETE request and consumes the entity in the response. The content is cached and be retrieved by calling
     * {@code response.getContent()}

     *
     *
Adds the passed parameters and headers and checks the expected status

     *
     * @param requestPath path relative to client url
     * @param parameters optional url parameters to be added
     * @param headers optional url parameters to be added
     * @param expectedStatus if passed, the response status will have to match one of them
     * @return the response with the entity consumed and the content cached
     * @throws ClientException if the request could not be executed
     */
    public SlingHttpResponse doDelete(String requestPath, List<NameValuePair> parameters, List headers, int... expectedStatus)
            throws ClientException {
        HttpUriRequest request = new HttpDelete(getUrl(requestPath, parameters));
        return doRequest(request, headers, expectedStatus);
    }

    @Override
    /**
     *
Closes the http client and makes sure all the underlying resources, like the connection manager, shut down

     *
     */
    public void close() throws IOException {
        this.http.close();
    }

    //
    // HttpClient  base methods
    //

    @Deprecated
    @SuppressWarnings("deprecation")
    public org.apache.http.params.HttpParams getParams() {
        return this.http.getParams();
    }

    @Deprecated
    @SuppressWarnings("deprecation")
    public org.apache.http.conn.ClientConnectionManager getConnectionManager() {
        return this.http.getConnectionManager();
    }

    @SuppressWarnings("DuplicateThrows")
    public HttpResponse execute(HttpUriRequest request) throws IOException, ClientProtocolException {
        return this.http.execute(request);
    }

    // maybe throw UnsupportedMethodException
    @SuppressWarnings("DuplicateThrows")
    public CloseableHttpResponse execute(HttpUriRequest request, HttpContext context)
            throws IOException, ClientProtocolException {
        return this.http.execute(request, context);
    }

    @SuppressWarnings("DuplicateThrows")
    public HttpResponse execute(HttpHost target, HttpRequest request)
            throws IOException, ClientProtocolException {
        return this.http.execute(target, request);
    }

    @SuppressWarnings("DuplicateThrows")
    public CloseableHttpResponse execute(HttpHost target, HttpRequest request, HttpContext context)
            throws IOException, ClientProtocolException {
        return this.http.execute(target, request, context);
    }

    @SuppressWarnings("DuplicateThrows")
    public <T> T execute(HttpUriRequest request, ResponseHandler<? extends T> responseHandler)
            throws IOException, ClientProtocolException {
        return this.http.execute(request, responseHandler);
    }

    @SuppressWarnings("DuplicateThrows")
    public <T> T execute(HttpUriRequest request, ResponseHandler<? extends T> responseHandler, HttpContext context)
            throws IOException, ClientProtocolException {
        return this.http.execute(request, responseHandler, context);
    }

    @SuppressWarnings("DuplicateThrows")
    public <T> T execute(HttpHost target, HttpRequest request, ResponseHandler<? extends T> responseHandler)
            throws IOException, ClientProtocolException {
        return this.http.execute(target, request, responseHandler);
    }

    @SuppressWarnings("DuplicateThrows")
    public <T> T execute(HttpHost target, HttpRequest request, ResponseHandler<? extends T> responseHandler, HttpContext context)
            throws IOException, ClientProtocolException {
        return this.http.execute(target, request, responseHandler, context);
    }
}

redpajama_set_name: RedPajamaGithub


text:
Improved characterization of nanoparticle clusters for EHS and biosensors research
(Nanowerk News) The tendency of nanoparticles to clump together in solution—"agglomeration"—is of great interest because the size of the clusters plays an important role in the behavior of the materials. Toxicity, the persistence of the nanomaterials in the environment, their efficacy as biosensors and, for that matter, the accuracy of experiments to measure these factors, are all known to be affected by agglomeration and cluster size.
Recent work ("Measuring Agglomerate Size Distribution and Dependence of Localized Surface Plasmon Resonance Absorbance on Gold Nanoparticle Agglomerate Size Using Analytical Ultracentrifugation") at the National Institute of Standards and Technology (NIST) offers a way to measure accurately both the distribution of cluster sizes in a sample and the characteristic light absorption for each size. The latter is important for the application of nanoparticles in biosensors.
Clusters of roughly 30-nanometer gold nanoparticles imaged by transmission electron microscopy. (Color added for clarity.) (Image: Keene, FDA)
A good example of the potential application of the work, says NIST biomedical engineer Justin Zook, is in the development of nanoparticle biosensors for ultrasensitive pregnancy tests. Gold nanoparticles can be coated with antibodies to a hormone (HCG: Human chorionic gonadotropin) produced by an embryo shortly after conception. Multiple gold nanoparticles can bind to each hormone, forming clusters that have a different color from unclustered gold nanoparticles. But only certain size clusters are optimal for this measurement, so knowing how light absorbance changes with cluster size makes it easier to design the biosensors to result in just the right sized clusters.
The NIST team first prepared samples of gold nanoparticles—a nanomaterial widely used in biology—in a standard cell culture solution, using their previously developed technique for creating samples with a controlled distribution of sizes ("Stable nanoparticle aggregates/agglomerates of different sizes and the effect of their size on hemolytic cytotoxicity"). The particles are allowed to agglomerate in gradually growing clusters and the clumping process is "turned off" after varying lengths of time by adding a stabilizing agent that prevents further agglomeration.
They then used a technique called analytical ultracentrifugation (AUC) to simultaneously sort the clusters by size and measure their light absorption. The centrifuge causes the nanoparticle clusters to separate by size, the smaller, lighter clusters moving more slowly than the larger ones. While this is happening, the sample containers are repeatedly scanned with light and the amount of light passing through the sample for each color or frequency is recorded. The larger the cluster, the more light is absorbed by lower frequencies. Measuring the absorption by frequency across the sample containers allows the researchers both to watch the gradual separation of cluster sizes and to correlate absorbed frequencies with specific cluster sizes.
Most previous measurements of absorption spectra for solutions of nanoparticles were able only to measure the bulk spectra—the absorption of all the different cluster sizes mixed together. AUC makes it possible to measure the quantity and distribution of each nanoparticle cluster without being confounded by other components in complex biological mixtures, such as proteins. The technique previously had been used only to make these measurements for single nanoparticles in solution. The NIST researchers are the first to show that the procedure also works for nanoparticle clusters.


text:
200 protest over fare scheme fears
OVER 200 people attended a meeting to voice their disgust at proposals to scrap concessionary rail travel for pensioners.
Get the latest West Lothian Courier news and sport sent straight to your inbox with our daily newsletter
The meeting was organised by members of the 50+ Network who are strongly against the plans, which are about to go out to consultation.
Joining the members was MSP Mary Mulligan along with council leader Peter Johnston a number of other politicians and representatives from disabled groups.
Chairing the meeting at the Regal Theatre in Bathgate was Mary Ferrie, who said: "Organisations such as the 50+ Network are encouraged by central governmental and councils to aid the growing number of the 'active ageing' in order to lessen the burden on overstretched resources.
"To abolish the rail concession would hinder the very successful efforts which were being made."
Councillor Johnston stressed again this week that no decision had been made yet over the plans.
He told the Courier: "The whole message is that no decision has been taken yet, this is a consultation exercise and we want to engage with pensioners.
"The council's position is that we have got to consult with people."


UnaffectedUnion, otherwise known as uGold (Au being representative of Gold on the periodic table) is a Toronto based hip-hop group. Their easy listening sound and soothing instrumentals make these guys a excellent addition to a Drake playlist. Check them out on their soundcloud and find them on our Local Listening playlist. Stay tuned for an interview!
I spent a lot of time leading up to our move to Toronto and during our first months here writing and recording songs alone at home with just me and my piano. It was a really interesting time of solitude for me in music and although I would never want to go back to that, a lot of good came from it.
Playlist of local musicians – some new stuff, some old stuff, all good stuff. From Toronto to Montreal, there's a variety of genres so no matter what you like there's something there for you.


text:
Home Evidence
Chicago Courts Rejecting Evidence Gathered by Laser
The Chicago Tribune reports that judges in Cook County, Illinois, have been dismissing speeding tickets issued to drivers whose speed was measured with laser guns rather than boring old radar. The traffic court has taken the position that evidence gathered by means of laser-gun technology (or "lidar") fails the Frye test because it has not yet been proven in an Illinois court to be scientifically reliable, and so it is not admissible.
Lasers do work in general, of course — I personally own several, and only one of them is attached to the head of my pet shark. The rest are in CD and DVD players and other electronic equipment, and I assume there is one in the magic kitchen box that heats up my food. Lidar itself is used in many other ways in addition to giving you a ticket — it has been used to measure the distance to the Moon (always useful), and this robot uses it, probably to hunt and kill children. According to the Tribune, the laser-gun-speed-detect-o-ray has been tested and found reliable by some courts outside Illinois, but Cook County judges understandably want it tested there too.
It could of course be tested in a Frye hearing there in Cook County, but such a hearing has not yet been held, because, you see, they are hard and require evidence. "The legal procedure required to prove a technology is scientifically reliable . . . is laborious and expensive," the Tribune said experts had told it. "The hearing requires witnesses and can stretch for days." A spokesperson for the county law department said this was why lidar had not yet been tested in Chicago courts, where holding "hearings" that require "witnesses" is apparently a rare occurrence. The spokesperson said that recently the department had begun asking for Frye hearings in cases where a driver has an attorney, but that so far every such defendant has (unsurprisingly) chosen to pay the fine rather than try his luck against someone armed with a laser gun. She said they were hoping that the state attorney's office would seek such a hearing in a more serious case where a defendant has more to lose.
She also said that if all else failed, prosecutors would (in the Tribune's words) "seek a state law that explicitly recognizes lidar as scientifically reliable." See, that's not really how science works, as the state next door demonstrated back when it considered redefining the value of π. Pi is what it is, even if you did get a state law sayin' it ain't, and the same principle applies here. In this case, of course, lidar probably is reliable. It doesn't seem too much to ask that the State prove it, though.
Link: Chicago Tribune
Link: Slashdot
Insurer's Attempt to Blame Dog for Fire Fails
Opinion Corrected: Replaces "Iggidy" With "Wiggity"
Assorted Stupidity #62
Canadians Puzzled by Warning That Snow Globes May Cause Cancer
Good Reason to Kill #50: Would Not Buy a Hat
Official State Crap Update: Connecticut Punts the Wright Brothers


Let The Casino Games At Red Flush Online Casino Amaze You With The Thrills They Offer!
Online players look for variety in games as online gambling has come into its own and there are hundreds of games offered by the various casinos online.
Players visiting Red Flush Online Casino are sure to find something or the other to satiate their appetites. Poker and all its variations are available at the casino. For players who have never played poker, it is easy to be confused by so many games at the casino.
Reading the full help table at the casino can help players understand the rules better before they actually get down to playing. They can also benefit immensely from using the practice games offered. There is so much variety that it is possible to gain expertise quickly.
At Red Flush Online Casino, Games like blackjack and poker being games of strategy, attract players who enjoy challenges and play with the intention of winning. Roulette, as we all know is a game of chance and of course, as I always say, it involves some skill too along with favors from ladyluck. These table games at Red Flush Casino have the power to draw players into the excitement offered by the games.
Last but certainly not the least in what they have to offer, the progressive jackpots are huge at Red Flush. They have an electric appeal that cannot be described and are one of the favorite parts of the casino for thousands of players worldwide. If you wish to take home the big life-changing win, it is possible to do so in this section.


US – Facebook has appointed Jérôme Pesenti as head of artificial intelligence research.
In the newly created role, Pesenti succeeds Yann LeCun, the founder of Facebook's AI Research Lab (FAIR), and also takes over the company's Applied Machine Learning Group, Quartz reports.
Formerly an AI executive at IBM, Pesenti was most recently chief executive of startup BenevolentAI. In the new role, he will report to Facebook's chief technology officer.
LeCun, who founded FAIR in 2013, will become the company's chief AI scientist, with a greater focus on research. Pesenti's role will combine research, development and product.
Facebook's Applied Machine Learning Group rolls out AI into features such as Newsfeed, which the company has recently said will place less emphasis on news and public content.
The company announced earlier this week it would expand its AI research team in Paris. It also has AI hubs in Menlo Park, California and New York.


The ever amazing BT will be returning to Soundcheck on September 15th!
Trance supremo BT visits Soundcheck for the first time on September 8th!
Wake your mind with part two of Cosmic Gate's live set from Echostage!


text:
THE FOOTAGE
The Flea premieres online gaming drama
The Flea Theater announces the World Premiere of THE FOOTAGE. Written by Joshua Scher and directed by Claudia Zelevansky.
THE FOOTAGE exposes the dark underbelly of the YouTube generation and the insidious encroachment of online behavior in our everyday lives. This multi-media story roves between three groups of twenty-something friends whose lives intersect in the world of an MMORPG (Massively Multiplayer Online Role-Playing Game). The friends must race against the clock to decipher the on-line clues of a young woman's surreal abduction before the cameras stop rolling. THE FOOTAGE includes sexual content; not appropriate for children.
THE FOOTAGE features The Bats, the resident acting ensemble at The Flea: Elizabeth Alderfer, Celeste Arias, Blair Baker, Matthew Bretschneider, Jamie Effros, Nicolas Flower, Jessica Grant, Robert Grant, Michael Guagno, Laurel Holland, Caroline Hurley, Rachel McPhee, Dan McVey, Michael Micalizzi and Celina Reyes. The production features sets by Adrian W. Jones, lights by Ben Stanton, costumes by Erin Murphy, sound by Matt O'Hare, video design by Room404 Media, and machinima (real-time computer generated imagery) design by Brett Macaulay .
Nov 5 - 8 at 9:00pm
Nov 13 - 15 at 7:00pm
Nov 28 & 29 at 7:00pm
Nov 9, 16, 23, & 30 at 3:00pm Theater: Flea Theater Mainstage
Cost:$20
Buy Tickets Online or Call: at 212-352-3101
Company: The Flea Official Web Site: www.theflea.org


Are you forensic professional, or interested in what it means to be a forensic scientist? Learn more about our non-credit Forensic Science Continuing Education programs at John Jay College. Our programs are open to professionals and students alike who are interested in this field.
At Professional Studies, we can create customized training to meet your organization's needs, and respond to current changes in law and regulations that impact the delivery of your services.
Professional Studies at John Jay College of Criminal Justice provides non-credit professional development training and education to Public Safety, Public Service, Social Justice, and Criminal Justice agencies and organizations. Our goal is to deliver the highest quality training in accordance with the overall mission of the college to educate fierce advocates for justice. In addition to providing subject matter that comply with state certification rules and industry standards, where applicable, Professional Studies strives to incorporate in its programs core learning skills that not only enable training participants to perform their duties as effective and efficient public safety professionals, but also as good citizens in a diverse, complex, and evolving society.
At the core of our programs are our faculty, scholars and instructors who are committed to innovative analysis, interdisciplinary approaches and global perspectives to further the discourse on the complex issues surrounding crime, justice and public safety in a free society. By bringing together John Jay's distinguished and diverse academic community with working professionals, Professional Studies serves as a catalyst for new ideas and cutting-edge practices that help academics, policy makers and practitioners serve the public now and in the future.


text:
Accessible Ltd Home
NVQ Plant Operator Training
Face Training Northwest
Supplier Links
Driver CPC Training "Now required if you drive a Minibus over 3.5Ton"
Vehicle Banksman Training
Midas Minibus Driver Training
MIDAS School Minibus Training – MiDAS4Schools
MiDAS Driver Training for Care Homes – MiDAS4Care
Wheelchair Tiedown Anchor Training
Driver CPC
MiDAS 4 Schools & Carehomes
Testimonial Quotes
About us at Accessible Ltd
Preston building firm sentenced over cinema death
Home » Banksman » Preston building firm sentenced over cinema death
Damian Chung
Banksman
A Preston-based building firm has been fined £130,000 over the death of a worker outside a cinema in Ashton-on-Ribble.
The Health and Safety Executive (HSE) prosecuted EMC Contracts Ltd after father-of-one xxxx xxxxx was struck by a reversing van in a paved area outside the entrance to the Odeon Cinema on 27 July 2010.
The 45-year-old painter from Chorley had been working on a project to fit out a new coffee shop in the cinema when the incident happened. He died from his injuries on the way to hospital
During an eight-day-trial, Preston Crown Court was told EMC Contracts had been hired for a five-week project to fit a coffee shop in the foyer area of the cinema, on Port Way in Ashton-on-Ribble.
One of EMC's employees had unloaded his van of construction materials and was reversing it to park up outside the cinema when it struck Mr xxxxx, who was crossing behind it.
An HSE investigation found the company did not have any control measures in place to keep vehicles involved in the construction work away from pedestrians outside the cinema. As a result, both workers and members of the public had been put in danger.
The company had written a method statement for the work, which identified the risk of pedestrians being injured by vehicles as a main hazard. However, they failed to state what measures should be taken to reduce or eliminate the risk.
Xxxxx Xxxxxxxx, the mother of Mr xxxxx daughter, Morgan, said:
"Our daughter was seven when xxxx lost his life, and it continues to have a huge effect on her. Fathers' Day, Christmas and xxxxs birthday are very difficult times.
"She should be doing all the lovely things children do with their dads but she can't. Both our lives have been turned upside down and they will never be the same again."
EMC Contracts Ltd, which has been put into voluntary liquidation, was found guilty of two breaches of the Health and Safety at Work etc Act 1974. The company, of Faraday Court in Fulwood, was fined £130,000 and ordered to pay £52,790 in prosecution costs on 5 March 2014.
Speaking after the hearing, HSE Inspector Susan Ritchie said:
"xxxx xxxxx tragically lost his life because the company that employed him didn't fulfil its responsibilities to ensure his health and safety.
"The work at the cinema was carried out during the school holidays – at a time when children and their parents would have been watching the summer blockbusters.
"Despite this, EMC did not take any action to ensure its vehicles operated safely on the paved area in front of the cinema, therefore putting members of the public and its own employees in danger.
"There were numerous measures the company could have implemented to either eliminate or reduce the risk of collision, such as prohibiting vehicles from reversing or avoiding using its vehicles outside the cinema entrance altogether.
"These measures could have been implemented with little cost but the company still failed to act. As a result, a man lost his life."
Source: http://press.hse.gov.uk/2014/preston-building-firm-sentenced-over-cinema-death/
Driver CPC warning – Rooney ready to score
Contact Form – Thank you.
Face Fit Testing North West
Driver CPC Certification in Lancashire
Accessible Ltd – News (31)
Driver CPC (27)
Driver CPC Certification Training
MiDAS School Minibus Driver Training
MiDAS Care Home Driver Training
What Is Midas Training: The Essentials
July 29, 2018 | Damian
What is Driver CPC Training
Accessible Ltd
Pendle Innovation Centre
Brook Street, Nelson,
Lancashire, BB9 9PU
Email: info@accessibleltd.co.uk
© 2019 Accessible Ltd
Accessible Ltd - Nelson, Lancashire, Northwest.


The activities of Practical ministry are indispensable in the Faith Theological Seminary's academic pursuit for the ministerial training.
We have children's clubs on every Saturday at various places. There are more than 400 children attending in 22 clubs. The department gives special training to the students to enable them to conduct clubs more effectively. We are able to impart the word of God to the minds of children through these clubs.
Realizing the importance of reaching the young generation, this department gives emphasis to the campus ministry. 45 students are involved in this ministry. We do conduct prayer meetings for the youths once in a week in nearby seven colleges.
Apart from the youth ministry the department also has the awareness programs for the teenagers of the schools and colleges. This year we have already conducted seven programs which deal with social issues like AIDS, Drugs, etc.
We conduct weekend ministries such as open air meetings, church based house visiting etc. Tract distribution and personal evangelism are main activities done in the house visiting. Many students, including women students are involved in it. A number of individuals, families and churches of different places have been blessed through this ministry.
The Practical Ministry department believes that the Christian ministers must be socially responsible and as a part of that responsibility we separate National holidays August 15th and January 26th to engage in social activities.
The department of practical ministry provides ample opportunities to all the students of FTS so that they will have practical experiences along with the academic excellence. It also helps the students to widen and strengthen their vision of ministry and re-dedicate for the ministry for which they are called and commissioned.


We are located in 20 cities throughout the U.S. and have five international affiliates in South Africa, Malaysia, Italy, India and the Philippines. We are able to offer a global meal packaging programs in most any part of the world, providing support to multinational companies. If your company would like to help us end hunger and inspire new leaders to support those in need, partner with Rise Against Hunger today.


Rod rotation is the most effective means of removing paraffin from inside the tubing and distributing wear evenly. Our Hercules™ rod rotators are field proven leaders in the industry. We offer loads ranging from 13,000 to 40,000 lbs.
between bridle lines 4" 4" 6" 6" 7" 7" 7" 7"
Polished rod sizes 1 ⅛" - 1 ¼" 1 ⅛" - 1 ¼" 1 ⅛" - 1 ½" 1 ⅛" - 1 ½" 1 ⅛" - 1 ¾" 1 ⅛" - 1 ¾" 1 ⅛" - 1 ¾" 1 ⅛" - 1 ¾"
Height 4 ¼" 4 ¼" 5 ½" 5 ¾" 6 ½" 6 ½" 6 ½" 6 ½"
*Cable lengths available upon request: 10", 16" and 25".
Note: Rotators must be under load to operate (except for no-slip models). "Bench testing" to verify functionality is not recommended.


Do you convert audio reel-to-reel?
We can convert audio reel-to-reels to CDs, which you can listen to using any CD player, and even upload to your computer. Or, if you opt for a USB thumb drive or digital download, we provide high quality .WAV files for you to listen to on any device!
And don't worry, it doesn't matter if it's 2-track or 4-track, we do it all!


Livingstone museum is the oldest in the country having been opened in 1951. It contains 20,000 cultural-related collections, 5000 historical items & 20000 natural history specimens. Diaries,cap,personal letters and David Livingstone's jacket and more are found in the museum.


Basic cell structure (animal and plant) and the main metabolic and physiological processes occurring therein. Types of plant and animal cells and their grouping within tissues with specific functions.
01Know the structure and function of cell organelles.
02Differentiate between the structure of plant and animal cells.
03Understand the vital functions of the cell through the study of major metabolic processes that take place in it, such as cellular respiration and photosynthesis.
04Know and differentiation the processes of cell division, mitosis and meiosis.
05Differentiate and recognize the different types of plant cells and their grouping into tissues with specific functions.
06Understand the morphology and anatomy of plants, studing the arrangement of the different tissues in the organs that make up the body of the plant.
07Understand the process of sexual reproduction of plants and production of fruits and seeds.
A theoretical and practical examination assessed on 10, the note will 75% of the course is done. The labs, classroom practices and seminars will account for 25% of the course grade.
The exam will be available for those notes / as students who did not participate in the tasks of course proposals, together with an examination of practices (5% of the final grade).
- Two tests or exams will be conducted. In each subject taught will go far in theory and practice, and will consist of short and large questions. The average rating for each of these controls should be equal to or greater than 6 to remove material and not have to take the final exam. The student who passes these two checks will be excused from the final exam. Students who do not pass such an assessment will have to take the final exam in the official call. This test will be written with questions about the theoretical teachings and practices of the portion not eliminated for the course and will consist of short and large questions and will be assessed on 10 The score (mean of controls or final exam) will account for 75% of the final grade.
* Lab (15% of the final grade, ie 1.5 point): attendance, attitude and ability to work individually and in groups (1 point) will be assessed. Attendance is mandatory, so that students with more than two absences should make the practice exam at end of course. The presentation of activities in practical classes will have a maximum value of 0.5 points.
* Classroom Practices and seminars (10% of the final grade, ie 1 point): attendance will be assessed, attitude, ability to work individually and in group activities in classroom practices (3% the final grade, ie, 0.3 points). Seminars, exposure and assistance to them (7% of the final grade, ie, 0.7 points) will be assessed.


text:
Associated Press claimed, ''This is how you follow up an impressive debut: simply step into the recording booth and be amazing yet again.'' With additional accolades from Rolling Stone and USA Today, among many others, Grande broke streaming records and won numerous awards. Internationally the album quickly reached #1 in Australia, Mexico, Canada, Japan and Top 5 in the UK, Germany, Ireland, New Zealand, Sweden, Netherlands, Austria, and Switzerland. The first single from her sophomore album, ''Problem'' [featuring Iggy Azalea], saw her become the ''youngest woman to debut with over 400K sold first-week.'' Other tracks include ''Break Free'' [featuring Zedd] and ''Bang Bang'' with Nicki Minaj and Jessie J. The album debuted at #1 on the Billboard 200 in the United States. The album is now available on vinyl.
Label: REPUBLIC
My Everything [LP]
2. Problem (Feat. Iggy Azalea)
3. One Last Time
4. Why Try
5. Break Free (Feat. Zedd)
6. Best Mistake (Feat. Big Sean)
7. Be My Baby (Feat. Cashmere Cat)
8. Break Your Heart Right Back (Feat. Childish Gambino)
9. Love Me Harder (Ariana Grande ; the Weeknd) 1
10. Just a Little Bit of Your Heart 1
11. Hands on Me (Feat. A$Ap Ferg) 1
12. My Everything


Looking for something to do this weekend? The spotlight is on fun and excitement in the Lehigh Valley and beyond. So check out your calendar and join Grover Silcox and the PBS39 Let's Go! team. This week we revisit: Bird Mania, Last Chance Ranch, The AArk, Barn Nature Center, DeerPath riding Stables, Wildlife Conservancy and PA Renaissance Faire.


IBYC2020 - International Buddhist Youth Convention - A unique opportunity to bring Triratna Buddhist youth Community from across the world.
Last date: 30th Nov 2019 or till all vacant seats are filled, whichever is earlier!
There will also be an opportunity to go on pilgrimage to key Buddhist sites in North India.
With IBYC2020 we wish to build strong worldwide young Buddhist community for building the future synergic youth movement to learn and spread dhamma in unique and participative way.
To understand the wider perspective of Buddhist Art and culture, Social, historical, Dhammic and various other aspect of youth subjects of their countries.
Beholding and nurturing Dhammic values with young people around the world.
Cherishing the historic land of Dhamma forged by Emperor ASHOKA.
Exploring newer approaches to disseminating the Dhamma as a means to the creation of a better & happier world.
Networking with the International Organization for more synergic Dhamma movements for Liberty, Equality & Fraternity amongst participating nations.
Leaders and activists from NNBY-India.
Young Triratna Order members and mitras from worldwide.
Anyone over the age limit will be given privileged entry based on their Organizational delegation and remuneration.
Arrival & Registration process: 16th Feb 2020 -6am onwards.
Opening Ceremony: 16th Feb 2020 -7pm onwards.
Closing ceremony: 20th Feb 2020 -7pm onwards.
Departure: 21st Feb 2020 -6am onwards before 12pm.
Host: National Network of Buddhist Youth (NNBY) India.
Basic language of the convention will be English. For Main talk Hindi translation will be done.
Age limit – 18-40 years.
Online registration mandatory, no offline registrations will be entertained!
Rs. 4000/- for Indian participants.
Rs. 12500/-( £133 approx) for International participants.
The charges covers food and accommodations.
Retreat Charges to be paid well in advance for final confirmation of your seats before 25th Dec 2019.
As we have limited seats, priorities will be given to those paying retreat charges in advance.
Decent accommodation along with breakfast, lunch and dinner will be provided.
Separate living arrangements will be provided for girls.
We are expecting presentations (PPT, videos or talks) from participants regarding their organization's or center's mission & vision as well as their view on developing the involvement of young people. It should be submitted to the media team on the first day itself of the convention.
Personal toiletries and health-care products.
International participants are expected to arrange their own air tickets to, and from, India.
We will offer a pick-up service from Gaya Airport/Railway station for large groups (Prior booking essential).
Participants are requested to give their travel itinerary well in advance to facilitate local travel arrangements.
Should you need any further information, please do not hesitate to contact us. Please fill the form and submit, our coordinators will get in touch with you soon.


text:
Red star over Russia
exhibition fine art visual studies
This exhibition looks at the visual language of Soviet posters, prints and photographs from the October Revolution to the death of Stalin. It shows how in the first ten years Soviet designers created a revolutionary narrative that linked the events of 1917 to turning points such as the storming of the Bastille and Delacroix's image of Liberty Leading the People. Such a narrative helped to create social cohesion and a sense of visual identity among a largely illiterate population. Yet it was also important in creating a repertoire of symbols, which enabled Stalin to triumph over his rivals, Trotsky and Zinoviev, after Lenin's death in 1927. Some of these symbols – such as the tractor, the chimney and the pylon – were recognisable images of modernity. Others borrowed the abstract language of avant garde artists to create an ideography of dynamic optimism and change.
The most famous example in the exhibition is El Lissitsky's Beat the Whites with the Red Wedge of 1919. The diagrammatic clarity of its red triangle piercing a white circle identified the spirit of artistic innovation with the struggle of the Soviet army against the conservative white Russians. The universal language of geometry enabled it to address both Russia's polyglot population and potential revolutionaries from outside its borders. The cheap two colour palette and minimal use of text meant that it could be translated easily from the Cyrillic to the Roman and Islamic alphabet. The poster established a typographical style in which juxtapositions of strong images, patterns, shapes and colours became ubiquitous. Their repetition, as Roland Barthes might have explained, had a cumulative effect that allowed them to connote rather than denote ideas from one poster to another in ways that looked forward to modern advertising. Such innovations went hand in hand with practices such as collaborative working, the cross-fertilisation of painting, sculpture, architecture and design and the greater involvement of women artists. In this brave new world artists created agitprop trains, street art, processions and events and celebrated the revolution's new physical and psychological aspirations through athletic festivals and futuristic ballets.
Sadly, as the exhibition points out, such innovations were quickly replaced by Social Realism and by a sentimental, quasi-religious form of kitsch that lionised those few Soviet workers that had exceeded their work quotas. At the same time Stalin began re-writing history through editing and redacting photographs during the period of the show trials and the Great Patriotic War. The exhibition is a small one, which is almost exclusively drawn from the collection of the punk designer, David King. Hence we shall spend a short period before lunch looking at Bruce Nauman's 12 screen projection Violent Incident of 1986, in which he subtly alters our understanding of a story by staging and re-filming it in four different ways.
The exhibition is particularly relevant to students studying the OCA Visual Studies course. In order to see the way in which the Soviet graphics in the exhibition complemented the work of current artists and film-makers, students might want to look at this analysis of Dziga Vertov's 1929 film Man with a Camera with its use of iconic imagery such taken from factories, street scenes and athletic events and its use of double exposures, collage and dramatic angles.
http://www.bfi.org.uk/news-opinion/news-bfi/features/five-wonderful-effects-man-movie-camera
Image credit: El Lissitzky, Beat the Whites with the Red Wedge, 1919
Posted by author: Gerald
> Next Post Bums on seats. A moving story.
< Previous Post Study visit review: London trio of galleries


What tanks in AoW3 can you build and what they are good for?
Coming out of Assault Vehicle Factory there are three tanks with different roles and all with its strengths. Considering how strong are barracks at the start of the game we recommend in the early game to build a lot of Fortresses because how good they are as support and soaking fire (just make sure they are front and center of your army, which can be a problem because of their speed). Hammer is a relatively soft tank but deadly for anything with medium armor. There is some use for this tank, but it is no big deal if you skip building them at all and wait for the next best thing, that is Zeus. Now, this is the heavy hitter, strong against heavy armored vehicles and buildings universally good in durability and firepower, but somewhat lacking in the mobility department.