Eurasia - A Return to Sino-Centrism?
.yEurasia - A Return to Sino-Centrism?
Europe and Asia are a single super-continent lying, but for the exception of the Arabian and Indian subcontinent and Russia's Sakha peninsula, on a single tectonic plate. Europe's share of this landmass is only 20%, but it holds the largest proportion of agricultural land.
McKinder, one of the founding authors of the science of geostrategy, used the wording 'World Island' which seamen used to denote Eurasia and its African appendix.
The Himalaya-Hindu Kush-Karakorum mountain chain has the world's highest peaks, but it is the Mongolian steppes that are one of the most effective barriers between Asia and Europe together with deserts and several major rivers along which people settled. This led to cultural fragmentation particularly in Asia and the rise of very different languages. Vernacular languages were used along trade routes.
Paleolithic Europeans, who separated from Africans around 40,000 years ago, occupied the European continent until the arrival, 8,000 years ago, of a population from the Near East, which was in search of food and introduced farming.
Originally centered on the Mediterranean, where civilization flourished, trade routes encouraged migration west- and north-wards. There was little migration towards Eastern Europe.
Tool manufacture was very different between Europe, Western and Southern Asia and Africa on one side and the rest of Asia on the other and possible generic differences may be the basis for this, although there is the clear possibility that the availability of different materials may really be the cause.
From 500 BC to 1500 AD, Eurasia was dominated by four civilizations: the Chinese, the Greek, the Indian and the Middle Eastern. Scythian warriors and barbarian nomads from the Central Asian steppes ensured that a contact was maintained between them, borrowing and redistributing various cultural and technological elements.
For several centuries, Byzantium was the center of civilization as it diverged from Western civilization and leaned towards the East.
Europeans exported their culture to lands as far away as the American and Australian continents.
Eurasia contains 75% of the population and 75% of the planet's energy resources and most of the world's wealth. Seven out of the world's most populated countries are in Eurasia.
Two thousand years ago Eurasia's population was of 200 million inhabitants divided into four equal groups living in China, India, the Middle East and Europe including the southern Mediterranean.
By the end of the thirteenth century, China's population was between 70 and 100 million inhabitants. Xian, China's old capital, called at the time Changan, was the world's greatest urban center with a population of two million and was extremely cosmopolitan.
Europe, until the end of the ninth century saw large migratory waves that gradually filled the continent: Slavs, Germans displacing the Celts, the Arabs. It is only starting in the 17th century that Russia and Northern Europe became more intensely populated.
When the feudal system collapsed simultaneously throughout Eurasia, the population started growing with a consequent deforestation and conversion of space into arable land. Europe's population had thus access to higher amounts of protein.
A series of bad harvests at the beginning of the fourteenth century had two major consequences: a general famine and a lowered immune system that allowed the spread of the Black Death that killed a third of the population of Eurasia. Some historians believe the figure was as high as 50%.
The sharp increase in population that had occurred in Europe over the previous one hundred years - from approximately 25 million to 100 million - resulted in a major urban growth in appalling sanitary conditions and this was, no doubt, a contributing factor of the immense mortality due to the Plague.
The peasants who had survived in Western Europe were able to take possession of abandoned land and move away from marginal areas to more productive land. They also secured their freedom from forced labor. However, this was not the case in Asia where cheap labor persisted. Cheap labor is antithetic with technology.
In Britain, the nobility farmed the land with modern techniques which required a substantially smaller number of peasants.
Great Britain and Western Europe were thus able to accumulate considerable wealth while representing less than 20% of the world's population.
China had a fast population growth due to earlier marriage and to the absence of immigration. This led to a more intense use of resources.
In the seventeenth century population both in China and Europe reached a new high, but started declining at the end of that century to eventually reach a plateau.
In the Indian sub-continent, the main cities of the Mughal empire had a population of half a million each, and the population of the Indian sub-continent increased from a figure of 50 to 80 million in 1500 to reach 130 to 200 million in 1700.
At that same period, the population of South East Asia is of 23 million, thus only 20 to 25% of China's population. Several cities had a population of 100 000 inhabitants.
In the two centuries from 1500 to 1750, Japan's population grew from 16 to 32 million. Several cities had over one million inhabitants.
By 1750, the population patterns in both Asia and Europe were such that an ecological disaster was imminent, considering that technology had not developed to the point of enabling the population to better utilize resources.
By 1820, 55% of the world's population lived in China and India. Starting in 1950, both countries witnessed a population explosion.
As far back as 4000 years ago, the Silk Road was a global trading system. Its name originates with the trade of Chinese silk to India, and then to Rome through the Red Sea. Roman gold coins and products such as glass and wine were used as payment instruments. Mongolia and the steppe was another trading route and the Mongols will take advantage of it to build the world's largest contiguous empire.
If trade was essentially in silk cloth and finished products such as silk carpets, other products such as Indian cotton, medicinal products, Southeast Asian timber, tea and rice as well as agricultural and weapon technology were also exchanged.
These trade routes flourished until the thirteenth century and goods penetrated deeply into Europe, including some cities of Northern Europe.
Jewish traders, called Radhanites, brought to Europe, from the Arab world, jewelry, perfume, silk, spices and slaves.
China was, at the time, a very powerful country, with a navy so powerful that it explored, under Admiral Cheng Ho, Arabian Gulf and Eastern African ports.
Two, not necessary self-exclusive, explanations have been put forward for the collapse of the global trade routes: the bubonic plague and the collapse of the Mongol empire.
In the medieval world, China was the most developed region of the world, whether one considers it from the point of view of technology or wealth.
From the ninth to the fourteenth century, China benefited from an agricultural revolution, sustained by hydraulic techniques, and from considerable progress in communications. China's agriculture was the world's most sophisticated.
Chinese technology developed earlier than European know-how. In the eleventh century, printing was common and therefore a large number of books existed. Chinese cities also counted larger populations than those in Europe. Paper money was common. There was a large production of iron. Gunpowder had been invented and so had the compass. The junks were as big as galleons and military vessels were numerous and very large.
Gradually, however, Europe will overtake China both with regard to technology and wealth.
Several theories have been put forward to explain this major change.
One theory suggests that dietary differences between Europe and Asia, with Europeans consuming plants rich in protein, were an important factor in Europe's development.
One of Putin's main policies has been the creation of the Eurasian Economic Union (EEU) that, in fact, was to be more than a security tool (the Collective Security Treaty Organization) but that would also enhance economic development. It served to create a Russian sphere of influence on the region, to create an empire in opposition of the influence of the European Union (EU) and of China. If necessary, instability in the other countries was encouraged to attain the imperial dream.
So far, there has been neither improved security through the building of infrastructure, nor economic development.
In this undertaking China is proving to be a major rival as it is using Central Asia as a land bridge to Europe in a project called One Belt, One Road. In this project, China undertakes to build infrastructure in Central Asia to help the countries in the area boost exports, but it will also use the infrastructure to allow for the shipment of much needed commodities to China and for faster and cheaper routes to export Chinese products. Estimates show that once the project, will be accomplished by 2025 to 2030, it will add $ 2.5 trillion to China's exports.
Russia's economy suffering from the sanctions imposed to it as well as from lower oil and commodity prices, Central Asian countries are increasingly relying on China for their financial needs. Tajikistan has gone as far as ceding part of its territory to China for debt relief.
China sees the One Belt, One Road initiative as a means of restoring its previous place at the center of Eurasia's economy and, longer term, as the world's hegemon.
Sinocentrism is a historical model in which China was the cultural center of the world and other countries paid a tribute to it. We may well be returning to a similar system as the other countries in Eurasia continue on a downward demographic and economic slope.
Anina Net: "Chinese New Year is really the biggest festival for the chinese people in the whole year.
People get to have a rest and travel back to their home towns, often very far away in rural areas. Long train rides, closed factories, and no one answering the phone. A real break from it all to connect with their families. Here is the some of the backstage story to our journey. What was really significant were the people who are on our team and our dear friends in China, they made it even better! Without Biman Najika Liyanage , Jenna Merrill, Ellen, Azurel, David Ubl , Aurelien Lecour , Olga, Shorty, Leandro, the factory team, our beloved flower making girls, and the incredible Intel Team!! There were nights and nights where we had to meet the deadlines of CCTV's gruelling rehearsal and video recordings.
The high security--they don't allow foreigners into the Spring Festival. I think we must be one of the only teams. At the end, everyone knew me with my gold hat and 3D printed glasses--so if something had to be gotten from beyond the two layers of security checkpoints and scans--I was able to skip in and skip out (almost) to get the items. No food, no water, no strange electronics (try getting 200 batteries into such a high security location every day).
Everyone worked so hard to make this possibility happen, from executive director Jiang Gang , to Spin Peng and Paul Lu . This project was the most challenging I have yet to have done.
We made it to the finish line together! One Team."
May you live in interesting times, goes the old Chinese curse. So let's pause to consider the changes 2016 brought and what 2017 portends. As AIs flex their mental muscles by beating our best gamers, answer questions spoken into our phones and square up to drive our cars, the machines around us proliferate. From the tiny chattering chips in our homes and offices to drones large and small, benign and deadly. They're here to help us, but they're taking our jobs. They can face danger in our place, but they can be danger too. How will this all pan out - are humans going to deal with this sensibly, given that we react to the consequences of increasing inequality and strife by blaming the victims and voting for billionaires?
Cancer may finally be on the retreat and 3D-printed replacement organs are on the horizon yet reckless use of antibiotics threatens incurable superbug infections and research into ageing has produced the bizarre phenomenon of billionaires looking to find youth, vampire-like, by transfusing the blood (plasma) of young people. Genetic engineering is becoming a precise technology (CRISPR), bringing great promise but maybe great dangers (bioterrorism).
Climate change looks increasingly apocalyptic, but the president of the most powerful country on the planet thinks it is a hoax. Yet solar and wind power promise to start to displace fossil fuels on economics alone, electric cars look set to accelerate the transition, and these technologies could at the same time bring electricity (and the internet and all that entails) to the poorest on the planet for the first time.
He was Provost of Nazarbayev University in Kazakhstan, a five billion dollar project to create a research university for Central Asia in co-operation with six of the top 30 universities in the world including Cambridge, Carnegie-Mellon and the National University of Singapore.
He has been an investor and founder of three high technology start-ups and advised many governments and regions on the strategy, policies and implementation of innovation clusters and the exploitation of research from universities.
PerspeXo Is an independent strategy firm She has worked in the fields of strategy, investor relations, communications, and structured finance at two AEX-listed companies, CF PwC and Merchant bank MeesPierson. Over more than 21 years she has assisted over 150 boards (of large stock exchange listed and entrepreneurs small companies) and directors in formulating and realising value strategies.
She holds degrees in economics and archaeology, and an MBA, having studied in Amsterdam and Jerusalem. She regularly acts as moderator and speaker at conferences and business schools.
Until January 2008 Huib Wursten was owner and one of the two managing partners of Itim International, a firm specialized in advising companies and supra-national organizations in managing cultural dynamics. Itim International has licensees in 25 countries across the world. Huib sold the company in 2008 and is now working as senior consultant and lecturer for the same organization, concentrating on projects he considers as interesting. Huib is experienced in translating the international and global strategies and policies into the practical consequences for management.
The objective of this study is to identify good practices that ensure the security of smart cars against cyber threats, with the particularity that smart cars' security shall also guarantee safety. The study lists the sensitive assets present in smart cars, as well as the corresponding threats, risks, mitigation factors and possible security measures to implement. To obtain this information, experts in the fields and areas related with smart cars were contacted to gather their know-how and expertise. These exchanges led to three categories of good practices: Policy and standards, Organizational measures, and Security functions.
The Report presents a new global index, the Inclusive Development Index (IDI), providing a richer and more nuanced assessment of countries' level (and recent performance) of economic development than the conventional one based on GDP per capita alone. It also provides a policy framework showing the many factors that can drive a more inclusive growth process.
Alex Kipman is the Technical Fellow of new device categories in the Windows and Devices Group at Microsoft. An innovator at heart, Kipman has led four major break-through products for the company, including Kinect in 2010. Microsoft HoloLens is his latest product creation, bringing holograms to Windows. Kipman is named as the primary inventor on more than 100 patents since joining Microsoft in 2001.
Kipman's dedication to creating new experiences with cutting-edge technology propelled Kinect to become the world's fastest selling consumer electronics device. As a result he entered Microsoft's Hall of Legends in 2011. This award recognizes an individual responsible for creating or directly influencing a visionary initiative through collaboration and technical leadership, creating a breakthrough in the technology industry.
Kipman was born in Brazil and graduated from Rochester Institute of Technology in 2001 with a degree in software engineering. He was named one of TIME Magazine's 2011 '100 People of the Year.' In 2012, he was named National Inventor of the Year by the nonprofit Intellectual Property Foundation.
Creating software for Kinect posed significant challenges, but that never bothered Alex Kipman. Why should it, when according to Kipman, anything is possible?
"The reason I fell in love with this art form is because the only thing that holds you back is lack of imagination," he explains. "In physics, there are laws you can't bend. But in software, you can bend anything. So nothing is impossible."
Alex Kipman wants to create a new reality — one that puts people, not devices, at the center of everything. With HoloLens, the first fully untethered holographic computer, Kipman brings 3D holograms into the real world, enhancing our perceptions so that we can touch and feel digital content. In this magical demo, explore a future without screens, where technology has the power to transport us to worlds beyond our own.
Why do some people succeed at change while others fail? It's the way they think! Liminal thinking is a way to create change by understanding, shaping, and reframing beliefs. What beliefs are stopping you right now? You have a choice. You can create the world you want to live in, or live in a world created by others. If you are ready to start making changes, read this book.
Spanning academics, business and the arts, Raffaello D'Andrea's career is built on his ability to bridge theory and practice. At the Swiss Federal Institute of Technology (ETH) in Zurich, his research redefines what autonomous systems are capable of.
He is co-founder of Kiva Systems (acquired by Amazon in 2012, and now operating as Amazon Robotics), a robotics and logistics company that develops and deploys intelligent automated warehouse systems.
He was the faculty advisor and system architect of the Cornell Robot Soccer Team, four-time world champions at the international RoboCup competition. With his startup, Verity Studios, he recently created the flying machine design and choreography for Cirque du Soleil's Paramour on Broadway.
We've all heard the expression: "The whole is greater than the sum of its parts." Alone, these vehicles can drive about on the ground, but it is not until they assemble that they are able to fly.
The Distributed Flight Array is a flying platform consisting of multiple autonomous single propeller vehicles that are able to drive, dock with their peers, and fly in a coordinated fashion. Once in flight the array hovers for a few minutes, then falls back to the ground, only to repeat the cycle again.
The individual vehicles of the Distributed Flight Array have fixed propellers that can lift them into the air, but the resulting flight is erratic and uncontrolled. Joined together, however, these relatively simple modules evolve into a sophisticated multi-propeller system capable of coordinated flight. The task of keeping the array in level flight is distributed across the network of vehicles. Vehicles exchange information and combine this information with their own sensor measurements to determine how much thrust is needed for the array to take-off and maintain level flight. If the array's leveled flight is disturbed, each vehicle individually determines the amount of thrust required to correct for the disturbance based on its position in the array and the array's motion.
In this project, several unique juggling robots have been developed that can juggle without any cameras, microphones, or any other sensors to detect the balls. We used mathematical analysis to design the hardware of the robots such that sensorless juggling is possible.
The juggling robots are used as test-beds for validating algorithms and tools we develop in our research in the control of dynamic systems. The main research project investigates the use of chaos to control dynamic systems that are challenging to control due to their symmetric structure.
In addition, the juggling robots are regularly exhibited at engineering promotion events in Swiss high-schools, and in other outreach activities.
Max More is an internationally acclaimed strategic futurist who writes, speaks, and organizes events about the fundamental challenges of emerging technologies. Max is concerned that our rapidly developing technological capabilities are racing far ahead of our standard ways of thinking about future possibilities. His work aims to improve our ability to anticipate, adapt to, and shape the future for the better.
Dr. More co-founded and until 2007acted as Chairman of Extropy Institute, a diverse network of innovative thinkers committed to creating solutions to enduring human problems. He authored the Principles of Extropy, which form the core of a transhumanist perspective. As a leading transhumanist thinker, Max strongly challenges traditional, limiting beliefs about the possibilities of our future. At the same time, he tempers visionary aims with analytical and practical strategizing.
Dr. More is President and Chief Executive Officer of Alcor Life Extension Foundation . The Alcor Life Extension Foundation is the world leader in cryonics, cryonics research, and cryonics technology. Cryonics is the science of using ultra-cold temperature to preserve human life with the intent of restoring good health when technology becomes available to do so. Alcor is a non-profit organization located in Scottsdale, Arizona, founded in 1972.
As a writer, Max has authored dozens of articles and papers on topics including how to improve and apply critical and creative thinking, especially about uncertain future possibilities; the ethics of biotechnology and other technologies that directly affect humans; the philosophical implications of technological transformations of human nature; and strategic futures thinking in business. He recently wrote the Proactionary Principle, the latest of influential pieces that include "The Principles of Extropy", and "A Letter to Mother Nature". He is currently working on a book, tentatively titled Beyond Caution, that responds to resurgent neophobia with a spirited yet balanced defense of progress.
His academic background: Max has a degree in Philosophy, Politics, and Economics from St. Anne's College, Oxford University (1984-87). He was awarded a Dean's Fellowship in Philosophy in 1987 by the University of Southern California. Max studied and taught philosophy at USC with an emphasis on philosophy of mind, ethics, and personal identity, completing his Ph.D. in 1995, with a dissertation that examined issues including the nature of death, and what it is about each individual that continues despite great change over time.
"Mother Nature, truly we are grateful for what you have made us. No doubt you did the best you could. However, with all due respect, we must say that you have in many ways done a poor job with the human constitution. You have made us vulnerable to disease and damage. You compel us to age and die – just as we're beginning to attain wisdom. And, you forgot to give us the operating manual for ourselves!
Copyright © 2002-2017, Club of Amsterdam. All rights reserved.
Kipman's dedication to creating new experiences with cutting-edge technology propelled Kinect to become the world's fastest selling consumer electronics device. As a result he entered Microsoft's Hall of Legends in 2011. This award recognizes an individual responsible for creating or directly influencing a visionary initiative through collaboration and technical leadership, creating a breakthrough in the technology industry.
Kipman was born in Brazil and graduated from Rochester Institute of Technology in 2001 with a degree in software engineering. He was named one of TIME Magazine's 2011 '100 People of the Year.' In 2012, he was named National Inventor of the Year by the nonprofit Intellectual Property Foundation.
Alex Kipman wants to create a new reality — one that puts people, not devices, at the center of everything. With HoloLens, the first fully untethered holographic computer, Kipman brings 3D holograms into the real world, enhancing our perceptions so that we can touch and feel digital content. In this magical demo, explore a future without screens, where technology has the power to transport us to worlds beyond our own.
Spanning academics, business and the arts, Raffaello D'Andrea's career is built on his ability to bridge theory and practice. At the Swiss Federal Institute of Technology (ETH) in Zurich, his research redefines what autonomous systems are capable of.
He was the faculty advisor and system architect of the Cornell Robot Soccer Team, four-time world champions at the international RoboCup competition. With his startup, Verity Studios, he recently created the flying machine design and choreography for Cirque du Soleil's Paramour on Broadway.
We've all heard the expression: "The whole is greater than the sum of its parts." Alone, these vehicles can drive about on the ground, but it is not until they assemble that they are able to fly.
The individual vehicles of the Distributed Flight Array have fixed propellers that can lift them into the air, but the resulting flight is erratic and uncontrolled. Joined together, however, these relatively simple modules evolve into a sophisticated multi-propeller system capable of coordinated flight. The task of keeping the array in level flight is distributed across the network of vehicles. Vehicles exchange information and combine this information with their own sensor measurements to determine how much thrust is needed for the array to take-off and maintain level flight. If the array's leveled flight is disturbed, each vehicle individually determines the amount of thrust required to correct for the disturbance based on its position in the array and the array's motion.
As a writer, Max has authored dozens of articles and papers on topics including how to improve and apply critical and creative thinking, especially about uncertain future possibilities; the ethics of biotechnology and other technologies that directly affect humans; the philosophical implications of technological transformations of human nature; and strategic futures thinking in business. He recently wrote the Proactionary Principle, the latest of influential pieces that include "The Principles of Extropy", and "A Letter to Mother Nature". He is currently working on a book, tentatively titled Beyond Caution, that responds to resurgent neophobia with a spirited yet balanced defense of progress.
His academic background: Max has a degree in Philosophy, Politics, and Economics from St. Anne's College, Oxford University (1984-87). He was awarded a Dean's Fellowship in Philosophy in 1987 by the University of Southern California. Max studied and taught philosophy at USC with an emphasis on philosophy of mind, ethics, and personal identity, completing his Ph.D. in 1995, with a dissertation that examined issues including the nature of death, and what it is about each individual that continues despite great change over time.


