text:
The Resilience Series
Linkedin Link Facebook Link Twitter Link Email Link
Windows 7 - an opportunity for cyber criminals?
Erica Constance
Portfolio Manager - Cyber
The end life of Windows 7 will be seen as an opportunity for cybercriminals, but it also highlights the need for effective patching strategies, according to Erica Constance.
Windows 7 end of life
On January 14, Microsoft effectively retired its Windows 7 operating system. This means the technology company is no longer obliged to provide security updates for this widely used software, although there is an option for paying customers to sign up to Extended Security Updates.
is potentially last ever, update for Windows 7
Machines with unpatched or unsupported software like Windows 7 are more vulnerable to cyber attacks, viruses and malware. That's why cyber security experts are advising millions of Windows 7 users to upgrade their operating system - some 200 million computers are still believed to using Windows 7.
Security flaws continue to be found in Microsoft 7, even though it is now more than a decade old. In January 2020, the US National Security Agency warned of serious new vulnerabilities in Windows operating systems, including Windows 7 and the latest version Windows 10. Microsoft included a fix in its latest, and potentially last ever, update for Windows 7 on January 14, 2020.
Known vulnerabilities
Microsoft's decision to pull support for Windows 7 will present cybercriminals with a huge opportunity. Bugs in software can be exploited by cybercriminals for malicious purposes and often form an important element of the tools and techniques used by hackers to gain access to networks, steal data or for cyber extortion.
Hackers seek out so-called zero-day vulnerabilities – flaws that are unknown to software developers and users – but more often than not they are able to exploit known vulnerabilities. This is because software is often not up-to-date – once a vulnerability is identified, software providers will quickly issue an update or a patch to fix the issue.
However, left unpatched, systems are open to attack.
For example, the 2017 WannaCry global ransomware attack used a known vulnerability in Windows software known as 'Eternal Blue'. Even though a fix for the vulnerability had been released several months prior to the WannaCry outbreak,
the malware hit hundreds of thousands of unpatched computers around the world.
For example, the 2017 WannaCry global ransomware attack used a known vulnerability in Windows software known as 'Eternal Blue'. Even though a fix for the vulnerability had been released several months prior to the WannaCry outbreak, the malware hit hundreds of thousands of unpatched computers around the world.
Despite the role of unpatched vulnerabilities in high profile cyber attacks like WannaCry, the problem persists. According to Gartner unpatched systems remain one of the top causes of cyber security breaches with an estimated 99% of vulnerabilities known at the time of the incident.
Every time a security flaw or vulnerability is disclosed or a system update or patch is released, cybercriminals see an opportunity, explains Verizon in its 2019 Data Breach Investigations report.
Hackers are continually searching for ways to monetise vulnerabilities, either through sophisticated targeted attacks against companies' networks and websites or un-targeted attacks, like phishing or ransomware.
In recent years some of the largest large data breaches have been linked to unpatched vulnerabilities. For example, out of date systems contributed to the massive 2017 Equifax breach. More recently, a ransomware attack at Travelex on New Year's Eve 2019 – which led the company to take its websites offline for over two weeks – was reportedly associated with a known vulnerability in VPN software.
Patching strategy
Hackers know that once a vulnerability is revealed, they have a limited amount of time to try to exploit that vulnerability. So fixing vulnerabilities quickly will result in greater protection. However, given the volume of software updates and the potential for patches to disrupt or reduce the functionality of critical systems, patching is not straightforward.
Cyber security experts recommend that firms:
• adopt a patching strategy that prioritises updates
• align fixes with the organisation's biggest risks
• prioritise important vulnerabilities once they are identified
• have a plan for the remaining actionable vulnerabilities
• run up-to-date supported software on their systems, where practical
There are legitimate reasons why some machines and devices may continue to use old or unpatched software. Decisions to run unsupported software should be informed with appropriate steps taken to maintain cyber security, such as isolating unsupported systems from other networks.
Timely patching is not only good cyber hygiene but it is also basic risk management. Cyber insurers will enquire about an organisation's patching strategy and will want to know what is being done to secure unsupported systems.
Policyholders should also check their policies as some insurers apply exclusions for losses arising from unsupported or outdated systems.
Regulators are also paying more attention to cyber security and the consequences for not patching systems are increasingly severe, in terms of regulatory fines, business interruption and reputational damage.
Equifax was fined $700m by US regulators for its 2017 data breach while US hotel group Marriott faces a £99m fine in the UK for a data breach under the EU's General Data Protection Regulation (GDPR), caused by unpatched software. The GDPR gives regulators the power to issue penalties of up to €20m, or 4% of a company's global turnover.
Keep patching
The withdrawal of support for Windows 7 will mean weaker cyber security for users and an open door for hackers. Many organisations have taken the opportunity to upgrade to a newer operating system, but those using unsupported or unpatched software without appropriate controls are exposing their businesses to an unnecessary risk, and one that could prove costly in the long run.
Sign-up to be notified about future articles from the Resilience Series, and other thoughts, reports or insights from QBE.
See how we support your sector
Find out more about our products
Find out how we can help manage your risk
{{ errors.first('First Name') }}
{{ errors.first('Email address') }}
{{ errors.first('Job title') }}
If you would like to find out more about how QBE uses your data please read our Privacy Policy. You can unsubscribe at any time from our mailing list.
You will shortly receive an email from us.
Please don't forget to open it and click the verification link.


Practical Penetration Test Training is a hands-on training designed to test weaknesses in services, services and web applications that are running at the network level, along with services and applications running on local networks. This training is proper for the people who want to work in this area primarily but anyone interested in cyber security can enroll this training because it is taught from beginning to end and basic to advanced.
Because of the knowledge learned during the training is mainly based on the field experiences, those who can complete the training will have a solid foundation to become "Penetration Test Expert" in the cyber security field. In addition, they will have a good technical knowledge of the network and will learn details by experiencing which points we must pay attention during the tests, in our laboratory that we have developed for training.
The training term is 5 days.


text:
Q: zabbix agent2 inside docker for monitoring other containers I have a VM on which docker is installed and all services are already in containers. Zabbix is a separate VM and zabbix itself is also in containers.
I tried to raise a docker container with zabbix agent2 so that it monitors containers on the first server, but the zabbix says that docker.service is not active.
All I found was that you need to "put a privileged mode and everything will work." But the couple doesn't work... (screnshot compilation)
docker-compose file (vm1):
version: '3.5'
services:
 zabbix-agent:
  image: ${AGENT_IMAGE}
#  profiles:
#   - full
#   - all
  ports:
   - "10050:10050"
  volumes:
   - /etc/localtime:/etc/localtime:ro
   - /etc/timezone:/etc/timezone:ro
   - /var/run/docker.sock:/var/run/docker.sock
   - ${ZBX_FOLDER}/etc/zabbix/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d:ro
   - ${ZBX_FOLDER}/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro
   - ${ZBX_FOLDER}/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro
   - ${ZBX_FOLDER}/var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:ro
  deploy:
   resources:
    limits:
      cpus: '0.2'
      memory: 128M
    reservations:
      cpus: '0.1'
      memory: 64M
   mode: global
  env_file:
   - ${ZBX_ENVFILES}/.env_agent
  privileged: true
  pid: "host"
  networks:
   my_net:
    aliases:
     - zabbix-agent
     - zabbix-agent-passive
     - zabbix-agent-alpine
  stop_grace_period: 5s
  labels:
   com.zabbix.description: "Zabbix agent"
   com.zabbix.company: "Zabbix LLC"
   com.zabbix.component: "zabbix-agentd"
   com.zabbix.os: "alpine"

networks:
  my_net:
    name: my_network
    external: true

envfile:
ZBX_FOLDER=/path/to/zabbix/data
ZBX_ENVFILES=/path/to/envfiles/zabbix_env

AGENT_IMAGE=zabbix/zabbix-agent2:alpine-6.2-latest

COMPOSE_PROJECT_NAME=zabbix

A: I managed to get this to work by adding zabbix user to docker group inside the container.
Just add this to your docker compose file:
group_add:
 - "984"

Replace 984 with gid of docker group.
You already made docker.sock available inside the container and it's privileged so it should work.

redpajama_set_name: RedPajamaStackExchange


text:
Q: Convergence of random variables(Proof) So, I have $X_1, X_2,...$ such that $X_n\xrightarrow{\mathbb{P}}X$, and I need to prove that $X_n+c\xrightarrow{\mathbb{P}}X+c$ and $aX_n\xrightarrow{\mathbb{P}}aX$, for any $a \in \mathbb{R}$ \ $0$, and c $\in \mathbb{R}$.
My problem is that I can\t find this $\xrightarrow{\mathbb{P}}$ anywhere in my textbook, so I'm not quite sure what I'm supposed to do. Is it a probability mapping?

A: Yes, it is "convergence in probability"- that is, the probability the sequence converges to that limit is 1.  Of course, that depends upon a given probability distribution which the determines a "measure" on the set of events.  The set of events for which that limit is correct has measure 1 and the set of events for which that limit is not correct (the sequence does not converge or converges to some other limit) has measure 0.  (Of course, in probability measure there exist non-empty sets that have measure 0.)

A: Note that the topology of convergence in probability is also metrizable, and particular $X_n$ converges in probability to $X$ if and only if
$$
\lim_{n\to \infty}\int_\Omega \min(|X_n(\omega)-X(\omega)|,1) \,P(\mathrm{d}\omega)=0.
$$
Ps. The standard definition you may be searching for is equivalent to
$$
\lim_{n\to \infty}P(\omega \in \Omega: X_n(\omega) \to X(\omega))=1.
$$
At this point, you just have to apply the definition.

A: As for the specific problem you have:
$$\mathcal{P}(|(X_{n}+c) - (X+c)|\geq \epsilon) = \mathcal{P}(|X_{n} - X| \geq \epsilon )\to 0$$
and
$$\mathcal{P}(|aX_{n} - aX| \geq \epsilon) = \mathcal{P}(|X_{n} - X| \geq \frac{\epsilon}{a} = \epsilon_{1})\to 0$$


