Marie-Claire McNally (née McGurk) and Dean McNally from Kildress, Co. Tyrone, first met at a Halloween disco at the Greenvale Hotel eight years ago.
Dean popped the question on top of the Slieve Donard Mountain, Co. Down - the first mountain the couple ever hiked together and one they take on annually with their two gorgeous dogs - in the summer of '17: "It's one of our favourite places," says Marie-Claire.
The couple spent just over a year planning their big day, wanting to create a celebration that was a 'true relection' of all the things they loved. "We also wanted to throw a party for our friends and family to remember for years to follow!" says the bride.
They tied the knot on the 1st September in St. Mary's Chapel Dunamore, Kildress, with Fr. Patrick Hughes as their celebrant. After the ceremony, the newlyweds and their guests headed to Darver Castle, Co. Louth, for an evening of fabulous food and plenty of dancing.
For Marie-Claire, one of the most memorable moments was their mini photoshoot in a field beside the castle where they got to relax and spend some time having fun by themselves.
"Dean also lifted me onto a bale of straw which made me very happy," says the bride. "I loved this part of the day... The sun was shining bright... it's the simple things."
Their photos are by Gemma Gilfilllan of Gemma G Photography.
Marie-Claire's Eliza Jane Howell gown was purchased in Creative Ideas Bridal Cookstown, Co. Tyrone. Shopping for the dress, she says, had its highs and lows, and while she enjoyed the time spent with her mother, mother-in-law and bridesmaids there were a few days of frustration when she thought she would never find the dress she wanted - "But I ended up finding my dream wedding dress in a bridal boutique ten minutes from where I live! It was all perfect and meant to be."
The couple planned a rustic, vintage-themed wedding featuring beautiful wooden decor by Omagh company Wooden Treats throughout the chapel and later, the castle. "Their décor is all handmade and had a true rustic look," Marie-Claire explains, "we also got them to design a unique Memory Frame for us to hang photos of loved ones that have passed away."
"I always knew I wanted a brown suit and just happened to find a suit I loved the first day we went suit shopping," says groom Dean who wore a autumnal-feel check Cavani suit from Tux & Tails Dungannon, Co. Tyrone for the day. "Getting the perfect tie to match in however proved to be more stressful than expected!" he adds. To differentiate himself from the groomsmen, who wore matching waistcoats with their suits, Dean opted for a dark brown tweed waistcoat designed by Dee Graham Tailor Made, which complemented his deep burgundy tie (and the bride's stunning dark lip!) perfectly.
"We always wanted a quirky and unique venue with nice outdoor scenery and Darver Castle was definitely that," says Marie-Claire. It is such a beautiful place inside and out, and the staff are fantastic and made us feel at home from the very first day. When we first arrived at Darver Castle we didn't have an appointment made. Anne, the wedding coordinator, took us in for a quick chat... we knew straight away it was the perfect venue, it was everything we wanted. Their choice of food for the menu was amazing too. There was so much to choose from we were spoilt for choice. For our guests arriving to the castle, there were homemade sausage rolls, scones, jam and cream, and sandwiches served with tea and coffee."
For the drinks reception, guests were treated to flutes of Guinness and Champagne while the evening buffet included sumptuous mini gourmet burgers and bacon butties.
"We honestly couldn't pick a particular part of the day," says Marie-Claire, "we loved it from start to finish, it was everything we had ever hoped and wished for. The volinist was one of the highlights of the day, she played in between our main course and dessert, she really set a lively tone for the evening to follow."
If they could have done anything differently, Marie-Claire says the would have had the guest list and table plan finalised sooner: "Doing the table plan a few days before your wedding is not ideal." Dean advises couples to take a few days off from work ahead of the wedding. He took two days holiday however for him, two days wasn't "quite enough" to get everything done on-time for the day.
"Do not stress or get too worried," says the bride, "before you know it your day will have passed."
Marie-Claire also points out that couples who have shorter engagements may have less time to save - which can mean compromising on certain things. "Don't ask too many people for advice because sometimes you will get answers that you don't really want to hear!" she adds.
Both Dean and Marie-Claire recommend a 'delayed honeymoon': "We had a mini moon in the South of Ireland and went to a few different places; Wicklow, Kilkenny, Kinsale and Dublin, which gave us time to chill before going back to work." They are going to South Africa and Mauritius in early 2019.


text:
Virginia Rodino
How our movement defeated Trump
Democrats were lifted to victory by the mass movements that swept the US during the Trump years, writes Virginia Rodino. Virginia Rodino is part of Marx 21
Baltimore/DC; Maryland Green Party co-chair; Asian Pacific American Labor Alliance, Maryland convenor.
Donald Trump's threat to challenge the results and to illegally occupy the White House was met with a galvanisation of hundreds of liberal and progressive groups across the country, including Labor and the Movement for Black Lives (BLM). At the moment of writing, all legal means to challenge the validity of the elections have been exhausted by Team Trump. Since 3 November, there has been a wave of celebration by liberals who had lifted up Biden and Harris throughout the race. There was a justified sigh of relief by most of the Left, since Trump is and continues to be such a horror show.
Read more about How our movement defeated Trump
US elections: The movement is the key
Amid Donald Trump's bluster and threats over the forthcoming presidential race, the real power to fundamentally change the sick system is on the American street, says US activist Virginia Rodino
Last month US president Donald Trump was asked what he would do should he lose the election. He replied, "Well, we're going to have to see what happens. You know that. I've been complaining very strongly about the ballots. And the ballots are a disaster… There won't be a transfer, frankly. There'll be a continuation." This follows Trump's repeated blustering claims that the only way his opponent Joe Biden can win is through a rigged election.
Read more about US elections: The movement is the key
No longer playing by the rules
When US sports stars led an unofficial walkout over the police shooting of Jason Blake, the season was over. Then Obama intervened, and that's the problem with the Democrats, writes Virginia Rodino
Jacob Blake, a 29-year-old African-American man, was shot seven times in the back in front of his children by a white police officer in Kenosha, Wisconsin, on 23 August. The bullets wounded his arm and damaged his stomach, kidney and liver. He remains paralyzed in hospital. Three days later Milwaukee Bucks, a professional team in the National Basketball Association (NBA), were inspired to collective action and decided not to play, in protest at the attack. The move came as a surprise to the rest of the league.
Read more about No longer playing by the rules
Abandoned hope
The election of Republican Scott Brown to the US Senate is the first real indicator that sections of a longstanding liberal electorate have lost belief in the Democratic Party's version of "hope" and "change" and instead need concrete solutions to the real problems of joblessness, healthcare and home foreclosures (Feature, Socialist Review, January 2010).
The Republican victory, in the longstanding Democratic state of Massachusetts, held for almost half a century by Ted Kennedy, has the White House and Democratic Party leaders scrambling on key issues such as healthcare, clean energy and banking regulations.
Read more about Abandoned hope

redpajama_set_name: RedPajamaCommonCrawl


text:
TUC urges workers to strictly observe coronavirus protocols
Ghana Trades Union Congress
Wed, 13 Jan 2021 Source: GNA
The Executive Committee of the Ghana Trades Union Congress (TUC-Ghana), on Wednesday, called on workers across the country to strictly observe all COVID-19 safety protocols per the World Health Organisation and Ghana Health Service directives.
TUC-Ghana in a statement to the Ghana News Agency (GNA) in Accra signed by Dr. Yaw Baah, the Secretary-General, said the wearing of face masks, social distancing, frequent handwashing and the use of hand sanitizers should not be left behind in this New Year.
"The number of active cases remains quite high," it stated.
The TUC-Ghana called on Union leaders to ensure that appropriate Personal Protective Equipment (PPEs) were provided by their employers at every workplace.
"There was a strong evidence that effective use of the PPEs helps to protect us from infection," it said.
The statement commended its heroes and heroines, who were working in the health sector and urged the government to do whatever was needed to protect them from infection.
The statement said: "We are confident that the government will work tirelessly to ensure an adequate supply of COVID-19 vaccines in Ghana as soon as possible".
The Congress sympathized with families of about 336 persons lost to the virus in 2020 and prayed the Good Lord to grant them the courage and strength they needed to deal with this great loss.


I was one of many registered PC delegates who attended last weekend's AGM in Toronto. Holding a policy convention immediately after an election is not typical, however the party's constitution mandated one be held. While some media coverage focused on a few controversial policy ideas brought forward, I felt the enthusiastic participation by so many rank and file members was a healthy sign of a party still glowing from political victory.
Over 1000 members from across the province were joined by Premier Ford and his fellow 74 members of caucus. Senior ministers held round table sessions with members and openly discussed their priorities and plans for the new government's mandate moving forward. Attending conventions gives members unprecedented access to ministers and staff, and I was impressed by the number of caucus members who participated fully in convention activities.
Affordability – cutting taxes, and generally making life more affordable for average Ontarians is a priority across all ministries.
Competitiveness – reflected in the government's mantra of making Ontario "Open for Business", this government clearly wants to do everything possible to make Ontario the economic engine of Canada once again. Their initial focus has been on reducing regulations and making it easier for businesses to grow and prosper.
Balance – ensuring a balanced approach towards legislation and regulatory changes that grows the economy while still looking after the best interests of all Ontarians, including social and environmental concerns.
While the first 5 months of this government has not been without some challenges, for the most part the Ford government is pushing forward with a mandate of "governing for the people". I am enjoying the access I have to so many ministries and welcome the opportunity for worthwhile discussions with key staff and policy makers. Working with industry and the public, this government has an opportunity to rebuild Ontario's economy and grow our economic base in the coming years. While this convention is early in this government's mandate, the celebratory mood was well deserved and to be expected.
Undoing What Was Done: Ontario FES 2018 GROW. FEED. THRIVE.


text:
MARTA MORAN BISHOP
Dinky: The Nurse Mare's Foal
Owl and Pussycat Promotions
Chasing Entertainment
PREORDER SPECIALS
The Divide - Dawn Rises
A QUEST TO SOLVE THE MESSAGE OF A DREAM - THE OWL OF THE LORD OF SIPAN - A PARANORMAL MYSTERY - BY AWARD-WINNING AUTHOR VIV DREWA
Martin and Clare Montgomery worked together as an archaeological team until Martin mysteriously died. Fearing the rumors of a curse Clare vowed to never return that was until a rare blue eyes owl began to haunt her dreams. Was this a sign from her beloved Martin or something more sinister?
The theme of betrayal resonates throughout the novel as Adelgonda endangers not only the lives of her parents but her entire clan as her death cult endures. Five Stars
The Owl of the Sipan Lord by Viv Drewa is an action-packed adventure novel centered on the exploits of Clare Montgomery, a widowed 52-year-old archaeologist. She goes on a vision quest to Peru along with Cord Willoughby, intent on discovering the secrets of La Senora de Cao. The mysterious death of Hans Windmueller leaves little doubt as to the presence of evil spirits along the trail. Upon arrival in El Brujo, they find themselves delving headlong into a web of mystery, intrigue and murder. It takes them to the ancient Temple of the Moon, where they enlist the aid of the Lord of Sipan, Cantunta. They find that his daughter Adelgonda awaits in the land of the dead, and only by overcoming the evil goddess can they rid the land of the curse of Cao.
The author develops her tale with artistic flair, bringing us into the storyline with authentic narratives of Peruvian society and culture. There is also the midlife element portrayed by Clare's affair with Cord, leading to the possibility of a pregnancy that serves as a highly unexpected distraction. Yet the dream sequences force the reader to keep their eye on the ball as her visions reveal the imminent danger awaiting them. The theme of betrayal resonates throughout the novel as Adelgonda endangers not only the lives of her parents but her entire clan as her death cult endures. It brings us to a dramatic conclusion as Clare and Cord are brought face-to-face with the ancient demons in a final showdown.
For action/adventure fans as well as sorcery buffs, The Owl of the Sipan Lord by Viv Drewa is a worthy addition to your collection.
https://www.amazon.com/gp/product/1978453914/ref=dbs_a_def_rwt_bibl_vppi_i0
https://itunes.apple.com/us/book/the-owl-of-the-sipan-lord/id1281391950?mt=11
https://www.barnesandnoble.com/w/the-owl-of-the-sipan-lord-viv-drewa/1121402507;jsessionid=CBCFA76EFFBED4942599D4530B49BBDF.prodny_store01-atgap07?ean=9781978453913
http://www.booksamillion.com/p/Owl-Sipan-Lord/VIV-Drewa/9781978453913?id=6960723244637
https://www.kobo.com/us/en/ebook/the-owl-of-the-sipan-lord-1
The Owl and Pussycat Promotions is dedicated to promote author's books at reasonable prices.
Marta Moran Bishop is an award-winning author, poet. A radio show host and one of the team for Owl and Pussycat promotions.


New Year, must have a computing skills on your CV!
We are taking enrolments now for our spring courses. Why don't you pop into the centre and join one of our computing courses and get that qualification you can then add onto your CV!


Только по разделу "Общий и стратегический менеджмент"
The British Academy of Management was founded in 1986 with the following aims: To encourage the development and sharing of knowledge about organisational and management studies. To act as a forum for the development of an integrated body of management knowledge. To encourage and promote interdisciplinary research and collaboration.
CEES seeks to make a significant contribution to the development and dissimination of knowledge about the transition processes, both through research and education. Research at CEES shall deepen the understanding of the transition process as a whole as well as specific aspects such as enterprise transformation and foreign direct investment.
The Center for Entrepreneurial Studies was founded in 1996 at the Stanford Graduate School of Business to build understanding of the issues faced by entrepreneurial companies and individuals. University-based study of entrepreneurship provides an objective means to develop greater understanding of current and future entrepreneurial companies.
This center was established in June 2001. The major goal of the Center is to promote Kellogg as a thought leader on the impact of technology on business through research initiatives, pedagogical development, and outreach programs. The center supports faculty, visiting scholars, Ph.D.
CENTRIM is an interdisciplinary research group whose aim is to provide high-quality research, education, training and consultancy to help improve the management of technology- related innovation. They are based in the Business School at the University of Brighton and have been working in the field for over a decade.
The Centre for Research in Operations & Technology Management – это подразделение Группы операционного и технологического менеджмента Лондонской бизнес-школы. Центр занимает ведущие позиции в исследованиях конкурентоспособности в области операционного менеджмента, управления услугами и технологиями. Центр образован в 1993 году под влиянием развития технологий и Интернета.


Ashley and I are swamped with work right now, but there is a significant event to look forward to this Saturday: Elvis's birthday. Ashley is a big fan–a smile always spreads across her face whenever he comes on the radio. And I'm sure she can sing along to all his songs (to my chagrin).
I just realized that his birthday is on our calendar(!). It looks like–along with trying to get out from under this pile of work–a peanut butter, banana, bacon, and honey sandwich is in order tomorrow.


text:
Grigor Dimitrov answers whether he still believes he can win Grand Slam
Former world No. 3 Grigor Dimitrov has made it clear that he hasn't given up on his hopes of winning a Grand Slam title. Dimitrov, 31, has been close to winning a Grand Slam several times but he has yet to make a big Grand Slam breakthrough.
Dimitrov is a three-time Grand Slam semifinalist, having reached the last-4 stage at the Australian Open, Wimbledon and the US Open. "Yeah, of course," Dimitrov told Tennis Majors. "I mean, I still believe that.
I've had it on quite a few occasions. The past slams I've had good results. Now, unfortunately, I just have to play very, very good players early on second, third round. But I believe that there's a lot more to come on my end.
I think I can push through it and who knows when, what and where? But the only thing that I need to focus on is how I'm going to go on and about."
Dimitrov loves the Queen's Club
Dimitrov turned pro 14 years ago and he has been a regular participant at the Queen's Club since 2009.
The Queen's Club is a place where Dimitrov has had success as he made it all the way at the tournament in 2014. Also, Dimitrov reached the Queen's semifinal in 2012 and 2017. This week, Dimitrov made a positive start to his Queen's campaign as he beat top-ranked British tennis player Cameron Norrie in the first round.
"It was a tournament that I have really admired, since day one. I was one of the fortunate ones to get some help from that tournament early on and that wild card. And I played the juniors here as well. So there were, there were a lot of like positive things on that note," Dimitrov said of Queen's.
Dimitrov is certainly hoping to do well at Queen's this week and then go to Wimbledon extremely confident.
el: 0.0031


text:
<?php
namespace Application\Controller;

use Application\Controller\Contracts\AbstractGenericController;
use Application\Service\ApplicationService;
use Application\Domain\Util\Pagination\Paginator;
use Zend\Math\Rand;
use Zend\View\Model\ViewModel;

class AclController extends AbstractGenericController
{

    const CHAR_LIST = "_0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_";

    protected $appService;

    /*
     * Defaul Action
     */
    public function indexAction()
    {}

    /**
     *
     * @return \Zend\View\Model\ViewModel
     */
    public function listAction()
    {
        $modules = $this->appService->getLoadedModules();

        // var_dump($modules);

        return new ViewModel(array(
            'modules' => $modules,
            'e' => $this->getEvent()
        ));
    }

    /**
     *
     * @return \Zend\View\Model\ViewModel
     */
    public function listResourcesAction()
    {
        if (is_null($this->params()->fromQuery('perPage'))) {
            $resultsPerPage = 18;
        } else {
            $resultsPerPage = $this->params()->fromQuery('perPage');
        }
        ;

        if (is_null($this->params()->fromQuery('page'))) {
            $page = 1;
        } else {
            $page = $this->params()->fromQuery('page');
        }
        ;

        $criteria = array(
            'isActive' => 1
        );
        $sort = array(
            'module' => 'ASC',
            'controller' => 'ASC',
            'action' => 'ASC'
        );

        $resources = $this->doctrineEM->getRepository('Application\Entity\NmtApplicationAclResource')->findBy($criteria, $sort);
        $totalResults = count($resources);
        $paginator = null;

        if ($totalResults > $resultsPerPage) {
            $paginator = new Paginator($totalResults, $page, $resultsPerPage);
            $resources = $this->doctrineEM->getRepository('Application\Entity\NmtApplicationAclResource')->findBy($criteria, $sort, ($paginator->getMaxInPage() - $paginator->getMinInPage()) + 1, $paginator->getMinInPage() - 1);
        }

        return new ViewModel(array(
            'total_resources' => $totalResults,
            'resources' => $resources,
            'paginator' => $paginator
        ));
    }

    /**
     * changed 19/6
     *
     * @version: 1.0
     * @return \Zend\View\Model\ViewModel
     */
    public function updateSysResourcesAction()
    {
        $resources = $this->appService->getAppLoadedResources();

        /** @var \Application\Entity\MlaUsers $u */
        $u = $this->doctrineEM->getRepository('Application\Entity\MlaUsers')->findOneBy(array(
            'email' => $this->identity()
        ));

        // Set all resources as inactive;
        $q = $this->doctrineEM->createQuery("UPDATE Application\Entity\NmtApplicationAclResource res SET res.isActive = 0, res.currentState = ''");
        $q->execute();

        $new_counter = 0;
        $updated_counter = 0;

        // echo count($resources);

        foreach ($resources as $res) {

            /** @var \Application\Entity\NmtApplicationAclResource $saved_res */
            $saved_res = $this->doctrineEM->getRepository('Application\Entity\NmtApplicationAclResource')->findOneBy(array(
                'resource' => $res['resource']
            ));

            if (! $saved_res instanceof \Application\Entity\NmtApplicationAclResource) {
                $new_counter ++;
                $input = new \Application\Entity\NmtApplicationAclResource();
                $input->setModule($res['module']);
                $input->setController($res['controller']);
                $input->setAction($res['action']);
                $input->setResource($res['resource']);
                $input->setCreatedOn(new \DateTime());
                $input->setType("ROUTE");
                $input->setIsActive(1);
                $input->setCurrentState("ACTIVE");
                $input->setToken(Rand::getString(10, self::CHAR_LIST, true) . "_" . Rand::getString(21, self::CHAR_LIST, true));
                $input->setRemarks("created by " . $u->getFirstname() . " " . $u->getLastname());
                $input->setCreatedBy($u);
                $this->doctrineEM->persist($input);
            } else {
                $updated_counter ++;
                $saved_res->setIsActive(1);
                $saved_res->setCurrentState("ACTIVE");
                $saved_res->setChangeOn(new \DateTime());
                $saved_res->setRemarks("updated by " . $u->getFirstname() . " " . $u->getLastname());

                $saved_res->setChangeBy($u);
                $saved_res->setToken(Rand::getString(10, self::CHAR_LIST, true) . "_" . Rand::getString(21, self::CHAR_LIST, true));

                $this->doctrineEM->persist($saved_res);
            }
        }

        $this->doctrineEM->flush();

        return new ViewModel(array(
            'new_counter' => $new_counter,
            'updated_counter' => $updated_counter
        ));
    }

    /**
     *
     * @copyright nmt@mascot.dk
     * @deprecated 3/12/2017
     * @return \Zend\View\Model\ViewModel
     */
    public function updateResourcesAction()
    {
        $identity = $this->authService->getIdentity();
        $user = $this->userTable->getUserByEmail($identity);
        $resources = $this->appService->getAppLoadedResources();

        $counter = 0;
        foreach ($resources as $res) {
            $saved_res = $this->doctrineEM->getRepository('Application\Entity\NmtApplicationAclResource')->findBy(array(
                'resource' => $res['resource']
            ));

            if ($saved_res == null) {
                $counter ++;
                $input = new \Application\Entity\NmtApplicationAclResource();
                $input->setModule($res['module']);
                $input->setController($res['controller']);
                $input->setController($res['controller']);
                $input->setAction($res['action']);
                $input->setResource($res['resource']);
                $input->setCreatedOn(new \DateTime());
                $input->setType("ROUTE");
                $input->setRemarks("created by " . $user['firstname'] . " " . $user['lastname']);
                $u = $this->doctrineEM->find('Application\Entity\MlaUsers', $user['id']);
                $input->setCreatedBy($u);
                $this->doctrineEM->persist($input);
                $this->doctrineEM->flush();
            }

            /*
             * if(!$this->aclResourceTable->isResourceExits($res))
             * {
             * $input= new AclResource();
             * $input->resource = $res;
             * $input->type = "ROUTE";
             * $this->aclResourceTable->add($input);
             * }
             */
        }
        return new ViewModel(array(
            'counter' => $counter
        ));
    }

    // SETTER AND GETTER
    public function getAppService()
    {
        return $this->appService;
    }

    public function setAppService(ApplicationService $appService)
    {
        $this->appService = $appService;
        return $this;
    }
}

redpajama_set_name: RedPajamaGithub


You must be a member of the Buenos Aires Coffee Friends Group to attend this activity. Would you like to join this group?
La Biela is a tipical café porteño. It's history start at Protected content ago.
It's a very selected place where people go there frecuently.
It has room for Protected content seated. And Protected content for people seated outside.
You can enjoy a pleasant conversation tasting a classic coffee or some of the delicacies. The comfortable armchairs make the stay in the place pleasant and the tables, well separated from each other, invite a relaxed dialogue.
The front still conserves the structure of more than Protected content ago, in spite of the last remodeling carried out in Protected content .


This deployment guide explains how to create and configure the initial components for an all‑active, high‑availability deployment of NGINX Plus on Google Compute Engine (GCE), the Google Cloud Platform (GCP) product for running workloads on virtual machines (VMs). Multiple instances of NGINX Plus in active pairs load balance incoming connections across multiple application environments.
GCE is a highly dynamic environment where the names and arrangement of GUI elements (such as menu items, checkboxes, and configuration navigation) are subject to change. We have made every effort to accurately represent the GCE GUI at the time of original publication, but options and locations might change over time. Use this guide as a reference and adapt to the current GCE working environment as necessary.
The configuration described in this guide allows anyone from any public IP address to access the NGINX Plus instances directly without restriction. While this most flexibly accommodates common scenarios in a test environment, we do not recommend it for production use. Before deploying the architecture in production, we strongly recommend that you disable HTTP and HTTPS access to the app-1 and app-2 instances over the GCE external IP addresses, or remove the external IP addresses for all application instances so that they're accessible only on the internal GCE network.
NGINX Plus – Load balances HTTP connections across multiple instances of two different applications. Instructions are provided both for manual installation on a standard GCE VM image and for setting up the prebuilt NGINX Plus VM image available in the Google Marketplace.
PHP-FPM – Supports the two sample applications.
GCE network load balancer – Provides TCP connectivity between clients and the NGINX Plus load‑balancing (LB) instances in a GCP region, as well as maintaining session persistence for each NGINX Plus instance.
GCE instance groups – Provide a mechanism for managing a group of VM instances as a unit.
GCE health checks – Maintain high availability of the NGINX Plus LB instances by controlling when GCE creates a new LB instance in the instance group.
Session persistence is managed at the network layer by GCE network load balancer (based on client IP address) and at the application layer by the NGINX Plus LB instance (via a session cookie). When a new client connection enters the GCE network environment, GCE network load balancer assigns it to a specific frontend NGINX Plus LB instance, and the association persists as long as the LB instance is up and functional. The NGINX Plus LB instance forwards the request to a specific application instance in one of the two groups of them, selected using its default Round Robin algorithm. It also issues a cookie to the client to represent the session with that application instance, so that subsequent requests from the client are forwarded to that application instance as long as it is up and running.
This deployment in this guide utilizes two groups of application instances – app-1 and app-2 – to demonstrate load balancing between different application types, but the application configurations are the same in both groups. The deployment can be very easily adapted to distribute unique connections to different groups of application instances by creating discrete upstream blocks and doing content routing based on URI. Please refer to the reference documentation for details on configuring multiple upstream server groups.
Have a Google account (a separate GCP or GCE account is not needed).
Have enrolled in a free trial with available credit or have an established payment account with GCP.
Have an NGINX Plus subscription. You can start a free 30-day trial if you don't already have a paid subscription.
Know how to install NGINX Plus, have a basic understanding of how it performs in load balancing and application delivery modes, and are familiar with its configuration syntax.
Are familiar with GitHub and know how to clone a repository.
All component names – projects, instances, templates, instance groups, and so on – are examples only. You can change them as suits your needs.
Create a new GCE project to host the all‑active NGINX Plus deployment.
Log into the GCP Console at console.cloud.google.com.
The GCP Home > Dashboard tab opens. Its contents depend on whether you have any existing projects.
If there are no existing projects, click the Create a project button.
If there are existing projects, the name of one of them appears in the upper left of the blue header bar (in the screenshot, it's My Test Project ). Click the project name and select Create project from the menu that opens.
Type your project name in the New Project window that pops up, then click CREATE. We're naming the project NGINX Plus All-Active-LB.
Create firewall rules that allow access to the HTTP and HTTPS ports on your GCE instances. You'll attach the rules to all the instances you create for the deployment.
Source filter – On the drop-down menu, select either Allow from any source (0.0.0.0/0), or IP range if you want to restrict access to users on your private network. In the second case, fill in the Source IP ranges field that opens. In the screenshot, we are allowing unrestricted access.
Note: As mentioned in the introduction to this guide, opening these ports for your application instances is appropriate only in a test environment. We strongly recommend that before deploying the architecture in production you create a new firewall rule for your application instances that blocks all port access to the external IP address, or disable external IP addresses for the instances to make them accessible only on the internal GCE network.
Click the Create button. The new rule is added to the table on the Firewall rules tab.
Create three GCE source instances that will serve as templates for the instance groups you will create later on: one instance for the NGINX Plus load balancer and two instances for NGINX Plus PHP application servers.
Based on a standard GCE VM image, in which case you install NGINX Plus manually. This guide uses the Ubuntu LTS image that was most current at the time of publication (Ubuntu 16.04 LTS), but you can use any Unix or Linux OS that NGINX Plus supports.
Based on the prebuilt NGINX Plus image in the Google Marketplace, which at the time of publication runs on Ubuntu 14.04 LTS.
The instructions for the two methods are significantly different, but after you create the source instances all subsequent instructions are the same.
Create three source VM instances based on a GCE VM image. We're basing our instances on the Ubuntu 16.04 LTS image.
Verify that the NGINX Plus All-Active-LB project is still selected in the Google Cloud Platform header bar.
Navigate to the Compute Engine > VM instances tab.
Click the Create instance button. The Create an instance page opens.
Zone – The GCP zone that makes sense for your location. We're using us-west1-a.
Machine type – The appropriate size for the level of traffic you anticipate. We're selecting micro, which is ideal for testing purposes.
Click the radio button for the Unix or Linux image of your choice (here, Ubuntu 16.04 LTS).
Accept the default values in the Boot disk type and Size (GB) fields (Standard persistent disk and 10 respectively).
Identity and API access – Unless you want more granular control over access, keep the defaults for the Service account field (Compute Engine default service account) and Access scopes radio button (Allow default access).
Firewall – Verify that neither check box is checked (the default). The firewall rule invoked in the Tags field on the Management subtab (see Step 3 below) controls this type of access.
On the Disks subtab, uncheck the checkbox labeled Delete boot disk when instance is deleted.
On the Networking subtab, verify the default settings, in particular Ephemeral for External IP and Off for IP Forwarding.
If you are using your own SSH public key instead of the default keys associated with your GCE identity, on the SSH Keys subtab paste the hexadecimal key string into the box that reads Enter entire key data.
Click the Create button at the bottom of the Create an instance page.
The VM instances summary page opens. It can take several minutes for the instance to be created. Wait to continue until the green check mark appears.
On the VM instances summary page, click CREATE INSTANCE.
Install and configure PHP and FastCGI on the instances.
Repeat these instructions for all three source instances (nginx-plus-app-1, nginx-plus-app-2, and nginx-plus-lb).
In the instance's row in the table, click the triangle icon in the Connect column at the far right and select a method (for example, Open in browser window).
Working in the SSH terminal, install PHP 7 (the default PHP version for Ubuntu 16.04 LTS) and FastCGI.
Leave the SSH connection open for reuse in the next section.
Both the configuration and content files are available at the NGINX, Inc. GitHub repository.
Install NGINX Plus. For instructions, see the NGINX Plus Admin Guide.
On both nginx-plus-app-1 and nginx-plus-app-2, copy gce-all-active-app.conf.
On the LB instance (nginx-plus-lb), use your preferred text editor to open gce-all-active-lb.conf and change the server directives in the upstream block to reference the internal IP addresses of the nginx-plus-app-1 and nginx-plus-app-2 instances (substitute the address for the expression in angle brackets). No action is required on the two application instances themselves.
You can look up internal IP addresses in the Internal IP column of the table on the Compute Engine > VM instances summary page.
Rename default.conf to default.conf.bak so that NGINX Plus does not load it. The configuration files provided for the all‑active deployment include equivalent instructions plus additional function‑specific directives.
Enable the NGINX Plus live activity monitoring dashboard for the instance by copying status.html from the etc_nginx_conf.d subdirectory of the cloned repository to /etc/nginx/conf.d.
Verify the instance is working by accessing it at its external IP address. (As previously noted, we recommend blocking access to the external IP addresses of the application instances in a production environment.) The external IP address for the instance appears on the Compute Engine > VM instances summary page, in the External IP column of the table.
Access the index.html page either in a browser or by running this curl command.
Proceed to Task 3: Creating "Gold" Images.
Create three source instances based on a prebuilt NGINX Plus image running on Ubuntu 14.04 LTS, available in the Google Marketplace. Google requires that you provision the first instance in the GCP Marketplace. Then you can clone the additional two instances from the first one.
Navigate to the GCP Marketplace and search for nginx plus.
Click the NGINX Plus box in the results area.
On the NGINX Plus page that opens, click the Launch on Compute Engine button.
Fill in the fields on the New NGINX Plus deployment page as indicated.
Firewall – Verify that the Allow HTTP traffic checkbox is checked.
It can take several minutes for the instance to deploy. Wait until the green check mark and confirmation message appear before continuing.
On the VM instances page that opens, click EDIT at the top of the page. In fields that can be edited, the value changes from static text to text boxes, drop‑down menus, and checkboxes.
Tags – If a default tag appears in the field (for example, nginx-plus-app-1-tcp-80), click the X after its name to remove it, and type in nginx-plus-http-fw-rule.
Boot disk and local disks – Uncheck the checkbox labeled Delete boot disk when when instance is deleted.
Network – We recommend keeping the default settings, but if you need to change them (if, for example, you're configuring a production environment), click default and then EDIT on the Network details page that opens. After making your changes click the Save button.
Firewall – Verify that neither check box is checked (the default). The firewall rule named in the Tags field that's above on the current page (see the first bullet in this list) controls this type of access.
SSH Keys – If you are using your own SSH public key instead of the default keys associated with your GCE identity, paste the hexadecimal key string into the box that reads Enter entire key data.
Serial port – Verify that the check box labeled Enable connecting to serial ports is not checked (the default).
The screenshot shows the results of your changes, omitting some fields than cannot be edited or for which we recommend retaining the defaults.
Create the second application instance by cloning the first one.
Navigate back to the summary page on the Compute Engine > VM instances tab (click the arrow that is circled in the following figure).
Click nginx-plus-app-1-vm in the Name column of the table (shown in the screenshot in Step 7 of Creating the First Application Instance).
On the VM instances page that opens, click CLONE at the top of the page.
Name – nginx-plus-app-2-vm. Here we're adding the -vm suffix to make the name consistent with the first instance; GCE does not add it automatically when you clone an instance.
Machine type – The appropriate size for the level of traffic you anticipate. We're selecting f1-micro, which is ideal for testing purposes.
Identity and API access – Set the Access scopes radio button to Allow default access and accept the default values in all other fields. If you want more granular control over access than is provided by these settings, modify the fields in this section as appropriate.
Firewall – Verify that neither check box is checked (the default).
Click Management, disk, networking, SSH keys to open that set of subtabs.
Create the source load‑balancing instance by cloning the first instance again.
Repeat Steps 2 through 7 of Creating the Second Application Instance. In Step 4, specify nginx-plus-lb-vm as the name.
Repeat these instructions for all three source instances (nginx-plus-app-1-vm, nginx-plus-app-2-vm, and nginx-plus-lb-vm).
In the row for the instance in the table, click the triangle icon in the Connect column at the far right and select a method (for example, Open in browser window).
The screenshot shows instances based on the prebuilt NGINX Plus images.
Working in the SSH terminal, install PHP 5 (the default PHP version for Ubuntu 14.04 LTS) and FastCGI.
On both nginx-plus-app-1-vm and nginx-plus-app-2-vm, copy gce-all-active-app.conf.
Create gold images, which are base images that GCE clones automatically when it needs to scale up the number of instances. They are derived from the instances you created in Creating Source Instances. Before creating the images, you must delete the source instances to break the attachment between them and the disk (you can't create an image from a disk that's attached to a VM instance).
Click STOP in the top toolbar to stop the instances.
Click DELETE in the top toolbar to delete the instances.
In the Boot disk and local disks field, uncheck the checkbox labeled Delete boot disk when when instance is deleted.
On the VM instances summary page, select the instance in the table and click DELETE in the top toolbar to delete it.
Navigate to the Compute Engine > Images tab.
Verify that the three images appear at the top of the table on the Compute Engine > Images tab.
Create instance templates, which are the compute workloads that are created in instance groups, either manually or automatically when GCE detects a failure.
Navigate to the Compute Engine > Instance templates tab.
Click the Create instance template button.
Open the Custom Images subtab.
Select NGINX Plus All-Active-LB from the drop-down menu labeled Show images from.
Click the nginx-plus-app-1-image radio button.
Identity and API access – Unless you want more granular control over access, keep the defaults in the Service account field (Compute Engine default service account) and Access scopes field (Allow default access).
Firewall – Verify that neither check box is checked (the default). The firewall rule invoked in the Tags field on the Management subtab (see Step 6 below) controls this type of access.
Click Management, disk, networking, SSH keys (indicated with a red arrow in the following screenshot) to open that set of subtabs.
On the Disks subtab, verify that the checkbox labeled Delete boot disk when instance is deleted is checked.
Instances created from this template are ephemeral instantiations of the gold image, so we want GCE to reclaim the disk when the instance is terminated. New instances are always based on the gold image, so there is no reason to have the instantiations persist on disk when the instance is deleted.
On the Networking subtab, verify the default settings of Ephemeral for External IP and Off for IP Forwarding.
On the Instance templates summary page, click CREATE INSTANCE TEMPLATE.
Define the simple HTTP health check that GCE uses to verify that each NGINX Plus LB image is running correctly (and to re-create an LB instance that is not running correctly).
Navigate to the Compute Engine > Health checks tab.
Click the Create a health check button.
If the Health criteria section is not already open, click More.
Create three independent instance groups, one for each type of function-specific instance.
Navigate to the Compute Engine > Instance groups tab.
Click the Create instance group button.
Click the Single-zone radio button (the default).
Zone – The GCP zone you specified when you created source instances (Step 1 of Creating the First Application Instance from a VM Image or Step 5 of Creating the First Application Instance from a Prebuilt Image). We're using us-west1-a.
On the Instance groups summary page, click CREATE INSTANCE GROUP.
Update the NGINX Plus configuration on the two LB instances (nginx-plus-lb-instance-group-[a...z]) to list the internal IP addresses of the four application servers (two instances each of nginx-plus-app-1-instance-group-[a...z] and nginx-plus-app-2-instance-group-[a...z]).
Repeat these instructions for both LB instances.
Verify that the four application instances are receiving traffic and responding, by accessing the NGINX Plus live activity monitoring dashboard on the load‑balancing instance (nginx-plus-lb-instance-group-[a...z]). You can look up the instance's external IP address on the Compute Engine > VM instances summary page, in the External IP column of the table.
If load balancing is working properly, the unique Server field from the index page for each application instance appears in turn.
Set up GCE network load balancer to distribute incoming client traffic to the NGINX Plus LB instances. The first step is to reserve the static IP address that GCE network load balancer advertises to clients.
Navigate to the Networking > External IP addresses tab.
Click the Reserve static address button.
Region – The GCP zone you specified when you created source instances (Step 1 of Creating the First Application Instance from a VM Image or Step 5 of Creating the First Application Instance from a Prebuilt Image). We're using us-west1.
Navigate to the Networking > Load balancing tab.
Click the Create load balancer button.
On the Load balancing page that opens, click Start configuration in the TCP Load Balancing box.
On the page that opens, click the From Internet to my VMs and No (TCP) radio buttons (the defaults).
Click the Continue button. The New TCP load balancer page opens.
In the Name field, type nginx-plus-network-lb-frontend.
Region – The GCP region you specified in Step 4. We're using us-west1.
Click Frontend configuration in the left column to open the Frontend configuration interface in the right column.
Verify that GCE network load balancer is properly routing traffic to both NGINX Plus LB instances.
Verify that with one LB instance offline, the other LB instance still forwards traffic to the application instances (there might be a delay before GCE network load balancer detects that the first instance is offline). Continue monitoring and verify that GCE network load balancer then re-creates the first LB instance and brings it online.


text:
Les Myxozoa (du grec ancien  « limon, mucus », la voyelle thématique  et  « animal ») sont un groupe de cnidaires ayant un mode de vie parasite. Ils ont longtemps été considérés comme des « protozoaires » du fait de leur forme unicellulaire. Ils se caractérisent toutefois par des spores pluricellulaires et leur phylogénie montre qu'il s'agit bien de cnidaires et donc de métazoaires.

Description
Ce sont des organismes simples, constitués d'un faible nombre de cellules.

Plus de  ont été décrites dont beaucoup infectent au cours de leur vie deux hôtes : un poisson et un annélide ou un bryozoaire.

Ils n'ont plus de gènes de développement et se reproduisent par spores. En général, la taille des spores de Myxosporea est comprise entre  alors qu'elle atteint  pour les Malacosporea.

L'infection intervient au moyen de spores qui présentent généralement une à deux valves (parfois jusqu'à 6) pouvant être dotées de longues protubérances. Ces spores contiennent une ou deux cellules sporoblastes et au moins une capsule polaire qui contient les filaments avec lesquels la spore s'ancre sur l'hôte.

Position phylogénétique

La position phylogénétique présumée des myxozoaires a considérablement changé : longtemps considérés comme un phylum des protozoaires, les études portant sur l'ARN 18S ont confirmé leur appartenance aux métazoaires. Le débat a ensuite porté sur leur position parmi les Cnidaires ou les Bilatériens.

La découverte que Buddenbrockia plumatellae, un parasite vermiforme pouvant atteindre  de long, était un myxozoaire pouvait accréditer l'hypothèse d'une origine bilatérienne des myxozoaires. En effet leur allure de ver leur donne une apparence superficielle de bilatérien. Toutefois, un examen plus attentif révèle que Buddenbrockia ne présente pas une symétrie bilatérale mais d'ordre 4.

Des recherches approfondies ont montré que les gènes HOX (typique des bilatériens) Myx1 à Myx3 trouvés chez les myxozoaires avaient pour origine le bryozoaire Cristatella mucedo et que le quatrième (Myx4) provenait du Grand brochet (Esox lucius). Ceci expliquait la méprise ; en analysant des tissus de myxozoaires contaminés par ceux de leurs hôtes bilatériens, on trouvait les myxozoaires artificiellement proches des bilatériens. Des clonages plus soigneux des 50 gènes codants du Buddenbrockia ont fait apparaître qu'ils appartenaient à un clade sévèrement modifié de cnidaires, proche des médusozoaires. Les similarités entre les capsules polaires des myxozoaires et les nematocystes des cnidaires avaient été remarquées il y a longtemps, mais on s'était persuadé qu'il ne fallait y voir qu'un phénomène d'évolution convergente.

Le positionnement exact des myxozoaires parmi les cnidaires reste à préciser.
On a envisagé de les regrouper avec le genre Polypodium dans le clade putatif Endocnidozoa des cnidaires parasites. Des études récentes situent Buddenbrockia comme groupe frère d'un clade d'Hydrozoaires et de Scyphozoaires et Polypodium comme groupe frère des Hydrozoaires mais des études spécifiques restent à mener pour préciser leur position.

Enfin, une étude de 2015 comparant les génomes et les transcriptomes de deux myxozoaires (Kudoa iwatai et Myxobolus cerebralis) avec ceux d'un cnidaire parasite (Polypodium hydriforme), confirme l'appartenance des Myxozoaires à ce taxon.

Plus récemment, une étude de 2018 (A genome wide survey reveals multiple nematocyst-specific genes in Myxozoa Erez Shpirer1, Arik Diamant2, Paulyn Cartwright3* and Dorothée Huchon1,4) Met en évidence des protéines propres au nématocystes présente chez les myxozoaires. Permettant de justifier l'appartenance des myxozoaires au phylome des cnidaires.

Caractères propres au groupe
 La spore présente deux cnidocytes modifiés, appelés « capsules polaires » et pourvues d'un filament.
 Les feuillets embryonnaires sont absents, mais cela pourrait constituer une perte secondaire résultant du mode de vie parasitaire.

Écologie
Toutes les espèces de Myxozoaires sont parasites d'annélides ou de vertébrés poïkilothermes. Ils sont cosmopolites.
L'infection intervient au moyen de spores valvées, ingérées par l'hôte. Celles-ci contiennent une ou deux cellules sporoblastes et au moins une capsule polaire qui émet des filaments polaires après ingestion, ralentissant ainsi la progression dans le tube digestif et permettant l'ancrage de la spore sur l'hôte.

Après germination de la spore, les sporoblastes sont libérés sous une forme motile (amiboïde), appelée amoebula, qui traverse la paroi intestinale et migre jusqu'au tissu cible où elle se développe en un ou plusieurs plasmodia multinucléaire. Certains noyaux s'appairent, l'un absorbant l'autre, pour former de nouvelles spores.

Certains myxozoaires, parasites de vertébrés, présentent un cycle de vie complexe faisant intervenir l'infection d'un protostomien.

Classification

Sous-classe : Malacosporea Canning , 2000
Malacovalvulida
Tetracapsulidae
Sous-classe :Myxosporea Bütschli, 1881
Multivalvulida
Kudoidae
Trilosporidae
Bivalvulida
Bipolarina
Myxoproteidae
Platysporina
Myxobolidae
Sphaeromyxina
Sphaeromyxidae
Variisporina
Alatosporidae
Auerbachiidae
Ceratomyxidae
Chloromyxidae
Fabesporidae
Myxidiidae
Ortholineidae
Parvicapsulidae
Sinuolineidae
Sphaerosporidae

Le groupe aujourd'hui désuet des Actinosporea représente un stage de développement, mais leur attribution aux espèces de Myxosporea est problématique.

Quelques espèces parmi les 1600 connues

Classe Malacosporea
Buddenbrockia plumatellae Schroeder, 1910
Tetracapsuloides bryosalmonae - un important parasite des saumons.
Classe Myxosporea
Myxobolus cerebralis - un important parasite des saumons et truites.
 Myxobolus pfeifferi
 Triactinomyxon ignotum Štolc, 1899 (parasite de Tubifex)

Notes et références

Classification de Hallan
 A genome wide survey reveals multiple nematocyst-specific genes in Myxozoa

Liens externes

redpajama_set_name: RedPajamaWikipedia


Arts & Dementia, another example of what a good match it is.
The Phillips Collection together with Iona's Wellness & Arts Center have set up a project to improve the lives of people with some form of memory loss.
Read more about it in the Washingtonian.
To know more about Iona's Wellness & Arts Centre, please visit their website.
More information about the Phillips Collection and the Creative aging exhibition, you can find here.


text:
El Samsung Galaxy Young (GT-S6310) es un teléfono inteligénte fabricado y diseñado por Samsung. Usa el sistema operativo Android 4.1 Jelly Bean y tiene una pantalla multitáctil de dos dedos capacitiva LCD. El dispositivo fue anunciado en marzo de 2013.

Samsung ha fabricado el sucesor del famoso Samsung Galaxy Y (Ver Controversia por modelos) dándole nuevas y mejores características.

El dispositivo tiene todo tipo de conexiones inalámbricas, como WiFi 2.0, Bluetooth y banda ancha móvil 3G y 3.5G. Puede funcionar como módem inalámbrico WiFi y posee un navegador aGps y permite el uso de diferentes sensores internos para que la manipulación sea óptima. Entre las prestaciones que ofrece está el poder silenciar el altavoz del aparato colocando este boca abajo o el de girar el teléfono sobre la mano para activar la cámara entre otros.

Este modelo de la empresa sur coreana viene en tres colores de fábrica que son blanco, azul, vino tinto y gris. Cuenta con el Modo Fácil de Samsung que hace más fácil la manipulación del dispositivo haciendo que la interfaz gráfica sea similar a la que la empresa usaba en modelos anteriores que no usaban Android como los modelos Samsung Star I y II.

Especificaciones generales

Controversia por modelos
Samsung, con el lanzamiento de este modelo bajo la referencia "Young" se hace referencia a la evolución de un homónimo anterior que era el Samsung Galaxy Y (Young) aunque dándole mejores prestaciones tanto en velocidad como la cámara y la potencia del procesador y la RAM.

El modelo anterior fue lanzado en agosto del 2011 siendo el modelo económico de Samsung entre los que presentó su línea Galaxy. El modelo actual fue presentado 19 meses después en donde, ya con varios aprendizajes en el camino, presenta un modelo más avanzado y más veloz pero de un tamaño similar.

Véase también
 Samsung Galaxy Y
 Samsung Galaxy Ace II
 Samsung Galaxy

Enlaces externos
 Samsung Galaxy Young
 Información obtenida del  y del sitio web oficial de Samsung

Samsung Galaxy Young
Teléfonos móviles introducidos en 2013


RE: Any advice on how to display research findings in portfolio?
Cadet Asked on April 23, 2018 in User Research.
I would strongly advise to represent your findings with images if possible. You should aim to have photos and/or diagrams to illustrate your work on any project you're putting in front of hiring managers.
If you can get photos of your interviews or tests it will remind potential clients or employers that you were there doing the work. Pictures of post-it notes mapped out demonstrate that you are synthesising your research to work out themes and trends.


text:
\section{Introduction}

This work presents two approaches of end-to-end convolutional neural networks (convnets or CNNs) for saliency prediction.
Our objective is to compute saliency maps that represent the probability of visual attention on an image, defined as the eye gaze fixation points.
This problem has been traditionally addressed with hand-crafted features inspired by neurology studies.
In our case we have adopted a completely data-driven approach, using a large amount of annotated data for saliency prediction.
Figure \ref{fig:examples} provides an example of an image together with its ground truth saliency map and the two saliency maps predicted by the proposed convnets: a shallow one and a deep one.

\begin{figure}%
		\includegraphics[width=\linewidth]{./fig/front.jpg}
		\caption{Input Image (top left) and saliency maps from the ground truth (top right), our shallow convnet (bottom left) and our  deep convnet (bottom right).}
		\label{fig:examples}
\end{figure}

Convnets are popular architectures in the field of deep learning and have been widely explored for visual pattern recognition, ranging from a global scale image classification ~\cite{krizhevsky2012imagenet} to a more local object detection ~\cite{girshick2014rich} or semantic segmentation ~\cite{long2015fully}.
The hierarchy of layers in convnets are inspired by biological models, and some works have pointed at a relation between the activity of certain areas in the brain with hierarchy of layers in the convnets ~\cite{agrawal2014pixels, cichy2015mapping}.
Provided with enough training data, convnets have shown impressive results, often outperforming other hand-crafted methods.
The rise of convnets started from the computer vision task where more annotated data can be easily collected, that is, image classification~\cite{russakovsky2015best}.
Large datasets like ImageNet~\cite{imagenet_cvpr09} or Places~\cite{zhou2014learning} have provided enough visual examples to train the millions of parameters that most popular convnets contain.
These datasets provide thousands of images for each discrete label  typically associated to a semantic class.

The saliency prediction problem, however, poses two specific challenges different from the classic image classification.
First, collecting large amount of training data is much more costly because it requires capturing the fixation points of human observers instead of a textual label for each image.
Our work has benefited from recent publications of two
large datasets containing images and an annotation of their salient points for humans \cite{jiang2015salicon, xu2015turkergaze}.
Collecting this level of of data has been possible thanks to crowdsourcing approaches, the same strategy used to annotate the ImageNet and Places datasets.

The second challenge to address when using convnets for saliency prediction is that a saliency score must be estimated for each pixel in the input image, instead of a global-scale label for the whole image.
The saliency map at the output must present a spatial coherence and a smooth transition between neighbouring pixels.

The main contribution of this work is addressing the saliency prediction problem from an end-to-end perspective, by using convnets for regression rather than classification.
We apply this strategy with two different architectures trained with two different approaches:
a shallow convnet trained from scratch, and a deep convnet that reuses parameters from the bottom three layer of a network previously trained for classification.
To the authors knowledge, these were the first convnets that formulate saliency prediction as an end-to-end regression problem.

This paper is structured as follows. Section~\ref{sec:RelatedWork} presents the previous and recent works using convolutional networks for saliency prediction and detection.
Section~\ref{sec:JuntingNet} introduces the shallow convnet, while Section~\ref{sec:SalNet} presents the deep network.
Section~\ref{sec:experiments} compares both networks in terms of memory requirements. It also shows, prediction performance in the MIT Saliency Benchmark and LSUN Saliency Prediction Challenge 2015 and they are compared with other models.
Conclusions and future directions are outlined in Section~\ref{sec:conclusions}.

Our results can be reproduced with the source code and trained models available at \url{https://github.com/imatge-upc/saliency-2016-cvpr}.
\section{Related work}
\label{sec:RelatedWork}

The proposed networks presents the next natural step to two main trends in deep learning: using convolutional neural networks for saliency prediction and training these networks by formulating saliency prediction as an end-to-end regression problem.
This section reviews related work in these directions.

An early attempt of predicting saliency with a convnet was the \textit{ensembles of Deep Networks (eDN)}~\cite{vig2014large}, which proposed an optimal blend of feature maps from three different convnet layers, that were finally combined with a simple linear classifier trained with positive (salient) or negative (non-salient) local regions.
This approach inspired \textit{DeepGaze}~\cite{kummerer2014deep} to adopt a deeper network. In particular, \textit{DeepGaze} used the existing AlexNet network~\cite{krizhevsky2012imagenet}, where the fully connected layers were removed to keep the feature maps from the convolutional layers. The response of each layer were fed into a linear model and its weights learned.
DeepGaze would be the first case of transfer learning from a convnet for classification used for saliency, as we propose in our deeper architecture. However, we do not train a linear model to combine feature maps but directly train a stack of new convolutional layers on top of the transferred ones.
Other recent works have explored the combination of different convnets working at different resolutions to capture both global and local saliency.
Liu \etal \cite{liu2015predicting} proposed an architecture with three convnets working in parallel
where the three final fully connected layers are combined in a single layer to obtain the saliency map. Unlike our work the network is trained with image regions centered on fixation and non-fixation eye locations. On the other hand, a related preprint by Srinivas and Ayush~\cite{srinivas2015deepfix} appeared during submission of our work. Their model captures information at different scales by using very deep networks. Their work is inspired by the VGG network architecture proposed by Simonyan and Zisserman~\cite{simonyan2015verydeep}. Very deep networks may obtain richer information of image semantics. Some layers use inception style convolutional blocks~\cite{Szegedy2015goingdeeper} that capture semantics at different scales. By using large receptive fields, global context is also incorporated. As in the  \textit{DeepGaze} proposal, the network needs to be trained with databases that are not specific for eye fixation but are useful to capture generic image features.

Other approaches introduce new architectures and improvements in salient object detection. Zhao \etal \cite{zhao2015saliency} use also two parallel networks to obtain local and global context modeling. The input image consists of a superpixel-centered window that is preprocessed differently to feed each of the two convnets. Fully connected layers are combined at the end to obtain the salient objects. The work by Li and Yu~\cite{liu2015visual} proposes three nested windows as inputs to three different convnet at different scales that are fused together to obtain an aggregated saliency map. Wang \etal. proposed a different pipeline~\cite{wang2015deepnetworks}: local estimation is carried out and the resulting information is used as input to obtain a global search. That is, first, to detect local saliency, a deep neural network (DNN-L) learns local patch features to determine the saliency value of each pixel. Second, the local saliency map together with global contrast and geometric information are used as global features to obtain object candidate regions. A deep neural network (DNN-G) is then trained to predict the saliency score of each object region based on global features. Finally, a very recent work introduced by Li \etal \cite{li2015deepsaliency}, combines semantic image segmentation and saliency detection, sharing the first layers that exploit extraction of effective features for object perception. Only the last layers are divided to obtain the corresponding segmentation and saliency detection images. This proposal is also inspired by the VGG very deep network introduced in~\cite{simonyan2015verydeep}. In this case, 15 layers and pretraining with the Imagenet dataset is used.

Fully Convolutional Networks (FCNs)~\cite{long2015fully} addressed the semantic segmentation task to predict the semantic label of every individual pixel in the image.
This approach dramatically improved previous results on the challenging PASCAL VOC segmentation benchmark~\cite{everingham2014pascal}.
The idea of an end-to-end solution for a 2D problem as as semantic segmentation was refined by \text{DeepLab-CRF}~\cite{DBLP:journals/corr/ChenPKMY14}, where the spatial consistency of the predicted labels is improved using a Conditional Random Field (CRF), similarly to the hierarchical consistency enforced in~\cite{farabet2013learning}.

In our work we are interested in finding saliency maps rather than salient object detection by training convnets end-to-end. We also focus on novel databases that are annotated for the purpose of saliency prediction.

\section{Shallow Convnet}
\label{sec:JuntingNet}

This section presents the first of our proposed convnets, which is based on a lightweight architecture whose parameters are trained from scratch.

\subsection{Architecture}
\label{ssec:juntingnet-arch}

The network consists of five layers with learned weights: three convolutional layers and two fully connected layers.
Each of the three convolutional layers is followed by a rectified linear unit non-lineraity (ReLU) and a max pooling layers.
Figure \ref{fig:juntingnet} shows a detailed description of each layer. The network has to a total of 64.4 million free parameters.

\begin{figure}
  \centering
  \includegraphics[width=\columnwidth]{./fig/juntingnet-arch.png}
  \caption{Architecture of the shallow convolutional network.}
  \label{fig:juntingnet}
\end{figure}

The network was designed considering the a amount of available saliency maps for training it from scratch.
Different strategies were considered to avoid overfitting the model.
First, we used three convolutional layers rather than the five used in the classic AlexNet architecture~\cite{krizhevsky2012imagenet} (and far less than very deep networks used recently such as the thirteen used in VGG-16 \cite{simonyan2014very}).
Second, the input images are resized to $[96 \times 96]$, a much smaller dimension that the $[227 \times 227]$ used in AlexNet~\cite{krizhevsky2012imagenet}.
The three max pooling layers reduce the initial $[96 \times 96]$ feature maps down to $[10 \times 10]$ by the last of the three  poolings.

Even with the above constraints, the network still overfits significantly. We found that norm constraint regularization for the maxout layers~\cite{goodfellow2013maxout}, which computes the \textit{max} between pairs of of the previous layer's output,
was essential to mitigate this overfitting.
We also tested using dropout~\cite{hinton2012improving} after the first fully connected layer, with a dropout ratio of 0.5 (50\% of probability to set a neuron's output value to zero), but this did not improve overfitting much, and so was not included in the final model.

Notice that the 2,304-dimensional vector at the output is mapped into a 2D array of $[48 \times 48]$, which correspond to the saliency map.
This decrease in resolution is compensated at test time by resizing the dimensions of the output to match the input image and posterior filtering using a Gaussian kernel with a standard deviation of $2.0$.

This shallow convnet was implemented using Python, NumPy, and the deep learning library Theano~\cite{bergstra2010theano, bastien2012theano}.
Processing was performed on an NVIDIA GTX 980 GPU with 2048 CUDA cores and 4GB of RAM.
It took between 6 and 7 hours to train for the SALICON dataset, and 5 to 6 hours for the iSUN dataset.
Saliency prediction requires 200 ms per image.

\subsection{Training}

This shallow network was trained from scratch twice, each time from a different dataset.
A first model was built using the $10,000$ saliency maps from the SALICON dataset \cite{jiang2015salicon}, and a second model using the $6,000$ saliency maps from the iSUN dataset.
Both datasets are described in detail in Section~\ref{ssec:datasets}.
Given the smaller amount of images available in the iSUN dataset \cite{xu2015turkergaze}, a slight modification was introduced in this second model:
the depth of the third convolutional network was of 64 instead of 128, as depicted in Figure~\ref{fig:juntingnet}.

The weights in all layers are initialized from a normal Gaussian distribution with zero mean and a standard deviation of 0.01, with biases initialized to 0.1.
The network was trained with stochastic gradient descent (SGD) and the Nesterov momentum method, which we found helps convergence.
The learning rate changed over time, starting with a higher learning rate 0.03 and decreased during training to 0.0001.
We trained the network for 1,000 epochs.
For validation purposes, we split the training data into 80\% for training and the rest for periodic validation.
A data augmentation technique was used by mirroring all images. All considered saliency maps were normalized to $[0,1]$.

The filters learned in the first convolutional layer are shown in Figure \ref{fig:juntingnet-filters}.
They present a similar pattern to other similar filters learned for classification convnets \cite{zeiler2014visualizing, zeiler2014visualizing}, where edge detectors can be identified.
It is noticeable how these type of filters arise also when training our network on saliency maps.

\begin{figure}
  \centering
  \includegraphics[width=0.3\columnwidth]{./fig/juntingnet-filters.png}
  \caption{Filters learned for the first convolutional layer of the shallow convnet (best viewed from a distance).}
  \label{fig:juntingnet-filters}
\end{figure}

\section{Deep Convnet}
\label{sec:SalNet}

The second approach explored in this paper is the adaptation of an existing very deep convnet trained for image classification for the task of saliency prediction.
Previous work~\cite{zeiler2014visualizing} has noted how, in image classification tasks, the model parameters from the lowest levels in the convnets converge in a few epochs.
This observation, together with visualization of the filters learned at these layers~\cite{simonyan2013deep}, suggest that these layers perform low-level visual task in vision, such as the detection of colors or textures.
Our hypothesis is that these lower layers trained for classification can also be transferred for the task of saliency prediction.
We propose a second convnet which adapts these pre-trained filters and combines them with new layers specifically trained for saliency.

\subsection{Architecture}

\begin{figure}
	\centering
	\includegraphics[width=\columnwidth]{./fig/salnet-arch.pdf}
	\caption{Architecture of the deep convolutional network}
	\label{fig:salnet-arch}
\end{figure}

Figure~\ref{fig:salnet-arch} illustrates the layer architecture of the network, composed of 10 weight layers and a total of 25.8 million parameters.
The architecture of the first 3 weight layers is compatible with that of the VGG network from~\cite{chatfield2014devil}. Each convolutional layer is followed by a rectified linear unit non-linearity (ReLU). Pooling layers follow the first two convolutional layers, effectively reducing the width and height of the feature maps in the intermediate layers by a factor of four. A deconvolution layer follows the final convolution to produce a saliency map that matches the input width and height.

To choose the final network architectures, we experimented with many different different variants, testing each on a held-out validation set of 1,000 images. In general we found that: 1) adding more layers improves accuracy; 2) adding more feature maps per layer usually improves accuracy too; and 3) using dropout regularization did not significantly improve accuracy but did increase training time. The final network design was primarily constrained in resolution, number of layers, and layer depth by the amount of available GPU memory.

We used transfer learning to initialize the weights for the first three convolutional layers with the pre-trained weights from the \emph{VGG\_CNN\_M} network from~\cite{chatfield2014devil}. This acts as a regularizer and improves the final network result. The remaining weights were initialized randomly using the strategy from~\cite{he2015rectifiers}.

\subsection{Training}

We trained our network on 9,000 of the 10,000 training images in the SALICON dataset, setting aside 1,000 images for validation (ground truth for the SALICON validation set had not yet been released when this network was first trained). We used several standard pre-processing techniques on both the input images and the target saliency maps. We subtracted the mean pixel value of the training set from the image pixels to zero center them and rescaled the resulting values linearly to be in the interval $[-1,1]$. We similarly preprocessed the saliency maps by subtracting the mean and scaling to $[-1,1]$. Both the input images and the saliency maps were downsampled by half to $320 \times 240$ prior to training.

The network was trained using stochastic gradient descent with Euclidean loss using a batch size of 2 images for 24,000 iterations. During training, the network was validated against the validation set after every 100 iterations to monitor convergence and overfitting. We used the standard $L^2$ weight regularizer (weight decay), and halved the learning rate every 100 iterations. The network took approximately 15 hours to train on a NVIDIA GTX Titan GPU running the Caffe framework \cite{jia2014caffe}. We normalized the base learning rate by the number of predictions per image, to give a learning rate of $0.01 / (320 \times 240) \approx 1.3 \times 10^{-7}$. Using a larger learning rate causes the learning to diverge.

The network was trained on inputs of size $320 \times 240$, but in principle, it can handle images of any size, since it only consists of convolutional and pooling layers. In practice, the input size is constrained by the amount of GPU memory (or RAM) needed to store the outputs of the intermediary layers. Nevertheless, the network has the advantage that it can be sized to match the aspect ratio of any image, and indeed use this approach for the images in the MIT300 benchmark in the next section.

\section{Experiments}
\label{sec:experiments}

\subsection{Memory requirements}

The architectures of the two networks present different requirements in terms of memory resources.
These resources are dedicated to two different tasks: the parameters that define the network, and the blob data that characterizes network response at the different processing stages.

The parameters that define the network are fit during training, and, together with the architecture layout, correspond to the actual characterization of the network.
These parameters characterize the output of each neuron in the net, which can be defined as $f(w^T x+b)$, where $w$ describes the filter parameters in the convolutional layers, $b$ corresponds to the biases and $f$ is the non-linearity.
Each neuron, therefore, has parameters $w$ and $b$, which are fit during backpropagation.

The data associated to the input image is the second source of memory requirements.
The input image is hierarchically process in the convnet, creating multiple intermediate feature maps (or data blobs) after each processing stage.

Table \ref{tab:memory} presents the complementary memory requirements for each of the two convnets.
These values have been obtained from the architectures of the shallow and very deep networks described in Figures \ref{fig:juntingnet} and \ref{fig:salnet-arch}, respectively.
The estimation assumes 32-bit floating points to store parameters and layer output (4 bytes per value).
The memory estimate for blob data assumes test time (forward pass only):
at train time this value is doubled to account for the error signal during backpropagation.

The number of parameters for both networks are much lower than the very deep networks used in classification. For example, the 19 layers version of VGG net requires 144 million parameters \cite{Simonyan14c}.

Our shallow network requires far less memory for the layer outputs, but has significantly more parameters (due to the fully connected layers). This explains why our deep network does not overfit, whereas stronger regularization is necessary to fit the shallow one. Since the shallow network needs less memory for the layer outputs, it is possible to make batch size on this network very large at test time, allowing it to process many more images at once.

\begin{table}
\begin{center}
\begin{tabularx}{\columnwidth}{Xrr}
\toprule
				& Shallow   		& Deep \\
\midrule
Data 			& 2.29 MB 			& 123.65 MB \\
Parameters  	& 244.64 MB			&  98.44 MB \\
\cmidrule(r){2-3}
Total (train) 	& 249.22 MB			& 345.74 MB	\\
Total (test)	& 246.93 MB			& 222.09 MB \\
\bottomrule
\end{tabularx}
\end{center}
\caption{Approximate memory requirements for each convnet.}
\label{tab:memory}
\end{table}

\subsection{Datasets}
\label{ssec:datasets}

The two convnets were assessed using images and metrics considered in the public MIT Saliency Benchmark \cite{judd2009learning} LSUN challenge 2015 \cite{zhanglarge}.

These four datasets capture a broad range of image types and experimental set ups.
The MIT300 and CAT2000 datasets are smaller in size, but provide fixations points captured in a controlled environment of expert users.
On the other hand, the iSUN and SALICON datasets have a large amount of saliency maps corresponding to images from the existing SUN and MS CoCo dataset, but these maps were collected via crowdsourcing on Amazon Mechanical Turk, exposing them to crowdsourcing loss~\cite{carlier2015assessment}.

\begin{description}
\item[SALICON \cite{jiang2015salicon} ] This is the largest dataset available for saliency prediction and was used to train our models.
It was built from images of the \textit{Microsoft CoCo: Common Objects in Context} \cite{lin2014microsoft} dataset, which inspired the SALICON naming: \textit{SALIency in CONtext}. The pixel-wise semantic annotations provided by CoCo allow combining and comparing saliency data with semantic ones.
However, the saliency maps in SALICON were not collected with eyetrackers as in most popular datasets for saliency prediction, but with mouse clicks captured in a crowdsourcing campaign.
\item[iSUN \cite{xu2015turkergaze}] The iSUN dataset has been built with an online game using  webcams to track player eye gaze. The dataset uses natural scene images from the SUN database \cite{xiao2010sun}, a large dataset  organized in 397 scene categories.
\item[MIT1003 and MIT300 \cite{judd2009learning}] This dataset is the most well-known among saliency prediction researchers. It is accompanied by an online benchmark maintained by its authors.
The MIT1003 dataset consists of both images and fixation points that can be used for training. The fixation points for the MIT300 dataset are not public: the dataset can only be used for benchmarking.
The stimuli images in these datasets consist of indoor and outdoor natural scenes from the Flickr Creative Commons and LabelMe \cite{russell2008labelme} datasets. The MIT datasets are the smallest of the considered datasets, so results on these sets have the most potential for overfitting.
\end{description}

\begin{table*}
\begin{center}
\begin{tabular}{lllllll}
\toprule
Dataset							&	Description			 & Capture device 	& Observers & Train 	& Validation & Test \\
\midrule
SALICON	\cite{jiang2015salicon} & Microsoft CoCo \cite{lin2014microsoft} & Mouse clicks	& Crowd & 10,000 	& 5,000	& 5,000 \\
iSUN 	\cite{xu2015turkergaze} & SUN \cite{xiao2010sun} & Eyetracker	& Crowd & 6,000 	& 926	& 2,000 \\
MIT300 \cite{mit-saliency-benchmark}	& Flickr and LabelMe \cite{russell2008labelme} 	& Eyetracker	& 39 & - & -	& 300 \\
\bottomrule
\end{tabular}
\end{center}
\caption{Description of the three datasets used in our experiments.}
\label{tab:datasets}
\end{table*}

\subsection{Results}

Saliency prediction evaluation has received the attention of several researchers, resulting in various proposed approaches.
Our experiments consider several of these, in a similar way to the MIT saliency benchmark~\cite{Judd_2012}.
Some of these metrics compare the predicted saliency maps with the maps generated from the fixation points of the ground truth, while some other metrics directly compare with the fixation points.
In the result tables that follow, we have sorted the different techniques based on the AUC Judd metric.

Where not otherwise stated, our convnets were trained with images from the SALICON~\cite{jiang2015salicon} dataset and tested on images from iSUN~\cite{xu2015turkergaze} and MIT300 datasets to avoid overfitting.
The one exception to this is our submission for the LSUN 2015 challenge, where our shallow network was trained with training and validation data from iSUN, and assessed on the test partition.

The presented shallow and deep convnets were compared quantitatively on the validation partition of the iSUN dataset.
The results (Table~\ref{tab:iSUN-val}) show a similar performance of both networks in the the 926 images of this dataset.

Figure~\ref{fig:qualitative} presents a qualitative comparison of the two networks, showing the predicted saliency maps alongside the ground truth fixation maps.
These examples show a different behaviour between the two networks, with the shallow one presenting a bias towards the central part of the image.
The deep network, on the other hand, offers a higher spatial resolution thanks to its architecture with larger feature maps.

\begin{figure*}
		\begin{center}
		\includegraphics[width=0.8\linewidth]{./fig/qualitative-6.jpg}
        \end{center}
		\caption{Saliency maps generated by our shallow and deep network on the SALICON and iSUN validation data.}
		\label{fig:qualitative}

\end{figure*}

\begin{table}
\begin{center}
\begin{tabularx}{\columnwidth}{Xrrr}
\toprule
	AUC				 			& Shuffled 	& Borji &  Judd \\
\midrule
Deep Convnet 					& 0.63 			& 0.78			& 0.80 \\
Shallow Convnet	 				& 0.64 			& 0.77			& 0.79 \\
\bottomrule
\end{tabularx}
\end{center}
\caption{Comparison of AUC measures for our deep and shallow convnets on iSUN validation.}
\label{tab:iSUN-val}
\end{table}

Our shallow convnet was the winner of the 2015 LSUN saliency prediction challenge~\cite{zhanglarge}.
This challenge required participants to evaluate their algorithms on the test partitions of the iSUN and the SALICON datasets.
Our network was trained only with images from the training and validation partitions of each dataset separately, so images from different datasets were never mixed for these experiments.
Table~\ref{tab:iSUN} and Table~\ref{tab:SALICON} include the results provided by the organizers of the challenge for the iSUN and SALICON datasets.
The scores obtained for every measure considered demonstrate the superior performance of our shallow network compared with the other participants.

\begin{table*}
\begin{center}
\begin{tabular}{lrrrrr}
\toprule
					&	Similarity 	& CC 		& AUC shuffled 	& AUC Borji & AUC Judd \\
\midrule
\textbf{Shallow Convnet (iSUN)}	& \textbf{0.6833} 		& \textbf{0.8230}	& \textbf{0.6650} 		& \textbf{0.8463}	& \textbf{0.8693} \\
Xidian  				& $0.5713$ 		& $0.6167$	& $0.6484$ 		& $0.7949$	& $0.8207$ \\
WHU IIP 			& $0.5593$ 		& $0.6263$	& $0.6307$ 		& $0.7960$	& $0.8197$ \\
LCYLab 				& $0.5474$ 		& $0.5699$	& $0.6259$ 		& $0.7921$	& $0.8133$ \\
Rare 2012 Improved \cite{riche2013rare2012}	& $0.5199$ 		& $0.5199$	& $0.6283$ 		& $0.7582$	& $0.7846$ \\
\midrule
Baseline: BMS \cite{zhang2013saliency}		& $0.5026$ 		& $0.3465$	& $0.5885$ 		& $0.6560$	& $0.6914$ \\
Baseline: GBVS \cite{harel2006graph}		& $0.4798$ 		& $0.5087$	& $0.6208$ 		& $0.7913$	& $0.8115$ \\
Baseline: Itti \cite{itti1998model}		& $0.4251$ 		& $0.3728$	& $0.6024$ 		& $0.7262$	& $0.7489$ \\
\bottomrule
\end{tabular}
\end{center}
\caption{Results for the iSUN test set, according to the LSUN Challenge 2015.}
\label{tab:iSUN}
\end{table*}

\begin{table*}
\begin{center}
\begin{tabular}{lrrrrr}
\toprule
					&	Similarity 	& CC 		& AUC shuffled 	& AUC Borji & AUC Judd \\
\midrule
\textbf{Shallow Convnet}	& \textbf{0.5198} 		& \textbf{0.5957}	& \textbf{0.6698} 		& \textbf{0.8291}	& \textbf{0.8364} \\
WHU IIP 			& $0.4908$ 		& $0.4569$	& $0.6064$ 		& $0.7759$	& $0.7923$ \\
Rare 2012 Improved \cite{riche2013rare2012}	& $0.5017$ 		& $0.5108$	& $0.6644$ 		& $0.8047$	& $0.8148$ \\
Xidian			 	& $0.4617$ 		& $0.4811$	& $0.6809$ 		& $0.7990$	& $0.8051$ \\
\midrule
Baseline: BMS \cite{zhang2013saliency}		& $0.4542$ 		& $0.4268$	& $0.6935$ 		& $0.7699$	& $0.7899$ \\
Baseline: GBVS \cite{harel2006graph}		& $0.4460$ 		& $0.4212$	& $0.6303$ 		& $0.7816$	& $0.7899$ \\
Baseline: Itti \cite{itti1998model}		& $0.3777$ 		& $0.2046$	& $0.6101$ 		& $0.6603$	& $0.6669$ \\
\bottomrule
\end{tabular}
\end{center}
\caption{Results for the SALICON test set, according to the LSUN Challenge 2015. }
\label{tab:SALICON}
\end{table*}

Both of the proposed convnets were also evaluated on the MIT300 dataset~\cite{judd2009learning} of the MIT Saliency Benchmark~\cite{Judd_2012}.
Table~\ref{tab:mit300} compares our results with some other top performers in this benchmark.
Our deep convnet achieves similar results to the ones obtained by Deep Gaze 1~\cite{kummerer2014deep} at the upper part of the table. The shallow convnet performs worse but still in the upper part of a table which, in its full version, compares 47 different models.

\begin{table*}
\begin{center}
\begin{tabular}{lrrrrr}
\toprule
									&	Similarity 	& CC 		& AUC shuffled 	& AUC Borji & AUC Judd \\
\midrule
Baseline: Infinite Humans 			& $1.00$ 		& $1.00$	& $0.80$ 		& $0.87$	& $0.91$ \\
SALICON  \cite{huan2015salicon} (*)	& $0.60$ 		& $0.74$	& $0.74$ 		& $0.85$	& $0.87$ \\
DeepFix \cite{srinivas2015deepfix} (**)	& $0.67$ 	& $0.78$	& $0.71$ 		& $0.80$	& $0.87$ \\
Deep Gaze 1 \cite{kummerer2014deep}	& $0.39$	& $0.48$ 	& $0.66$		& $0.83$	& $0.84$  \\
\textbf{Deep Convnet}	& \textbf{0.52} 	& \textbf{0.58}	& \textbf{0.69} & \textbf{0.82}	& \textbf{0.83} \\
BMS \cite{zhang2013saliency} 	& $0.51$ 		& $0.55$	& $0.65$ 		& $0.82$	& $0.83$ \\

eDN \cite{vig2014large} 		& $0.41$ 		& $0.45$	& $0.62$ 		& $0.81$	& $0.82$ \\
GBVS \cite{harel2006graph}		& $0.48$ 		& $0.48$	& $0.63$ 		& $0.80$	& $0.81$ \\
Judd \cite{judd2009learning} 	& $0.42$ 		& $0.47$	& $0.60$ 		& $0.80$	& $0.81$ \\
\textbf{Shallow Convnet}		& \textbf{0.46} & \textbf{0.53} & \textbf{0.64} & \textbf{0.78}	& \textbf{0.80} \\
Mr-CNN \cite{liu2015predicting} & $0.48$ 		& $0.48$	& $0.69$ 		& $0.75$	& $0.79$ \\
Rare 2012 Improved \cite{riche2013rare2012}	& $0.46$ 		& $0.42$	& $0.67$ 		& $0.75$	& $0.77$ \\
Baseline: One human		& $0.38-0.46$ 		& $0.52-0.65$	& $0.63-0.67$ 	& $0.66-0.71$	& $0.80-0.83$ \\
\bottomrule
\end{tabular}
\end{center}
\caption{Results of the MIT300 dataset. (*-to be published, (**-non-peer reviewed}
\label{tab:mit300}
\end{table*}

A detailed analysis of the MIT300 results suggests a potential dataset bias~\cite{torralba2011unbiased} in these benchmarks.
Notice how while GBVS \cite{harel2006graph} clearly outperforms our shallow convnet for MIT300 (Table \ref{tab:mit300}), its results are much lower than our shallow convnet or Rare 2012 Improved \cite{riche2013rare2012} for the iSUN (Table \ref{tab:iSUN}) and SALICON datasets (Table \ref{tab:SALICON}).
Unlike many of the other top performing results on the MIT benchmark (DeepFix~\cite{srinivas2015deepfix}, Deep Gaze 1~\cite{kummerer2014deep}, eDN~\cite{vig2014large}, and Judd~\cite{judd2009learning}), our networks were not trained or fine-tuned on the MIT1003 dataset, but trained purely on SALICON data. Our strong results across multiple datasets and benchmarks demonstrate the generality of our models.

\section{Conclusions}
\label{sec:conclusions}

We propose a novel end-to-end approach for training convnets in the task of saliency prediction.
The excellent results of both architectures in state-of-the-art benchmarks demonstrate the superior performance of our convnets with respect to hand-crafted solutions and highlight the importance of an end-to-end formulation of saliency prediction

The comparison between our shallow and deep networks trained on SALICON data has provided similar results for the iSUN dataset, but a better result for the deep network on MIT300.
On the other hand, the shallow network requires less memory at train time and generates saliency maps much faster because it has fewer layers.
Both networks rank highly in the MIT300 benchmark despite not being trained on this dataset.
This clearly demonstrates the generalization performance of the networks and robustness to dataset biases.

\section{Additional material}

Table \ref{tab:light} contains the details for the memory requirements of the light network. As in most ConvNets, the highest memory requirements correspond to the early convolutional layers, while the largest amount of parameters are associated to the fully connected layers at the deepest level of the network.

\begin{table*}
\begin{center}
\begin{tabular}{|l|c|c|}
\hline
Layer		& 	Blob Data Size			 & Filter Weights   \\
			& 	[Width x Height x Depth] & [( convX x convY x DepthIn ) x Depth]    \\
\hline
input 		& 96x96x3 = 27,648			& 0 \\
conv5-32 	& 92x92x32	= 270,848 		& (5x5x3)x32+32= 2,400\\
maxpool2 	& 46x46x32 	= 67,712		& 0 \\
conv3-64 	& 44x44x64  = 123,904		& (3x3x32)x64+64= 18,496\\
maxpool2 	& 22x22x64  = 30,976		& 0 \\
conv3-128 	& 20x20x128  = 30,976		& (3x3x64)x128+128= 73,856 \\
maxpool2 	& 10x10x128  = 12,800		& 0 \\
FC-4608 	& 1x1x4608  = 4,608			& (1x1x12,800)x4,608+4,608= 58,987,008\\
slice1 		& 1x1x2304  = 2,304			& 0 \\
slice2 		& 1x1x2304  = 2,304			& 0 \\
maxout 		& 1x1x2304  = 2,304			& 0 \\
FC-2304 	& 1x1x2304  = 2,304			& (1x1x2,304)x2,304+2,304= 5,310,720\\
output		& 1x48x48 = 2,304			&   \\
\hline
Total 		& 601,216					& 64,392,512 \\
Memory (train) 	& 4.58 MB				& - \\
Memory (test) 	& 2.29 MB 				& 246 MB \\
\hline
\end{tabular}
\end{center}
\caption{Memory requirements for the proposed shallow ConvNet.}
\label{tab:light}
\end{table*}

\section*{Acknowledgements}
\label{sec:acknowledgements}

This publication has emanated from research conducted with the financial support of Science Foundation Ireland (SFI) under grant number SFI/12/RC/2289.
This work has been developed in the framework of the project BigGraph TEC2013-43935-R, funded by the Spanish Ministerio de Econom\'ia y Competitividad and the European Regional Development Fund (ERDF).
The Image Processing Group at the UPC is a SGR14 Consolidated Research Group recognized and sponsored by the Catalan Government (Generalitat de Catalunya) through its  AGAUR office.
We gratefully acknowledge the support of NVIDIA Corporation with the donation of the GeForce GTX Titan Z used in this work.

redpajama_set_name: RedPajamaArXiv


text:
Media Credentials Application
Roster 2021-2022
Office & Gameday Staff
About The Giants
Free Agent Tryout
Mr Biggs
Meet Mr. Biggs
Biggs Birthday Bash
Dance Teams
Jacksonville Jewels
Jacksonville Gems
Be a Business Partner
Feed the Team
Giants Season Tickets
Giants Group Tickets
Request an Appearance
Books 4 Baskets
Bullies are Cowards
Head Coach Jerrod Tucker
Hey, Giants Fans please welcome your New Head Coach Jerrod Tucker!
Coach Tucker will be the new head basketball coach for your 7 Time ABA National Champions Jacksonville Giants. Coach Tucker received a scholarship to play basketball for Bellevue University, where he obtained a degree in sports management. He also has a telecommunications degree from the University of Florida. In his first year with the team, they played in the national championship game, and in the second year, he made it to the Elite Eight with Coach Tucker as the Team Captain both seasons. He then went on to play for the ABA Chicago Fury. After two seasons with the Fury, Coach Tucker met Coach Kevin Waters during a Giants visit to Chicago. That same summer, Coach Waters invited Jerrod to attend the Giants try-outs where he made the team.
In the 2013-2014 season, Coach Tucker was promoted to Team Captain and he also played in the ABA All-Star Game in his hometown Chicago, He would go on to become a 5-time champion during his tenure with the Giants. Coach Jerrod married his wife Yemi in Orlando, and they have now made their home in Jacksonville with their two beautiful daughters.
Ⓒ 2019 Jacksonville Giants


Artist Tim Nickodemus immerses himself in Joseph Yoakum's drawing practice at the Roger Brown Study Collection (RBSC) in Second Hand Land Scapes Blue Drawings after Joseph E. Yoakum. For the exhibition, Nickodemus produced a suite of drawings in response to the collection of thirty-five Yoakum works. The suite of drawings occupy a separate smaller room on the second floor of the artist/collector's former home, that feels like a hidden space for contemplation.
Tim Nickodemus, Holy Hills of Canaan, Colored pencil on blue paper, 2017.
Every six months, the RBSC removes their collection of Yoakum's drawings from public view and rests them for archival purposes. Yoakum chose to work in non-archival materials including ballpoint pen, pencil and watercolor on paper that gradually fades and disappears with age. Nickodemus' series installs thirty-five drawings in the exact frames and configuration during the scheduled absence of Yoakum's original works. This summer marks the second cycle of this seasonal effort. For this interpretive body of work, Nickodemus generates a matrix of several reference points. In the studio, Nickodemus enacts marks partially from memory informed by repeated direct observation of Yoakum's works. He then further incorporates visual information from image searches of topographical and geological maps based on each of Yoakum's title locations. These generative parameters become a form of improvisation that is also an invitation into abstraction.
Circa: 1965-1970, 12 x 18 7/8 in. Blue ballpoint pen, colored pencils and colored chalks on wove paper.
Nickodemus' drawings are comprised of colored pencil in a variety of blue hues on midnight-blue wove paper. Tone on tone marks in similar values cause a vibrating and dimming effect that forces the eyes to adjust. Projecting details into the expansive negative spaces between forms is easy. Within a particular economy of descriptive marks, there is a wide variety and cross-section of landscape vantage points. Some drawings situate the viewer from a birds-eye view, while other images depict a horizon line that recedes into space, several flatten and skew landmass surface studies, yet others feature grids to imply scale or measure distance.
Tim Nickodemus, Mt Matthews in Ozark Range Near Annapolis Missouri, Colored pencil on blue paper, 2017.
In Yoakum's drawings, memory acts as the primary filter to channel direct experiences amongst landscapes lived while crisscrossing the globe. Yoakum's hyper-specific titles and are often inscribed onto the drawing itself. The curiously enigmatic geographic locations such as, "Art Linkletter's Ranch Near Darwin Australia" (an actual place) or "Grand Coulee Dam in Columbia River near Olympia Washington" conflate two actual locations that are approximately 300 miles apart. "Holy Hills of Canaan" may be a biblical place rather than an actual traceable geographical location. Yoakum's biography demonstrates the artist's mythical status, as his various jobs including Buffalo Bill's Wild West tour in Europe and the Ringling Brothers Circus led him to visit most of the continents.
Joseph E. Yoakum, Grand Coulee Dam on Columbia River Washington State 1960s, 8 15/16 x 11 15/16 in. Blue ballpoint pen, watercolor (including white), colored pencils and colored chalks on manila wove paper.
Yoakum's work is in permanent collections such as Smithsonian, Carnegie Museum of Art, Art Institute of Chicago and the Whitney Museum to name a few. Living in Chicago after 1946, Yoakum was in conversation with artists who were also collectors of his work such as Ray Yoshida. Only towards the end of his life, long after he toured the world, did Yoakum begin his career as a prolific artist channeling all of his experiences into drawing. There is a consistency to the marks, lines, and forms that he uses to describe the landscape that is unmistakable.
Nickodemus traveled extensively throughout the Southwest and observed several locations that Yoakum depicts adding further depth to the interpretation of place. Both bodies of drawings are composed of a consistent economy of marks that at moments bear an uncanny resemblance to the local terrains of their namesakes, yet truth or fiction are beside the point. Perhaps the viewer automatically projects this visual information onto and into the drawn landscapes? Place memory gently skews and warps the perspective allowing interpretation to permeate the lived landscapes of both Yoakum and Nickodemus. Yoakum described his work as a "spiritual unfoldment." Much like how a map expands or contracts, memory unfolds primary experience onto the landscape in unpredictable and idiosyncratic ways. In Yoakum's own words he begins a drawing, "and then the place comes to him." In a similar spirit, Nickodemus constructs a methodology of drawing to enable interpretation and improvisation of the landscape over time and across both artists' memory. Nickodemus' meditation and reinterpretation encourage closer and longer looking of navigated place and time where chance and intention allow the line to lead the hand.
Tim Nickodemus, Wala Wala Valley Washington, Colored pencil on blue paper, 2017.