text:
Menu CTBTO Preparatory Commission
Verification Regime
Expert Area
© 2012 CTBTO
Preparatory Commission
Home/Information Centre/Press Releases
On-site inspections workshop
opens in Hiroshima
PI/2003/21
A workshop on Operations, Procedures and Equipment for On-Site Inspections (OSI) has opened on 30 June 2003 in Hiroshima, Japan. The workshop brings together some fifty participants from Australia, Chile, China, Croatia, France, Germany, Israel, Italy, Japan, Kazakhstan, the Netherlands, Russia, Slovakia and the Provisional Technical Secretariat, as well as some retired experts from the United States. The workshop aims to facilitate the elaboration of the OSI Operational Manual, as well as field experiments and equipment development and testing, thus supporting the build up of the OSI regime.
The workshop is taking place from 30 June to 4 July. Participants were welcomed by Dr Haruhiro Fukui, President of the Hiroshima Peace Institute, and hosted at an evening reception by the Mayor of Hiroshima, Dr Tadatoshi Akiba.
Two sessions of the workshop are devoted to a review of the results and lessons of the 2002 OSI Field Experiment. Participants will also discuss new contributions to the OSI Operational Manual, and examine the development and testing of OSI equipment. The Executive Secretary of the CTBTO Preparatory Commission, Mr Wolfgang Hoffmann, and the workshop participants will participate in a flower-laying ceremony at the Cenotaph for A-bomb victims. They will also visit the Atomic Bomb Dome and the Peace Memorial Museum on 3 July 2003.
On-site inspections are regarded as a final verification measure of the Comprehensive Nuclear-Test-Ban Treaty, and can only occur once the Treaty has entered into force. To enter into force, the Treaty must be signed and ratified by the 44 States that formally participated in the work of the 1996 session of the Conference on Disarmament and that possess nuclear power or research reactors. Thirty-one of these States have ratified the Treaty. To date, 167 States in total have signed the Treaty, and 102 have ratified it.
For further information on the CTBTO, please see www.ctbto.org or contact:
Annika Thunborg, Chief, Public Information
T +43 1 26030-6375
E annika.thunborgping@ctbtopong.org
I www.ctbto.org
DPRK nuclear tests
History of Nuclear Testing
Types of Nuclear Weapons
Effects of Nuclear Testing
Infamous Anniversaries
Treaty Text
Status of Signature and Ratification
History: Summary
History: 1945-1993
1993-1996: Treaty Negotiations
Developments After 1996
Article XIV Conferences
CTBT Ministerial Meetings
CTBTO Preparatory Commission
Provisional Technical Secretariat
CTBTO After Entry Into Force
Workshops, Training and Exercises
Meeting Schedule and Calendar of Events
Science and Technology Conference Series
Facility Agreements
Member States' Payments
Protocol Resources
Building the International Monitoring System
Station Profiles
Global Communications Infrastructure
International Data Centre
On-site Inspection
The 11 March Japan Disaster
Civic and Scientific Applications of CTBT Data and Technologies
Reports, Analyses and Statements
Selected Statements from the CTBTO
CTBTO Image Packages
CTBTO Audio Recordings
Spectrum Publication
PhotosVideosExpert AreaProcurementEmploymentSite MapGlossaryFAQContact