text:
Barely Home Companion - A New York Moment (Apr. 2002)
This is one of those things I felt compelled to write, but didn't really want to write. It was April 2002, the show was back in NYC for the first time since the 9/11 terrorist attacks. I'm not the kind of guy that wears my heart on my sleeves, yet at the same time it was something that had to be addressed. I submitted a Keillor-sque monologue about the city. It's a battle of heart and mind; acknowledging the grief while acknowledging the living. It was a lot of things I observed as i continued working at my job in lower Manhattan. There weren't exactly a lot of allowances for us workers, we still had to show up, we still had to do our work. We couldn't wallow in sadness, we had to wallow in routine and deadlines and quarterly results. So, there are a lot of mixed emotions and wry observations here. I tried to put it in Garrison terms, but I suspect I fell short, as the material wasn't used. I'm debating whether I should include in the chronological run of my submissions or to hold it as a 9/11 tribute. So, if you see it in April, you'll know which I did...
A New York Moment
It's been more than six months, and New York City is coming back to life...to the point they have gridlock because the volume of traffic is back to pre-attack levels, even though the amount of streets is still not 100%.
The uniforms are still in force, with police on every corner. At one point, of course, state troopers were here and the army reserves. They looked less like an occupying army than a large group of tourists who all happen to dress alike.
The firehouses are now shrines to the fallen; flowers, candles, photos and signs displayed out front. The notes and pictures from school children around the country are taped to the walls, the overhead beams, the outside doors. Slowly, the firehouses are coming back to full force but many rig bays are empty as they await replacements for the equipment lost.
With the return of routine comes the return of the routine. Tasks which were deemed necessary at one point seemed seem less so after the attacks. The legendary "New York minute" was about a minute and a half. But in the last few months, "necessary" seems necessary again. But if you get too much into a normal activity, you'll suddenly remember, "two of the world's tallest buildings used to be right over there." And now they're not. What could those clerks, those secretaries, those merchants have done to be the target of such blind
hatred? Nothing. Not a thing.
But the city is getting its footing back. You know this because the sidewalk vendors are back in force. The little Asian ladies are out; selling flags and pins instead of umbrellas. There's a black guy, next to the bootleg video guy, selling postcards and pictures of the twin towers and
flags. He has flags. At one point, flags were a near-impossible-to-find item in the city. But the sidewalk guys had them.
Oddly, no one finds this ghoulish or crass. It's what New York does...every baseball play-off and series; they're out there with their Yankee shirts and Met caps. When New York
had its subway series it was like a long block party as the dealers hit the streets with their wares. Football, hockey, even the Olympics, the vendors are there. New Year's Eve they
were there with the eyeglasses shaped like the year and the explosive poppers. They mark the seasons and the events of the city. And this is the biggest event of all.
So as New Yorkers continue to get a grip on the situation, it seems natural that they'll buy the T-shirt or get the ribbon pin to mark it. And with a debate looming over how to exactly
memorialize the tragedy, buying a FDNY baseball cap seems the easiest thing to do.
And the tourists are returning. They seemed awed. Even relieved to see the rest of the city still here. They are joyful that they are getting a chance to see the city before something else happens to it. Also returning, those people who walk around the city with these little wheeled suitcases and two-wheel hand carts. They scurry along the sidewalks with an unimaginable number of personal possessions tailing behind. Personally, it's my belief that if you need to travel with that much stuff, maybe you shouldn't be leaving your home in the first place.
A big stop for them is the Ground Zero viewing ramp. A large ramp was build across the street which would allow viewing of the site formerly know as the World Trade Center. It proved
so popular, that tickets are now necessary to attempt to control the crowds that line up. Is it ghoulish? Hard to say. People travel to see the Pearl Harbor Memorial, or the grave sites at Normandy. It seems necessary, somehow.
The sorrow is not far from the surface. You just have to watch the flatbed trucks drive downtown with the twisted beams of the WTC heading for the barge to feel your stomach tighten. Or the latest announcement regarding more recovered bodies. But shock is passing and people are getting back to the business of living.
We wish them well.

redpajama_set_name: RedPajamaCommonCrawl


text:
North High School On the Air
The North Academy of Arts & Communications (NAAC) engages students as they study humanities and the sciences through the vehicle of the arts. Fine arts are studied in depth from six disciplines: dance; instrumental and vocal music; radio broadcasting; theater and public speaking; and digital music and video production.
Students at North may choose the radio broadcast program throughout their four years as an elective.
This course provides students the opportunity to broadcast live or voice-track 9 a.m. to 3 p.m. each weekday. Students learn a variety of skills, including writing, researching, recording, mixing and editing audio files and students gain a sense of accomplishment and confidence. To quote a former student: "I learned how to communicate with people."
Project-based learning helps students hone communication and team building skills.
Jazz88 produces School News, a series of brief reports from Minneapolis Public Schools.
K-12 students write and voice thirty-second news reports about what is happening at their school, from learning multiplication tables to restoring classic cars.
School News airs weekdays, once an hour from 9:49 a.m. to 2:49 p.m.
Students from schools throughout the district are eligible for service credits through after-school programs.
During the summer, several paid student interns work at Jazz88 in advanced media production as well as intensive specialized studies with staff mentors in electronics, music programming and station management. Jazz88 works with Step-Up/Achieve to hire students from Minneapolis.
July 11, 2019Kevin Barnes
July 11, 2019Emily Reese
Indeed We Can Jazz88 Fundraiser Today!
July 9, 2019Kevin Barnes
Luigi Romolo Explains Air Turbulence
July 9, 2019Emily Reese
Sign Up For Jazz 88 E-News
Want to stay up to date on Jazz88 programming and live events? Sign up for updates! Your personal information will remain private. We send an average of one message per week.
Subscribe To E-News Here!


text:
Sailor in the Desert
By David Gunn, author of Sailor in the Desert (Pen and Sword Books, October 2013).
The WW1 WArship with sails
It is hard to imagine the father of someone living today fighting in a sail powered Royal Navy warship in the First World War. But that was the situation in which Ordinary Seaman Phillip Gunn found himself from 1913-16. The armed sloop HMS Clio, on the China station, had engines as well as sails but frequently sailpower was used alone. Gunn would hear the shrill, haunting whistle of the bosun's pipe day and night, calling him out with the duty watch to adjust them.
In 1914 Clio was ordered to Mesopotamia, present day Iraq, to cope with the threat from the Turks who had entered the war on the German side. Her job was to support the army in protecting the Royal Navy's oil supplies which came from South Persia (now Iran). And so began the Mesopotamia campaign, one of the least known episodes of the First World War that started with outstanding success far greater than any enjoyed by the allies
Phillip Gunn left an unpublished account of the campaign and its battles and from these, and conversations with his late father, his author son David has written Sailor in the Desert, just published by Pen and Sword. The true story tells of Clio initially steaming up the River Tigris using her 4 inch guns to bombard the Turkish army. They visit the Garden of Eden and find it anything but pleasant. The Arab tribes in the area, ruled by the Ottoman Turks for four hundred years, pay allegiance to neither side but ally themselves to whichever appears to be winning, showing no mercy to the vulnerable.
The Royal Marine butcher would kill one of the cattle when required, the distressed beast being pulled unwillingly with ropes by the duty watch of seamen towards a chute. It would then be poleaxed with a sledgehammer, the carcass cut up and the blood, offal and other unwanted parts discharged into the sea through the chute, which was designed to keep the ship's side clean.
When the river gets too shallow twenty year old Gunn is cast off in command of a Calcutta river police launch, towing Suez Canal horse boats armed with 4.7-inch guns last used at the Relief of Ladysmith in the Boer War in 1899. They attack the Turks and come under heavy fire themselves. His muslim crew need halal killed meat and so they carry a live sheep on board.
Phil was selected to take charge of a former Calcutta River police launch towing two horse boats from the Suez Canal, each with a 4.7 inch gun believed to have last been used during the Boer War in 1899. They were to bombard the Turks in support of the advancing Army, their fire controlled by an Army spotting officer up a ladder that Phil lashed vertically for him.
Eventually collapsing from malaria having been continually bitten by large mosquitoes, Gunn only just survives the campaign which turns disastrous when an ambitious general tries to capture Baghdad with insufficient forces. The result is sometimes described as the worst disaster for the British army between Yorktown in 1781 and the Fall of Singapore in 1942.
Phillip Gunn, who was decorated with the DSM for his work under fire in Mesopotamia, rose from the lower deck to command ships between the wars and during the Second World War. In June 1944 it was he, then the Duty Captain at the Admiralty, whom Prime Minister Winston Churchill telephoned to find out whether the weather in the English Channel had improved sufficiently for the invasion of Europe to go ahead.
During the retreat from Ctesiphon, and after he was carried ashore unconscious, Phil's launch was sunk by enemy fire. Its entire crew were killed.
HMS Clio. On seeing her for the first time, Phil Gunn thought she looked like a rich man's magnificent steam yacht. But her 4-inch calibre guns could hit hard and accurately. (Author's copyright)
On retirement after that war Captain Gunn, as he then was, became a landscape artist. In the 1970s he completed a set of thirty-four oil paintings of life aboard ship before and during the First World War as he had witnessed it. Some of these, now part of the British National Art Collection, illustrate Sailor in the Desert. There is, for instance, the Royal Marine butcher killing cattle in the dog watches for fresh meat as HMS Clio had no refrigeration. The armed horse boats are shown in a painting with an army officer and a pair of binoculars up a vertical ladder that Gunn had rigged for him, spotting the fall of shot to direct the guns onto the Turks.
'I have found no other First World War book illustrated with colour pictures, which possibly makes this one unique,' says author David Gunn. He was among the last to join the Royal Naval College, Dartmouth as a cadet at age 13 and now lives and writes in the Cotswold Hills, England.
Note: Philip Gunn painted the colour pictures shown here. The author owns the copyright to reproduce them.
(Hardback - 148 pages)
by David Gunn
Sailor in the Desert is the personal account of a Royal Navy sailor's experiences during the Mesopotamian campaign of 1915. As an able seaman on an armed sloop supporting the British expedition up the River Tigris, Philip Gunn's recollections give a rare perspective of this ill-fated campaign.
At the outbreak of war, Phillip Gunn was serving on HMS Clio, a naval sloop fitted with sails and guns stationed in China and immediately tasked with hunting the soon-to-be-famous German cruiser Emden, but failed to prevent her escape. Gunn…
Read more at Pen & Sword Books...
'Killing the Bismarck' - Slaying the Myths
Tue 20th May
Iain Ballantyne considers the myth and the reality of the Royal Navy's pursuit and destruction of the German battleship Bismarck, as investigated in the new paperback edition of his book 'Killing the Bismarck' Read article...
Diary of a Despatch Rider on the Western Front 1915-18
Tue 5th May
David Venner reveals how his great uncle's engineering background gave him valuable insights into the early tanks and aircraft that he saw in action. Read article...
The Zeebrugge Raid
Tue 23rd April
Philip Warner describes what happened during the Zeebrugge Raid on 23 April 1918 - one of the most daring raids in history launched by a special force drawn from the Royal Navy and Royal Marines. Read article...
The Battlecruiser HMS Hood
Wed 23rd May
Extracted from HMS Hood An Illustrated Biography 1916-1941 by Bruce Taylor and reproduced by permission of Pen and Sword Books Ltd. Read article...