redpajama_set_name: RedPajamaCommonCrawl


Addictive puzzle game with 24 levels where you´ll need to use your imagination to overcome the difficulties each level brings. There are many achievements to earn that will gain you more incredible characters.
Most of the instructions on how to play are explained in the first 4 levels, the tutorial. R to reset the current level, U to undo movements, P or Esc to pause the game and M to mute. You can save and load the levels in the pause menu. There are 2 "skip level" gifts in case you get stuck, if wasted you will be able to earn more throughout the game.


No I believe it is his achilles very worrying hope hes back soon strong... a great player who has been outstanding after some very serious injurys including the cruciate ...great bit of stuff we need him.
Colm Spillane doesn't have much luck with injuries...on that timeline and depending how the recovery goes he may well be dodgy for the Munster championship. Has come on a lot in last 2 years, our fullback line will be much weaker without him...and its by no means watertight at best.
Team named tonight? Cork have a growing injury list. Fitzgibbon final could rule out some players also, but a win v Clare is a must IMO. Cork has had the upper hand v the banner since 2013 final and lets continue it this weekend. A win at home after the Harty final would make for a great day.
Harnedy back at CF. Maccie in corner. Kearney and Lehane on wings. Walsh FF . Bill and Cormac midfield.the rest as before I think.
Redadare wrote: Harnedy back at CF. Maccie in corner. Kearney and Lehane on wings. Walsh FF . Bill and Cormac midfield.the rest as before I think.
Just looked at the Cork gaa website, no information about when the team will be announced. Are they too busy looking at tenders for the turf repairs to mention about the match tomorrow night or have they forgotten their "grassroots"
Any minute now. 9 pm they say.
The Cork Senior Hurling team for the Round 2 of the National Hurling League against Wexford this Sunday has been announced.
And still in round 2? So it was all a dream?
Corrected now. Like lightning they are.


Discussion in 'Decorating' started by ashley0323, Aug 16, 2016.
I have two very special little girls, whose birthday is almost here. This year, I am going to do a "cupcake cake". Im going to make tons of little pink cupcakes and shape them to appear to be a dress. I am in need of decorating supplies. What are some starter things I need?
i'm gonna tell you what i used to make the cup cakes in my avatar picture . . .
you'll need icing cone(bag) and icing tip , try buying big icing tips it makes your job easier and faster . . .
and frosting of course . . .
electric mixer for the frosting . . .
for anything else you can use your normal kitchen stuff . . .
What's your favorite place to shop at for food goods or household supplies?
What are some Quick Cake Recipes?
What are some of your holiday baking traditions?
Making muffins moist; what are some healthy options?
Are there dangerous chemicals in some sprinkles?
What's are some of your favorite genres of music?
What are some common mistakes you might make in baking?
What are some cute recipe ideas for children?


text:
World of Zelda
WW-Wii U TWW on Wii U Virtual Console
Thread starter Kid Buu
Kid Buu
The Ultimate Majin
Nintendo has already said the some Gamecube games would be available for download on the Wii U. That means that the Wind Waker is most likely going to be on it.
Could you imagine playing it in HD with the new controller? You wouldn't have to pause the game to look at the map or select an item!
One of my ideas with the controller is to be able to use it with the Tingle Tuner. Do you people have any ideas or speculation?
Kid Buu said:
Since the Wii U will not be backwards compatible with Gamecube discs like the wii is, it would be great to see the WW on virtual console; however, virtual console games are just ports of the originals. All virtual console games appear exactly as they were originally produced. For example, the VC release of ALttP does not include the changes introduced in the GBA rerelease. The only game we have seen altered on virtual console was FS; however, this was an anniversary remake rather than a VC port. There is never new interface. If WW is on virtual console, you will not see anything that was not in the original including gameplay or control elements.
Heroine of Time
Rest in peace, Paris Caper...
Whiterun
Take a guess.
I think it's highly likely they'll release Wind Waker onto the Wii U, if they've already said they're bringing GameCube games to it (which I hadn't heard). However, like Brandon said, it wouldn't be a remake. You can download the N64 Ocarina of Time onto the Wii right now but you can't use the Wii controller with it. They'd probably still have the original controls.
LinkGoro
Hero of Gorons
In that little heart piece room in the Windmill Ho
I agree with Brandon. It's nice for me that Nintendo puts GC games as a virtual console due to that i have never played many GC games.
Brandon said:
If your referring to what I said about HD was, then you were off. What I meant by HD was to enhance the quality of the game, not the graphics. But you were right about the port part.
Fred Flintstone
So then they would have a nonusable item? They can't have the (almost never used) tingle tuner impossible to use. What about the tinglr statues? They would be in the game but not acssable. I think they would do more than a simple port for somthing like this.
RedDekuScrub
Red as the Crimson Sun
If it is on the VC on the WiiU I do not think it will have the controller enhancement.
Fred Flintstone said:
What in the world are you talking about?


Spain has a great Literature tradition, from the Middle ages to present time. Check the Links and answer the questions. Good Luck!
1) Which poet won the Spanish National prize of Literature in 1966? With which work?
2) What is considered the best period of the writer José de Zorilla?
3) Wich literature review was the most representative one after Spanish civil war?
5) What are the three "folk tragedies" of Lorca?
civil war? Where did he lived from 1961 to 1977?
- In the last link, you will find some of the famous "Rimas" by the poet Gustavo Adolfo Becquer. Choose one and try to explain what is the intention of the author. Try to translate into english the number XXI.


text:
Costa Rica signs $500 million loan with IDB
Costa Rica made official two budget support loans this Thursday with the Inter-American Development Bank (IDB), for an amount of 500 million dollars.
IDB approves $500 million loan for Costa Rica
Alejandro Zúñiga - May 6, 2021
The Inter-American Development Bank (IDB) said Wednesday that it has approved two loans to Costa Rica totaling $500 million.
Costa Rica news highlights to end your week
Alejandro Zúñiga - December 11, 2020
Costa Rica discusses loans from the IMF and the IDB, and is there a lion loose in Costa Rica?
Costa Rica news highlights to start your Tuesday
Alejandro Zúñiga - December 8, 2020
Costa Rica coronavirus news, IDB loans, IMF loans, and Costa Rica weather.
Trump succeeds in making advisor Mauricio Claver-Carone president of the IDB
The Tico Times - September 12, 2020
Mauricio Claver-Carone, became the first U.S. citizen to be elected as president of the Inter-American Development Bank (IDB) despite the opposition of some countries that wished for a continuation of the tradition that the entity be led by a Latin American.
Trump advisor set to lead Inter-American Development Bank
He would be the first non-Latin American in 60 years to lead the IDB, and this has caused friction among its member states.
Former Costa Rican president Laura Chinchilla withdraws candidacy for IDB presidency
The Tico Times - September 3, 2020
The former president of Costa Rica, Laura Chinchilla, withdrew her candidacy for the presidency of the Inter-American Development Bank (IDB), the government announced Thursday.
U.S. and 16 other countries refuse to postpone elections for IDB president
The Tico Times - August 19, 2020
Costa Rica has nominated former President Laura Chinchilla as IDB leader.
Costa Rica supports postponing election for new IDB president
The Tico Times - August 8, 2020
Latin American Presidents, IMF and IDB discuss how to deal with the effects of pandemic
The presidents of nine Latin American countries teleconferenced with senior executives of the IMF, the World Bank and the IDB on Wednesday to discuss how to face the economic impact of the coronavirus.


text:
namespace {

const std::string kUnreachableWebDataURL = "data:text/html,chromewebdata";

Status GetMouseButton(const base::DictionaryValue& params,
                      MouseButton* button) {
  int button_num;
  if (!params.GetInteger("button", &button_num)) {
    button_num = 0;  // Default to left mouse button.
  } else if (button_num < 0 || button_num > 2) {
    return Status(kUnknownError,
                  base::StringPrintf("invalid button: %d", button_num));
  }
  *button = static_cast<MouseButton>(button_num);
  return Status(kOk);
}

Status GetUrl(WebView* web_view, const std::string& frame, std::string* url) {
  std::unique_ptr<base::Value> value;
  base::ListValue args;
  Status status = web_view->CallFunction(
      frame, "function() { return document.URL; }", args, &value);
  if (status.IsError())
    return status;
  if (!value->GetAsString(url))
    return Status(kUnknownError, "javascript failed to return the url");
  return Status(kOk);
}

struct Cookie {
  Cookie(const std::string& name,
         const std::string& value,
         const std::string& domain,
         const std::string& path,
         double expiry,
         bool http_only,
         bool secure,
         bool session)
      : name(name), value(value), domain(domain), path(path), expiry(expiry),
        http_only(http_only), secure(secure), session(session) {}

  std::string name;
  std::string value;
  std::string domain;
  std::string path;
  double expiry;
  bool http_only;
  bool secure;
  bool session;
};

std::unique_ptr<base::DictionaryValue> CreateDictionaryFrom(
    const Cookie& cookie) {
  std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
  dict->SetString("name", cookie.name);
  dict->SetString("value", cookie.value);
  if (!cookie.domain.empty())
    dict->SetString("domain", cookie.domain);
  if (!cookie.path.empty())
    dict->SetString("path", cookie.path);
  if (!cookie.session)
    dict->SetDouble("expiry", cookie.expiry);
  dict->SetBoolean("httpOnly", cookie.http_only);
  dict->SetBoolean("secure", cookie.secure);
  return dict;
}

Status GetVisibleCookies(WebView* web_view,
                         std::list<Cookie>* cookies) {
  std::unique_ptr<base::ListValue> internal_cookies;
  Status status = web_view->GetCookies(&internal_cookies);
  if (status.IsError())
    return status;
  std::list<Cookie> cookies_tmp;
  for (size_t i = 0; i < internal_cookies->GetSize(); ++i) {
    base::DictionaryValue* cookie_dict;
    if (!internal_cookies->GetDictionary(i, &cookie_dict))
      return Status(kUnknownError, "DevTools returns a non-dictionary cookie");

    std::string name;
    cookie_dict->GetString("name", &name);
    std::string value;
    cookie_dict->GetString("value", &value);
    std::string domain;
    cookie_dict->GetString("domain", &domain);
    std::string path;
    cookie_dict->GetString("path", &path);
    double expiry = 0;
    cookie_dict->GetDouble("expires", &expiry);
    expiry /= 1000;  // Convert from millisecond to second.
    bool http_only = false;
    cookie_dict->GetBoolean("httpOnly", &http_only);
    bool session = false;
    cookie_dict->GetBoolean("session", &session);
    bool secure = false;
    cookie_dict->GetBoolean("secure", &secure);

    cookies_tmp.push_back(
        Cookie(name, value, domain, path, expiry, http_only, secure, session));
  }
  cookies->swap(cookies_tmp);
  return Status(kOk);
}

Status ScrollCoordinateInToView(
    Session* session, WebView* web_view, int x, int y, int* offset_x,
    int* offset_y) {
  std::unique_ptr<base::Value> value;
  base::ListValue args;
  args.AppendInteger(x);
  args.AppendInteger(y);
  Status status = web_view->CallFunction(
      std::string(),
      "function(x, y) {"
      "  if (x < window.pageXOffset ||"
      "      x >= window.pageXOffset + window.innerWidth ||"
      "      y < window.pageYOffset ||"
      "      y >= window.pageYOffset + window.innerHeight) {"
      "    window.scrollTo(x - window.innerWidth/2, y - window.innerHeight/2);"
      "  }"
      "  return {"
      "    view_x: Math.floor(window.pageXOffset),"
      "    view_y: Math.floor(window.pageYOffset),"
      "    view_width: Math.floor(window.innerWidth),"
      "    view_height: Math.floor(window.innerHeight)};"
      "}",
      args,
      &value);
  if (!status.IsOk())
    return status;
  base::DictionaryValue* view_attrib;
  value->GetAsDictionary(&view_attrib);
  int view_x, view_y, view_width, view_height;
  view_attrib->GetInteger("view_x", &view_x);
  view_attrib->GetInteger("view_y", &view_y);
  view_attrib->GetInteger("view_width", &view_width);
  view_attrib->GetInteger("view_height", &view_height);
  *offset_x = x - view_x;
  *offset_y = y - view_y;
  if (*offset_x < 0 || *offset_x >= view_width || *offset_y < 0 ||
      *offset_y >= view_height)
    return Status(kUnknownError, "Failed to scroll coordinate into view");
  return Status(kOk);
}

Status ExecuteTouchEvent(
    Session* session, WebView* web_view, TouchEventType type,
    const base::DictionaryValue& params) {
  int x, y;
  if (!params.GetInteger("x", &x))
    return Status(kUnknownError, "'x' must be an integer");
  if (!params.GetInteger("y", &y))
    return Status(kUnknownError, "'y' must be an integer");
  int relative_x = x;
  int relative_y = y;
  Status status = ScrollCoordinateInToView(
      session, web_view, x, y, &relative_x, &relative_y);
  if (!status.IsOk())
    return status;
  std::list<TouchEvent> events;
  events.push_back(
      TouchEvent(type, relative_x, relative_y));
  return web_view->DispatchTouchEvents(events);
}

}  // namespace

Status ExecuteWindowCommand(const WindowCommand& command,
                            Session* session,
                            const base::DictionaryValue& params,
                            std::unique_ptr<base::Value>* value) {
  Timeout timeout;
  WebView* web_view = NULL;
  Status status = session->GetTargetWindow(&web_view);
  if (status.IsError())
    return status;

  status = web_view->ConnectIfNecessary();
  if (status.IsError())
    return status;

  status = web_view->HandleReceivedEvents();
  if (status.IsError())
    return status;

  JavaScriptDialogManager* dialog_manager =
      web_view->GetJavaScriptDialogManager();
  if (dialog_manager->IsDialogOpen()) {
    std::string alert_text;
    status = dialog_manager->GetDialogMessage(&alert_text);
    if (status.IsError())
      return status;

    // Close the dialog depending on the unexpectedalert behaviour set by user
    // before returning an error, so that subsequent commands do not fail.
    std::string alert_behaviour = session->unexpected_alert_behaviour;
    if (alert_behaviour == kAccept)
      status = dialog_manager->HandleDialog(true, session->prompt_text.get());
    else if (alert_behaviour == kDismiss)
      status = dialog_manager->HandleDialog(false, session->prompt_text.get());
    if (status.IsError())
      return status;

    return Status(kUnexpectedAlertOpen, "{Alert text : " + alert_text + "}");
  }

  Status nav_status(kOk);
  for (int attempt = 0; attempt < 3; attempt++) {
    if (attempt == 2) {
      // Switch to main frame and retry command if subframe no longer exists.
      session->SwitchToTopFrame();
    }

    nav_status = web_view->WaitForPendingNavigations(
        session->GetCurrentFrameId(),
        Timeout(session->page_load_timeout, &timeout), true);
    if (nav_status.IsError())
      return nav_status;

    status = command.Run(session, web_view, params, value, &timeout);
    if (status.code() == kNoSuchExecutionContext || status.code() == kTimeout) {
      // If the command timed out, let WaitForPendingNavigations cancel
      // the navigation if there is one.
      continue;
    } else if (status.IsError()) {
      // If the command failed while a new page or frame started loading, retry
      // the command after the pending navigation has completed.
      bool is_pending = false;
      nav_status = web_view->IsPendingNavigation(session->GetCurrentFrameId(),
                                                 &timeout, &is_pending);
      if (nav_status.IsError())
        return nav_status;
      else if (is_pending)
        continue;
    }
    break;
  }

  nav_status = web_view->WaitForPendingNavigations(
      session->GetCurrentFrameId(),
      Timeout(session->page_load_timeout, &timeout), true);

  if (status.IsOk() && nav_status.IsError() &&
      nav_status.code() != kUnexpectedAlertOpen)
    return nav_status;
  if (status.code() == kUnexpectedAlertOpen)
    return Status(kOk);
  return status;
}

Status ExecuteGet(Session* session,
                  WebView* web_view,
                  const base::DictionaryValue& params,
                  std::unique_ptr<base::Value>* value,
                  Timeout* timeout) {
  timeout->SetDuration(session->page_load_timeout);
  std::string url;
  if (!params.GetString("url", &url))
    return Status(kUnknownError, "'url' must be a string");
  Status status = web_view->Load(url, timeout);
  if (status.IsError())
    return status;
  session->SwitchToTopFrame();
  return Status(kOk);
}

Status ExecuteExecuteScript(Session* session,
                            WebView* web_view,
                            const base::DictionaryValue& params,
                            std::unique_ptr<base::Value>* value,
                            Timeout* timeout) {
  std::string script;
  if (!params.GetString("script", &script))
    return Status(kUnknownError, "'script' must be a string");
  if (script == ":takeHeapSnapshot") {
    return web_view->TakeHeapSnapshot(value);
  } else if (script == ":startProfile") {
    return web_view->StartProfile();
  } else if (script == ":endProfile") {
    return web_view->EndProfile(value);
  } else {
    const base::ListValue* args;
    if (!params.GetList("args", &args))
      return Status(kUnknownError, "'args' must be a list");

    return web_view->CallFunction(session->GetCurrentFrameId(),
                                  "function(){" + script + "}", *args, value);
  }
}

Status ExecuteExecuteAsyncScript(Session* session,
                                 WebView* web_view,
                                 const base::DictionaryValue& params,
                                 std::unique_ptr<base::Value>* value,
                                 Timeout* timeout) {
  std::string script;
  if (!params.GetString("script", &script))
    return Status(kUnknownError, "'script' must be a string");
  const base::ListValue* args;
  if (!params.GetList("args", &args))
    return Status(kUnknownError, "'args' must be a list");

  return web_view->CallUserAsyncFunction(
      session->GetCurrentFrameId(), "function(){" + script + "}", *args,
      session->script_timeout, value);
}