Here we have an amazing jacket worn by Alex Mallari Jr in the TV series Dark Matter. Alex Mallari Jr is a Canadian actor who is originally from Philippines. Along with being a good actor and having great looks he has played in competitive basketball and is also well versed in Tae Kwon Do. He has been guest starring in many shows including Nikita and Beauty and the beast but his lead role in Dark matter is his most famous role yet. This role has made him more recognizable and he paves the way forward for other Asian actors and actresses as well.
This jacket's dark black color is perfect for everyone. It is made of real leather and anyone will look cool with the stand-up style collar. It is lined in viscose and has YKK zipper closure with button. It has two chest pockets and two inside pockets.
I love wearing this jacket even though I had reservations if I would look good since I am not as muscular like Alex but I thought I might try it and hey I got pleasantly surprised. My girlfriend thinks it suits me so that's always a plus.


Schools: a safe haven for children | YALNA, "Nos enfants"
The massive displacement of islands' populations of Lake Chad to the land areas as a result of Boko Haram-related violence has uprooted 1.3 million of children and placed them at high-risk of separation, abuse, exploitation and recruitment by armed groups. In the Lake Chad region, children who have fled and seek refuge in Chad are now given an opportunity to access education.
In this context, access to a safe school and learning environment often represents a rare opportunity of normalcy and future in the life of these children. A multi-country project in Lake Chad gives both teachers and students the tools to play a central role in securing and protecting that precious environment.
Mr. Ngarnayal Ami, director of the Bagasola School, realized how vulnerable was his school. "We had no idea of the risks, even us adults. Without being aware, we were in constant danger". While potential risks have not entirely disappeared, he confesses he feels more at ease, now that students have been trained. "They know how to distinguish between bad and good. They can identify a potential danger and, above all, they will know what to do to avoid it by taking shelter".
The "Children of Peace" project in the Lake Chad Region, has trained teachers and children in psychosocial support, conflict and disaster risks management strengthening the school's safety environment by better assessing vulnerabilities and establishing related mitigation measures. Both teachers and children were trained on and accompanied in conducting a vulnerability mapping and the development of preparedness plans. An exercise that have not only helped in raising their awareness on the risks they could face, but even more importantly, increased their capacity and power to identify hazards and school vulnerabilities in and around school and respond safely if facing those risks.
From reinforcing physical security measures, such as creating a second door as an emergency exit, to the awareness and knowledge of children and teachers alike on adopting the right measures in case of emergencies, the training has also provided basic tools for teachers in supporting recovery of children often affected by the hardship of their everyday life.
This was notably the case for Ms. Aheppa Zenaba, teacher of Grade 4 at the SODELAC school of Bol, who recognized the importance of the training in developing her ability to counsel children. « This little girl was traumatized when she arrived here" she remembers, telling us of the example of one of her school girls whose parents were killed by Boko Haram. "Thanks to the training, I was able to provide her with the support and advice she needed".
More than 570 teachers have been trained so far on psychosocial support, conflict and disaster risks management, preparing in turn more than 34,000 school children, and bringing a change already recognized by all.
« The training brought a big change for the school, the students and even for the whole community » as summarized by Dolgue Noel, Director of the Kousseri school. « We are more reassured as mothers, to see that our children feel at peace » adds Falmata Mahamat, the president of the educating mother association of the school, who along with 20 others mothers are now playing an active role in supporting the school by educating other parents as well as teaching children about precautionary measures in case of danger.
With the "Children of Peace" project, there has been a before and after, not only for teachers and children in the confine of the school, but far beyond, in the community. Children, teachers, parents, community members must Know, Do, Plan, Prepare in case of danger or potential risk within their school, enabling therefore greater involvement of the community for the safety of their children.
The « Umbrella » exercise consists in identifying the risks and dangers that could occur in the school and making sure the school stays under the umbrella so that the raindrops (risks and danger) are retained by the umbrella. This technique permits to children to easily assimilate many tips on their safety.
From November 2016 to November 2017, under ECHO-funded "Children of Peace" project, UNICEF piloted the development and implementation of school emergency response plans as well as the training so far of 579 teachers and 34,205 school boys and girls in psychosocial support (PSS) and conflict and disaster risk reduction (CDRR). 23,948 trained children took part in conducting a vulnerability mapping and developing a preparedness plans for CDRR. The initiative aimed at contributing to school's resilience by supporting preparedness for mitigation of risks identified collaboratively by teachers, children, parents and children of peace focal points in the community. As part of a multi-country effort, the "Children of Peace" project has opened a door for boys and girls, in the Lake Chad Region, giving them access to a safe school and learning environment, thus expanding their opportunities for the future.
Article précédentUNICEF, OMS, FNUAP et ONUFEMMES unissent leurs efforts pour la réduction du taux de mortalité maternelle, néonatale et infantile au Tchad, un défi relevé grâce au Fonds Français MuskokaArticle suivantTournoi de football féminin à N'Djamena: place aux filles!


text:
Strategy, Impact, Compliance /
Strategic Planning process
In 2017 we adopted a three-year strategic plan with the following mission: to transform Atlanta into a more livable, accessible city by making biking equitable, safe, and appealing. We intentionally placed the emphasis on the outcome we wanted to achieve -- a more livable, accessible city -- with equitable, safe, and appealing biking being our tool to achieve that goal. At the same time, we made a commitment to equity, diversity, and inclusion.
As we forge into the third and final year of our current strategic plan and embark on the path to determine the most effective direction for the next three years, we are considering expanding our mission. Specifically, we are contemplating a direction that would put biking on equal ground with other transportation options, generate equitable and inclusive mobility outcomes, and, ultimately, propel biking further, faster. Skip to the end of this page to read why we're thinking about this.
1. Why are we thinking about this?
Because we're in a dramatically different environment from 2016 when we last updated our strategic direction. Here are some of the key factors that have led us to consider expanding the scope of our mission:
An overwhelming demand for transportation options beyond cars has flooded Atlanta's streets in the form of people on scooters and electric-assist bikes. The City is acutely aware of the need to accommodate this surge in micromobility options. The burgeoning public interest in the infrastructure and policies to support the widespread adoption of personal mobility devices presents an opportunity for us to rally even more voices calling for investments in safe streets. And, as we've learned from nearly a decade of Atlanta Streets Alive, a safe city street environment where people are the priority not only encourages active transportation but also makes biking significantly more appealing.
Safe streets are bikeable streets. Research and common sense indicate that people won't bike unless they feel it's safe to do so. In 2018 we learned about the High-Injury Network, on which less than eight percent of Atlanta's streets account for 88% of traffic fatalities. Neighborhoods where the most dangerous streets are concentrated -- areas of the city west of Northside Drive and south of I-20 -- also have more black residents, lower median incomes, more people commuting to work on foot and transit, and fewer cars per household. Until we address these most dangerous streets, we won't be able to achieve the safety in numbers that comes when streets are safe for all modes.
In a sprawled city and region like ours, transit access makes it easier to get places by bike, and having good first-/last-mile connectivity options makes transit work better, too. The Cycle Atlanta Plan phase 2.0 emphasizes the importance of these connections. Impending state and regional investments in transit present important opportunities for transit expansion that enhances connectivity and an urgent need for advocates for an inclusive transportation network to be organized and at the table. As the region's largest staffed mobility advocacy organization, should we be those advocates?
2. Have any other bicycle advocacy organizations made this switch?
Yes. We spoke to the following organizations that made this switch: Chicago Active Transportation Alliance aka ActiveTrans (Formerly Chicagoland Bicycle Federation), Bike/Walk Savannah (formerly Savannah Bicycle Campaign), Bike/Walk Macon (formerly Bike Macon), and Portland Street Trust (formerly Portland Bicycle Transportation Alliance). We've also spoken with organiations that were broader than biking from inception, such as Walk/Bike Nashville, BikeWalkKC of Kansas City, and LivableStreets of Boston.
3. If this change is made, will the Atlanta Bicycle Coalition still advocate for better biking?
Yes, absolutely. We will continue all of our current bicycle advocacy work, and we will expand our staff and funding so we can focus on new areas of advocacy.
4. Are any other bike advocacy organizations currently considering mission expansion?
Yes, we've heard from peer organizations that several are considering joining forces with other forms of mobility and active transportation in order to strengthen their advocacy.
5. How might this change affect the Atlanta Bicycle Coalition's programs? (You're not going to get rid of Atlanta Streets Alive, are you??)
There may be some changes to programs--we can't know for sure until we make a decision. Funny you ask about Atlanta Streets Alive, though. We intentionally didn't make it a biking event because we wanted the event to include anyone in Atlanta who was willing to move around the city without a car. We feel that this multimodal approach has been essential to Atlanta Streets Alive's success, which has really built up our audience--even among those people who wouldn't label themselves "bicyclists."
We also plan to keep our bicycle safety programs--City Cycling, Bike Champions, Shifting Gears, and True Beginners--all the programs that are at the core of what we do for bicycling in the city.
6. How can the Atlanta Bicycle Coalition expand its mission to include other topics and people when bicycling still has so many hurdles to jump in Atlanta? Shouldn't we focus on bicycles?
We believe that we still have a long ways to go when it comes to making Atlanta a great place to ride a bike. We believe expanding our mission could help us achieve our goals around biking more quickly, by building a more powerful coalition for the changes we want to see in Atlanta's infrastructure, culture, and daily life. This is about doing more for biking, not less.
7. Does it really matter what the mission statement says? Isn't this process a waste of time and resources?
The mission statement matters because it guides and shapes our advocacy, programs, and initiatives. We are considering expanding our mission during this year's strategic planning process, which happens every three years.
8. How might this impact other mobility advocacy organizations in the city?
We value partnerships greatly and have a lot of respect for our sister organizations in this space, so their feedback will be an important consideration as we contemplate mission expansion. Our hope is that if we are able to grow in this direction, it will support their work and create larger audiences for their efforts.