Status ExecuteSwitchToFrame(Session* session,
                            WebView* web_view,
                            const base::DictionaryValue& params,
                            std::unique_ptr<base::Value>* value,
                            Timeout* timeout) {
  const base::Value* id;
  if (!params.Get("id", &id))
    return Status(kUnknownError, "missing 'id'");

  if (id->IsType(base::Value::Type::NONE)) {
    session->SwitchToTopFrame();
    return Status(kOk);
  }

  std::string script;
  base::ListValue args;
  const base::DictionaryValue* id_dict;
  if (id->GetAsDictionary(&id_dict)) {
    script = "function(elem) { return elem; }";
    args.Append(id_dict->CreateDeepCopy());
  } else {
    script =
        "function(xpath) {"
        "  return document.evaluate(xpath, document, null, "
        "      XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;"
        "}";
    std::string xpath = "(/html/body//iframe|/html/frameset//frame)";
    std::string id_string;
    int id_int;
    if (id->GetAsString(&id_string)) {
      xpath += base::StringPrintf(
          "[@name=\"%s\" or @id=\"%s\"]", id_string.c_str(), id_string.c_str());
    } else if (id->GetAsInteger(&id_int)) {
      xpath += base::StringPrintf("[%d]", id_int + 1);
    } else {
      return Status(kUnknownError, "invalid 'id'");
    }
    args.AppendString(xpath);
  }
  std::string frame;
  Status status = web_view->GetFrameByFunction(
      session->GetCurrentFrameId(), script, args, &frame);
  if (status.IsError())
    return status;

  std::unique_ptr<base::Value> result;
  status = web_view->CallFunction(
      session->GetCurrentFrameId(), script, args, &result);
  if (status.IsError())
    return status;
  const base::DictionaryValue* element;
  if (!result->GetAsDictionary(&element))
    return Status(kUnknownError, "fail to locate the sub frame element");

  std::string chrome_driver_id = GenerateId();
  const char kSetFrameIdentifier[] =
      "function(frame, id) {"
      "  frame.setAttribute('cd_frame_id_', id);"
      "}";
  base::ListValue new_args;
  new_args.Append(element->CreateDeepCopy());
  new_args.AppendString(chrome_driver_id);
  result.reset(NULL);
  status = web_view->CallFunction(
      session->GetCurrentFrameId(), kSetFrameIdentifier, new_args, &result);
  if (status.IsError())
    return status;
  session->SwitchToSubFrame(frame, chrome_driver_id);
  return Status(kOk);
}

Status ExecuteSwitchToParentFrame(Session* session,
                                  WebView* web_view,
                                  const base::DictionaryValue& params,
                                  std::unique_ptr<base::Value>* value,
                                  Timeout* timeout) {
  session->SwitchToParentFrame();
  return Status(kOk);
}

Status ExecuteGetTitle(Session* session,
                       WebView* web_view,
                       const base::DictionaryValue& params,
                       std::unique_ptr<base::Value>* value,
                       Timeout* timeout) {
  const char kGetTitleScript[] = "function() {  return document.title;}";
  base::ListValue args;
  return web_view->CallFunction(std::string(), kGetTitleScript, args, value);
}

Status ExecuteGetPageSource(Session* session,
                            WebView* web_view,
                            const base::DictionaryValue& params,
                            std::unique_ptr<base::Value>* value,
                            Timeout* timeout) {
  const char kGetPageSource[] =
      "function() {"
      "  return new XMLSerializer().serializeToString(document);"
      "}";
  base::ListValue args;
  return web_view->CallFunction(
      session->GetCurrentFrameId(), kGetPageSource, args, value);
}

Status ExecuteFindElement(int interval_ms,
                          Session* session,
                          WebView* web_view,
                          const base::DictionaryValue& params,
                          std::unique_ptr<base::Value>* value,
                          Timeout* timeout) {
  return FindElement(interval_ms, true, NULL, session, web_view, params, value);
}

Status ExecuteFindElements(int interval_ms,
                           Session* session,
                           WebView* web_view,
                           const base::DictionaryValue& params,
                           std::unique_ptr<base::Value>* value,
                           Timeout* timeout) {
  return FindElement(
      interval_ms, false, NULL, session, web_view, params, value);
}

Status ExecuteGetCurrentUrl(Session* session,
                            WebView* web_view,
                            const base::DictionaryValue& params,
                            std::unique_ptr<base::Value>* value,
                            Timeout* timeout) {
  std::string url;
  Status status = GetUrl(web_view, std::string(), &url);
  if (status.IsError())
    return status;
  if (url == kUnreachableWebDataURL) {
    // https://bugs.chromium.org/p/chromedriver/issues/detail?id=1272
    const BrowserInfo* browser_info = session->chrome->GetBrowserInfo();
    bool is_kitkat_webview = browser_info->browser_name == "webview" &&
                             browser_info->major_version <= 30 &&
                             browser_info->is_android;
    if (!is_kitkat_webview) {
      // Page.getNavigationHistory isn't implemented in WebView for KitKat and
      // older Android releases.
      status = web_view->GetUrl(&url);
      if (status.IsError())
        return status;
    }
  }
  value->reset(new base::StringValue(url));
  return Status(kOk);
}

Status ExecuteGoBack(Session* session,
                     WebView* web_view,
                     const base::DictionaryValue& params,
                     std::unique_ptr<base::Value>* value,
                     Timeout* timeout) {
  timeout->SetDuration(session->page_load_timeout);
  Status status = web_view->TraverseHistory(-1, timeout);
  if (status.IsError())
    return status;
  session->SwitchToTopFrame();
  return Status(kOk);
}

Status ExecuteGoForward(Session* session,
                        WebView* web_view,
                        const base::DictionaryValue& params,
                        std::unique_ptr<base::Value>* value,
                        Timeout* timeout) {
  timeout->SetDuration(session->page_load_timeout);
  Status status = web_view->TraverseHistory(1, timeout);
  if (status.IsError())
    return status;
  session->SwitchToTopFrame();
  return Status(kOk);
}

Status ExecuteRefresh(Session* session,
                      WebView* web_view,
                      const base::DictionaryValue& params,
                      std::unique_ptr<base::Value>* value,
                      Timeout* timeout) {
  timeout->SetDuration(session->page_load_timeout);
  Status status = web_view->Reload(timeout);
  if (status.IsError())
    return status;
  session->SwitchToTopFrame();
  return Status(kOk);
}

Status ExecuteMouseMoveTo(Session* session,
                          WebView* web_view,
                          const base::DictionaryValue& params,
                          std::unique_ptr<base::Value>* value,
                          Timeout* timeout) {
  std::string element_id;
  bool has_element = params.GetString("element", &element_id);
  int x_offset = 0;
  int y_offset = 0;
  bool has_offset = params.GetInteger("xoffset", &x_offset) &&
      params.GetInteger("yoffset", &y_offset);
  if (!has_element && !has_offset)
    return Status(kUnknownError, "at least an element or offset should be set");

  WebPoint location;
  if (has_element) {
    WebPoint offset(x_offset, y_offset);
    Status status = ScrollElementIntoView(session, web_view, element_id,
        has_offset ? &offset : nullptr, &location);
    if (status.IsError())
      return status;
  } else {
    location = session->mouse_position;
    if (has_offset)
      location.Offset(x_offset, y_offset);
  }

  std::list<MouseEvent> events;
  events.push_back(
      MouseEvent(kMovedMouseEventType, kNoneMouseButton,
                 location.x, location.y, session->sticky_modifiers, 0));
  Status status =
      web_view->DispatchMouseEvents(events, session->GetCurrentFrameId());
  if (status.IsOk())
    session->mouse_position = location;
  return status;
}

Status ExecuteMouseClick(Session* session,
                         WebView* web_view,
                         const base::DictionaryValue& params,
                         std::unique_ptr<base::Value>* value,
                         Timeout* timeout) {
  MouseButton button;
  Status status = GetMouseButton(params, &button);
  if (status.IsError())
    return status;
  std::list<MouseEvent> events;
  events.push_back(
      MouseEvent(kPressedMouseEventType, button,
                 session->mouse_position.x, session->mouse_position.y,
                 session->sticky_modifiers, 1));
  events.push_back(
      MouseEvent(kReleasedMouseEventType, button,
                 session->mouse_position.x, session->mouse_position.y,
                 session->sticky_modifiers, 1));
  return web_view->DispatchMouseEvents(events, session->GetCurrentFrameId());
}

Status ExecuteMouseButtonDown(Session* session,
                              WebView* web_view,
                              const base::DictionaryValue& params,
                              std::unique_ptr<base::Value>* value,
                              Timeout* timeout) {
  MouseButton button;
  Status status = GetMouseButton(params, &button);
  if (status.IsError())
    return status;
  std::list<MouseEvent> events;
  events.push_back(
      MouseEvent(kPressedMouseEventType, button,
                 session->mouse_position.x, session->mouse_position.y,
                 session->sticky_modifiers, 1));
  return web_view->DispatchMouseEvents(events, session->GetCurrentFrameId());
}

Status ExecuteMouseButtonUp(Session* session,
                            WebView* web_view,
                            const base::DictionaryValue& params,
                            std::unique_ptr<base::Value>* value,
                            Timeout* timeout) {
  MouseButton button;
  Status status = GetMouseButton(params, &button);
  if (status.IsError())
    return status;
  std::list<MouseEvent> events;
  events.push_back(
      MouseEvent(kReleasedMouseEventType, button,
                 session->mouse_position.x, session->mouse_position.y,
                 session->sticky_modifiers, 1));
  return web_view->DispatchMouseEvents(events, session->GetCurrentFrameId());
}

Status ExecuteMouseDoubleClick(Session* session,
                               WebView* web_view,
                               const base::DictionaryValue& params,
                               std::unique_ptr<base::Value>* value,
                               Timeout* timeout) {
  MouseButton button;
  Status status = GetMouseButton(params, &button);
  if (status.IsError())
    return status;
  std::list<MouseEvent> events;
  events.push_back(
      MouseEvent(kPressedMouseEventType, button,
                 session->mouse_position.x, session->mouse_position.y,
                 session->sticky_modifiers, 2));
  events.push_back(
      MouseEvent(kReleasedMouseEventType, button,
                 session->mouse_position.x, session->mouse_position.y,
                 session->sticky_modifiers, 2));
  return web_view->DispatchMouseEvents(events, session->GetCurrentFrameId());
}

Status ExecuteTouchDown(Session* session,
                        WebView* web_view,
                        const base::DictionaryValue& params,
                        std::unique_ptr<base::Value>* value,
                        Timeout* timeout) {
  return ExecuteTouchEvent(session, web_view, kTouchStart, params);
}

Status ExecuteTouchUp(Session* session,
                      WebView* web_view,
                      const base::DictionaryValue& params,
                      std::unique_ptr<base::Value>* value,
                      Timeout* timeout) {
  return ExecuteTouchEvent(session, web_view, kTouchEnd, params);
}

Status ExecuteTouchMove(Session* session,
                        WebView* web_view,
                        const base::DictionaryValue& params,
                        std::unique_ptr<base::Value>* value,
                        Timeout* timeout) {
  return ExecuteTouchEvent(session, web_view, kTouchMove, params);
}

Status ExecuteTouchScroll(Session* session,
                          WebView* web_view,
                          const base::DictionaryValue& params,
                          std::unique_ptr<base::Value>* value,
                          Timeout* timeout) {
  if (session->chrome->GetBrowserInfo()->build_no < 2286) {
    // TODO(samuong): remove this once we stop supporting M41.
    return Status(kUnknownCommand, "Touch scroll action requires Chrome 42+");
  }
  WebPoint location = session->mouse_position;
  std::string element;
  if (params.GetString("element", &element)) {
    Status status = GetElementClickableLocation(
        session, web_view, element, &location);
    if (status.IsError())
      return status;
  }
  int xoffset;
  if (!params.GetInteger("xoffset", &xoffset))
    return Status(kUnknownError, "'xoffset' must be an integer");
  int yoffset;
  if (!params.GetInteger("yoffset", &yoffset))
    return Status(kUnknownError, "'yoffset' must be an integer");
  return web_view->SynthesizeScrollGesture(
      location.x, location.y, xoffset, yoffset);
}

Status ExecuteTouchPinch(Session* session,
                         WebView* web_view,
                         const base::DictionaryValue& params,
                         std::unique_ptr<base::Value>* value,
                         Timeout* timeout) {
  if (session->chrome->GetBrowserInfo()->build_no < 2286) {
    // TODO(samuong): remove this once we stop supporting M41.
    return Status(kUnknownCommand, "Pinch action requires Chrome 42+");
  }
  WebPoint location;
  if (!params.GetInteger("x", &location.x))
    return Status(kUnknownError, "'x' must be an integer");
  if (!params.GetInteger("y", &location.y))
    return Status(kUnknownError, "'y' must be an integer");
  double scale_factor;
  if (!params.GetDouble("scale", &scale_factor))
    return Status(kUnknownError, "'scale' must be an integer");
  return web_view->SynthesizePinchGesture(location.x, location.y, scale_factor);
}

Status ExecuteGetActiveElement(Session* session,
                               WebView* web_view,
                               const base::DictionaryValue& params,
                               std::unique_ptr<base::Value>* value,
                               Timeout* timeout) {
  return GetActiveElement(session, web_view, value);
}

Status ExecuteSendKeysToActiveElement(Session* session,
                                      WebView* web_view,
                                      const base::DictionaryValue& params,
                                      std::unique_ptr<base::Value>* value,
                                      Timeout* timeout) {
  const base::ListValue* key_list;
  if (!params.GetList("value", &key_list))
    return Status(kUnknownError, "'value' must be a list");
  return SendKeysOnWindow(
      web_view, key_list, false, &session->sticky_modifiers);
}

Status ExecuteGetAppCacheStatus(Session* session,
                                WebView* web_view,
                                const base::DictionaryValue& params,
                                std::unique_ptr<base::Value>* value,
                                Timeout* timeout) {
  return web_view->EvaluateScript(
      session->GetCurrentFrameId(),
      "applicationCache.status",
      value);
}

Status ExecuteIsBrowserOnline(Session* session,
                              WebView* web_view,
                              const base::DictionaryValue& params,
                              std::unique_ptr<base::Value>* value,
                              Timeout* timeout) {
  return web_view->EvaluateScript(
      session->GetCurrentFrameId(),
      "navigator.onLine",
      value);
}

Status ExecuteGetStorageItem(const char* storage,
                             Session* session,
                             WebView* web_view,
                             const base::DictionaryValue& params,
                             std::unique_ptr<base::Value>* value,
                             Timeout* timeout) {
  std::string key;
  if (!params.GetString("key", &key))
    return Status(kUnknownError, "'key' must be a string");
  base::ListValue args;
  args.AppendString(key);
  return web_view->CallFunction(
      session->GetCurrentFrameId(),
      base::StringPrintf("function(key) { return %s[key]; }", storage),
      args,
      value);
}

Status ExecuteGetStorageKeys(const char* storage,
                             Session* session,
                             WebView* web_view,
                             const base::DictionaryValue& params,
                             std::unique_ptr<base::Value>* value,
                             Timeout* timeout) {
  const char script[] =
      "var keys = [];"
      "for (var key in %s) {"
      "  keys.push(key);"
      "}"
      "keys";
  return web_view->EvaluateScript(
      session->GetCurrentFrameId(),
      base::StringPrintf(script, storage),
      value);
}

Status ExecuteSetStorageItem(const char* storage,
                             Session* session,
                             WebView* web_view,
                             const base::DictionaryValue& params,
                             std::unique_ptr<base::Value>* value,
                             Timeout* timeout) {
  std::string key;
  if (!params.GetString("key", &key))
    return Status(kUnknownError, "'key' must be a string");
  std::string storage_value;
  if (!params.GetString("value", &storage_value))
    return Status(kUnknownError, "'value' must be a string");
  base::ListValue args;
  args.AppendString(key);
  args.AppendString(storage_value);
  return web_view->CallFunction(
      session->GetCurrentFrameId(),
      base::StringPrintf("function(key, value) { %s[key] = value; }", storage),
      args,
      value);
}

Status ExecuteRemoveStorageItem(const char* storage,
                                Session* session,
                                WebView* web_view,
                                const base::DictionaryValue& params,
                                std::unique_ptr<base::Value>* value,
                                Timeout* timeout) {
  std::string key;
  if (!params.GetString("key", &key))
    return Status(kUnknownError, "'key' must be a string");
  base::ListValue args;
  args.AppendString(key);
  return web_view->CallFunction(
      session->GetCurrentFrameId(),
      base::StringPrintf("function(key) { %s.removeItem(key) }", storage),
      args,
      value);
}

Status ExecuteClearStorage(const char* storage,
                           Session* session,
                           WebView* web_view,
                           const base::DictionaryValue& params,
                           std::unique_ptr<base::Value>* value,
                           Timeout* timeout) {
  return web_view->EvaluateScript(
      session->GetCurrentFrameId(),
      base::StringPrintf("%s.clear()", storage),
      value);
}

Status ExecuteGetStorageSize(const char* storage,
                             Session* session,
                             WebView* web_view,
                             const base::DictionaryValue& params,
                             std::unique_ptr<base::Value>* value,
                             Timeout* timeout) {
  return web_view->EvaluateScript(
      session->GetCurrentFrameId(),
      base::StringPrintf("%s.length", storage),
      value);
}

Status ExecuteScreenshot(Session* session,
                         WebView* web_view,
                         const base::DictionaryValue& params,
                         std::unique_ptr<base::Value>* value,
                         Timeout* timeout) {
  Status status = session->chrome->ActivateWebView(web_view->GetId());
  if (status.IsError())
    return status;

  std::string screenshot;
  ChromeDesktopImpl* desktop = NULL;
  status = session->chrome->GetAsDesktop(&desktop);
  if (status.IsOk() && !session->force_devtools_screenshot) {
    AutomationExtension* extension = NULL;
    status = desktop->GetAutomationExtension(&extension,
                                             session->w3c_compliant);
    if (status.IsError())
      return status;
    status = extension->CaptureScreenshot(&screenshot);
  } else {
    status = web_view->CaptureScreenshot(&screenshot);
  }
  if (status.IsError()) {
    LOG(WARNING) << "screenshot failed, retrying";
    status = web_view->CaptureScreenshot(&screenshot);
  }
  if (status.IsError())
    return status;

  value->reset(new base::StringValue(screenshot));
  return Status(kOk);
}

Status ExecuteGetCookies(Session* session,
                         WebView* web_view,
                         const base::DictionaryValue& params,
                         std::unique_ptr<base::Value>* value,
                         Timeout* timeout) {
  std::list<Cookie> cookies;
  Status status = GetVisibleCookies(web_view, &cookies);
  if (status.IsError())
    return status;
  std::unique_ptr<base::ListValue> cookie_list(new base::ListValue());
  for (std::list<Cookie>::const_iterator it = cookies.begin();
       it != cookies.end(); ++it) {
    cookie_list->Append(CreateDictionaryFrom(*it));
  }
  value->reset(cookie_list.release());
  return Status(kOk);
}

Status ExecuteAddCookie(Session* session,
                        WebView* web_view,
                        const base::DictionaryValue& params,
                        std::unique_ptr<base::Value>* value,
                        Timeout* timeout) {
  const base::DictionaryValue* cookie;
  if (!params.GetDictionary("cookie", &cookie))
    return Status(kUnknownError, "missing 'cookie'");
  base::ListValue args;
  args.Append(cookie->CreateDeepCopy());
  std::unique_ptr<base::Value> result;
  return web_view->CallFunction(
      session->GetCurrentFrameId(), kAddCookieScript, args, &result);
}

Status ExecuteDeleteCookie(Session* session,
                           WebView* web_view,
                           const base::DictionaryValue& params,
                           std::unique_ptr<base::Value>* value,
                           Timeout* timeout) {
  std::string name;
  if (!params.GetString("name", &name))
    return Status(kUnknownError, "missing 'name'");
  base::DictionaryValue params_url;
  std::unique_ptr<base::Value> value_url;
  std::string url;
  Status status = GetUrl(web_view, session->GetCurrentFrameId(), &url);
  if (status.IsError())
    return status;
  return web_view->DeleteCookie(name, url);
}

Status ExecuteDeleteAllCookies(Session* session,
                               WebView* web_view,
                               const base::DictionaryValue& params,
                               std::unique_ptr<base::Value>* value,
                               Timeout* timeout) {
  std::list<Cookie> cookies;
  Status status = GetVisibleCookies(web_view, &cookies);
  if (status.IsError())
    return status;

  if (!cookies.empty()) {
    base::DictionaryValue params_url;
    std::unique_ptr<base::Value> value_url;
    std::string url;
    status = GetUrl(web_view, session->GetCurrentFrameId(), &url);
    if (status.IsError())
      return status;
    for (std::list<Cookie>::const_iterator it = cookies.begin();
         it != cookies.end(); ++it) {
      status = web_view->DeleteCookie(it->name, url);
      if (status.IsError())
        return status;
    }
  }

  return Status(kOk);
}

Status ExecuteSetLocation(Session* session,
                          WebView* web_view,
                          const base::DictionaryValue& params,
                          std::unique_ptr<base::Value>* value,
                          Timeout* timeout) {
  const base::DictionaryValue* location = NULL;
  Geoposition geoposition;
  if (!params.GetDictionary("location", &location) ||
      !location->GetDouble("latitude", &geoposition.latitude) ||
      !location->GetDouble("longitude", &geoposition.longitude))
    return Status(kUnknownError, "missing or invalid 'location'");
  if (location->HasKey("accuracy") &&
      !location->GetDouble("accuracy", &geoposition.accuracy)) {
    return Status(kUnknownError, "invalid 'accuracy'");
  } else {
    // |accuracy| is not part of the WebDriver spec yet, so if it is not given
    // default to 100 meters accuracy.
    geoposition.accuracy = 100;
  }

  Status status = web_view->OverrideGeolocation(geoposition);
  if (status.IsOk())
    session->overridden_geoposition.reset(new Geoposition(geoposition));
  return status;
}