text:
Americas > Central America
Map of Central America
London: Charles Knight, c.1846..
London: London Printing and Publishing Company, 1861. Map of Central America from Guatemala to Nicaragua, with engraved vignette scenes.
TALL0035 £95.00
Benzoni Mexico
Girolamo Benzoni.
Frankfurt: Theodore de Bry, c.1596. From Benzoni's 'Historia del Mondo Nuovo', first published 1565, a history of the Spanish in Central and South America, written after the author had spent fifteen years in the New World. His work was included in the American sectiion of de Bry's 'Grand Voyages', as here,
BENZ0005 £150.00
London, Samuel Purchas, 1635. Hondius' map of western Mexico from the 'Atlas Minor', here issued in 'Purchas his Pilgrimes', with an English text.
HOND0085 £175.00
Mexico & Guadalajara with armadillos
Johannes Jansson.
Amsterdam, Jan Jansson, 1636. Central Mexico, with Mexico City and Guadalajara. The title cartouche is more ornate than usual for Jansson, and two armadillos stand on the key. From the first year of issue.
JANS0032 £490.00
Blaeu Mexico
Willem Blaeu.
Amsterdam, 1642, French edition. A superb example of this map of south west Mexico, with Mexico City.
BLAE0053 £700.00
Map of southern Mexico
Nicolas Sanson.
Paris, c.1692. Map of the environs of Mexico City, with the Yucatan and Belize. Engraved by A. de Winter for the quarto edition of Sanson's atlas.
SANS0073 £140.00
Map of Central Mexico and Yucatan
Paris, 1749. 18th century map of southern Mexico, with Mexico City and Yucatan.
ROBE0042 £125.00
Map of Mexico
Paris, c.1754. Central Mexico, with Mexico City.
Thomas Kitchin.
London, c.1795. Published in Rev. Dr. Robertson's 'History of America'.
KITC0008 £395.00
Detailed map of Mexico, with Texas marked as a Republic
London, Kelly, 1842. Mexico and Guatemala, also showing the Republic of Texas and California.
Miniature Map of Mexico City
Paris, c.1683. Mexico City.
Plan of Mexico City
Paris, c.1760. The environs of Mexico City.
Map of Ciudad. del Carmen, Mexico
Paris, c.1760. The environs of Ciudad. del Carmen in Campeche.
An account of the conquest of Yucatan
Antonio de Herrera y Tordesillas
Amsterdam: van der AA, 1706. An account of Francisco Hernández de Córdoba's expedition from the Spanish colony in Cuba in search of new lands to conquer, taken from Antonio de Herrera y Tordesillas's history, He discovered the 'Island' of Yucatan and Campeche in Mexico, capturing two Mayans who were to become the first interpreters in that language for the Spanish. However the reception given by the other natives was not friendly: in one incident Francisco Hernández de Córdoba was hit by ten arrows. Desperate for fresh water the expedition decided to turn for home, sailing via Florida where they did find supplies. Hernández de Córdoba died from his injuries shortly after they reached Cuba. A second expedition was send under Juan de Grijalva, as recorded here; a third expedition, 1519, was led by Hernando Cortez and resulted in the Spanish conquest of Mexico.
HERR0001 £450.00
Isaak Tirion.
Amsterdam, 1764. Detailed map of the Isthmus of Panama, an important link between the Atlantic and Pacific even 150 years before the Canal.
TIRI0010 £200.00