Status ExecuteSetNetworkConditions(Session* session,
                                   WebView* web_view,
                                   const base::DictionaryValue& params,
                                   std::unique_ptr<base::Value>* value,
                                   Timeout* timeout) {
  std::string network_name;
  const base::DictionaryValue* conditions = NULL;
  std::unique_ptr<NetworkConditions> network_conditions(
      new NetworkConditions());
  if (params.GetString("network_name", &network_name)) {
    // Get conditions from preset list.
    Status status = FindPresetNetwork(network_name, network_conditions.get());
    if (status.IsError())
      return status;
  } else if (params.GetDictionary("network_conditions", &conditions)) {
    // |latency| is required.
    if (!conditions->GetDouble("latency", &network_conditions->latency))
      return Status(kUnknownError,
                    "invalid 'network_conditions' is missing 'latency'");

    // Either |throughput| or the pair |download_throughput| and
    // |upload_throughput| is required.
    if (conditions->HasKey("throughput")) {
      if (!conditions->GetDouble("throughput",
                                 &network_conditions->download_throughput))
        return Status(kUnknownError, "invalid 'throughput'");
      conditions->GetDouble("throughput",
                            &network_conditions->upload_throughput);
    } else if (conditions->HasKey("download_throughput") &&
               conditions->HasKey("upload_throughput")) {
      if (!conditions->GetDouble("download_throughput",
                                 &network_conditions->download_throughput) ||
          !conditions->GetDouble("upload_throughput",
                                 &network_conditions->upload_throughput))
        return Status(kUnknownError,
                      "invalid 'download_throughput' or 'upload_throughput'");
    } else {
      return Status(kUnknownError,
                    "invalid 'network_conditions' is missing 'throughput' or "
                    "'download_throughput'/'upload_throughput' pair");
    }

    // |offline| is optional.
    if (conditions->HasKey("offline")) {
      if (!conditions->GetBoolean("offline", &network_conditions->offline))
        return Status(kUnknownError, "invalid 'offline'");
    } else {
      network_conditions->offline = false;
    }
  } else {
    return Status(kUnknownError,
                  "either 'network_conditions' or 'network_name' must be "
                  "supplied");
  }

  session->overridden_network_conditions.reset(
      network_conditions.release());
  return web_view->OverrideNetworkConditions(
      *session->overridden_network_conditions);
}

Status ExecuteDeleteNetworkConditions(Session* session,
                                      WebView* web_view,
                                      const base::DictionaryValue& params,
                                      std::unique_ptr<base::Value>* value,
                                      Timeout* timeout) {
  // Chrome does not have any command to stop overriding network conditions, so
  // we just override the network conditions with the "No throttling" preset.
  NetworkConditions network_conditions;
  // Get conditions from preset list.
  Status status = FindPresetNetwork("No throttling", &network_conditions);
  if (status.IsError())
    return status;

  status = web_view->OverrideNetworkConditions(network_conditions);
  if (status.IsError())
    return status;

  // After we've successfully overridden the network conditions with
  // "No throttling", we can delete them from |session|.
  session->overridden_network_conditions.reset();
  return status;
}

Status ExecuteTakeHeapSnapshot(Session* session,
                               WebView* web_view,
                               const base::DictionaryValue& params,
                               std::unique_ptr<base::Value>* value,
                               Timeout* timeout) {
  return web_view->TakeHeapSnapshot(value);
}

redpajama_set_name: RedPajamaGithub