text:
\section{Introduction}\label{sec:intro}
	Convolutional Neural Networks (CNNs) have seen wide success in domains where data is restricted to a Euclidean space. These methods exploit properties such as stationarity of the data distributions, locality and a well-defined notation of translation, but cannot model data that is non-Euclidean in nature. Such structure is naturally present in many domains, such as chemistry, physics, social networks, transportation systems, and 3D geometry, and can be expressed by graphs~\cite{bronstein2017geometric, hamilton2017representation}. By defining an operation on graphs analogous to convolution, Graph Convolutional Networks (GCNs) have extended CNNs to graph-based data. The earliest methods performed convolution in the spectral domain~\cite{bruna2013spectral}, but subsequent work has proposed generalizations of convolution in the spatial domain. There have been multiple successful applications of GCNs to node classification~\cite{velickovic2017graph} and link prediction~\cite{schlichtkrull2018modeling}, whereas we target graph classification similarly to~\cite{simonovsky2017dynamic}.

	Our focus is on multigraphs, a graph that is permitted to have multiple edges. Multigraphs are important in many domains, such as chemistry and physics.
	The challenge of generalizing convolution to graphs and multigraphs is to have anisotropic convolution kernels (such as edge detectors). Anisotropic models, such as MoNet \cite{monti2017geometric} and SplineCNN~\cite{fey2018splinecnn}, rely on coordinate structure, work well for vision tasks, but are suboptimal for non-visual graph problems. Other general models exist~\cite{gilmer2017neural, battaglia2018relational}, but making them efficient for a variety of tasks conflicts with the ``no free lunch theorem''.

	Compared to non-spectral GCNs, spectral models have filters with more global support, which is important for capturing complex relationships. We rely on Chebyshev GCNs (ChebNet)~\cite{defferrard2016convolutional} that enjoy an explicit control of receptive
	field size. Even though it was originally derived from spectral methods~\cite{bruna2013spectral}, it does not suffer from their main shortcoming --- sensitivity of learned filters to graph size and structure.

	\textbf{Contributions:} We propose a scalable spectral GCN that learns from multigraphs by capturing multi-relational graph paths as well as multiplicative and additive interactions to reduce model complexity and learn richer representations. We also learn new abstract relationships between graph nodes, beyond the ones annotated in the datasets. To our knowledge, we are the first to demonstrate that spectral methods can efficiently solve problems with variable graph size and structure, where this kind of method is generally believed not to perform well.

	\section{Multigraph Convolution}\label{sec:multigraph}
	While we provide the background to understand our model, a review of spectral graph methods is beyond the scope of this paper. Section~\ref{sec:spectral_graph_conv_details} of the Appendix reviews spectral graph convolution.\looseness=-1
	%
	\subsection{Approximate spectral graph convolution}
	%
	\label{sec:spectral_graph_conv}
	%
	We consider an undirected, possibly disconnected, graph $\cal G =(V, E)$ with $N$ nodes, $\cal V$, and edges, $\cal E$, having values in range $[0, 1]$. Nodes $v_i \in \cal V$ usually represent specific semantic concepts such as atoms in a chemical compound or users in a social network. Nodes can also denote abstract blocks of information with common properties, such as superpixels in images. Edges $e_{ij} \in \cal E$ define the relationships between nodes and the scope over which node effects may propagate.

	In spectral graph convolution~\cite{bruna2013spectral}, the filter $g \in R^N$ is defined on an entire input space.
	Although it makes filters global, which helps to capture complex relationships, it is also desirable to have local support since the data often have local structure and since we want to learn filters independent on the input size $N$ to make the model scalable.

	To address this issue, we can model this filter as a function of eigenvalues $\Lambda$ (which is assumed to be constant) of the normalized symmetric graph Laplacian $L$: $g = g(\Lambda)$. We can then approximate it as a sum of $K$ terms using the Chebyshev expansion, where each term $T_k(\Lambda) = 2 \Lambda T_{k-1}(\Lambda) - T_{k-2}(\Lambda)$ contains powers $\Lambda^k$. Finally, we apply the property of eigendecomposition:
	\begin{equation}
	\label{eq:eigen_property_power}
	L^k=(U \Lambda U^T)^k = U \Lambda^k U^T.
	\end{equation}
	By combining this property with the Chebyshev expansion of $g(\Lambda)$, we exclude eigenvectors $U \in \mathbb{R}^{N \times N}$, that are often infeasible to compute, from spectral graph convolution, and instead express the convolution as a function of graph Laplacian $L$.
	In general, for the input $X \in \mathbb{R}^{N \times X_{in}}$ with $N$ nodes and $X_{in}$-dimensional features in each node, the approximate convolution is defined as:
	%
	\begin{equation}
	\label{eq:cheb_conv_general}
	Y = \bar{X} \Theta,
	\end{equation}
	%
	where $\bar{X} \in \mathbb{R}^{N \times X_{in}K}$ are features projected onto the Chebyshev basis $T_k(\tilde{L})$ and concatenated for all orders $k \in [0, K-1]$ and $\Theta \in \mathbb{R}^{X_{in}K \times X_{out}}$ are trainable weights, where $\tilde{L} = L - I$.

	This approximation scheme was proposed in~\cite{defferrard2016convolutional}, and Eq.~\ref{eq:cheb_conv_general} defines the convolutional layer in the Chebyshev GCN (ChebNet), which is the basis for our method. Convolution is an essential computational block in graph networks, since it permits the gradual aggregation of information from neighboring nodes. By stacking the operator in~Eq.~\ref{eq:cheb_conv_general}, we capture increasingly larger neighborhoods and learn complex relationships in graph-structured data.
	%
	\subsection{Graphs with variable structure and size}
	\label{sec:graph_structure_size}
	%
	The approximate spectral graph convolution (Eq.~\ref{eq:cheb_conv_general}) enforces spatial locality of the filters by controlling the order of the Chebyshev polynomial $K$. Importantly, it reduces the computational complexity of spectral convolution from $O(N^2)$ to $O(K|\cal{E}|)$, making it much faster in practice assuming the graph is sparsely connected and sparse matrix multiplication is implemented.
	In this work, we observe an important byproduct of this scheme: that learned filters become less sensitive to changes in graph structure and size due to excluding the eigenvectors $U$ from spectral convolution, so that learned filters are not tied to $U$.

	\begin{figure}[]
		\begin{center}
			\vspace{-5pt}
			\begin{tabular}{ccc}

				\includegraphics[width=0.25\textwidth, trim={0.8cm 0cm 0cm 0cm}, clip]{ENZYMES_eigenvalues.pdf} &
				\includegraphics[width=0.25\textwidth, trim={0.8cm 0cm 0cm 0cm}, clip]{MUTAG_eigenvalues.pdf} &
				\includegraphics[width=0.25\textwidth, trim={0.8cm 0cm 0cm 0cm}, clip]{NCI1_eigenvalues.pdf} \\
				(a) ENZYMES & (b) MUTAG & (c) NCI1
				\vspace{-10pt}
			\end{tabular}
		\end{center}
		\caption{Histograms of eigenvalues of the rescaled graph Laplacian $\tilde{L}$ for the (a) ENZYMES, (b) MUTAG and (c) NCI1 datasets. Due to the property of eigendecomposition ($\tilde{L}^k=U \tilde{\Lambda}^k U^T$) the distribution of eigenvalues shrinks when we take powers of $\tilde{L}$ to compute the approximate spectral graph convolution (Eq.~\ref{eq:cheb_conv_general}).
		}
		\label{fig:eigen_distr}
	\end{figure}

	The only assumption that still makes a trainable filter $\hat{g}$ sensitive to graph structure is that we model it as a function of eigenvalues $\hat{g}(\Lambda)$. However, the distribution of eigenvalues of the normalized Laplacian is concentrated in a limited range, making it a weaker dependency on graphs than the spectral convolution via eigenvectors, so that learned filters generalize well to new graphs. Moreover, since we use powers of $\tilde{L}$ in performing convolution (Eq.~\ref{eq:cheb_conv_general}),
	the distribution of eigenvalues $\tilde{\Lambda}$ further contracts due to exponentiation of the middle term on the RHS of Eq.~\ref{eq:eigen_property_power}. We believe that this effect accounts for the robustness of learned filters to changes in graph size or structure (Figure~\ref{fig:eigen_distr}).

	\subsection{Graphs with multiple relation types}
	\label{sec:edge_fusion_methods}
	%
	In the approximate spectral graph convolution (Eq.~\ref{eq:cheb_conv_general}), the graph Laplacian $\tilde{L}$ encodes a single relation type between nodes. Yet, a graph may describe many types of distinct relations.
	In this section, we address this limitation by extending Eq.~\ref{eq:cheb_conv_general} to a multigraph, i.e.~a graph with multiple ($R \geq 1$) edges (relations) between the same nodes encoded as a set of graph Laplacians $\{\tilde{L}^{(r)}\}_1^R$, where $R$ is an upper bound on the number of edges per dyad.
	Extensions to a multigraph can also be applied to early spectral models~\cite{bruna2013spectral} but, since ChebNet was shown to be superior in downstream tasks, we choose to focus on the latter model.

	\paragraph{Two dimensional Chebyshev polynomial.}
	The Chebyshev polynomial used in Eq.~\ref{eq:cheb_conv_general} (see Section~\ref{sec:spectral_graph_conv_details} in Appendix for detail) can be extended for two variables (relations in our case) similarly to bilinear models, e.g.~as in~\cite{omar2010two}:
	%
	\begin{equation}
	\label{eq:2d_cheb}
	T_{ij}(\tilde{L}^{(r_1)},\tilde{L}^{(r_2)}) = T_i(\tilde{L}^{(r_1)})T_j(\tilde{L}^{(r_2)}), i,j = 0,...,K-1,
	\end{equation}

	and, analogously, for more variables. For $R=2$, the convolution is then defined as:
	%
	\begin{equation}
	\label{eq:2d_cheb_conv}

	Y = [\bar{X}_{0,0}, \bar{X}_{0,1},...,\bar{X}_{i,j},..., \bar{X}_{K-1,K-1}] \Theta,
	\end{equation}

	where $\bar{X}_{i,j} = T_i(\tilde{L}^{(r_1)})T_j(\tilde{L}^{(r_2)}) X $.
	In this case, we allow the model to leverage graph paths consisting of multiple relation types (Figure~\ref{fig:edge_fusion}).
	This flexibility, however, comes at a great computational cost, which is prohibitive for a large number of relations $R$ or large order $K$ due to exponential growth of the number of parameters: $\Theta \in \mathbb{R}^{X_{in}K^R X_{out}}$. Moreover, as we demonstrate in our experiments, such multi-relational paths do not necessary lead to better performance.

	\begin{figure}[]
		\begin{center}
			\begin{tabular}{ccc}

				{\includegraphics[width=0.26\textwidth,trim={2cm 17.5cm 22cm 1.5cm}, clip]{edge_fusion.pdf}} &
				{\includegraphics[width=0.26\textwidth,trim={6.7cm 17.5cm 17.3cm 1.5cm}, clip]{edge_fusion.pdf}} &
				{\includegraphics[width=0.15\textwidth,trim={12cm 17cm 13cm 1.5cm}, clip]{edge_fusion.pdf}} \\
				(a) & (b) &
			\end{tabular}
		\end{center}
		\caption{Comparison of (a) the fusion method based on a two-dimensional (2d) Chebyshev polynomial (Eq.~\ref{eq:2d_cheb},~\ref{eq:2d_cheb_conv}) to (b) other proposed methods in case of a 2-hop filter (a filter averaging features of nodes located two edges away from the filter center - $v_1$ in this case). Note that (a) can leverage multi-relational paths and the filter centered at node $v_1$ can access features of the node $v_3$, which is not possible for other methods (b). In this work, edge type $r_1$ can denote annotated relations, while $r_2$ can denote learned ones (Eq.~\ref{eq:edge_predict}). We also allow for three and more relation types.}
		\label{fig:edge_fusion}
	\end{figure}

	\paragraph{Multiplicative and additive fusion.}
	Motivated by multimodal fusion considered in the Visual Question Answering literature (e.g.~\cite{kim2016hadamard}), we propose the multiplicative operator:
	\begin{equation}
	\label{eq:multi_add_cheb_conv}
	Y = [f_{0}(\bar{X}^{(0)}) \odot f_{1}(\bar{X}^{(1)}) \odot ... \odot f_{R-1}(\bar{X}^{(R-1)})]  \Theta,
	\end{equation}

	where $f_r$ is a learnable differentiable transformation for relation type $r$ and $\bar{X}^{(r)}$ are features projected onto the Chebyshev basis $T_k(\tilde{L}^{(r)})$.
	In this case, node features interact in a multiplicative way. The advantage of this method is that it can learn separate $f_r$ for each relation and has fewer trainable parameters preventing overfitting, which is especially important for large $K$ and $R$.
	The element-wise multiplication $\odot$ in Eq.~\ref{eq:multi_add_cheb_conv} can be replaced with summation to perform additive fusion.

	 \paragraph{Shared projections.}
	 Another potential strength of the approach in Eq.~\ref{eq:multi_add_cheb_conv} is that we can further decrease model complexity by sharing parameters of $f_r$ between the relation types, so that the total number of trainable parameters does not depend on the number of relations $R$. Despite useful practical properties, as we demonstrate in the experiments, it is usually hard for a single shared $f_r$ to generalize between different relation types.

	\paragraph{Concatenating edge features.} A more straightforward approach is to concatenate features $\bar{X}^{(r)}$ for all $R$ relation types and learn a single matrix of weights $\Theta \in \mathbb{R}^{X_{in}KR \times X_{out}}$:
	%
	\begin{equation}
	\label{eq:concat_cheb_conv}
	Y = [\bar{X}^{(0)}, \bar{X}^{(1)},...,\bar{X}^{(R-1)}] \Theta.
	\end{equation}
	%
	This method, however, does not scale well for large $R$, since the dimensionality of $\Theta$ grows linearly with $R$. Note that even though multi-relational paths are not explicit in Eq.~\ref{eq:multi_add_cheb_conv} and \ref{eq:concat_cheb_conv}, for a \textit{multilayer} network, relation types will still communicate through node features. In Figure~\ref{fig:edge_fusion}, node $v_2$ will contain features of node $v_3$ after the first convolutional layer, so that in the second layer the filter centered at node $v_1$ will have access to features of node $v_3$ by accessing features of node $v_2$. Compared to the 2d polynomial convolution defined by Eq.~\ref{eq:2d_cheb_conv}, the concatenation-based, multiplicative and additive approaches require more layers to have a larger multi-relational receptive field.

	\section{Multigraph Convolutional Networks}
	\label{sec:model}
	A frequent assumption of current GCNs is that there is at most one edge between any pair of nodes in a graph. This restriction is usually implied by datasets with such structure, so that in
	many datasets, graphs are annotated with the single most important relation type, for example, whether two atoms in a molecule are bonded~\cite{wale2008comparison, duvenaud2015convolutional}. Meanwhile, data is often complex and nodes tend to have multiple relationships of different semantic, physical, or abstract meanings. Therefore, we argue that there could be other relationships captured by relaxing this restriction and allowing for multiple kinds of edges, beyond those annotated in the data.

	\subsection{Learning edges}
	\label{sec:learn_edges}
	Prior work (e.g.~\cite{schlichtkrull2018modeling,bordes2013translating}),
	proposed methods to learn from multiple edges, but similarly to the methods using a single edge type~\cite{kipf2016semi}, they leveraged only predefined (annotated) edges in the data.
	We devise a more flexible model, which, in addition to learning from an arbitrary number of predefined relations between nodes (see Section~\ref{sec:edge_fusion_methods}), learns abstract edges jointly with a GCN.
	We propose to learn a new edge $e^{(r)}_{ij}$ between any pair of nodes $v_i$ and $v_j$ with features $X_i$ and $X_j$ using a trainable similarity function:
	\begin{equation}
	\label{eq:edge_predict}
	e^{(r)}_{ij}=\frac{\exp\left(f_{\text{edge}}\left(X_i, X_j\right)\right)}{\sum_{k \in [1,|\cal V|]} \exp\left(f_{\text{edge}}\left(X_i, X_k\right)\right)},
	\end{equation}

	where the softmax is used to enforce sparse connections and $f_{\text{edge}}$ can be any differentiable function such as a multilayer perceptron in our work.
	This idea is similar to~\cite{henaff2015deep}, built on the early spectral convolution model~\cite{bruna2013spectral}, which learned an adjacency matrix, but targeted classification tasks for non graph-structured data (e.g.~document classification, with each document is represented as a feature vector). Moreover, we learn this matrix jointly with a more recent graph classification model~\cite{defferrard2016convolutional} and, additionally, efficiently fuse predefined and learned relations. Eq.~\ref{eq:edge_predict} is also similar to that of~\cite{velickovic2017graph}, which used this functional form to predict an attention coefficient $\alpha_{ij}$ for some \textit{existing} edge $e_{ij}$. The attention model can only strengthen or weaken some existing relations, but cannot form new relations. We present a more general model that makes it possible to connect previously disconnected nodes and form \textit{new} abstract relations.
	To enforce a symmetry of predicted edges we compute an average: $(e^{(r)}_{ij} + e^{(r)}_{ji}) / 2$.

	\subsection{Layer pooling versus global pooling}

	Inspired by convolutional networks, previous works~\cite{bruna2013spectral, defferrard2016convolutional,monti2017geometric,simonovsky2017dynamic,fey2018splinecnn} built an analogy of pooling layers in graphs, for example, using the Graclus clustering algorithm~\cite{dhillon2007weighted}.
	In CNNs, pooling is an effective way to reduce memory and computation, particularly for large inputs. It also provides additional robustness to local deformations and leads to faster growth of receptive fields. However, we can build a convolutional network without any pooling layers with similar performance in a downstream task~\cite{springenberg2014striving} --- it just will be relatively slow, since pooling is extremely cheap on regular grids, such as images.
	In graph classification tasks, the input dimensionality, which corresponds to the number of nodes $N=|\cal V|$, is often very small ($\sim10^2$) and the benefits of pooling are less clear. Graph pooling, such as in~\cite{dhillon2007weighted}, is also computationally intensive since we need to run the clustering algorithm for each training example independently, which limits the scale of problems we can address.
	Aiming to simplify the model while maintaining classification accuracy, we exclude pooling layers between conv.~layers and perform global maximum pooling (GMP) over nodes following the last conv.~layer. This fixes the size of the penultimate feature vector regardless of the number of nodes (Figure~\ref{fig:pipeline}).

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

	\subsection{Dataset details}
	We evaluate our model on five chemical graph classification datasets frequently used in previous work: NCI1 and NCI109~\cite{wale2008comparison}, MUTAG~\cite{debnath1991structure}, ENZYMES~\cite{schomburg2004brenda}, and PROTEINS~\cite{borgwardt2005protein}. For each dataset, there is a set of graphs with an arbitrary number of nodes $N=|\cal V|$ and undirected binary edges $|\cal E|$ of a single type ($R=1$) and each graph $\cal G$ has a single, categorical label that is to be predicted. Dataset statistics are presented in Table~\ref{table:networks} of the Appendix.

	Every graph represents some chemical compound labeled according to its functional properties.
	In NCI1, NCI109 and MUTAG, edges correspond to atom bonds (types of bonds) and vertices - to atom properties;	in ENZYMES, edges are formed based on spatial distance (edges connect nodes if those are neighbors along the amino acids sequence or if they are neighbors in space within the protein structure~\cite{borgwardt2005protein}); in PROTEINS, edges are similarly formed based on spatial distance between amino acids in proteins. Since edges in these datasets are not directly related to the features of nodes they connect, we expect that learned edges will enrich graph structure and improve graph classification.

	Node features $X$ are discrete in these datasets and represesented as one-hot vectors of length $X_{in}$. We do not use any additional node or edge attributes available for some of these datasets.

	These datasets vary in the number of graphs (188 - 4127), class labels (2~-~6) and the number of nodes in a graph (2~-~620) and, thereby, represent a comprehensive benchmark for our method. We follow the standard approach to evaluation~\cite{shervashidze2011weisfeiler,yanardag2015deep} and perform 10-fold cross-validation on these datasets. To minimize any random effects, we repeat experiments 10 times and report average classification accuracies together with standard deviations.

	\subsection{Architectural details and experimental setup}
	\begin{figure}[]
		\begin{center}
			\includegraphics[width=0.95\textwidth, trim={3cm 15cm 1.7cm 1.7cm}, clip]{pipeline.pdf}
		\end{center}
		\caption{Graph classification pipeline. Each $l\textsuperscript{th}$ convolutional layer in our model takes the graph ${\cal G}_l = ({\cal V}_l, {\cal E}^{(r)})$ and returns a graph with the same nodes and edges. Node features become increasingly global after each subsequent layer as the receptive field increases, while edges are propagated without changes. As a result, after several graph convolutional layers, each node in the graph contains information about its neighbors and the entire graph. By pooling over nodes we summarize the information collected by each node. Fully-connected layers follow global pooling to perform classification. Dashed orange edges denote connections learned as described in Section~\ref{sec:learn_edges}.
		}
		\label{fig:pipeline}
	\end{figure}

	In all experiments, we train a ChebNet with three graph convolutional layers followed by global max pooling (GMP) and 2 fully-connected layers (Figure~\ref{fig:pipeline}). Batch normalization (BN) and the ReLU activation are added after each layer, whereas dropout is added only before the fully-connected layers. Projections $f_r(\bar{X}^{(r)})$ in Eq.~\ref{eq:multi_add_cheb_conv} are modeled by a single layer neural network with $C=128$ hidden units and the $\tanh$ activation. The edge prediction function $f_{\text{edge}}$ (see Eq.~\ref{eq:edge_predict}, Section~\ref{sec:learn_edges}) is a two layer neural network with 128 hidden units (32 for PROTEINS), which acts on concatenated node features. Detailed network architectures are presented in Table~\ref{table:networks} of the Appendix.

	We train all models using the Adam optimizer~\cite{kingma2014adam} with learning rate of 0.001, weight decay of 0.0001, and batch size of 32, the learning rate is decayed after 25, 35, and 45 epochs and the models are trained for 50 epochs as in~\cite{simonovsky2017dynamic}.
	We run experiments for different fusion methods (Section~\ref{sec:edge_fusion_methods}) and Chebyshev orders $K$ in range from 2 to 6 (Section~\ref{sec:spectral_graph_conv}) and report the best results in Table~\ref{table:graph_class_results}.

	\newcommand\Tstrut{\rule{0pt}{2.6ex}}
	\newcommand\Bstrut{\rule[-0.9ex]{0pt}{0pt}}
	\newcommand{\std}[1]{{\scriptsize{$\pm$#1}}}
	\newcommand{\best}[1]{{\bfseries#1}}

	\begin{table}[t!]
		\caption{Chemical graph classification results (average accuracy and standard deviation in \%). Multigraph ChebNet obtains better results by leveraging two types of edges: annotated and learned, whereas all other models use only annotated edges. *We implemented MoNet, GCN and ChebNet. To make a fair comparison to Multigraph ChebNet, we use the same network architectures, batch-normalization, global max pooling. For MoNet, coordinates are defined using node degrees as in~\cite{monti2017geometric}. The top result across all methods for each dataset is bolded.}
		\label{table:graph_class_results}
		\small
		\begin{center}
			\begin{tabular}{lccccc}
				\textbf{Model}     & \textbf{NCI1} & \textbf{ NCI109} & \textbf{MUTAG} & \textbf{ENZYMES} & \textbf{PROTEINS}\Bstrut\\
				\hline
				WL~\cite{shervashidze2011weisfeiler} & 84.6\std{0.4} & 84.5\std{0.2} & 83.8\std{1.5} & 59.1\std{1.1} & $-$ \Tstrut \\
				WL-OA~\cite{kriege2016valid} & \best{86.1\std{0.2}} & \best{86.3\std{0.2}} & 84.5\std{1.7} & 59.9\std{1.1} & 76.4\std{0.4} \\
				structure2vec~\cite{dai2016discriminative} & 83.7 & 82.2 & 88.3 & 61.1 & $-$\\
				DGK~\cite{yanardag2015deep} & 80.3\std{0.5} & 80.3\std{0.3} & 87.4\std{2.7} & 53.4\std{0.9} & 75.7\std{0.5} \\
				PSCN~\cite{niepert2016learning} & 78.6\std{1.9} & $-$ & \best{92.6\std{4.2}} & $-$ & 75.9\std{2.8} \\
			 	ECC~\cite{simonovsky2017dynamic} & 83.8 & 82.1 & 88.3 & 53.5 & $-$\\
				DGCNN~\cite{zhang2018end} & 74.4\std{0.5} & $-$ & 85.8\std{1.7} & $-$ & 76.3\std{0.2} \\
				Graph U-Net~\cite{cangea2018towards} & $-$ & $-$ & $-$ & 64.2 & 75.5 \\
				DiffPool~\cite{ying2018hierarchical} & $-$ & $-$ & $-$ & 62.5 & 76.3 \\
				MoNet~\cite{monti2017geometric} - ours* & 69.8\std{0.2} & 70.0\std{0.3} & 84.2\std{1.2} & 36.4\std{1.2} & 71.9\std{1.2}\\
				GCN~\cite{kipf2016semi} - ours* & 75.8\std{0.7} & 73.4\std{0.4} & 76.5\std{1.4} & 40.7\std{1.8} & 74.3\std{0.5}\\
				\vspace{5pt}
				ChebNet~\cite{defferrard2016convolutional} - ours*& 83.1\std{0.4} & 82.1\std{0.2} & 84.4\std{1.6} & 58.0\std{1.4} & 75.5\std{0.4} \Bstrut\\
				\hline
				Multigraph ChebNet & 83.4\std{0.4} & 82.0\std{0.3} & 89.1\std{1.4} & 61.7\std{1.3} & \best{76.5\std{0.4}} \Tstrut \\
			\end{tabular}

		\end{center}
	\end{table}

	\vspace{-3pt}
	\subsection{Results}
	\label{sec:results}

	Previous works typically show strong performance on one or two datasets out of five that we use (Table~\ref{table:graph_class_results}). In contrast, the Multigraph ChebNet, leveraging two relation types (annotated and learned, see Section~\ref{sec:learn_edges}), shows high accuracy across all datasets.
	On PROTEINS we outperform all previous methods, while on ENZYMES two recent works based on differentiable pooling~\cite{ying2018hierarchical, cangea2018towards} are better,
	however it is difficult to compare to their results without the standard deviation of accuracies. We	also obtain competitive accuracy on NCI1 outperforming DGK~\cite{yanardag2015deep}, PSCN~\cite{niepert2016learning}, and DGCNN~\cite{zhang2018end}.
	Importantly, the Multigraph ChebNet with two edge types, i.e.~predefined dataset annotations and the learned edges (Section~\ref{sec:learn_edges}) consistently outperforms the baseline ChebNet with a single edge, which shows efficacy of our approach and demonstrates the complementary nature of predefined and learned edges.
	Lower results on NCI1 and NCI109 can be explained by the fact that the node features in the graphs of these datasets are imbalanced with some features appearing only a few times in the dataset. This is undesirable for our method, which learns new edges based on features and the model can predict random values for unseen features.
	On MUTAG we surpass all but one method~\cite{niepert2016learning}. But in this case the dataset is tiny, consisting of 188 graphs and the margin from the top method is not statistically significant.

	\paragraph{Evaluation of edge fusion methods.}
	We train a model using each of the edge fusion methods proposed in Section~\ref{sec:edge_fusion_methods} and report the summary of results in Figure~\ref{fig:edge_fusion_compare}. We count the number of times each method outperforms the others treating all 10 folds independently.
	As expected, graph convolution based on the two-dimensional Chebyshev polynomial is better for lower orders of $K$, since it exploits multi-relational graph paths, effectively increasing the receptive field of filters.
	However, for larger $K$, the model complexity becomes too high due to quadratic growth of the number of parameters and performance degrades.
	Sharing weights for multiplicative or additive fusion generally drops performance with a few exceptions in the multiplicative case. This implies that predefined and learned edges are of a different nature. It would be interesting to validate these fusion methods on a larger number of relation types.

	\begin{figure}[]
		\definecolor{col1}{HTML}{1F77B4}
		\definecolor{col2}{HTML}{FF7F0E}
		\definecolor{col3}{HTML}{2CA02C}
		\definecolor{col4}{HTML}{D62728}
		\definecolor{col5}{HTML}{9467BD}
		\definecolor{col6}{HTML}{8C564B}
		\definecolor{col7}{HTML}{E377C2}
		\begin{subfigure}{0.5\textwidth}
			\begin{flushleft}
				\includegraphics[width=\textwidth]{edge_fusion_compare.eps}
			\end{flushleft}
		\end{subfigure}
		\begin{subfigure}{0.2\textwidth}
			\footnotesize
			\begin{tabular}{lll}
				& \textbf{Fusion method} & \textbf{\# of parameters} \\
				\hline \\
				\tikz \fill [col7] (0.7,0.3) rectangle (0.2,0.2); & Single edge* (Eq.~\ref{eq:cheb_conv_general}) & $X_{in}KX_{out}$ \\
				\hline \\
				\tikz \fill [col1] (0.7,0.3) rectangle (0.2,0.2); & Concat (Eq.~\ref{eq:concat_cheb_conv}) & $X_{in}KRX_{out}$  \\
				\tikz \fill [col2] (0.7,0.3) rectangle (0.2,0.2); & 2d Cheb (Eq.~\ref{eq:2d_cheb_conv}) 	& $X_{in}K^R X_{out}$ \\
				\tikz \fill [col3] (0.7,0.3) rectangle (0.2,0.2); & Multiply (Eq.~\ref{eq:multi_add_cheb_conv}) & $C(X_{in}KR + X_{out})$ \\
				\tikz \fill [col4] (0.7,0.3) rectangle (0.2,0.2); & Sum (Eq.~\ref{eq:multi_add_cheb_conv}) & $C(X_{in}KR + X_{out})$ \\
				\tikz \fill [col5] (0.7,0.3) rectangle (0.2,0.2); & M-shared (Eq.~\ref{eq:multi_add_cheb_conv}) & $C(X_{in}K + X_{out})$ \\
				\tikz \fill [col6] (0.7,0.3) rectangle (0.2,0.2); & S-shared (Eq.~\ref{eq:multi_add_cheb_conv}) & $C(X_{in}K + X_{out})$ \\
			\end{tabular}
		\end{subfigure}
		\cprotect\caption{Comparison of edge fusion methods for 10 folds.
			We observe that some methods perform well for lower order $K$, such as 2d Chebyshev convolution winning in 18/50 cases for $K=2$, while others perform better for higher $K$, such as \verb+Multiply-shared+. \verb+Multiply+ generally performs well across different $K$. All fusion methods, except for \verb+Sum+ and \verb+Sum-shared+, consistently outperform the \verb+Single-edge+ baseline.
			We also show the number of parameters in $\Theta$ for the Chebyshev convolution layer depending on the number of input features $X_{in}$, number of output features $X_{out}$, number of relation types $R$, order $K$ and some constant $C$ (number of hidden units in a projection layer $f_r$ in Eq.~\ref{eq:multi_add_cheb_conv}). *\verb+Single-edge+ denotes using only annotated edges. All other methods additionally use the second edge, learned based on node features.}%
		\label{fig:edge_fusion_compare}
	\end{figure}

	\paragraph{Speed comparison.}
	We compare forward pass speed of the proposed method to the baseline ChebNet, MoNet~\cite{monti2017geometric} and GCN~\cite{kipf2016semi} (Figure~\ref{fig:speed}). Analgously to~\cite{kipf2016semi}, we generate random graphs with $N$ nodes and $2N$ edges. ChebNet with 2 edge types (Multigraph ChebNet) is on average two times slower than the baseline ChebNet with a single annotated edge. MoNet is in turn two times slower than Multigraph ChebNet. Multigraph ChebNet with 2d edge fusion is the slowest due to exponential growth of parameters, while GCN is the fastest, although the gap with the baseline ChebNet is small. Therefore, we believe that Multigraph ChebNet with certain edge fusion methods provides a relatively fast, scalable and accurate model.

	\begin{figure}[]
		\begin{center}
			\includegraphics[width=0.5\textwidth]{speed_compare.pdf}
		\end{center}
		\caption{Speed comparison of the baseline ChebNet, ChebNet with two edge types (Multigraph ChebNet), MoNet~\cite{monti2017geometric} and GCN~\cite{kipf2016semi}. MoNet-N$X$ refers to MoNet with $X$ filters.
		}
		\label{fig:speed}
	\end{figure}

	\section{Related work and Discussion}
	\label{sec:works}

	Our method relies on a fast approximate spectral graph convolution known as ChebNet~\cite{defferrard2016convolutional}), which was designed for graph classification. A simplified and faster version of this model, Graph Convolutional Networks (GCN)~\cite{kipf2016semi}, which is practically equivalent to the ChebNet with order $K=1$, has shown impressive node classification performance on citation and knowledge graph datasets in the transductive learning setting. In all our experiments, we noticed that using more global filters (with larger $K$) is important (Tables~\ref{table:graph_class_results}).
	Other recent works~\cite{hamilton2017inductive, velickovic2017graph} also focus on node classification and, therefore, are not empirically compared to in this work.

	Recent work of~\cite{ying2018hierarchical} proposed a differentiable alternative to clustering-based graph pooling, showing strong results in graph classification tasks, but at the high computational cost. To alleviate this, a more scalable approach based on dropping nodes~\cite{graphunet2018, cangea2018towards} was introduced and can be integrated with our method to further improve results.

	Closely related to our work, \cite{monti2017geometric} formulated the generalized graph convolution model (MoNet) based on a trainable transformation to pseudo-coordinates, which led to learning anisotropic kernels and excellent results in visual tasks. However, in non-visual tasks, when coordinates are not naturally defined, the performance is worse (Table~\ref{table:graph_class_results}). Notably, the computational cost (both memory and speed) of MoNet is higher than for ChebNet due to the patch operator in~\cite[Eq. (9)-(11)]{monti2017geometric} (Figure~\ref{fig:speed}). The argument in favor of MoNet against ChebNet was the sensitivity of spectral convolution methods, including ChebNet, to changes in graph size and structure. We contradict this argument and show superior performance on chemical graph classification datasets.
	SplineCNN~\cite{fey2018splinecnn} is similar to MoNet and is good at classifying both graphs and nodes, but it is also based on pseudo coordinates and, therefore, potentially has the same shortcoming of MoNet. So, its performance on general graph classification problems where coordinates are not well defined is expected to be inferior.

	Another family of methods based on kernels~\cite{shervashidze2011weisfeiler, kriege2016valid} shows strong performance on chemical datasets,	but their application is limitted to small scale graph problems with discrete node features. Scalable extensions of	kernel methods to graphs with continuous features were
	proposed~\cite{niepert2016learning, yanardag2015deep}, but they showed weaker results.

	\section{Conclusion}
	\label{sec:conclusion}
	In this work, we address several limitations of current graph convolutional networks and show competitive graph classification results on a number of chemical datasets. First, we revisit the spectral graph convolution model based on the Chebyshev polynomial, commonly believed to inherit shortcomings of earlier spectral methods, and demonstrate its ability to learn from graphs of arbitrary size and structure. Second, we design and study edge fusion methods for multi-relational graphs, and show the importance of validating these methods for each task to achieve optimal performance. Third, we propose a way to learn new edges in a graph jointly with a graph classification model. Our results show that the learned edges are complimentary to edges already annotated, providing a significant gain in accuracy.

	\section*{Acknowledgments}
	This research was developed with funding from the Defense Advanced Research Projects Agency (DARPA). The views, opinions and/or findings expressed are those of the author and should not be interpreted as representing the official views or policies of the Department of Defense or the U.S. Government.
	The authors also acknowledge support from the Canadian Institute for Advanced Research and the Canada Foundation for Innovation.

redpajama_set_name: RedPajamaArXiv


I often cook double for our family and drop it around to my neighbours house. We live on an awesome street! But recently I've had some friends who've been sick or stressed or needed babies and it's been too far away for me to drop over a meal.
So I came up with the idea of creating a meal kit that can be put in the post.
It's the perfect postpartum gift so I thought I'd share it with you too.
Another advantage of these meal kits is that they last for months and months, so if a mum is inundated with food in the first few weeks she can save them for later when everyone forgets about the new family.
I also use these for camping trips, or if my husband is travelling and I know I'll need some quick food handy.
You can put these meal kits in jars, or to post them I use cellophane bags cause they are light and biodegradable. All three will fit in a 500g pre-paid satchel with space for a card or other small gift.
All you need to do is mix all the ingredients together and print out the labels! I recommend you do a double or triple batch so you've got spares for other friends and yourself too.


The Leadership Winter Academy seeks to equip participants with essential leadership skills needed to build strong and sustainable business models in emerging and developing countries.
The 5-Day in-house training features interactive lectures, group discussions, role plays, and case studies.
Senior Managers in the development setting (Advanced level).
Individualised: Participants choose from a wide range of technical, soft-skill and trend electives.
Price includes full board accommodation. Group discount of 10 % in case of two or more participants per company and date.
Are you interested to dig deeper into the topic or do you want to earn ECTS credits?
The Leadership Winter Academy seeks to equip participants with essential leadership skills needed to build strong and sustainable business models in emerging and developing countries.The 5-Day in-house training features interactive lectures, group discussions, role plays, and case studies.
Senior managers in the development setting often experience very specific leadership challenges - leading multicultural teams in highly competitive environments; facing tough negotiations with donors, clients and staff; ensuring integrity and continuity. This course is customized to ensure that participants master the 5 essential leadership skills needed to build strong and sustainable business models in emerging and developing countries.
Tactics in Negotiations: What should be on the table? How should this be approached? Who should be involved?
Retaining talent in a highly competitive environment: poaching/succession planning, etc.
The fee for the Leadership Winter Academy is EUR 3.750, including tuition fee, training materials, facilities, accommodation for 6 nights in a single room (incl. full board) and social activities.
The Leadership Winter Academy is fully tuition based and not sponsored. Accordingly, participants have to cover the full costs of the training and/or find a sponsor for their participation.
The Leadership Winter Academy will be held for the first time at Frankfurt School's new campus: Adickesallee 32-34, 60322 Frankfurt am Main.
The campus offers a full range of the most modern facilities including high-class training rooms. Accommodation in single rooms will be arranged at a high-class hotel close to the new campus.
Our Winter Academy is an initiative of the Frankfurt School of Finance & Management, a leading private business school and advisory institute in Germany. Frankfurt School has more than 50 years of experience in consulting and training services in all areas of banking & finance.


text:
COJ.net > Welcome > Featured News > City Employee Earns Navy's Public Service Award for "Unparalleled Devotion" to Jacksonville Military
City Employee Earns Navy's Public Service Award for "Unparalleled Devotion" to Jacksonville Military and Families
Harrison Conyers III, the City of Jacksonville Military Affairs and Veterans Department (MAVD) operations manager, was honored by the U.S. Department of the Navy with the Meritorious Public Service Award, a prestigious civilian citation that is rarely given. During a ceremony at City Hall on Tuesday, Oct. 13, Captain Brian Weiss, commanding officer of Naval Air Station (NAS) Jacksonville, and Mayor Lenny Curry presented the medal to Conyers while highlighting his decades of dedication not only to active duty and retired military members, and their families, but to all of Jacksonville's citizens.
"It is an absolute honor to be recognized by the United States Navy and Mayor Curry," said Conyers. "It is such a privilege to be able to serve the veterans and active duty military that guarantee the freedoms we hold dear. Although I am blessed to receive this honor, it is being able to see the military bases protected and the veterans lives we change each day that is the true symbol of success."
Captain Weiss stated: "Harrison is the connection for veterans and active duty members in northeast Florida, not just for the Navy, but for all military services. What he does is truly phenomenal, and I am thrilled that we can give a little bit back to him on behalf of all the service members in the area."
Conyers began his career in city government in 1996 as an analyst in the Community Services Division; he then briefly worked with the Jacksonville Children's Commission (renamed the Kids Hope Alliance) as the Quality Services deputy director before moving to MAVD in 2005. As a department leader, Conyers serves as the MAVD representative to several veteran-serving organizations and initiatives; manages in-house services, like the Homeless Veterans Reintegration Program; coordinates special events including the Veterans Day Breakfast, Memorial Day Observance and Military Spouse Appreciation Day; and advocates on behalf of military members in northeast Florida at the local and federal levels, along with many other duties. Among his most notable achievements, is the creation of the Jacksonville Veterans Resource and Reintegration Center, a central agency for social services, financial assistance, career support and military family support that stemmed from a partnership with the Jacksonville Jaguars Foundation. For his efforts throughout the past 15 years, Conyers has received numerous military commendations including one in 2017 for securing $1.5 million in state grants used to protect local military installations from encroachment.
"Throughout my time as mayor, my team and I have known Harrison to be a dependable, committed and exceptional public servant," said Mayor Curry. "His love and commitment to his duty shines through in his professionalism and the high-quality of his work. As a public servant, he sets a high bar to which we all can aspire."
Bill Spann, director of MAVD, added: "Every wheel has a hub. In baseball, it is the catcher. In football, it is the quarterback. In music, it is the drummer. Harrison is the COJ MAVD hub – catcher, QB and drummer all in one. The guy bleeds red, white and blue. We would be lost without him. This award is well-deserved and I couldn't be prouder of him."
The Meritorious Public Service Award is the U.S. Navy's third highest civilian recognition and is presented to those who have made a substantial and positive impact on a specific activity or geographic location.


text:
package com.mogujie.ares.extend.action;

import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import com.mogujie.ares.data.Counter;
import com.mogujie.ares.data.Group;
import com.mogujie.ares.extend.BaseAction;
import com.mogujie.ares.lib.logger.Logger;
import com.mogujie.ares.lib.logger.LoggerFactory;
import com.mogujie.ares.lib.net.DataBuffer;
import com.mogujie.ares.model.CounterModel;
import com.mogujie.ares.model.GroupModel;
import com.mogujie.ares.util.MoguUtil;

public class MessageCounter extends BaseAction {

    private static final Logger logger = LoggerFactory
            .getLogger(MessageCounter.class);

    /*
     * 获得未读消息计数
     *
     * @param userId 请求的用户ID
     * @param clientType 客户端类型@see ClientType
     */
    public DataBuffer unread(int userId, int clientType, DataBuffer attachment, int version) {
        logger.info("unread count: userId=" + userId + ", clientType=" + clientType);
        DataBuffer buffer = new DataBuffer();
        buffer.writeInt(userId);

        Counter userUnreadCount = CounterModel.getInstance().getUnreadMsgCount(
                userId, clientType);
        Map<String, Integer> userUnreadInfo = userUnreadCount.getUnreadCount();
        String unreadCounterList = "";
        if (userUnreadInfo != null && userUnreadInfo.size() > 0) {
            buffer.writeInt(userUnreadInfo.size());
            Iterator<Map.Entry<String, Integer>> iter = userUnreadInfo
                    .entrySet().iterator();
            int uid;
            int count;
            while (iter.hasNext()) {
                Map.Entry<String, Integer> entry = iter.next();
                uid = Integer.valueOf(entry.getKey());
                count = Integer.valueOf(entry.getValue());
                buffer.writeInt(uid);
                buffer.writeInt(count);
                unreadCounterList += uid + "=" + count + ", ";
            }
        } else {
            buffer.writeInt(0);
        }
        logger.info("return unread count: userId = " + userId + " - "
                + unreadCounterList);

        return MoguUtil.writeAttachments(buffer, attachment);
    }

    /*
     * @auther ziye
     *
     * @Description: 清理消息计数,已读
     *
     * @param commandId
     *
     * @param requestId
     *
     * @param userId
     *
     * @param friendUserId
     *
     * @param clientType 客户端类型@see ClientType
     *
     * @return
     */
    public DataBuffer clear(int commandId, int requestId, int userId,
            int friendUserId, int clientType, int version) {
        logger.info("clear counter: requestId=" + requestId + ", userId=" + userId
        		+ ", friendUserId=" + friendUserId + ", clientType=" + clientType);

        int result = 0;
        if (!CounterModel.getInstance().clearUserUnreadItemCount(userId,
                friendUserId, clientType)) {
            result = 1;
        }

        /*暂时去除阅后即焚的功能
        try {
            MessageModel.getInstance().deleteUserReadedDialogMessages(userId,
                    friendUserId, clientType);
        } catch (SQLException e) {
            logger.error("", e);
        }*/

        DataBuffer responseBuffer = new DataBuffer();
        responseBuffer.writeInt(requestId);
        responseBuffer.writeInt(result);
        responseBuffer.writeChar((char) commandId);
        responseBuffer.writeInt(userId);
        responseBuffer.writeInt(friendUserId);

        return responseBuffer;
    }

    /*
     *
     * @Description: 获取群未读消息
     *
     * @param userId
     *
     * @param clientType 客户端类型@see ClientType
     *
     * @param attachment
     *
     * @param version
     *
     * @return
     */
    public DataBuffer groupUnread(int userId, int clientType, DataBuffer attachment, int version) {
        logger.info("group unread count: userId=" + userId + ", clientType=" + clientType);
        DataBuffer buffer = new DataBuffer();
        buffer.writeInt(userId);

        String values = "";
        try {
            List<Group> groups = GroupModel.getInstance().getGroupsByUserId(
                    userId, false);
            if (groups != null && !groups.isEmpty()) {
                int groupCount = groups.size();
                int[] groupIds = new int[groupCount];
                Group groupInfo = null;
                for (int i = 0; i < groupCount; i++) {
                    groupInfo = groups.get(i);
                    if (groupInfo != null && groupInfo.getGroupId() > 0) {
                        groupIds[i] = groupInfo.getGroupId();
                    }
                }
                Map<Integer, Integer> userUnreadCount = CounterModel
                        .getInstance()
                        .getUserGroupUnreadCount(userId, groupIds, clientType);
                if (userUnreadCount != null && !userUnreadCount.isEmpty()) {
                    values = userUnreadCount.toString();
                    DataBuffer tempDataBuffer = new DataBuffer();
                    Iterator<Entry<Integer, Integer>> it = userUnreadCount
                            .entrySet().iterator();
                    int groupId = 0;
                    int count = 0;
                    int num = 0;
                    Entry<Integer, Integer> entry = null;
                    while (it.hasNext()) {
                        entry = it.next();
                        groupId = entry.getKey();
                        count = entry.getValue();
                        if (groupId > 0 && count > 0) {
                            tempDataBuffer.writeInt(groupId);
                            tempDataBuffer.writeInt(count);
                            num++;
                        }
                    }
                    buffer.writeInt(num);
                    if (num > 0) {
                        buffer.writeDataBuffer(tempDataBuffer);
                    }
                } else {
                    buffer.writeInt(0);
                }
            } else {
                buffer.writeInt(0);
            }
        } catch (SQLException e) {
            logger.error("group unread, userId" + userId, e);
            buffer.writeInt(0);
        }

        logger.info("return group unread count: userId = " + userId + " - "
                + values);

        return MoguUtil.writeAttachments(buffer, attachment);
    }

    /*
     * @auther ziye
     *
     * @Description: 清除用户在这个群的未读消息计数,全部置为已读
     *
     * @param commandId
     *
     * @param requestId
     *
     * @param userId
     *
     * @param friendUserId
     *
     * @param clientType 客户端类型@see ClientType
     *
     * @return
     */
    public DataBuffer clearUserGroup(int commandId, int userId, int groupId,
            int clientType, int version) {
        logger.info("clear counter: userId=" + userId + ", groupId=" + groupId
        		+ ", clientType=" + clientType);

        int result = 0;
        if (!CounterModel.getInstance().clearUserGroupCounter(userId, groupId, clientType)) {
            result = 1;
        }

        DataBuffer buffer = new DataBuffer();
        buffer.writeInt(0);
        buffer.writeInt(result);
        buffer.writeChar((char) commandId);
        buffer.writeInt(userId);
        buffer.writeInt(groupId);

        return buffer;
    }

}

redpajama_set_name: RedPajamaGithub


text:
Check In on the Iowa Polling: Huckabee Up, Edwards Down
With both Iowa caucuses (the Republican and the Democratic) now firmly entrenched on January 3rd, let's take a look at some poll numbers.
According to a University of Iowa Hawkeye Poll, Mike Huckabee is a legitimate top-tier candidate in Iowa. He is now in third place (actually a statistical tie for second) with 12.8 percent. Rudy Giuliani has 13.1 percent, and the frontrunner, Mitt Romney aka Mr. Fantastic, has 36.2 percent. Romney has similarly huge leads in all the early states. Worth noting: (1) In August, Huckabee polled at two percent in the same poll. (2) Huckabee has spent $1.7 million on his campaign while Mr. Fantastic has spent $53.6 million, an object lesson in the limited power of money in politics. Who knew?
On the Democratic side, John Edwards has slipped a bit. His 20 percent support in Iowa represents a six point drop since August. Hillary Clinton tops the field with 28.9 percent and Obama places second with 26.6 percent. It's too bad John Edwards doesn't have this hilarious/awesome South Carolina mojo going for him in Iowa. I think that would win over a lot of caucus-goers.
Update: Here's an even more remarkable fact, considering the money disparity between Huckabee and Romney: Huckabee is actually beating Romney, though just barely, in a national Rasmussen poll. Maybe the Log Cabin Republicans are more effective that we know.