text:
Dublin next stop on the Unlock the Past Cruise
5th Unlock the Past Cruise, Book of Kells, Dublin, iPad, Lisa Louise Cooke, Mike Murray, National Library of Ireland, Trinity College Library No Responses »
Today it is Dublin. A city of so much history!
Also a city of Guinness as evidenced by these tankers on the wharf opposite where we berthed.
On the way in we saw this bridge which I call the Harp Bridge (along with lots of other people!) but it's official name is the Samuel Beckett Bridge. It was opened in 2009.
A number of the Unlock the Past cruisers were going to the National Library of Ireland to attend a presentation by Carmel McBride of Eneclann kindly organised by Eileen O Duill.
After the presentation Alona and I left the researchers researching (I have previously researched at the NLI for my Michael Courtenay and Rosina McAtavey whose son Michael emigrated to Queensland in 1846 with little success) while we went to find internet, and then the Book of Kells and Trinity College Library.
I have seen the Book of Kells before but you can never see it too many times!
First we found internet as a byproduct of morning tea and we did stay there for a while catching up on work emails (internet had been patchy and our Vodafone wi-fi hotspots didn't work around much of Scotland or in Dublin, possibly in Dublin because they were protecting us from foreign country fees).
Then it was onto Trinity College.
Of course, to protect the Book of Kells you cannot take photographs but you can download an app for the iPad in iTunes. it is A$14.99 but worth it to see the amazing details.
The exhibition also has descriptions and background information on how the Book was created and also its traveling history after being looted from one place to another. It is a miracle that any of these treasures survive and it is one of the great shames of the world that so many treasures are lost in war and continue to be lost in battles today. Many treasures are being lost in the Middle East, the Russian areas as surviving has to take precedence but when you destroy a cultures treasures you destroy part of the people's lives and some of their future.
There are so many books. You get the 'book smell' as soon as you walk in. We were allowed to take photographs here but not to use the flash.
I was pleased to see that the books were still being used as there was some librarians there taking some out and boxing them up and there were gaps in some of the shelves and the usage conditions can be found here. Scholars from other institutions are able to use the resources if they can show it is only available here.
Alona says that a number of the books scanned for the Archive CD Books Ireland came from the Trinity College Library.
There were a number of displays in the centre which were not allowed to be photographed but these included Hebrew books, a commemorative display of a World War One author and more.
The Library began with the founding of Trinity College in 1592 and it is the largest library in Ireland and is the Legal Deposit library, the only one in Ireland for the United Kingdom and it has held this role since 1801.
The Long Room by Alona Tester
The Long Room, (picture taken by Alona as hers came out so much better than mine!) is 65 metres (213feet) long and is the main chamber of the Old library.
Built between 1712 and 1732, it contains over 200 000 of the Library's oldest books and when you realise the Bishop of Armagh when he died in 1656 left his library of several thousand volumes and the Book of Kells was given to the library in 1661 there are very many old treasures housed here.
A problem for all of us in the future is the money needed to maintain these treasures as they should be and if money is not spent the generations of the future will not be able to see and use these books. Quite a number of the books I saw had deteriorating covers and conservation work is never cheap.
We oohed and aahed for quite a while then realised we had better get back to the ship as it had taken quite a while to travel the 5km to town when we came in that morning. It was a much faster run home.
We got back and I helped some people in the Research Help Zone along with a number of the other speakers and then it was time for the evening presentations.
My iPad getting ready to take notes
I went to Lisa Louise Cooke's 'Genealogy on the go with the iPad/tablets' and as usual she was an excellent speaker. I was pleased to see that a fair number of the apps she recommended I had installed on my iPad and actually used. I do have Evernote installed but as I have previously mentioned I do have to spend some time with it so I can use it instinctively.
One of the problems I find is that there are many apps and programs that can help you work more effectively but no-one gives you the time you need to devote to learning them so they will help you and save your time. I suppose I just need to calendar some time as i am finding if it isn't in the diary it doesn't happen and just learn it.
Lisa has written a book on getting the most out of the iPad and other Tablets for genealogy and it is available as an eBook (Turn Your iPad into a Genealogy Powerhouse)and I would recommend it if you want to use your tablet for more than emails, Facebook, Twitter, G+ and as a eBook reader.
By going to Lisa's talk I missed Mike Murray talking on 'How to make your online searching more effective' which was well received by those who went.
Tobermory, Isle of Mull
5th Unlock the Past Cruise, Iona, Marco Polo, Mull, St Columba, Tobermory No Responses »
Colourful Buildings of Tobermory
This was the day we were going to Tobermory, Isle of Mull and from there an excursion to Iona.
Again the weather was lovely (really! I am not sure who had the inside line to the weather gods but we had brilliant weather, just look at that sky).
Tobermory was a pretty harbour with its coloured houses.
Church on the hill at Tobermory
Lots of trees here which was a stark contrast to the islands we have visited in the last few days.
As Rosemary and I had booked on the tour to Iona we went straight onto the coach so didn't have time to meander around Tobermory. Those that did said it was lovely and there were great places to eat lovely seafood.
We had a nice guide (although she managed to confuse herself a bit with Australian history)
Lachlan MacQuarie was born on the island of Ulva in 1762 just off the coast off Mull and is buried on Mull. He was the fifth Governor of the colony of New South Wales being appointed in 1809 and officially in residence ass Governor from 1 January 1810 to 1822. He died in 1824 not being as long-lived as his father who reportedly lived to be 103.
We did see Highland cattle although we did have to wonder if the guide had an arrangement with the farmer to have the cattle in a certain paddock as she no sooner started talking about them than we rounded the corner and there they were!
The drive to the ferry terminal for Iona was round two hours and then we and the other couple of coaches arrived. The ferry was also for the general public and the cargo transport to Iona which is just across the way but is a 25 minute ferry round trip. The ferry needed to transport a truck which had some sort of cargo which had a requirement for not many people to be on board so we had to wait a trip or so.
I saw this weather vane while I was waiting and thought it very cute. Looks like the dog got his dinner and the fellow misses out.
The sky and water was very blue and there were a number of people paddling on the beach both this side and the other.
Iona is about two kilometres off the coast of Mull and the main settlement, located at St. Ronan's Bay on the eastern side of the island. A nice village with hotels, shops and the ruins of the Nunnery. I often wonder why the Nunnery is a distance from the church while the monastery is usually right near it. I know the monks went to Mass between midnight and dawn so I assume the nuns did too?
Ruins of the Nunnery
Anyway St Columba came ashore on Iona and Iona became established as a religious area. It is believed the Book of Kells was written (written is such an anemic word for the artistry of this book) here in the 800s. The Abbey was sacked by the Norse on a number of occasions.
It used to have around 25 Celtic crosses but now only a couple of original ones are left including the one below which is Crois Mhicilleathain (Maclean's Cross).
Crois Mhicilleathain (Maclean's Cross)
Then we came to the Parish Church where we spent some time wandering the cemetery (we are family historians! Of course we were going to wander the cemetery!)
Rosemary Kopittke at the Parish Church
And saw a number of very interesting headstones but I'll save that for another post but also saw a number of headstones of unknown sailors generally merchant marine who had washed ashore during the Second World War. Sad when you think none of their families know where their sons,fathers,uncles lie in rest.
Then onto the Abbey.
The small building just behind the Celtic Cross is St Columba's church. The Abbey has a long, long history and is what it is today due to being restored.
It is a peaceful church inside and worshippers still come and retreats are often held on the island.
Inside the church there were the ornamental tombs of George Douglas the Duke of Argyll and his wife.
George Douglas Duke of Argyll and his wife
We had to be back at the terminus so left in plenty of time to wander down. On the way we stopped for an ice-cream at the Low House. It had a sign warning people to duck their head as it was a very low doorway. Yes I fitted perfectly! Rosemary has a picture which I'll have to get off her.
Back at the terminus there was again a wait for the ferry and we didn't get on the first or second one and there was some concern as we were running a bit later than planned.
Jackie Depelle who was one of the first speakers in the afternoon session had a paddle and we all enjoyed the sunshine as there was nothing we could do. The joys of 150 extra people arriving in an area on a beautiful summers day.
Bright blue sky and sea
We eventually got back over the straight and onto the coaches knowing we would be arriving back after the time we were told the Marco Polo would be sailing!
We knew they would not sail without us as we were on a ship organised excursion but we were concerned as we knew Jackie Depelle was in the coach and we would be back after the start of her talk.
Marco Polo waiting for us
So we got back and there were some sighs of relief from others when they saw the ship.
Back onboard 20 minutes into the first session which meant I did not get to hear Geraldine O'Reilly's talk on Portrait of a Parish: with a focus on place names. Jackie's talk was postponed.
I sat down in the Captain's Lounge, our hangout for this cruise (it had power points, comfortable chairs, friendly waitstaff who would bring coffees, what more could one ask (except internet but that is another story!) and started helping some people with some research queries.
This meant I missed Sean Ó Dúill talking on Country cures from Irish folklore which was a session open to all the ship's passengers and also Lesly Silvester talking on What were the Quarter Sessions?
Then time for the scheduled Research Help Zone before it was time for me to give my next presentation 'Timelines as a research tool'. At the same time as mine was scheduled 'Family History sources before 1837' by Jackie Depelle and we had a number of unhappy people who had wanted to hear both presentations. this can be a difficulty sometimes when a dual program is being run. I was able to alleviate their distress by promising to do the timelines talk again a few days later which I did and had nearly the same number in the audience.
I even had Lisa Louise Cooke in the audience and I am very much looking forward to seeing her creative timelines. I am a good researcher and scientist but don't have a creative bone in my body so I really admire creative people!
I then started my next talk which was on 'Understanding the context: why social history is important in your research', showing examples of how knowing the cultural, political, social, environmental aspects of your ancestors lives can make such a difference to your research.
This meant I missed Mike Murray's talk on 'Highland Clearances: where did they go?' which was a shame after seeing some of Scotland and seeing the conditions and understanding a little better (even though I have no research in these areas) about what occurred.
Then it was time for dinner. The ship has started during the early sessions on its way to Dublin our next stop.


text:
Q: Update SQL Server XML data with namespace I have a temp table where I assemble various values. Once these values are assembled I want to query the table to generate an XML element that will be inserted to update a larger XML data in a table column. Here is my TSQL I am using.
DECLARE @AssignmentAttachmentsXML AS XML

SET @AssignmentAttachmentsXML = (
SELECT
    TaxId AS '@AssignmentId',
    AttachmentId AS '@AttachmentDbId',
    Folder AS '@Folder',
    IIAP AS '@IIAP',
    AttachmentName AS '@AttachmentName',
    IIAPDate AS '@IIAPDate',
    AddToAssignmentDate AS '@AttachmentAddedDate',
    AttachmentAddedBy AS '@AttachmentAddedBy',
    CentralPrintDate AS '@CentralPrintDate',
    PostToCoreDate AS '@PostToCoreDate'
FROM @TempAttachmentDataTable
FOR XML PATH('Attachment'), ROOT('Attachments'));

WITH XMLNAMESPACES ('http://MtwUiTaxDataSchema' AS "MTW")
UPDATE compas.tbTaxAssignmentSequence
    SET xmlAssignment.modify('insert sql:variable("@AssignmentAttachmentsXML") into (/MTW:MtwUiTax/MTW:Assignment)[1]')
FROM
compas.tbTaxAssignment
    INNER JOIN
        compas.tbTaxAssignmentSequence
            ON
                compas.tbTaxAssignment.fkbintCurrentSequence = compas.tbTaxAssignmentSequence.bintId
where compas.tbTaxAssignment.bintId = @AssignmentId;

The result is this code inserts an XML element with an xmlns="" attribute in the "Attachments" element.
<Attachments xmlns="">
  <Attachment AssignmentId="10166" AttachmentDbId="72" ...
  <Attachment AssignmentId="10166" AttachmentDbId="73" ...
  <Attachment AssignmentId="10166" AttachmentDbId="75" ...
  <Attachment AssignmentId="10166" AttachmentDbId="88" ...
  <Attachment AssignmentId="10166" AttachmentDbId="89" ...
  <Attachment AssignmentId="10166" AttachmentDbId="90" ...
</Attachments>

The empty string in the xmlns attribute messes up downstream XPATH queries.
How can I update the FOR XML PATH query to create the XML without the xmlns attribute, like this:
<Attachments>
  <Attachment AssignmentId="10166" AttachmentDbId="72" ...
  <Attachment AssignmentId="10166" AttachmentDbId="73" ...
  <Attachment AssignmentId="10166" AttachmentDbId="75" ...
  <Attachment AssignmentId="10166" AttachmentDbId="88" ...
  <Attachment AssignmentId="10166" AttachmentDbId="89" ...
  <Attachment AssignmentId="10166" AttachmentDbId="90" ...
</Attachments>

-- Example Test Script Microsoft SQL Server 2016 - 13.0.1742.0 (X64) ---
CREATE TABLE AssignmentTable
    (
        bintId BIGINT NULL,
        xmlAssignment XML NULL
    )
    INSERT INTO [dbo].[AssignmentTable]
               ([bintId]
               ,[xmlAssignment])
         VALUES (
            1,
            '<MtwUiTax xmlns="http://MtwUiTaxDataSchema"><Assignment id="10404"><Stuff/></Assignment></MtwUiTax>')
    SELECT [xmlAssignment] FROM AssignmentTable
    ----------------------------------------------------
    GO
    CREATE TABLE AttachmentTable
    (
        bintId BIGINT NULL,
        Attrib1 VARCHAR(20),
        Attrib2 VARCHAR(20),
        Attrib3 VARCHAR(20),
    )
    INSERT INTO [dbo].[AttachmentTable]
               ([bintId]
               ,[Attrib1]
               ,[Attrib2]
               ,[Attrib3])
         VALUES
               (1
               ,'Attachment 1'
               ,'Apple'
               ,'Red'),
               (2
               ,'Attachment 2'
               ,'Grape'
               ,'Purple'),
               (3
               ,'Attachment 3'
               ,'Pear'
               ,'Green')
    SELECT * FROM AttachmentTable
    ----------------------------------------------------
    GO
    DECLARE @AssignmentAttachmentsXML AS XML
    SET @AssignmentAttachmentsXML = (SELECT bintId AS '@Id',
                                            Attrib1 AS '@Attrib1',
                                            Attrib2 AS '@Attrib2',
                                            Attrib3 AS '@Attrib3'
                                        FROM AttachmentTable
                                        FOR XML PATH('Attachment'), ROOT('Attachments'));
    SELECT @AssignmentAttachmentsXML;
    WITH XMLNAMESPACES ('http://MtwUiTaxDataSchema' AS "MTW")
                    UPDATE AssignmentTable
                        SET xmlAssignment.modify('insert sql:variable("@AssignmentAttachmentsXML") into (/MTW:MtwUiTax/MTW:Assignment)[1]')
                    FROM
                        AssignmentTable
                    WHERE
                        bintId = 1
    SELECT [xmlAssignment] FROM AssignmentTable
    -- CLEAN UP ----------------------------------------
    DROP TABLE AttachmentTable
    DROP TABLE AssignmentTable
    ----------------------------------------------------

A: Just create the elements of @AssignmentAttachmentsXML in the same namespace as of the target element into which @AssignmentAttachmentsXML is inserted later on:
DECLARE @AssignmentAttachmentsXML AS XML

WITH XMLNAMESPACES (default 'http://MtwUiTaxDataSchema')
SELECT @AssignmentAttachmentsXML = (
SELECT
    TaxId AS '@AssignmentId',
    AttachmentId AS '@AttachmentDbId',
    Folder AS '@Folder',
    IIAP AS '@IIAP',
    AttachmentName AS '@AttachmentName',
    IIAPDate AS '@IIAPDate',
    AddToAssignmentDate AS '@AttachmentAddedDate',
    AttachmentAddedBy AS '@AttachmentAddedBy',
    CentralPrintDate AS '@CentralPrintDate',
    PostToCoreDate AS '@PostToCoreDate'
FROM @TempAttachmentDataTable
FOR XML PATH('Attachment'), ROOT('Attachments'));
.............

A: In your response you are selecting the variable @AssignmentAttachmentsXML I am assigning a value to @AssignmentAttachmentsXML that is used later in the xmlAssignment.modify statement. When I add the default xmlnamespaces the following "WITH" statement creates a syntax error. Apparently "SET" and "SELECT" do not handle the "WITH XMLNAMESPACES" the same.

redpajama_set_name: RedPajamaStackExchange


text:
Girls' water polo advances to CIF Final after overtime win
By Luke Holthouse
Girls' water polo will face Los Osos in CIF finals Saturday at 2 p.m. at Woolett Aquatic Center in Irvine in a rematch of last year's game.
The CIF semifinal game against Upland Feb. 22 wasn't the first time the girls' water polo team had to settle a game in overtime this year. However, it was the first overtime game this season that the Wolverines would go on to win.
The Wolverines brought a 4-2 lead into the fourth quarter, but were shut out in the final period of regulation and surrendered two goals to the Highlanders.
Having lost both of their previous games that season decided in overtime, the Wolverines needed to find a way to win extra time to keep their season alive. Rebecca Armstrong '14 gave the Wolverines a 5-4 lead early in the first overtime period and Morgan Hallock '13 was able to seal the victory and punch the team's ticket to its second straight CIF Final with an insurance marker later in period.
The defending Div. IV Southern Section CIF Champions will take on Los Osos in the final, in a rematch of last year's championship game. The Wolverines beat the Grizzlies 10-7 in last year's final to win the girls' water polo program's first ever CIF Championship, but Los Osos beat the Wolverines earlier this season in a regular season game by a score of 14-13.
Girls water polo team loses to Newport Harbor High School after winning in season opener
Equestrian team participates in IEL
Girls soccer beats Santa Ynez High School in first game of the season
Perfecting Performance
Volleyball wins division I state championship